全国旗舰校区

不同学习城市 同样授课品质

北京

深圳

上海

广州

郑州

大连

武汉

成都

西安

杭州

青岛

重庆

长沙

哈尔滨

南京

太原

沈阳

合肥

贵阳

济南

下一个校区
就在你家门口
+
当前位置:首页  >  技术干货

Airtest录制、运行移动端应用脚本

发布时间:2022-06-02 18:07:00
发布人:qyf

  Airtest是由网易游戏推出的UI自动化测试解决方案,是一个跨平台的、 基于图像识别 的UI自动化测试框架,适用于游戏和App,支持平台有Windows、Android和iOS。

  并且提供了基于UI控件识别的Poco框架,目前也支持Android原生、iOS原生、Unity3D、cocos2dx、UE4和Egret等平台。

  为了让测试人员更好上手,网易还贴心地提供了AirtestIDE工具,内置了Airtest和Poco的相关插件功能,能够使用它快速简单地编写 Airtest 和 Poco 代码。

  如果你是一个自动化新手同学,建议借助AirtestIDE编写/运行自动化脚本;但是当你能够熟练使用Airtest和Poco框架之后,那就使用python语言自由发会编写自动化脚本吧。

  Allen老师今天就带着大家来做一个简单的案例,带大家一起体验airtest带给我自动化测试的方便体验。

  一、案例说明

  启动手机淘宝app

  打开淘宝首页的今日爆款

  选择爆款首页中的第一个商品

  商品页复制商品的淘口令

  关闭淘宝app

  启动手机淘特app

  等待弹出淘口令

  点击商品链接

  关闭淘特app

  二、使用airtestide录制、运行脚本

  1、启动airtest并创建airtest项目

图片56

  2、连接手机设备

  若连接android手机设备,需要本地安装adb软件,手机中开启开发者选项、usb调试,并连接手机到pc电脑。

  在airtest的设备窗口刷新adb,则会显示手机设备,点击connect按钮。

图片57

  3、开发业务脚本

  我们采用airtest的poco框架,识别页面app的页面元素并进行定位、操作。

图片58

  Poco辅助助手中定位到app的元素,直接双击该元素即可生成poco语法。

  定义poco对象:poco = AndroidUiautomationPoco(force_restart=False)

  如点击商品分享按钮:poco("com.taobao.taobao:id/uik_public_menu_action_icon").click()

  在代码编写中还会用到一些常用的语法:

  连接手机设备:android_device = connect_device('android://127.0.0.1:5037/28240ad5')

  其中28240ad5为设备序列号,可以通过adb devices获取

  启动app应用:start_app('com.taobao.taobao')

  包名可以通过:adb shell dumpsys window | findstr mCurrentFocus获取

  关闭app应用:stop_app('com.taobao.taobao')

  强制等待:sleep(10.0)

  点击设备上固定的坐标:touch((500.1000))

  根据页面文本点击元素:poco(text="今日爆款").click()

  下面是完整的实现上述业务的脚本:

  # -*- encoding=utf8 -*-

  __author__ = "allen"

  from airtest.core.api import *

  from airtest.cli.parser import cli_setup

  from poco.drivers.android.uiautomation import AndroidUiautomationPoco

  auto_setup(__file__, logdir=True, devices=["android://127.0.0.1:5037/28240ad5?cap_method=MINICAP&&ori_method=MINICAPORI&&touch_method=MINITOUCH",])

  android_device = connect_device('android://127.0.0.1:5037/28240ad5')

  # script content

  print("start...")

  start_app('com.taobao.taobao')

  #后续的元素定位都是基于这个组件

  # poco = AndroidUiautomationPoco(use_airtest_input=True, screenshot_each_action=False)

  poco = AndroidUiautomationPoco(force_restart=False)

  poco(text="今日爆款").click()

  # 商品是变化的

  touch((500.1000))

  sleep(10.0)

  poco("com.taobao.taobao:id/uik_public_menu_action_icon").click()

  poco("android.widget.FrameLayout").offspring("com.taobao.taobao:id/uik_fl_container_share").child("com.taobao.taobao:id/uik_public_menu_content_1")[1].child("android.widget.LinearLayout").child("android.widget.FrameLayout").child("android.widget.FrameLayout")[1].child("android.widget.FrameLayout").click()

  # 关闭淘宝进,打开淘特

  stop_app('com.taobao.taobao')

  start_app('com.taobao.litetao')

  # 等待口令打开

  sleep(10.0)

  # 点击查看详情

  poco("com.taobao.litetao:id/tpd_item_action").click()

  sleep(10.0)

  stop_app('com.taobao.litetao')

  print("end...")

  3、保存脚本

  在airtestide中文件菜单,点击保存文件到本地磁盘目录。

图片59

  4、运行脚本

  点击开始运行按钮,既可以启动运行。

图片60

  运行结果见视频:《airtest脚本演示.mp4》

  5、查看运行报告

  在airtestide中运行菜单下,点击打开运行目录,选择log目录,即可展示报告。

图片61

  三、使用IDE的运行脚本命令

  我们使用AirtestIDE自带的环境跑脚本时,在log查看窗的顶部会刷出运行当前脚本的一条命令,我们可以直接复制该命令去命令行终端运行:

图片62

  直接复制此条命令运行脚本,实际上我们还是利用了AirtestIDE自带的环境跑脚本,而无需额外部署本地Python环境 。

  切换到airtest安装目录下,启动cmd窗口,运行上面的命令(复制的),结果与再AirtestIDE中运行效果一致。

图片63

  四、使用python环境运行air脚本

  如果直接使用本地python环境进行,要求本地环境在python3以上,python3.9以内,本文采用python3.8环境。

图片64

  然后就在这里Python环境里面,像安装其它Python第三方库一样,安装我们的自动化测试框架。

  # 安装Airtest框架

  pip3 install airtest

  # 安装Poco框架;编写了Poco语句就需要安装

  pip3 install pocoui

  # 安装airtest-selenium框架;编写了airtest-selenium语句就需要安装

  pip3 install airtest-selenium

  如果有出现报错或者超时,要确定python版本或者更换python镜像源,建议使用清华源或者其它国内源安装.

  pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple airtest

  成功安装之后,我们可以使用pip list命令,查看我们的安装情况及框架版本信息:

图片65

  作者尝试上面的三个库的版本是可用的,如果直接使用上述安装不可用,可能是更新的新版本的兼容性问题,可以尝试使用指定版本安装,切记poco与pocoui,两者会产生冲突。

  pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple airtest==1.1.11

  配置好环境之后,切换到保存的air脚本目录下,找到taobao.py文件,连接收手机设备,执行该文件即可。

图片66

  执行结果与上面两种执行效果一致。

  更多关于软件测试培训的问题,欢迎咨询千锋教育在线名师,如果想要了解我们的师资、课程、项目实操的话可以点击咨询课程顾问,获取试听资格来试听我们的课程,在线零距离接触千锋教育大咖名师,让你轻松从入门到精通。

相关文章

抖音小店资料审核未通过什么原因呢

抖音小店资料审核未通过什么原因呢

2023-10-08
企业抖音小店保证金是多少

企业抖音小店保证金是多少

2023-10-08
抖音怎么弄抖音小店店铺

抖音怎么弄抖音小店店铺

2023-10-08
抖音小店怎么设置新人券领不到

抖音小店怎么设置新人券领不到

2023-10-08

最新文章

上海物联网培训一般费用多少

上海物联网培训一般费用多少

2023-09-12
北京物联网培训费用大概多少

北京物联网培训费用大概多少

2023-09-12
北京物联网培训需要费用高不高

北京物联网培训需要费用高不高

2023-09-12
上海效果好的物联网培训费用高吗

上海效果好的物联网培训费用高吗

2023-09-12
在线咨询 免费试学 教程领取