1、前言
airtest官网:Airtest Project
视频讲解:【网易Airtest第7课】如何编写并运行你的第一个Airtest脚本_哔哩哔哩_bilibili
2、Android自动化小妙招
1)如果机器锁屏,唤醒机器
poco.device.wake()
2)启动APP
常用的启用APP方式
方式一:指定名称
poco("日历").click()
方式二:指定图片
touch(Template(r"tpl123456.png", record_pos=(0.359, 0.969), resolution=(1080, 2244)))
方式三:使用airtest自带函数:start_app("app包名")/stop_app(appName)
# 打开网易云音乐
start_app("com.netease.cloudmusic")
3)判断元素是否存在
if poco("name").exists():
poco("name").set_text(serId)
else:
poco("choose_server").click()
poco("edit_name").set_text(serId)
3、iOS自动化小妙招
1)机器连接
tidevice脱离mac搞iOS自动化
脱离Mac搞iOS自动化,tidevice工具教你轻松实现!
iOS真机安装WebDriverAgent
iOS真机安装WebDriverAgent图文详解_坚韧顽强的搬砖小伙的博客-CSDN博客_ios安装webdriveragent
2)脚本编写
文本输入:选中文本输入框click()后,text("文本内容")
#先点击输入框,再输入内容
poco("SecureTextField").click()
text("autotest1")
4、Jenkins持续集成
在启动时希望自定义参数:
1)自定义python文件
from airtest.cli.runner import AirtestCase, run_script
from airtest.cli.parser import runner_parser
class CustomAirtestCase(AirtestCase):
def setUp(self):
# 在air脚本运行之前获取这个自定义的参数
if self.args.serverIdCur:
self.scope['serverIdCur']=self.args.serverIdCur
if self.args.appNameCur:
self.scope['appNameCur'] = self.args.appNameCur
if __name__ == '__main__':
ap = runner_parser()
# 添加自定义的命令行参数
ap.add_argument('-r', "--serverIdCur", help="请输入服务器ID")
ap.add_argument('-app', "--appNameCur", help="请输入APP名")
args = ap.parse_args()
run_script(args, CustomAirtestCase)
2)在.air文件中接收变量
serverId = serverIdCur
appName = appNameCur
3)Jenkins流水线命令
node {
stage('UI测试') {
try {
sh "python start.py All.air --device Android:///12345 --log ./log --serverIdCur $serverId --appNameCur $appName"
} catch (err) {
echo "Caught: ${err}"
}
}
stage('上传结果') {
sh "airtest report ./All.air --log_root ./log --export ./HTML"
archiveArtifacts artifacts: 'HTML/**/*', followSymlinks: false
}
}