APP自动化工具

Airtest

1.关于airtest、poco、airtest ide的介绍,参考新人必读 - Airtest Project Docs

2.报告可以导出

① 在IDE一键导出AIRTEST报告

在IDE点击 查看报告 按钮生成HTML格式的报告之后,我们可以右键单击脚本名称,一键 导出报告 :

image-20211211145507056

② 命令行使用--EXPORT参数导出报告

如果是命令行运行脚本,运行脚本之后,我们可以在生成报告的命令中传入 --export 参数,这样就可以将 包含静态资源文件和图片文件的报告 导出到一个指定的文件夹内,之后直接将整个文件夹发送给别人观看即可。

如果生成报告时不传入 --export 参数,那么报告中的静态资源文件和图片文件将使用 绝对路径 来访问,此时将整个文件夹发给别人观看,别人也是无法正常观看的。

③ 生成报告时添加EXPORT_DIR参数

我们还可以在脚本添加生成报告的语句,添加export_dir参数,导出我们的测试报告:

h1 = LogToHtml(script_root=r'D:\test\report01.air', log_root=r"D:\test\report01.air\log", export_dir=r"D:\test\report02" ,logfile=r'D:\test\report01.air\log\log.txt', lang='en', plugins=None) h1.report()

 

3.aitest与appium在ios上的测试对比

Appium

1.依赖的组件
jdk,安卓sdk,可安装Android Studio,再安装sdk,包括了adb命令在里面

2.安装appium server
Releases · appium/appium-desktop · GitHub

默认配置,启动

3.安装appium inspector
Releases · appium/appium-inspector · GitHub

连接手机url改成/wd/hub

4.安装appium-python-client,python第三方库

airtest ide和appium同时使用

由于airtest ide自带环境,所以想用appium库的时候需要自己选择自己的python,但是还有个隐藏的东西要注意。adb也是自带的,这样由于appium使用的是你sdk的adb,而airtest使用的是自带的adb,这样就会导致连接设备冲突,所以我们还要对adb进行操作。
这里我采用的方法是对两个adb进行软连接。

5.进入airtest ide的adb目录,备份windows目录:

创建软链接到sdk的adb目录:

mklink /D "D:\Program Files\AirtestIDE\airtest\core\android\static\adb\windows" "E:\Android_studio_sdk\SDK\platform-tools"

这样airtest ide中airtest就能与appium同时使用了

6.windows连接ios设备

一、测试架构

手机端的WDA Runner(WebDriverAgent)类似于appium测试框架中的 UIAutomator Server,将从客户端接收到的控制命令转换为XCUITest 相关API操作,实现对应用界面的控制。WebDriverAgent应用需要通过xcode编译安装。
usbmuxd是苹果提供的一个服务,用于USB和TCP协议之间的转换,实现在没有网络的情况下也可以连接设备,iTunes和Xcode就使用到了这个服务,所以在环境安装中需要在windows上安装一个iTunes。
WDA的启动使用阿里开源的tidevice工具。
Language Bindings为不同语言的测试脚本,比如基于python语言的facebook-wda,基于go语言的gwda等。
 

二、安装

1.在windows上安装itunes,tidevice安装需要安装并启动Itunes

2.安装tidevices

pip3 install -U "tidevice[openssl]"

3.ios设备安装wda

wda:https://github.com/appium/WebDriverAgent.git

参考:Sonic安装部署之——iOS设备接入_打包wda.ipa-CSDN博客

参考:https://www.cnblogs.com/caijiaming/p/16444521.html

4.windows启动wda:

tidevice -u 00008110-000A20D014F9801E wdaproxy -B com.heygears.WebDriverAgentRunner.xctrunner --port 8100

5.windows连接ios:
 

{
  "platformName": "ios",
  "appium:deviceName": "iPhone 13 Pro",
  "appium:platformVersion": "16.3.1",
  "appium:udid": "00008110-000A20D014F9801E",
  "appium:bundleId": "com.heygears.blueprintgo",
  "appium:webDriverAgentUrl": "http://localhost:8100",
  "appium:automationName": "XCUITest",
  "appium:usePrebuiltWDA": "true",
  "appium:useXctestrunFile": "false",
  "appium:skipLogCapture": "true"
}

POCO

1.Poco是一款基于 UI控件搜索 的自动化框架,它本质上也是 python 第三方库

2.Poco的API文档:poco.pocofw module — poco 1.0 文档

3.四种定位方式:

3.1基本选择器:用节点的属性和属性值去定位元素

poco(text="密码")

多个属性:poco(name="com.netease.cloudmusic:id/portalTitle",text="每日推荐")

3.2相对选择器:通过元素之间的渲染层级关系进行选择,例如父子关系、兄弟关系、祖先后代关系等等

poco("android.widget.FrameLayout").child("android.view.View").child("android.view.View")[0].child("android.view.View").offspring("android.widget.ScrollView").child("android.view.View")

  • 子节点:child
  • 所有子节点:children
  • 子孙节点:offspring
  • 父节点:parent
  • 兄弟节点:sibling

3.3空间顺序选择器:利用索引顺序选中单个元素

name0 = poco("Content").child(type="Text")[0].get_name()
name1 = poco("Content").child(type="Text")[1].get_name()
name2 = poco("Content").child(type="Text")[2].get_name()

3.4正则表达式方式:

poco(textMatches=".*淘宝").click()

同理可以使用 nameMatches 来匹配控件的name属性:

利用基本选择器定位图中控件,定位脚本如下:

poco(name="com.netease.cloudmusic:id/portalTitle",text="每日推荐")
而换成正则表达式的匹配方式,则可以这么实现:

poco(nameMatches=".*portalTitle",textMatches=".*推荐")
 

通常不推荐使用相对选择器控件顺序选择器进行定位,因为复杂的层级关系加上空间索引顺序,很容易出现运行效率差,或者因为索引值变化而导致出现找不到控件的问题。

非常推荐多使用基本选择器正则匹配表达式来定位控件。

4.pocounit

PocoUnit是一个提供了完善设施的专门为游戏和应用设计的单元测试框架,用法与python标准库 unittest 完全兼容

通过 test result player可以回放过程

参考Play with unittest framework — poco 1.0 documentation

Sonic

一.关于Sonic

Sonic,一站式开源分布式集群云真机测试平台,致力服务于中小企业的客户端UI测试。

官网:https://Sonic | Sonic - 开源云真机平台me
github: Sonic Cloud Org · GitHub

二.安装部署,参考前后端部署 | Sonic - 开源云真机平台

1.准备

1.1 Linux服务器,可以是centos7,安装docker(yum -y install docker)

1.2 Mysql数据库

2.创建Mysql数据库

3.安装docker-compose

3.1执行:sudo curl -SL https://github.com/docker/compose/releases/download/v2.17.2/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose

3.2添加可执行权限:sudo chmod +x /usr/local/bin/docker-compose

3.3测试安装结果:docker-compose --version

4.下载sonic:Releases · SonicCloudOrg/sonic-server · GitHub

5.解压zip压缩包,上传到服务器/home目录,修改.env文件

6.在sonic目录下执行:docker-compose up -d

7.登录sonic获取agent key

8.部署agent,参考Agent 端部署 | Sonic - 开源云真机平台

9.如果远程连接设备一直展示不出来设备页面,可能是一些插件安装失败,可通过agent日志查看,此时可手动安装

10.sonic的使用教程,参考官网快速上手 | Sonic - 开源云真机平台

11.报告:

只能在sonic平台中查看,第三方可以展示这个地址跳转查看报告

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值