前言:这里主要是站在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-android npm i -g macaca-cli ;npm i -g macaca-android
|
1.安装python 2.安装ATX手机助手 python -m atx install atx-assistant 3.安装uiautomator2 pip install --upgrade --pre uiautomator2
|
在gradle中添加依赖androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.2' |
inspector | 1.安装npm i app-inspector -g 2. macaca-inspector.png |
1.安装pip install --pre -U weditor 2. atx-inspector.png |
sdk中自带uiAutomator 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脚本,大概看一下: test.spec.png 6.将这些转换成java语言: macaca_test.png |
1.atx的录制回放器就是instpector中的那个,
atx
点击红色框中的就会自动生成步骤代码 2.再看下代码部分: 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。 实际上这一块的工作和测试是冲突的,相当于做了两份工,所以个人觉得作为开发,如果花功夫去做黑盒测试,是不值得的。
网友评论