使用python+poco+夜神模拟器进行自动化测试实例


Posted in Python onApril 23, 2020

网易最近出的一款自动化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环境里。

使用python+poco+夜神模拟器进行自动化测试实例

第3步,添加夜神的adb环境变量。由于需要在命令行调用夜神,所以将夜神的adb.exe添加到系统环境变量里是必须的。夜神的默认路径是C:\Program Files\Nox\bin,添加即可。这样可以直接通过os调用nox_adb.exe。

使用python+poco+夜神模拟器进行自动化测试实例

第4步 修改python脚本。

要通过python调用夜神打开待测游戏,首先需要取得该游戏的入口类名。一般入口类名会以Activity结尾。先用夜神把待测游戏打开,然后用

adb shell dumpsys activity | findstr “Unity” 命令,

可以查到当前所有的类名。一般第一行的cmp参数就是游戏的入口。

使用python+poco+夜神模拟器进行自动化测试实例

然后在python里使用 os.system(“nox_adb -s 127.0.0.1:62001 shell am start -n 包名/类名”)方法就可以直接通过夜神模拟器来打开游戏了。PS:62001是夜神的默认端口,使用其他的模拟器则更换对应的端口即可。

原本使用Airtest的默认脚本是这样的。

使用python+poco+夜神模拟器进行自动化测试实例

初始化UnityPoco以后直接声明poco实例就可以使用。

修改以后的脚本增加os命令调用模拟器开启游戏:

使用python+poco+夜神模拟器进行自动化测试实例

这样,poco就可以正常取到adb连接,与之前通过Airtest工具进行连接没有区别。

使用python+poco+夜神模拟器进行自动化测试实例

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

再写个批处理文件,自动拷贝每天编译好的版本,然后丢到夜神里安装,再直接执行这个py文件,就可以做到自动化测试了。

执行的时候发现单独执行py脚本,与通过Airtest执行py脚本,效率略有降低,在执行前会有几秒的卡顿,我估计是由于还调用了 airtest库的原因,需要先在本地解释。

使用python+poco+夜神模拟器进行自动化测试实例

使用Airtest写的脚本里,像snapshot和sleep都是Airtest提供的封装好的命令,如果嫌效率低,就不要用这2个命令,换用python原生的命令即可。

以上这篇使用python+poco+夜神模拟器进行自动化测试实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python的包管理器pip更换软件源的方法详解
Jun 20 Python
python简单线程和协程学习心得(分享)
Jun 14 Python
python中学习K-Means和图片压缩
Nov 20 Python
python实现随机梯度下降法
Mar 24 Python
python使用Matplotlib画条形图
Mar 25 Python
python批量赋值操作实例
Oct 22 Python
django中的图片验证码功能
Sep 18 Python
windows环境中利用celery实现简单任务队列过程解析
Nov 29 Python
Pandas将列表(List)转换为数据框(Dataframe)
Apr 24 Python
基于Python快速处理PDF表格数据
Jun 03 Python
Pycharm学生免费专业版安装教程的方法步骤
Sep 24 Python
使用opencv-python如何打开USB或者笔记本前置摄像头
Jun 21 Python
PyCharm设置Ipython交互环境和宏快捷键进行数据分析图文详解
Apr 23 #Python
python+adb命令实现自动刷视频脚本案例
Apr 23 #Python
python+adb+monkey实现Rom稳定性测试详解
Apr 23 #Python
通过python调用adb命令对App进行性能测试方式
Apr 23 #Python
python 将视频 通过视频帧转换成时间实例
Apr 23 #Python
Windows下Anaconda和PyCharm的安装与使用详解
Apr 23 #Python
如何实现在jupyter notebook中播放视频(不停地展示图片)
Apr 23 #Python
You might like
PHP定时执行任务的3种方法详解
2015/12/21 PHP
又拍云异步上传实例教程详解
2016/04/19 PHP
基于jquery的textarea发布框限制文字字数输入(添加中文识别)
2012/02/16 Javascript
简体中文转换繁体中文(实现代码)
2013/12/25 Javascript
JavaScript中的prototype和constructor简明总结
2014/04/05 Javascript
javascript的alert box在java中如何显示多行
2014/05/18 Javascript
浅谈Javascript线程及定时机制
2015/07/02 Javascript
JS实现的自定义显示加载等待图片插件(loading.gif)
2016/06/17 Javascript
深入理解(function(){... })();
2016/08/16 Javascript
浅谈Javascript中的Label语句
2016/12/14 Javascript
Angular.JS中的this指向详解
2017/05/17 Javascript
对存在JavaScript隐式类型转换的四种情况的总结(必看篇)
2017/08/31 Javascript
JavaScript中错误正确处理方式小结你用对了吗
2017/10/10 Javascript
React Router V4使用指南(精讲)
2018/09/17 Javascript
Postman如何实现参数化执行及断言处理
2020/07/28 Javascript
vue项目打包后提交到git上为什么没有dist这个文件的解决方法
2020/09/16 Javascript
[48:21]林俊杰圣堂刺客超神杀戮秀
2014/10/29 DOTA
python获取外网ip地址的方法总结
2015/07/02 Python
python的else子句使用指南
2016/02/27 Python
Python使用openpyxl读写excel文件的方法
2017/06/30 Python
Python实现购物车程序
2018/04/16 Python
python中字符串内置函数的用法总结
2018/09/13 Python
Python hexstring-list-str之间的转换方法
2019/06/12 Python
python能否java成为主流语言吗
2020/06/22 Python
详解使用python爬取抖音app视频(appium可以操控手机)
2021/01/26 Python
露营世界:Camping World
2017/02/02 全球购物
Parfumdreams英国:香水和化妆品
2019/05/10 全球购物
一家外企的面试题目(C/C++面试题,C语言面试题)
2014/03/24 面试题
某公司C#程序员面试题笔试题
2014/05/26 面试题
大学三年计划书范文
2014/04/30 职场文书
在校实习生求职信
2014/06/18 职场文书
推荐信范文大全
2015/03/27 职场文书
党员证明模板
2015/06/19 职场文书
2016年清明节寄语
2015/12/04 职场文书
创业计划书之韩国烧烤店
2019/09/19 职场文书
如何利用python和DOS获取wifi密码
2021/03/31 Python