前言
airtest是一款跨平台的UI自动化编辑器,主要为游戏而设计,但同时也可以适用于移动端的自动化测试。
airtest里面有两大体系,airtest和pocoui支撑着整个测试框架。
- airtest
- 主要通过图像对比然后在界面上进行点击和识别的操作。
- pocoui
- 该模块功能很强大,与uiautomator2有异曲同工之妙。
下载安装
点击下载即可。
下载完成后是一个压缩包。
解压到一个文件夹中,比如我就是在D盘根目录进行解压的。解压后打开文件夹。
找到AirtestIDE.exe
双击打开。
打开后会弹出登录界面,点击skip
跳过。
我们就进入到了主界面。
入门教程
这里我就不介绍了,官方教程里有一个5分钟入门,可以打开看一看。
https://airtest.doc.io.netease.com/tutorial/1_quick_start_guide/
airtest也是需要编写脚本的,使用的语言是python。
所以在学习这个工具的时候也需要一定的python基础。
airtest同时支持2和3,推荐使用python3。
搭建环境
airtestIDE安装好了,现在我们应该准备其他的环境。如adb,安卓设备环境。
ADB环境搭建
- 进入网址:https://adbshell.com/downloads 下载Windows版本的adb软件包
- 下载完成后安装在
- 配置环境变量。
-
验证adb安装
mumu模拟器
下载安装网易mumu模拟器
由于没有多余的安卓手机,自己也只有一个主力机。所以我只能考虑用模拟器进行本系列的教程。
百般挑选之后我选择了网易的mumu模拟器。主要原因是它和airtestIDE同属网易开发的,天然亲近。
下载地址:http://mumu.163.com/
配置ADB
因为网易mumu是模拟器所以我们需要设置一下adb。
教程:http://mumu.163.com/2017/12/19/25241_730476.html
启动链接
启动airtest,启动mumu模拟器
-
在airtestIDE中可以看到箭头1所指的区域,没有出来设备
-
所以我们选择箭头2所指的选项,点击
远程设备链接
,点击连接
- 这时可以看到设备出来了。
-
点击
connect
右键的箭头,选择USE javacap
,然后点击connect
。此时airtest和mumu模拟器的链接就大功告成了。
配置说明
至于为什么要选择javacap
和安卓设备的链接问题,请移步官方提供的文档:
http://airtest.netease.com/docs/cn/2_device_connection/3_emulator_connection.html
获取APP包名
在pycharm
中已经成功链接了mumu模拟器
,并打印出了设备的相关信息.
接下来我们就要获取APP的包名,先看我们准备用那个app作为教程中所使用的app呢。
我在这里选择的是智学网app
进行测试,在mumu模拟器
的应用市场就可以下载到。
接下来我们要获取应用的包名,获取包名我常用的有两种方法。
adb命令行获取包名
首先我们先查看一下mumu模拟器的版本。进入设置—关于里面。
是安卓6.0.1版本的。
-
MacOS系统
- 安卓8.0以下
adb shell dumpsys activity activities | grep mFocusedActivity
- 安卓8.0以上
adb shell dumpsys activity activities | grep mResumedActivity
-
Windows系统
- 安卓8.0以下
adb shell dumpsys activity activities | findstr mFocusedActivity
- 安卓8.0以上
adb shell dumpsys activity activities | findstr mResumedActivity
我们在mumu模拟器中运行智学网app
,然后打开cmd。输入Windows安卓8.0以下的命令。
注意:如果遇到报错
error: no devices/emulators found
我们先在cmd
中执行一下命令: adb connect 127.0.0.1:7555
然后再进行获取包名的命令就可以了。
airtest获取包名
那么在脚本中我们应该怎样获取包名呢,airtest已经为我们内置了一个获取包名的方法:
首先我们导入airtest包中的Android模块。
然后使用模块的get_top_activity()
获取并打印出顶层的安卓活动。
运行脚本:请看图片中箭头所指部分。
可以看到打印结果的包名和活动名是不是和adb命令行获取的一样。
在airtest在获取包名很简单吧,当然ADB命令行获取也更方便,不用导入脚本。
自己想使用那种方式安卓应用包名都可以。
进行到这里我们的airtest测试环境就配置好了。