IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> pyest+appium实现APP自动化测试的思路全总结 -> 正文阅读

[开发测试]pyest+appium实现APP自动化测试的思路全总结

作者:https://csdnimg.cn/release/blogv2/dist/mdeditor/css/editerView/markdown_views-89f5acb30b.css

每天进步一点点,关注我们哦,每天分享测试技术文章
本文章出自【码同学软件测试】
码同学公众号:自动化软件测试
码同学抖音号:小码哥聊软件测试

01 appium环境搭建

安装nodejs

http://nodejs.cn/

为什么要安装nodejs?

因为appium这个工具的服务端是由nodejs语言开发的

安装jdk,并且配置环境变量

为什么要装jdk?

因为我们要测试安卓,那么安卓的调试环境需要依赖jdk

安装sdk,并配置环境变量

为什么要装sdk?

因为我们要测试安卓,sdk就是安卓开发调试的环境

安装appium服务端
  1. 命令行形式的appium server

npm install appium@1.15.1
在这里插入图片描述

  1. appium desktop版本,在官网下载即可
    在这里插入图片描述

  2. 上述两种之间的区别

桌面版不仅仅是一个appium server,他还包括了元素定位调试以及录制脚本的功能

命令行版本仅仅是一个appium server

安装appium-doctor

npm install appium-doctor

这个工具是用来检查appium的环境的,但是注意并不是说在这里检查没有错误就能代表我的环境一定没有问题
在这里插入图片描述

安装安卓模拟器(并不是必须)

夜神、mumu,等等

2 搭建python+pytest+appium环境

安装python

安装pytest

pip install pytest

安装selenium

pip install selenium

安装appium

pip install Appium-Python-Client

安装allure-pytest

pip install allure-pytest

免费领取 码同学软件测试 课程笔记+超多学习资料+完整视频+最新面试题,可以转发文章 + 私信「码同学666」获取资料哦

3 l 安装pycharm搭建项目编写脚本

 初始化driver代码编写

!/usr/bin python3 # encoding: utf-8 -*- # @author: 沙陌 微信:Matongxue_2 # @Time: 2021/5/21 10:25 # @Copyright:北京码同学网络科技有限公司

#移动端初始化用到的参数特别多

#下面的这个字典里的参数是脚本告诉appium服务端我都要干什么,基础的能力参数

import time

import allure

from appium import webdriver

from selenium.webdriver.common.by import By

desired_caps = {

#这表示你要测试的设备类型,安卓就写android,ios就写ios

'platformName':'android',

#这表示你要测试的app的路径

'app':'C:\\Users\\lixio\\Desktop\\douban.apk',

#看起来像是设备名称,但是注意在安卓上这个位置的值随便写都行,

#这个并不能够代表你要执行的设备是哪个

'deviceName':'xxx',

#这个参数才是真正的指定执行哪台设备的参数,

# 他的值写的就是使用adb devices命令看到的设备名称

'udid':'127.0.0.1:62001',

#该参数非常重要,表示在执行测试时不重签名apk文件,

# 默认情况下appium会针对apk文件进行重签名操作,

# 但是现在的app都有签名篡改的校验,如果被重签名了那么这个app就不能正常使用了

'noSign':True,

#该参数表示在执行appium测试时使用appium的辅助输入法,

# 好处是支持中文输入支持键盘隐藏

'unicodeKeyboard':True,

#表示执行完测试之后将手机的输入法重置回手机原来的

'resetKeyboard':True,

#表示脚本和appium服务之间连接的session超时时间,单位是秒

'newCommandTimeout':600 

}

初始化driver,参数里看到的url就是appium服务的地址 driver = webdriver.Remote(‘http://localhost:4723/wd/hub’, desired_caps)

#增加隐式等待

driver.implicitly_wait(10) #单位是秒


    元素查看

可以使用sdk自带的uiautomatorviewer.bat这个工具,也可以使用appium desktop版本的元素查看
![在这里插入图片描述](https://img-blog.csdnimg.cn/857f07830ebb40f286812e3e64c2d13e.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAVGVzdGZhbl96aG91,size_20,color_FFFFFF,t_70,g_se,x_16)



    豆瓣登录脚本编写,采用pytest方式

@allure.title('豆瓣登录')

def test_login():

    # id定位在安卓端对应的元素属性是resource-id

    driver.find_element(By.ID,'com.douban.frodo:id/left').click() 

    driver.find_element(By.ID,'com.douban.frodo:id/input_user_name').send_keys('18729399607')

    driver.find_element(By.ID,'com.douban.frodo:id/input_password').send_keys('abc123456')

    driver.find_element(By.ID,'com.douban.frodo:id/sign_in_douban').click()

    #操作完成后,必须有断言来判断结果是否正常

    time.sleep(3)

    page_source = driver.page_source

    assert '书影音' in page_source



## 4 执行测试


    执行前准备工作

1. 启动appium服务,在命令行做如下操作
![在这里插入图片描述](https://img-blog.csdnimg.cn/21553b27204d4e9e8b5e2677a5e765d0.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAVGVzdGZhbl96aG91,size_20,color_FFFFFF,t_70,g_se,x_16)


2. 确保手机设备连接正常

![在这里插入图片描述](https://img-blog.csdnimg.cn/d7f3b1d1eb0d4a35ba21f9eb4495929f.png)



    执行测试

在pycharm的Terminal中执行如下命令

pytest -sv --alluredir ./report/allure-results --clean-alluredir


    生成allure测试报告

allure generate ./report/allure-results -o ./report/allure-report --clean
![在这里插入图片描述](https://img-blog.csdnimg.cn/1a0bf73ac3a04529b2baaea1ddd1d943.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAVGVzdGZhbl96aG91,size_20,color_FFFFFF,t_70,g_se,x_16)




笔者跟大家分享一个福利!扫码回复【csdn码哥群】入软件测试自学交流群,可免费听技术讲座+领学习资料+视频课免费看
![在这里插入图片描述](https://img-blog.csdnimg.cn/b772b5c319cd4a26bc553e7da81e09e5.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAVGVzdGZhbl96aG91,size_20,color_FFFFFF,t_70,g_se,x_16)

作者:码同学软件测试
本文著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2022-03-10 22:56:28  更:2022-03-10 22:57:59 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/18 0:13:12-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码