上一篇主要介绍了jenkins:持续集成平台成功构建UI自动化工程,我们已经将我们的工程在本地jenkins上实现持续集成性地打包和执行测试用例了。但是工程使用的是真机,我们不能保证真机一直在线,换成模拟器会是更好的策略。
关于安卓UI自动化学习,我的学习路线是这样安排的:
(一)本地:能够独立完成一个UI自动化工程的建立
(二)本地:命令行执行UI自动化测试用例
(三)本地:ant打包测试工程apk+执行UI自动化用例一体化
(四)jenkins:持续集成平台成功构建UI自动化工程
(五)jenkins:真机换成模拟器
(六)jenkins:持续集成平台实现被测apk自动打包编译+自动化一体化
(七)UI自动化用例编写语法和规范
本章内容就是第五部分,jenkins:真机换成模拟器
一、模拟器下载安装启动
由于安卓自身模拟器启动较慢,我们选择使用口碑较好的第三方模拟器Genymotion。
具体的下载安装启动过程不细表,网上很多教程。
我们保持模拟器启动状态。那么真机是通过adb devices命令来确定它的id,模拟器同样可以通过adb devices命令确定它的id。可以看到,我们的模拟器id是192.168.56.101:5555
二、将模拟器写入配置
我们之前的orange配置文件中写入的设备id是真机的id,最简单的办法就是将orange配置文件中的设备id改写为模拟器的id。当然,这种方式简单却不具备可扩展性,如果我们有多个模拟器想要轮流测试,或者真机和模拟器轮流测试呢?显然这种方式不具备良好的扩展性。
另一种较好地将模拟器写入配置的方式是在ant命令行中显式指定,然后通过ant正则表达式的替换方式替换到orange配置文件中,使得配置生效。
我们之前在jenkins的执行ant命令设置的是ant -buildfile my_work.xml,将真机换成模拟器后,我们在ant执行命令指定模拟器地址。也就是ant命令设置为ant -buildfile my_work.xml -Ddevicename=192.168.56.101:5555。在my_work.xml中我们需要写正则表达式将命令行设置的模拟器地址替换到orange配置文件中:
我们这里增加了一个名为“edit_config”的target,里面使用正则表达式把config.properties里的devicename替换为我们的目标id。
注意修改“edit_config”这个target要设置为“update_project”这个target之前执行哦。
三、在模拟器上执行
配置完毕后,我们就可以继续在jenkins上重新构建我们的Job啦,保证模拟器是开启的状态,点击构建命令。就可以看到在模拟器上执行UI自动化工程啦。
网友评论