一,目录
1、环境准备
2、appium介绍
3、自动化测试框架介绍
3.0 框架目录
3.1 框架主体
3.1.1 驱动类:启动app
3.1.2 基类:关键字驱动封装的底层类
3.1.3 测试数据类:Yaml、execl、yml
3.1.4 页面对象类:提供不同页面的对象
3.1.5 测试用例类:Unitest、pytest
3.2、框架其他部分
3.2.1 allure-results:用于输出allure测试报告
3.2.2 flask:轻量级 Web 应用框架,用于查看allure测试报告(后期拓展性较高)
3.2.3 Jenkins:持续集成工具,此处用于定时执行自动化脚本
4、其他补充
4.1 scrcpy工具 (主要用于解锁屏幕和远程操作)
4.2 weditor工具 (主要用于元素定位)
4.3 定时构建任务参数介绍
5、后期优化与拓展
5.1 基于flask模块,扩展allure报告可读性,添加历史报告查阅功能
5.2 添加python获取性能指标功能,实现性能自动化测试
5.3 实现定时自动安装最新包,无需手动下包放入安装目录
一、环境准备
1.脚本语言:Python3.x IDE:安装Pycharm
1.1主要python模块 appium、pytest、flask
2.安装Java JDK 、Android SDK
3.adb环境,例子:path添加E:\Software\Android_SDK\platform-tools
4.安装Appium for windows,官网地址http://appium.io/
5.scrcpy工具 (主要用于解锁屏幕和远程操作)
6.安装tomcat、Jenkins
7.weditor工具(主要用于元素定位)
二、Appium介绍
1,appium是开源的移动端自动化测试框架;
2,appium可以测试原生的、混合的、以及移动端的web项目;
3,appium可以测试ios,android应用;
4,appium是跨平台的,可以用在osx,windows以及linux桌面系统上;
三、自动化测试框架介绍
框架目录
框架主体
1、驱动类:启动app
需要填写app启动参数,包括app包名和app活动入口,手机参数等其他配置项
这里自动获取app启动参数,并将其拼装起来,更换手机无需重新填写对应参数
2、基类:关键字驱动封装的底层类
封装元素操作方法
包括
find_element 查找对象
find_element_and_click 查找并点击对象
get_element_text 获取对象文本
is_present 判断对象是否存在
scroll_to_element 滚动查找对象
tap 左边定位元素
swipe 滑动页面
swipe_up、swipe_down、swipe_left、swipe_right 上下左右滑动页面
input_keyevent 输入键盘按键
run_adb_command 运行adb命令
等等
举例子:
定位元素需要输入locator,locator存放于测试数据类中,待会会讲到
open_popup_handle=True主要用于关闭突然冒出来的弹窗,这些弹窗定位被放到popup_blacklist.yml文件中
3、测试数据类:Yaml、execl、yml
其中
btn_CheckPermission: (用于外部引用)
- CheckPermission_button (用于理解注释)
- xpath (元素定位方法)
- //*[@resource-id=“com.bbb.aaa:id/jdi”] (元素定位路径)=“阿斯大大”]/… 定位文本内容为阿斯大大的上一级元素
函数定位包含需定位内容即可
//input[contains(@id,‘k’)]匹配项模糊查找,包含id包含k
//input[contains(text(),‘k’)],文本包含k的input标签
相对路径定位,可以先定位子集元素再定位父级元素,父级元素用…/
//form[@action=‘http://.1324.html’]/div/input相对路径定位
4、页面对象类:提供不同页面的对象,在实际测试中通过调用页面对象实现自动化测试流程
这里时间有限,只写了一个点击同意按钮
5、测试用例类:Unitest、pytest
这里只写了一个步骤,执行点击同意按钮
然后进行校验,判断是否为true

这里注意需要设置static_folder=‘templates’,存放静态文件文件夹为templates
之后启动该服务,就可以在web端http://127.0.0.1:5000 访问报告了
3、Jenkins:持续集成工具,此处用于定时执行自动化脚本
关于Jenkins的配置
因为我的Jenkins安装于tomcat容器中,故需要到tomcat的bin目录,找到startup,双击启动,即可启动Jenkins
建议安装tomcat版本:apache-tomcat-9.0.62 (较高版本似乎跟Jenkins不兼容)
配置登录地址后,访问http://localhost:8081/jenkins/
创建一个任务,之后配置构建命令
这里执行构建命令,需要注意先配置环境变量,否则会提示找不到adb命令等问题
这里配置定时构建任务
尝试手动执行构建
构建成功后,就可以刷新flask返回的web页面查看测试报告了
四、其他补充
1、定时构建任务参数介绍
五颗星,每颗代表的含义
MINUTE Minutes within the hour (0–59)
HOUR The hour of the day (0–23)
DOM The day of the month (1–31)
MONTH The month (1–12)
DOW The day of the week (0–7) where 0 and 7 are Sunday.
每十五分
钟(可能在:07、:22、:37、:52):
H/15 * * * *
每小时前半小时每十分钟(三次,可能在:04、:14、:24):
H(0-29)/10 * * * *
#每两个小时在整点后45分钟举行一次,由上午9时45分开始,下午3时45分结束:
45 9-16/2 * * 1-5
#在工作日上午8时至下午4时(可能在上午9时38分、上午11时38分、下午1时38分、下午3时38分)每两小时一次:
H H(8-15)/2 * * 1-5
#除12月外,每月1日和15日每天一次:
H H 1,15 1-11 *
2、scrcpy工具 (主要用于解锁屏幕和远程操作)
2.1、安装完成之后,进入目录cd E:\scrcpy-win64,输入命令 .\scrcpy.exe --max-size 1024 ,启动窗口
点击电源键Ctrl+p,也可以用adb命令代替
adb shell input keyevent KEYCODE_POWER
之后使用adb命令上滑解锁屏幕
adb shell input swipe 360 440 360 1040
(用命令操作有利于后期实现自动持续集成,可以一起放到Jenkins构建命令里面)
这里补充一下appium自动装包可能遇到的问题
需要进入开发者模型关闭 监控adb安装应用按钮,这样appium自动装包的时候就不会出现需要输入密码的情况
3、weditor工具(主要用于元素定位)
因为最新版的appium不再集成元素定位工具,需要独立安装,环境配置比较麻烦,故使用weditor进行元素定位
3.1、weditor的优点
安装简便
pip3 install --pre --upgrade weditor
启动简单,命令行输入 python -m weditor
之后会自动打开 http://localhost:17310/
连接手机即可使用
3.1 weditor的缺点
无法跟appium同时使用,使用weditor定位完之后,需要先手动删除自动安装在手机的app插件 ATX
,再启动运行appium
五、后期拓展
1、基于flask模块,扩展allure报告可读性,添加历史报告查阅功能,亦可制作成测试平台
2、添加python获取性能指标功能,实现性能自动化测试
自动执行某些性能测试场景,获取对应性能指标
3、实现定时自动安装最新包,无需手动下包放入安装目录
appium可以自动识别某个目录下是否有app,如有则会自动安装
如果实现自动下载最新测试包进入到目录文件间,即可实现完全自动持续自动化测试,无需手工操作