传送门
本系列原创博客的传送门:
Airtest实战(一):部署iOS-Tagent和设置代理
正文
本来想从第一个api开始一个一个学起,但是有可能会比较枯燥,就直接来写一个可以运行的脚本吧。
系列文章会先从iOS这边开始讲,iOS的硬性门槛会比较高,包括Mac设备、以及第一篇第二篇文章里提及的环境安装。
iOS讲完再开始讲Android设备操作。Android开放出的权限比较多,所以有更多的操作可以让大家选择,想想就是一件让人兴奋的事情。
Windows暂时没考虑,博主这边公司的业务在Windows上占比较小,但主要还是看大家是否对这块感兴趣。
好了,接下来开始精彩的表演,写下我们的第一篇《Hello World》!
先说下我们的操作目标:
1、打开一个app(不一定是当前屏幕上)
2、停留8秒
3、返回主屏幕
记录步骤如下:
1、将手机使用数据线连接上Mac
2、获得app的bundleid:
打开一个终端
输入 ideviceinstaller -l
会输出手机里安装的各类app的安装信息
包含 bundleid,bundleversion,bundledisplayname
我们根据 bundledisplayname 找到对应的 bundleid
我挑了我喜欢玩的《植物大战僵尸2》,它的bundleid是
com.popcap.ios.chs.PVZ2
3、打开Xcode,运行iOS-Tagent(如何连接手机,见系列文章的第一篇文章)
选择好手机
操作 Product -> test
看到日志输出:
这次没打算用 iproxy ,直接将里面的ip和端口号复制出来
4、打开Airtest IDE,新建纯python文件
使用访达,在文档目录里新建文件夹 Airtest,然后点击
设置保存的文件名称:
点击save,然后点击OK。
看到下面自动生成的代码:
# -*- encoding=utf8 -*-
__author__ = "luocheng"
from airtest.core.api import *
from airtest.cli.parser import cli_setup
if not cli_setup():
auto_setup(__file__, logdir=True, devices=[
"Android:///",
])
# script content
print("start...")
# generate html report
# from airtest.report.report import simple_report
# simple_report(__file__, logpath=True)
去查了下 auto_setup 这个通用函数的说明,修改一下日志的目录,和设备的连接
增加三行逻辑代码:
start_app("com.popcap.ios.chs.PVZ2") #用bundleid打开app,不管躲在哪里,都能找到它
sleep(8) # 等待8秒
home() #返回主屏幕
# -*- encoding=utf8 -*-
__author__ = "luocheng"
from airtest.core.api import *
from airtest.cli.parser import cli_setup
if not cli_setup():
auto_setup(__file__, logdir='./log', devices=[
"ios:///{ip}:{port}",
])
# script content
print("start zombies II")
#main logic is here
start_app("com.popcap.ios.chs.PVZ2") #use bundleid to open app
sleep(8) # wait for 8 seconds
home() #return to home screen
# generate html report
# from airtest.report.report import simple_report
# simple_report(__file__, logpath=True)
在IDE里连接设备,输入设备的uri,点击connect,如果 发现是黑的,就需要去解锁手机:
然后就能看到设备屏幕,就是。
在点击左上角的运行按钮。
然后就能顺利执行之前的目标了:
1、打开 《植物大战僵尸2》(不管app在哪儿,会自动切到那一屏)
2、等待8秒
3、回到主屏幕
OK,这就是我们的“Hello World”!