Airtest自动化测试超级详细教程

Airtest自动化测试

1. 安装AirtestIDE

AirtestIDE下载地址。我下载的是AirtestIDE_2019-09-10_py3_Mac10-12.dmg。下载完成之后,直接安装即可。

2. 设备连接

2.1 部署iOS-Tagent

iOS-Tagent下载地址

 git clone git@github.com:AirtestProject/iOS-Tagent.git
 把手机连接到电脑上然后 打开Xcode,  product -> Scheme -> WebDriverAgentRunner  如图
1.png
然后点击  product -> Test  当出现如图的情况,说明iOS-Tagent环境部署成功
 (我自己本地部署后的服务器地址是: http://172.20.10.7:8100)
2.png

2.2 设置代理

iproxy 可以把iPhone端口映射到电脑端口,那么就可以通过访问电脑的端口访问到手机的端口了

 brew install libimobiledevice    // 通过 Homebrew 安装iproxy

 iproxy 8100 8100    // 运行iproxy,将手机的8100端口,映射到电脑的8100端口上。这样我们就能通过访问电脑的8100端口来访问到手机了 (我运行部署的环境是8100,所以写的8100)

启动成功后,可以试着在浏览器访问 http://172.20.10.7:8100/status ,如果访问成功并且可以看到一些json格式的手机信息,即表示启动成功。如图所示:

3.png

此时,访问 http://172.20.10.7:8100/inspector 可以看到iPhone屏幕投影在浏览器上 如图

4.png

2.3 AirtestIDE与iPhone连接

通过ip方式连接iPhone,实时刷新界面,可进行UI测试。在AirtestIDE的iOS地址栏填入地址 http://172.20.10.7:8100,点击 “connect” 连接设备,开始编写你的Airtest测试脚本了。如图所示

5.png

注意: Xcode中的iOS Simulator模拟器部署过程和真机一样,但是可以省略步骤2.2 设置代理,不需要另外执行proxy

3. 脚本编写

3.1 Airtest图像编写脚本 例如:使用 touch 操作,选择touch 按钮 如图

7.png

具体详情 可以参考 Airtest脚本编写

3.2 Poco编写脚本 如图

8.png
9.png

具体详情 可以参考 Poco脚本录编写

4. 运行脚本

4.1 使用AirtestIDE运行脚本

单击AirtestIDE的 Run Script 按钮即可 如图

10.png

4.2 使用AirtestIDE命令行运行

将运行脚本时 AirtestIDE 生成的这段命令行代码(如下图圈出来的部分)复制到你的命令行终端里,回车运行就可以了

11.png

注意: 这种使用AirtestIDE命令行来运行脚本的方式,是一个简单快速的方式,假如想要批量执行、同时执行的话,可能会遇到效率不佳的问题。

4.3 使用本地python环境运行脚本

部署Python环境

Mac 系统自带Python 环境,环境支撑Python(2.7或<=3.6),我们更推荐使用 Python3

brew install python3

Airtest安装

pip install airtest

Poco安装

pip install pocoui  //请注意库的名称为 pocoui,不要填错

环境部署完成后,我们就能够脱离AirtestIDE,在不同的宿主机器和被测平台上运行脚本了。使用python命令行运行脚本

airtest run untitled.air --device ios:///手机设备号 --log log/
python -m airtest run untitled.air --device Android:///手机设备号 --log log/

这两个命令行的效果是相同的,我们用airtest运行了一个叫做 untitled.air 的脚本,传入了 --device 和 --log 两个参数,分别是我们的手机设备和log输出目录。

5. 生成报告

5.1 在IDE里点击生成报告按钮来生成报告

在运行脚本后,可以立即在log窗口中看到当前脚本执行成功还是失败,然而不能够看到更加详细直观的执行结果。在AirtestIDE中,可以点击上侧图标菜单的最后那个“查看报告”的按钮,快捷键为Ctrl+L,稍后片刻将会自动使用默认浏览器打开结果报告页面。如图所示:

12.png

另外,我们可以在AirtestIDE上右键点击脚本标题,选择“打开报告”,来打开log所在的文件夹。


13.png

5.2 使用命令行来生成报告

我们的脚本运行过程,与报告生成过程是独立的两个步骤,所以我们可以先用airtest run 指令来运行脚本:

# 用airtest运行了untitled.air这个脚本
# airtest run 后面接的是脚本文件的路径
airtest run untitled.air

注意: 如果airtest run 指令没有指定--log参数,将不保存log内容和截图,且命令行会提示do not save log;如果指定--log log/, 将把生成的log内容放到当前命令行的执行目录里;如果指定了--log +某个指定目录 参数,log内容与截图将会放在指定目录里。

然后,我们可以运行 airtest report 指令来生成一份HTML格式的报告:

# 最简单的命令行,log文件与脚本文件在同一文件夹里
# 运行以下指令,在当前目录生成一个log.html
airtest report untitled.air log.html

具体详情 可以参考 Airtest_generate-html-report

*注意:在有些浏览器上打开报告可能出现白屏现象,这是由于官方对有些浏览器没有适配全,建议用最新版本的chrome去打开。

6. 常见的问题

6.1 如何在模拟器安装应用

把xx.ipa 改成xx.zip,解压得到xx.app
打开模拟器, 在终端运行 xcrun simctl install booted xx.app
tips: 不可以把真机 app 包安装在iOS模拟器上,真机的app是基于arm的,而模拟器是运行在 X86 指令集上的,强行安装会导致闪退的问题。

6.2 如何进行iOS多机测试

 目前暂未开放iOS多机测试功能

6.3 Api 支持状况

iOS设备与Android设备有很大的不同,以下通用的 Airtest 的 API 在iOS上都是支持的:

start_app: OK
stop_app: OK
snapshot: OK
home: OK
touch: OK
swipe: OK
text: OK
wait: OK
exists: OK
find_all: OK
assert_exists: OK
assert_not_exists: OK
但是以下API是不支持的: - wake: 暂未支持 (考虑用home方法替代) - keyevent: 只支持home 事件 - clear_app: 暂未支持 - install: 暂未支持 - uninstall: 暂不支持

6.4 有些浏览器打开生成的报告空白

这是由于官方对有些浏览器没有适配全,建议用最新版本的chrome去打开。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,457评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,837评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,696评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,183评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,057评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,105评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,520评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,211评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,482评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,574评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,353评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,213评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,576评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,897评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,174评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,489评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,683评论 2 335

推荐阅读更多精彩内容