Android UI自动化测试框架之我见

前言:这里主要是站在Android开发者的角度,不是测试人员的角度,同时也是本人自己的观点,有问题可以跑出来大家讨论,不喜勿喷,谢谢!

这里主要比较三个自动化测试框架:
1. Macaca
2. ATX
3. Espresso
还有其他一些框架如Robotium啊,Appium啊,就不多说了。


Macaca Atx Espresso
性质 黑盒 黑盒 白盒
配置 1.安装Node.js
2.Mac环境,若要使用appinstect等插件,需安装Xcode
3.配置安卓相关环境变量,这个之前基本都配置过了
4.安装chromeDriver
5.安装macaca和macaca-androidnpm i -g macaca-cli;npm i -g macaca-android
1.安装python
2.安装ATX手机助手python -m atx install atx-assistant
3.安装uiautomator2pip install --upgrade --pre uiautomator2
在gradle中添加依赖
androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.2'
inspector 1.安装npm i app-inspector -g
2.
Android UI自动化测试框架之我见_第1张图片
macaca-inspector.png
1.安装pip install --pre -U weditor
2.
atx-inspector.png
sdk中自带uiAutomator
Android UI自动化测试框架之我见_第2张图片
uiautomator.png
支持语言 提供 Node.js, Java, Python 三大主流的语言栈 Python Java
录制回放器 1.安装UIRecord:npm i uirecorder -g
2.开启macaca服务macaca server --port 4444 --verbose
3.运行uirecorder start --mobile
4
官方实例

5.之后就会生成对应的测试脚本,只能生成js脚本,大概看一下:
Android UI自动化测试框架之我见_第3张图片
test.spec.png

6.将这些转换成java语言:
Android UI自动化测试框架之我见_第4张图片
macaca_test.png
1.atx的录制回放器就是instpector中的那个,
Android UI自动化测试框架之我见_第5张图片
atx
点击红色框中的就会自动生成步骤代码
2.再看下代码部分:
Android UI自动化测试框架之我见_第6张图片
atx_test.png
espresso的录制器在AndroidStudio中有集成,但是实际使用效果很慢,生成的代码也不友好,不是很推荐使用
实际运行速度 很快
覆盖率 6.0之后需要运行时的读写权限,代码中配置jacoco,最后通过macaca coverage就可以生成覆盖率文件 与macaca类似,通过处理生成的exec文件生成覆盖率 配置jacoco,直接执行命令行,可以同时生成单元测试和ui测试的覆盖率,但是前提条件是所有测试用例必须pass。否则只会生成通过率的报告。

个人观点

几个测试框架用下来的用户体验是Espresso>ATX>Macaca,但是重心还是应该放在单元测试上,如果使用macaca或者atx这些黑盒自动测试工具,觉得做起来并不会比我们的测试专业。集成ci方面,之前的jacoco+jekins+sonarqube的方案就很不错,也能生成漂亮的测试反馈报告,比如关联通过率,覆盖率和lint。 实际上这一块的工作和测试是冲突的,相当于做了两份工,所以个人觉得作为开发,如果花功夫去做黑盒测试,是不值得的。

你可能感兴趣的:(Android UI自动化测试框架之我见)