什么是App自动化?为什么要做App自动化?
App自动化是指给 Android或IOS上的软件应用程序做的自动化测试。
手工测试和自动化测试的对比如下:
手工测试优势:不可替代、发现更多bug、包含了人的想象力与理解力。
注意,不是所有功能都需要自动化。
自动化测试优势:可重复、效率高,增加软件信任度。
执行自动化测试可以让测试同事有更多的精力来关注复杂场景,做更多更深层次的测试。
风险分析
自动化测试的主要风险分析如下:
(1)测试用例覆盖率(覆盖率决定测试效率,选择合适用例,应约占功能用例集的20%~50%)
(2)测试结果准确度(准确度决定了测试有效性,应尽可能减少误报)。
(3)自动化代码维护(维护决定了成本,数据关键字驱动自动化框架,代码应尽可能优化和少改动)。
(4)版本开发和测试时间进度(当项目需求和功能较为稳定时,建议用自动化)。
(5)开发对控件元素增修改的程度(需开发人员尽可能地用name元素,并且和UI设计一致,修改变动程度不大,测试人员可根据提供的元素提前介入,开发自动化脚本)。
App源码权限控制,iOS上测试需要源码。实际测试只需SVN或者git下载权限,而不需要上传权限。防止改动SVN或者git 上的源码。
技术框架
1、自动化学习过程
自动化测试环境的部署-->自动化测试脚本开发能力--->自动化测试框架研发--->手机自动化持续集成
2、andorid 系统架构图
3、手机自动化测试环境
安装Appium-->安装手机模拟器-->安装selenium和appium的客户端-->安装被测试app
4、Appium 软件架构
5、常用的定位技术和工具
6、自动化测试脚本技术
7、技术框架结构图
APP自动化测试流程
1、环境的安装
1.1 环境的准备
1:jdk1.6以上
2:Python2.7以上
3: android-sdk
4:Appium desktop 安装
1.2 jdk 安装
1:下载JDK后傻瓜式安装,注意:不要有中文路径和空格
2:配置环境变量:
右击“我的电脑”-->"属性"-->"高级系统设置"-->"高级"-->"环境变量"
1)在系统变量里新建"JAVA_HOME"变量,变量值为:C:Program FilesJavajdk1.8.0_60(根据自己的jdk的安装路径填写)
2)在系统变量里新建"classpath"变量,变量值为:.;%JAVA_HOME%lib;%JAVA_HOME%libtools.jar (注意最前面有一点)
3)找到path变量(已存在不用新建)添加变量值:%JAVA_HOME%bin;%JAVA_HOME%jrebin
1.3 python 安装
1:傻瓜式安装,
2:配置环境变量:电脑属性系统变量添加python根目录
1.4 安装Android的测试开发环境
1:Android-SDK的安装:SDK manager.exe 双击打开下载
2:android-sdk环境变量的配置
具体操作步骤:
- 新建ANDROID_HOME
路径为C:Program Files (x86)Androidandroid-sdk
- 在Path 变量中加入路径
%ANDROID_HOME%platform-tools 和 %ANDROID_HOME%tools
- 检查adb 环境变量
- 连接手机
如果是真机,手机插上USB连接电脑,打开开发者模式,cmd输入adb devices
如果是模拟器,需要输入adb connect 127.0.0.1:62001或者52001连接,然后再输入adb devices
Appium desktop 安装
下载地址:https://github.com/appium/appium-desktop/releases/tag/v1.3.1
傻瓜式安装 注意:一定要选择所有用户权限要不然用不了UiAutomator2
2、 API脚本
2.1 如何获取APP启动的AppPackage和AppActivity
1:通过appt获取切换到aapt所在的目录,执行aapt dump(aapt是sdk自带的一个工具,在sdkbuilds-tools目录下)使用命令aapt dump badging “D: jinritoutiao_7500.apk”运行后的结果中以下两行分别是应用包名package和入口activity名称
package: name=’ com.ss.android.article.news’
launchable-activity: name=‘com.ss.android.article.news.activity.LaunchActivity’
2: 通过 adb shell am start com.ss.android.article.news/com.ss.android.article.news.activity.MainActivity
来判断启动的app 是否正确
2.2 启动appium
2.3:写脚本
1.platformName:这里是 android 的 apk
2.deviceName:手机设备名称,通过 adb devices 查看
3.platformVersion:android 系统的版本号
4.appPackage:apk 包名
5.appActivity:apk 的 launcherActivity
2.4生成测试报告