使用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中for循环详解
Jan 17 Python
python多重继承实例
Oct 11 Python
Python模拟简单电梯调度算法示例
Aug 20 Python
对python当中不在本路径的py文件的引用详解
Dec 15 Python
实例详解Matlab 与 Python 的区别
Apr 26 Python
Python使用scipy模块实现一维卷积运算示例
Sep 05 Python
python tkinter组件摆放方式详解
Sep 16 Python
Python unittest单元测试框架及断言方法
Apr 15 Python
Python如何读写字节数据
Aug 05 Python
pip已经安装好第三方库但pycharm中import时还是标红的解决方案
Oct 09 Python
最新版 Windows10上安装Python 3.8.5的步骤详解
Nov 28 Python
用Python实现职工信息管理系统
Dec 30 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中获取url与物理路径的总结
2013/06/21 PHP
thinkPHP3.1验证码的简单实现方法
2016/04/22 PHP
golang 调用 php7详解及实例
2017/01/04 PHP
关于Yii中模型场景的一些简单介绍
2019/09/22 PHP
javascript  Error 对象 错误处理
2008/05/18 Javascript
改善你的jQuery的25个步骤 千倍级效率提升
2010/02/11 Javascript
Three.js源码阅读笔记(基础的核心Core对象)
2012/12/27 Javascript
捕获键盘事件(且兼容各浏览器)
2013/07/03 Javascript
JavaScript验证图片类型(扩展名)的函数分享
2014/05/05 Javascript
你有必要知道的25个JavaScript面试题
2015/12/29 Javascript
JavaScript类型系统之基本数据类型与包装类型
2016/01/06 Javascript
JS实现的简单拖拽功能示例
2017/03/13 Javascript
详解Angular2 之 结构型指令
2017/06/21 Javascript
微信小程序实现图片预览功能
2018/01/31 Javascript
vue.js基于v-for实现批量渲染 Json数组对象列表数据示例
2019/08/03 Javascript
nodejs开发一个最简单的web服务器实例讲解
2020/01/02 NodeJs
解决nuxt页面中mounted、created、watch执行两遍的问题
2020/11/05 Javascript
JavaScript实现网页tab栏效果制作
2020/11/20 Javascript
通过C++学习Python
2015/01/20 Python
Python内置函数OCT详解
2016/11/09 Python
python DataFrame获取行数、列数、索引及第几行第几列的值方法
2018/04/08 Python
Python3.7实现中控考勤机自动连接
2018/08/28 Python
对python实时得到鼠标位置的示例讲解
2018/10/14 Python
TensorFlow实现自定义Op方式
2020/02/04 Python
全网最详细的PyCharm+Anaconda的安装过程图解
2021/01/25 Python
德国最大的网上鞋店之一:Schuhe24.de
2017/06/10 全球购物
开放系统互连参考模型
2016/06/29 面试题
测试工程师职业规划书
2014/02/06 职场文书
预备党员入党自我评价范文
2014/03/10 职场文书
公司联欢会策划方案
2014/05/19 职场文书
公务员试用期满考核材料
2014/05/22 职场文书
婚纱店策划方案
2014/05/22 职场文书
专题组织生活会方案
2014/06/15 职场文书
励志广播稿300字(5篇)
2014/09/15 职场文书
井冈山红色之旅心得体会
2014/10/07 职场文书
创业计划书介绍
2019/04/24 职场文书