https://blog.csdn.net/saint_228/article/details/84889017

网易最近出的一款自动化UI测试工具:Airtest 挺火的,还受到谷歌的推荐。我试着用了一下,感觉优缺点还是蛮明显的。对初学者来说,能用到的也就是图像识别的功能,这块做得比老牌的按键精灵弱很多。不过Airtest集合了poco框架对熟悉python的同学来说,是个进行自动化测试的利器。
我用了一段时间Airtest以后,发现其实我完全可以丢开Airtest,我需要的是poco框架提供的unity3d控件读取,Airtest在其中只起到了一个pythonIDE的作用。自动化跑py脚本时,还要打开Airtest并通过Airtest连接模拟器很烦,于是稍微研究了一下,搭建了一个python+poco+夜神模拟器的测试环境。
第1步,需要有一个自己的python环境。网上教程很多,不赘述。
第2步,在自己的python里引入poco。Airtest自带poco框架,所以不使用Airtest的话,poco需要手动导入。
安装poco很简单,在cmd里输入 pip install pocoui 即可。pip会自动下载poco并安装到你的python环境里。

第3步,添加夜神的adb环境变量。由于需要在命令行调用夜神,所以将夜神的adb.exe添加到系统环境变量里是必须的。夜神的默认路径是C:\Program Files\Nox\bin,添加即可。这样可以直接通过os调用nox_adb.exe。
第4步 修改python脚本。
要通过python调用夜神打开待测游戏,首先需要取得该游戏的入口类名。一般入口类名会以Activity结尾。先用夜神把待测游戏打开,然后用
adb shell dumpsys activity | findstr “Unity” 命令,
可以查到当前所有的类名。一般第一行的cmp参数就是游戏的入口。
然后在python里使用 os.system(“nox_adb -s 127.0.0.1:62001 shell am start -n 包名/类名”)方法就可以直接通过夜神模拟器来打开游戏了。PS:62001是夜神的默认端口,使用其他的模拟器则更换对应的端口即可。
原本使用Airtest的默认脚本是这样的。

初始化UnityPoco以后直接声明poco实例就可以使用。
修改以后的脚本增加os命令调用模拟器开启游戏:
这样,poco就可以正常取到adb连接,与之前通过Airtest工具进行连接没有区别。

调试环境的时候还碰到过一个坑,python的adb.exe版本与夜神的adb.exe版本不一致,需要手动用高版本覆盖低版本,夜神的nox_adb.exe其实就是adb.exe,手动改一下名字就行。

再写个批处理文件,自动拷贝每天编译好的版本,然后丢到夜神里安装,再直接执行这个py文件,就可以做到自动化测试了。
执行的时候发现单独执行py脚本,与通过Airtest执行py脚本,效率略有降低,在执行前会有几秒的卡顿,我估计是由于还调用了 airtest库的原因,需要先在本地解释。

使用Airtest写的脚本里,像snapshot和sleep都是Airtest提供的封装好的命令,如果嫌效率低,就不要用这2个命令,换用python原生的命令即可。
————————————————
版权声明:本文为CSDN博主「saint_228」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/saint_228/java/article/details/84889017

最新文章

  1. H5 Notes:Navigator Geolocation
  2. 实现从Oracle增量同步数据到GreenPlum
  3. js 正则表达式 ( 1 )
  4. css3相册图片3D旋转展示特效
  5. SQL常用语句(2)
  6. Weinre调试移动端页面
  7. json 入门(1)
  8. HDU4971 A simple brute force problem.(强连通分量缩点 + 最大权闭合子图)
  9. GO语言练习:channel 工程实例
  10. js判断移动终端url跳转
  11. android 特效UI实现
  12. Sublime Text—自带快捷键介绍
  13. http://blog.csdn.net/itplus/article/details/10088625
  14. Python 连接mysql
  15. 《你必须知道的495个C语言问题》知识笔记及补充
  16. 手动部署 kubernetes HA 集群
  17. 11-border(边框)
  18. CSS镂空图片处理
  19. poj Strange Way to Express Integers 中国剩余定理
  20. svn使用经验---不断总结

热门文章

  1. JavaScript 时间的操作
  2. 南大ics-pa/PA1.1过程及感想
  3. PostgreSQL-14 安装配置-wsl_v1_ubuntu22.04
  4. MyBatis_07(动态SQL)
  5. kube-proxy
  6. 第二周day5
  7. 云计算——实验3:AWS实验-EC2操作
  8. COOP/COHP(上)-PROOUT
  9. MXPlayer使用第三方解码器
  10. rest-assured:外部数据驱动之通过CsvFile数据源来使用外部数据源(org.junit.platform.commons.PreconditionViolationException: Classpath resource [repo.csv] does not exist)