自动化测试工具 AirTest 的使用方法与简介

目录

        前言:

  Airtest简介

  1.基于图像识别的Airtest框架

  2.基于UI识别的Poco框架

  Airtest环境搭建

  Airtest布局

  Airtest使用步骤

  第一步:连接移动设备

  第二步:创建一个.air文件(也就是我们的测试脚本)

  第三步:用Airtest辅助窗口编辑第一个测试脚本

  第四步:引入Poco

  Airtest常用模拟按键(移动设备&PC)


      前言:

        Airtest是一款国产的UI自动化测试工具,它可以自动化地模拟用户操作来测试各种类型的应用程序,如Web应用、移动应用和桌面应用等。Airtest以Python为基础,提供了像Selenium、Appium、WinAppDriver、PyAutoGUI、Image 模块之类的工具来满足各种自动化测试需求。

  Airtest简介

  AirtestIDE是一款适用于游戏和应用程序的跨平台UI测试自动化集成开发环境(IDE),为移动应用程序开发人员和测试人员提供了广泛的工具,可在便利且易于使用的环境中编写全自动测试脚本。

  相比较其他传统的自动化测试工具(如Appium,RF等),AirtestIDE主要具有两大优势:

  1.基于图像识别的Airtest框架

  Airtest是一个基于图片识别的跨平台的自动化测试框架,同时它最强大的地方在于它几乎兼容所有Android移动应用程序和Windows游戏等。

  2.基于UI识别的Poco框架

  Poco是一个跨引擎UI自动化框架,并且提供了独立于引擎的强大API,它可以在应用程序运行时自动检索其中的UI元素层次结构。Poco支持各种主流游戏引擎,例如Unity3D,Cocos2dx和本机Android应用程序等。

  Airtest环境搭建

  Airtest是一款基于Python环境的测试工具。So,这里我们需要先安装Python环境。

  下载&安装Airtest,地址:https://airtest.netease.com/

  下载完成后,根据提示狂点Next即可。

  安装完成后,打开就是下图的样子了。

  Airtest布局

  Airtest工具主要分为四大块。

  1.Airtest辅助窗口(基于图片识别)

  2.Poco辅助窗口(基于应用程序UI结构层次)

  3.脚本编辑和日志查看窗口

  4.设备窗口(可连接Android/iOS真机或模拟器以及windows窗口等)

  Airtest使用步骤

  第一步:连接移动设备

  1.将手机插在电脑上,看到如下界面。

  2.点击【connect】。

  第二步:创建一个.air文件(也就是我们的测试脚本)

  如图所示,点击【New Project】(快捷键【Ctrl+N】), 接下来选择一个存放脚本的路径,点击【保存】就ok啦。

  然后我们就能看到生成了一个脚本文件,并且已经有了一段简短的初始化代码。

  第三步:用Airtest辅助窗口编辑第一个测试脚本

  1.使用点击事件打开App

  点击Airtest辅助窗中的【touch】,这时可以用鼠标在右侧设备窗中拖动框住想要点击的某一块区域,即可自动生成如下图第三步中的一行代码。

  2.尝试运行一下。

  3.增加等待

  Airtest跟其他自动化框架一样,都有等待方法。我们点击左侧【wait】,然后在右侧设备框住想要等待的区域。

  同时我们可以为wait方法增加超时时间(timeout=60)。

  4.以下附上相关代码

# -*- encoding=utf8 -*-
__author__ = "Arron"
from airtest.core.api import *
from poco.drivers.android.uiautomation import AndroidUiautomationPoco
poco = AndroidUiautomationPoco(use_airtest_input=True, screenshot_each_action=False)
auto_setup(__file__)
touch(Template(r"tpl1592533218581.png", record_pos=(0.182, -0.098), resolution=(1080, 1920)))
wait(Template(r"tpl1592533249665.png", record_pos=(-0.384, 0.806), resolution=(1080, 1920)))
touch(Template(r"tpl1592536751278.png", record_pos=(-0.419, -0.758), resolution=(1080, 1920)))
text("王者荣耀")
touch(Template(r"tpl1592536769961.png", record_pos=(0.437, -0.757), resolution=(1080, 1920)))

  第四步:引入Poco

  1.选择应用程序语言。

  2.选择语言后将有一个弹窗,点击【Yes】即可,此时会自动生成两行引入Poco的代码。

  3.查看目标元素属性

  点击Poco辅助窗口中的锁型按钮,点击待查看的元素,我们可以在Log查看窗口中看到当前元素的所有属性,Poco可以直接用元素的name属性进行定位并作相应的操作。

  4.Poco录制脚本

  点击Poco辅助窗口中的摄像机按钮,之后在右侧设备窗口中所做的任何操作都将自动生成相应的代码。如下图,开始录制后,点击设备中的输入框。

  由于Poco录制时不能直接输入文字内容,所以录制时可以先点击某个文本框,然后将生成的代码中的“click”改为“set_text()"。

  以下是代码示例:

# -*- encoding=utf8 -*-
__author__ = "Arron"
from airtest.core.api import *
from poco.drivers.android.uiautomation import AndroidUiautomationPoco
poco = AndroidUiautomationPoco(use_airtest_input=True, screenshot_each_action=False)
auto_setup(__file__)
touch(Template(r"tpl1592533218581.png", record_pos=(0.182, -0.098), resolution=(1080, 1920)))
wait(Template(r"tpl1592533249665.png", record_pos=(-0.384, 0.806), resolution=(1080, 1920)))
poco("com.tencent.android.qqdownloader:id/awy").click()
poco("com.tencent.android.qqdownloader:id/yv").set_text('王者荣耀')
poco("com.tencent.android.qqdownloader:id/a5t").click()
poco("com.tencent.android.qqdownloader:id/dv").child("android.widget.RelativeLayout").offspring("com.tencent.android.qqdownloader:id/alh").offspring("android.widget.ListView").offspring("android.widget.TextView").click()

  Airtest常用模拟按键(移动设备&PC)

  方法关键字: keyevent()

  示例:keyevent(‘KEYCODE_HOME’) # 返回首页

  在Pycharm中运行Airtest脚本

  要在Pycharm中运行airtest脚本,我们首先需要pip安装airtest和poco库。

  可以直接在pycharm中安装,也可以用CMD窗口安装:

  1.pip install airtest

  pip install pocoui

  2.在pycharm中打开airtest录制好脚本文件(如果脚本中有airtest辅助窗口的图片,则需要将文件夹后缀的.air删除,再用pycharm打开该文件夹)。

  3.最后,右键→运行,就能在pycharm中运行airtest脚本了。

 作为一位过来人也是希望大家少走一些弯路,希望能对你带来帮助。(WEB自动化测试、app自动化测试、接口自动化测试、持续集成、自动化测试开发、大厂面试真题、简历模板等等),相信能使你更好的进步! 

留【自动化测试】即可【自动化测试交流】:574737577(备注ccc)icon-default.png?t=N5F7http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=hyGITtX0cD6EN96WzR_d5b1qRSZ-Dpyy&authKey=76TmCzaAQ%2BOwLn6umFFZeVxKheSwyaUVwymd%2FRvdARY6cvCSCgZ1qOSe3w%2Bsh61f&noverify=0&group_code=574737577

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/31344.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【MySQL数据库 | 第二十篇】explain执行计划

目录 前言: explain: 语法: 总结: 前言: 上一篇我们介绍了从时间角度分析MySQL语句执行效率的三大工具:SQL执行频率,慢日志查询,profile。但是这三个方法也只是在时间角度粗略的…

如何在 XMind 中绘制流程图

XMind 是专业强大的思维导图软件,由于其结构没有任何限制,很多朋友特别喜欢用它来绘制流程图。禁不住大家的多次询问,今天 XMind 酱就将这简单的流程图绘图方法分享给大家。 在 XMind 中,绘制流程图的主角是「自由主题」和「联系」。它们可以打破思维导图的限制,让你自由…

Type-C PD显示器方案简介

方案概述 LDR6020 Type-C PD显示器方案可以给显示器提供一个全功能C口,支持手机,电脑,游戏主机等一线投屏功能,同时支持PD快充输出。LDR6020内置了 USB Power Delivery 控制器和 PD BMC PHY 收发器,支持PD2.0/3.0等快…

Java多线程与并发

1、JDK版本的选择 选择JDK8、JDK11进行讲解的原因:Oracle长期支持 2、进程和线程的区别 进程和线程的由来 3、进程与线程的区别 进程是资源分配的最小单位,线程是cpu调度的最小单位. 所有与进程相关的资源,都被记录在PCB(进程控制块)中。进程是抢占…

数学建模竞赛国赛入场券之攻略

数学建模竞赛国赛入场券之攻略 1.团队契合度 在3天的准备时间中,如果是临时组建的草台班子光处理分歧可能就已经耗掉一半时间,最好在赛前就完成磨合,像一起做模拟题练练手之类,甲准备图论、乙准备优化方法,然后再一块…

存储笔记8 ipsan

Module Objectives IP SAN的组件 IP SAN的好处 描述SAN中的IP融合及其影响 描述的基本架构 –iSCSI –FCIP –FCoE 讨论IP SAN技术的市场驱动因素 列出IP SAN技术 列出iSCSI的组件和连接选项 描述iSCSI体系结构和拓扑结构 解释iSNS操作 描述FCIP的体系结构 IP SAN互联…

Redis持久化机制与Redis事务

一、Redis 持久化机制 Redis 是个基于内存的数据库。那服务一旦宕机,内存中数据必将全部丢失。所以丢失数据的恢复对于 Redis 是十分重要的,我们首先想到是可以从数据库中恢复,但是在由 Redis 宕机时(说明相关工作正在运行&#…

UDS系列-31服务(Routine Control)

诊断协议那些事儿 诊断协议那些事儿专栏系列文章,本文介绍例程控制服务RoutineControl,该服务的目的是Client端使用Routine Control服务来执行定义的步骤序列并获取特定序列的相关结果。这个服务经常在EOL、Bootloader中使用,比如,检查刷写条件是否满足、擦除内存、覆盖正…

Maven如何创建Maven web项目

1、创建一个新的模块: 1.1 使用骨架点一下,这里 1.2 找到maven-archetype-webapp项目,选中点击,一路next就行。 1.3 删除不必要的maven配置:(这里我不需要,针对自己情况而定) 可以从name这里开…

pr视频叠加,即原视频右上角添加另外一个视频方法,以及pr导出视频步骤

一、pr视频叠加,即原视频右上角添加另外一个视频方法 在使用pr制作视频时,我们希望在原视频的左上角或右上角同步播放另外一个视频,如下图所示: 具体方法为: 1、导入原视频,第一个放在v1位置,第…

案例 | 标杆引领!人大金仓智绘数字金融

随着中央数字经济政策推进金融业数字化建设,数字金融已初见成效,但尚存在信息安全缺乏保障、转型覆盖不全面等问题。 为实现金融行业全面数字化转型升级,作为数据库领域国家队,人大金仓紧跟国家战略,自主研发的系列数据…

采用SqlSugar的DBFirst相关功能创建数据库表对应的实体类

.NET Core官方教程中推荐使用的EF Core数据库ORM框架虽然能用,但是用起来并不是太方便(或者是不习惯,之前用的最多的还是linq)。之前下载的开源博客项目中使用的SqlSugar,后者是由果糖大数据科技团队维护和更新 &#…

【网络1】协议及相关命令

文章目录 1.局域网:CSMA/CD2.互联网:ARP,DHCP,NAT3.TCP协议:telnet,tcpdump,syn/accept队列4.HTTPS协议:摘要(sha、md5、crc)。win对文件MD5校验:…

C# NX二次开发:通过UFUN函数获取刀具描述,目录号,库号等信息

今天要将的是,在NX中对CAM模块进行二次开发的时候,往往需要获取一些关于刀具使用的信息,这些信息用NXOPEN的的方法录制也可以录制出来,但是录制出来的代码,往往都是一种刀具类型会出现一个Builder。这样在你不知道有多…

微服务开发系列 第十一篇:XXL-JOB

总概 A、技术栈 开发语言:Java 1.8数据库:MySQL、Redis、MongoDB、Elasticsearch微服务框架:Spring Cloud Alibaba微服务网关:Spring Cloud Gateway服务注册和配置中心:Nacos分布式事务:Seata链路追踪框架…

【AI】金融FinGPT模型

金融FinGPT模型开源,对标BloombergGPT,训练参数可从61.7亿减少为367万,可预测股价 继Bloomberg提出了500亿参数的BloombergGPT,GPT在金融领域的应用受到了广泛关注,但BloombergGPT是一个非开源的模型,而且…

RWA 成下一轮加密大叙事,PoseiSwap 的价值正在凸显

PoseiSwap是Nautilus Chain上的首个DEX,在Nautilus Chain模块化开发的支持下,PoseiSwap能够以更具延展性的方式来构建应用,并能够为交易者提供极佳的交易体验。基于Nautilus Chain支持下的Zk-Rollup方案,PoseiSwap构建了基于零知识…

cuda pyinstall cvs 使用记录

1.pip 换源 pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/2.安装匹配cuda的pytorch 官网:PyTorch pip3 install torch torchvision torchaudio查看能否使用cuda: import torch torch.cuda.is_available()获得以下反馈: 意思…

设计模式之原型模式笔记

设计模式之原型模式笔记 说明Prototype(原型)目录UML原型模式示例类图RealizeType类(浅克隆)测试类 原型模式案例奖状类测试类 扩展(深克隆)学生类奖状类测试类 说明 记录下学习设计模式-原型模式的写法。 Prototype(原型) 意图:用原型实例指定创建对象的种类,并…

如何监测和优化阿里云服务器的性能?有哪些性能分析工具和指标?

如何监测和优化阿里云服务器的性能?有哪些性能分析工具和指标?   阿里云服务器性能监测与优化是云计算服务中一个非常重要的环节。为了确保服务器稳定、高效地运行,我们需要对其性能进行监测,并在监测的基础上进行优化。本文将为…