Airtest自动化测试工具

一开始知道Airtest大概是在年初的时候,当时,看了一下官方的文档,大概是类似Sikuli的一个工具,主要用来做游戏自动化的,通过截图的方式用来解决游戏自动化测试的难题。最近,移动端测试的同事尝试用它的poco库来做自动化,看样子还不错,所以,这里推荐给各位同学。

官方网站
Airtest Project

### Airtest IDE

这是Airtest测试工具标配的IDE,目的是方便我们用于录制/编写自动化测试。

你可以使用账号登录或直接点击左下角“skip”按钮跳过。

启动Android模拟器或者用PC连接一台手机。通过adb命令检查移动设备。

> adb devices
List of devices attached
emulator-5554   device

当我在Android模拟器中操作时,Airtest IDE右侧的界面是同步的,这一点比很多移动测试工具做的优秀,例如,appium desktop必须手动刷新才能获取最新的界面。


#### Airtest

Airtest IDE支持Airtest脚本的录制,用法非常简单,你甚至可以先不用看它的API,通过录制来熟悉它的API。

右侧Airtest窗口以及API,点击右上角录制按钮,然后,就可以在映射的Android模拟器界面上点点点了。

以下是我点点点,生成的脚本。

过程非常简单,点击桌面上的计算器图标,打开编辑器输入1+1= ,然后,点击工具栏上的 “运行”按钮,就可以回放了。

这种脚本更适合游戏,因为游戏界面很难定位,图片识别(截图)的方式确实是不错的选择。


###Poco

Poco是另外一种形式的脚本,它与一般的自动化工具一样,通过元素本身的属性来定位元素,并且它同样支持录制。\

点击右上角第一个的录制按钮。然后,继续在android映射的界面上点点点。

因为脚本里面没截图,我就单独拿出来了。

__author__ = "fnngj"from poco.drivers.android.uiautomation import AndroidUiautomationPoco
poco = AndroidUiautomationPoco(use_airtest_input=True, screenshot_each_action=False)poco("计算器").click()
poco("com.android.calculator2:id/digit_1").click()
poco("com.android.calculator2:id/op_add").click()
poco("com.android.calculator2:id/digit_1").click()
poco("com.android.calculator2:id/eq").click()

从poco的API来看比appium更为简洁。

如果你要做的是非游戏的APP的话,poco应该是我们后面学习的重点。这样的代码不管是和单元测试框架结合还是使用PO设计模式都是没有问题的。

而且,同样提供元素的属性展示,又有录制功能加持,在开发效率上应该会提高不少。

如果,你刚好又会Python,那么这将是一个不错的选择。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你! 

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

从边缘设备丰富你的 Elasticsearch 文档

作者:David Pilato 我们在之前的文章中已经了解了如何丰富 Elasticsearch 本身和 Logstash 中的数据。 但如果我们可以从边缘设备中做到这一点呢? 这将减少 Elasticsearch 要做的工作。 让我们看看如何从具有代理处理器的 Elastic 代理中执行此操作。 E…

keepalived高可用方案

keepalived概念 keepalived是一个开源的虚拟路由冗余协议(VRRP)实现,它能够提供高可用性(HA)的解决方案。VRRP是一种网络协议,用于在多个路由器之间分配路由任务,以保证网络的可靠性。在服务器…

VMware Workstation Pro 17虚拟机超级详细搭建(含redis,nacos,docker, rabbitmq,sentinel,elasticsearch....)(一)

今天从零搭建一下虚拟机的环境,把nacos,redis等微服务组件还有数据库搭建到里面,首先看到的是我们最开始下载VMware Workstation Pro 17 之后的样子,总共一起应该有三部分因为篇幅太长了 下载地址 : VMware - Delivering a Digit…

【VALL-E-01】环境搭建

本系列文章系本人知乎账号迁移 本文系个人知乎专栏文章迁移 VALL-E 网络是GPT-SOVITS很重要的参考 知乎专栏地址: 语音生成专栏 相关文章链接: 【VALL-E-01】环境搭建 【VALL-E-02】核心原理 1、环境包使用 从效果看没有GPT-SOVITS 来的好 环境安装…

C#学习笔记1:C#基本文件结构与语法

现在开始我的C#学习之路吧,这也许不适合0编程基础的人看,因为我会C语言了,笔记做的可能有思维上的跳跃,如果0基础可能会觉得有些地方转折得莫名奇妙,但我的学习笔记实操还是比较多的,基本都是真实运行程序结…

docker desktop 登录不上账号

配置走代理(系统全局)也没用 解决方法 参考博文: https://blog.csdn.net/weixin_37477009/article/details/135797296 https://adoyle.me/Today-I-Learned/docker/docker-desktop.html 下载 Proxifiler 配置 Proxifiler

蓝桥杯真题:幸运数字

这道题可以用 integer.string()求每个进制的数,但这里要每一位数相加,所以用这个方法会比较麻烦,如下 import java.util.Scanner; public class Main {public static void main(String[] args) {Scanner scan new Sc…

关系型数据库mysql(4)事务

目录 一.事务的概念 1.事务的定义 2.事务的特点 2.1原子性 2.2一致性 2.4持久性 3.事务之间的相互影响 3.1脏读 3.2不可重复读 3.3幻读 3.4丢失更新 4. 事务的隔离级别(如何解决事务的干扰) 4.1查询全局事务隔离级别 4.2查询全局事务 …

浩哥带你做项目,纯免费教学

浩哥带你做项目 一、YiYi-Web项目开发1. 简介2. 技术栈2.1 后端开发环境2.2 前端开发环境 3.项目截图 二、计算机游戏程序设计(基础篇)三、RuoYi-Cloud项目学习1.功能介绍2.项目截图 四、鸿蒙应用开发五、软考六、Linux基础知识学习 最近浩哥社区群涌进大…

Qt 写一个邮件发送程序

最近在完成一个邮箱代替的告警功能&#xff0c;写了一个邮件发送的demo 以下为代码&#xff1a; #ifndef MAINWINDOW_H #define MAINWINDOW_H#include <QMainWindow> #include<QTcpSocket> namespace Ui { class MainWindow; }class MainWindow : public QMainWin…

证明:指数函数和阶乘谁增长的更快?

先说结论&#xff0c;阶乘增长速度比指数函数快&#xff0c;也就是说&#xff1a; 可以用简单的指数函数y4^x的图形和阶乘函数图形做一个对比&#xff0c;可以发现&#xff0c;在自变量取值比较小的时候&#xff0c;指数函数&#xff08;红色&#xff09;是大于阶乘的&#xff…

华为云优惠券在哪里领取?

华为云作为华为旗下的云服务品牌&#xff0c;一直致力于为广大用户提供稳定、高效的云服务体验。为了吸引用户上云&#xff0c;华为云经常推出各种优惠活动&#xff0c;其中最常见的就是发放优惠券。那么&#xff0c;华为云优惠券在哪里领取呢&#xff1f;本文将为大家详细解答…