基于AirTest+Python的ios自动化测试demo(微信朋友圈无限点赞)

简介: AirTest相比Appuim有个好处就是可以对GUI图片进行捕捉和最新版本支持WebView(目前Appuim不支持iOS12的WebView进行Xpath抓取)

AirTest相比Appuim有个好处就是可以对GUI图片进行捕捉和最新版本支持WebView(目前Appuim不支持iOS12的WebView进行Xpath抓取) AirTest环境搭建可参考以下链接:airtest.netease.com/docs/docs_A…

环境配置: libimobiledevice: stable 1.2.0 (bottled), HEAD Python 3.7 WebDriverAgent 用AirTest提供的[github.com/AirtestProj… ] Xcode10.1 AirtestIDE

启动AirTest

  1. 运行WebDriverAgent【运行之前先用Xcode打开WebDriverAgent.xcodeproj,选择开发者账号来Build正常】 可以采用终端方式来运行:
xcodebuild build-for-testing test-without-building -project [WebDriverAgent.xcodeproj目录地址] -scheme WebDriverAgentRunner -destination id=[设备UDID] test
  1. 事先用$ brew install libimobiledevice 安装 libimobiledevice 每次在WDA启动后进行端口映射
$ iproxy 8100 8100

页面上输入http://127.0.0.1:8100/status 有Json格式返回,就代表连接成功 3. 然后打开AirtestIDE对iOS设备进行连接


捕捉参数录制脚本

Airtest提供了两个插件库让我们方便进行自动化测试: 1:AirTest库,主要通过对GUI图片进行定位来操作实现自动化 2:POCO库,类似appuim,通过形成UI树Xpath,对多层次控件进行操作来实现自动化

因为我们自动化测试主要是针对多型号设备进行测试,每台设备的UI可能因为适配状况,会有不一样,会导致AirTest的成功率不稳定,所以,理论上优先使用POCO进行元素定位,其次才是AirTest进行定位

AirTest捕捉

  1. AirTest初始化:
from airtest.core.api import *
  1. 手动捕捉 在AirtestIDE的Airtest录制辅助窗内,包含有三种类型的录制按钮:
操作类型 辅助类型 断言类型
touch text assert_exists
swipe keyevent assert_not_exists
wait sleep assert_equal
exist assert_not_equal
snapshot



点击 touch/swipe/wait/exists/assert_exists/assert_not_exists 按钮后,在设备画面上按下鼠标左键进行截图框选,抬起鼠标左键完成框选。对应操作语句会自动插入编辑器脚本中。点击操作



等待操作

assert_exists(图片, "等待成功登陆出现")
  1. 自动捕捉 点击AirTest辅助窗右上角的录制按钮,然后在设备视窗进行操作,就能自动录制操作脚本,但因为这种方式错误性比较高,建议少用,主要是通过手动捕捉对应的图片再进行之后的操作

POCO捕捉

  1. 1.POCO初始化
from poco.drivers.ios import iosPoco
poco = iosPoco()
  1. 2.手动捕捉


  2. 点击POCO辅助窗右上方第一个按钮【POCO Pause】,对窗口进行冻结,然后在Log显示元素属性,并且通过点击右键【UI-Path Code】获取对应的UI-path,然后再进行操作,如:
poco("iconUser3").wait(3).click()
poco("iconLogin").click()
transBtn = poco("iconLogin")
poco.wait_for_all([transBtn])
transBtn.click()
#向上滑动一个屏幕的高度
screenWidth,screenHeigth = poco.get_screen_size()
swipe((screenWidth*0.5,screenHeigth*0.9),vector=[0,-0.5])

POCO辅助窗右上方第二个按钮【POCO Inspector】是在不冻结窗口的情况下进行捕捉 3. 自动捕捉 POCO辅助窗右上方第三个按钮【POCO Auto Recording】是进行自动捕捉录制,任何操作都录制成脚本

微信朋友圈无限点赞

from airtest.core.api import *
from poco.drivers.ios import iosPoco
poco = iosPoco()
auto_setup(__file__)
assert_exists(Template(file:///Users/cengsijian/Desktop/AirTest/AirTestWeixinTest.air/tpl1545103410488.png, record_pos=(0.119, -0.708), resolution=(750, 1334)), "进入微信测试")
poco("微信").click()
assert_exists(Template(file:///Users/cengsijian/Desktop/AirTest/AirTestWeixinTest.air/tpl1545103527211.png, record_pos=(0.125, 0.815), resolution=(750, 1334)), "请填写测试点")
poco("发现").click()
poco("朋友圈").click()
screenWidth,screenHeigth = poco.get_screen_size()
while True:
    #查找评论按钮
    tableList = poco("Table").child('Cell').offspring('评论')
    #点击评论按钮
    for child in tableList:
        childX,childY = child.get_position()
        print(childX)
        print(childY)
        if (childY>=0.1 and childY<1.0):
            child.click()
            if poco("赞").exists():
                touch(Template(file:///Users/cengsijian/Desktop/AirTest/AirTestWeixinTest.air/tpl1545118102228.png, record_pos=(0.057, 0.385), resolution=(750, 1334)))
                # poco("赞").click()
 #向上滑动一个屏幕的高度
    swipe((screenWidth*0.5,screenHeigth*0.9),vector=[0,-0.8],duration=2.5)
    #等滚动动画结束
    sleep(5)




目录
相关文章
|
8天前
|
Python
使用 Python 合并微信与支付宝账单,生成财务报告
这篇博客介绍了如何使用 Python 脚本合并微信与支付宝账单数据,生成自动化财务报告。通过 pandas 库,学习如何清洗、合并和分析账单数据,以及如何生成 Markdown 格式的财务报告。
|
12天前
|
存储 JSON API
Python测试淘宝店铺所有商品接口的详细指南
本文详细介绍如何使用Python测试淘宝店铺商品接口,涵盖环境搭建、API接入、签名生成、请求发送、数据解析与存储、异常处理等步骤。通过具体代码示例,帮助开发者轻松获取和分析淘宝店铺商品数据,适用于电商运营、市场分析等场景。遵守法规、注意调用频率限制及数据安全,确保应用的稳定性和合法性。
|
12天前
|
机器学习/深度学习 设计模式 测试技术
Python 高级编程与实战:构建自动化测试框架
本文深入探讨了Python中的自动化测试框架,包括unittest、pytest和nose2,并通过实战项目帮助读者掌握这些技术。文中详细介绍了各框架的基本用法和示例代码,助力开发者快速验证代码正确性,减少手动测试工作量。学习资源推荐包括Python官方文档及Real Python等网站。
|
21天前
|
存储 数据采集 数据格式
Python自动化Office文档处理全攻略
本文介绍如何使用Python自动化处理Word、Excel和PDF文档,提升办公效率。通过安装`python-docx`、`openpyxl`、`pandas`、`PyPDF2`和`pdfplumber`等库,可以轻松实现读取、修改、创建和批量处理这些文档。具体包括:自动化处理Word文档(如读取、修改内容、调整样式),Excel文档(如读取、清洗、汇总数据),以及PDF文档(如提取文本和表格数据)。结合代码示例和实战案例,帮助你掌握高效办公技巧,减少手动操作的错误率。
48 1
|
1月前
|
JavaScript 前端开发 Android开发
【03】仿站技术之python技术,看完学会再也不用去购买收费工具了-修改整体页面做好安卓下载发给客户-并且开始提交网站公安备案-作为APP下载落地页文娱产品一定要备案-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
【03】仿站技术之python技术,看完学会再也不用去购买收费工具了-修改整体页面做好安卓下载发给客户-并且开始提交网站公安备案-作为APP下载落地页文娱产品一定要备案-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
78 13
【03】仿站技术之python技术,看完学会再也不用去购买收费工具了-修改整体页面做好安卓下载发给客户-并且开始提交网站公安备案-作为APP下载落地页文娱产品一定要备案-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
|
1月前
|
数据采集 JavaScript Android开发
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
58 7
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
|
1月前
|
JavaScript 搜索推荐 Android开发
【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
69 8
【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
|
1月前
|
人工智能 小程序 程序员
【视频测评 DEMO 参考】VSCode 神级 AI 插件通义灵码:完全免费+实战教程+微信贪吃蛇小程序
VSCode 神级 AI 插件通义灵码:完全免费+实战教程+微信贪吃蛇小程序
293 8
|
2月前
|
机器学习/深度学习 运维 数据可视化
Python时间序列分析:使用TSFresh进行自动化特征提取
TSFresh 是一个专门用于时间序列数据特征自动提取的框架,支持分类、回归和异常检测等机器学习任务。它通过自动化特征工程流程,处理数百个统计特征(如均值、方差、自相关性等),并通过假设检验筛选显著特征,提升分析效率。TSFresh 支持单变量和多变量时间序列数据,能够与 scikit-learn 等库无缝集成,适用于大规模时间序列数据的特征提取与模型训练。其工作流程包括数据格式转换、特征提取和选择,并提供可视化工具帮助理解特征分布及与目标变量的关系。
114 16
Python时间序列分析:使用TSFresh进行自动化特征提取
|
2月前
|
存储 安全 数据可视化
用Python实现简单的任务自动化
本文介绍如何使用Python实现任务自动化,提高效率和准确性。通过三个实用案例展示:1. 使用`smtplib`和`schedule`库自动发送邮件提醒;2. 利用`shutil`和`os`库自动备份文件;3. 借助`requests`库自动下载网页内容。每个案例包含详细代码和解释,并附带注意事项。掌握这些技能有助于个人和企业优化流程、节约成本。
92 3