【airtest】自动化入门教程(一)AirtestIDE

目录

一、下载与安装

1、下载

2、安装

3、打开软件

二、web自动化配置

1、配置chrome浏览器

2、窗口勾选selenium window

 三、新建项目(web)

1、新建一个Airtest项目

2、初始化代码

3、打开一个网页 

四、恢复默认布局

五、新建项目(app)

1、新建一个项目app_test项目

2、连接机器

2.1 真机打开开发者模式,开启usb调试,连接上数据线。

2.2 连接真机

3、连接模拟器 

3.1 打开MuMu模拟器

3.2 连接模拟器

4、打开一个app应用

5、优化代码,使用包名打开app

 6、swipe划动

7、Poco 辅助框

7.1 初始化设置

7.2 锁定页面定位元素(手机页面不可操作)

7.3 页面不锁定,可操作

7.4 脚本录制

六、 查看报告

七、附录

1、Android助手

2、 坐标


前言:使用airtest如何进行web、app自动化?AirtestIDE 是一个我们配套推出的跨平台的UI自动化测试编辑器,内置了Airtest和Poco的相关插件功能,能够使用它快速简单地编写脚本

一、下载与安装

1、下载

 下载地址:Airtest Project

2、安装

解压即可

3、打开软件

二、web自动化配置

1、配置chrome浏览器

选项-设置-输入浏览器的安装路径即可

2、窗口勾选selenium window

勾选左侧会出现

 三、新建项目(web)

1、新建一个Airtest项目

项目取名web_test

2、初始化代码

点击

3、打开一个网页 

四、恢复默认布局

五、新建项目(app)

1、新建一个项目app_test项目

2、连接机器

2.1 真机打开开发者模式,开启usb调试,连接上数据线。

2.2 连接真机

如果真机未出现,点击重启ADB

连接真机点击 connect,即可连接成功

3、连接模拟器 

雷电模拟器比较容易,基本上很容易

3.1 打开MuMu模拟器

cmd输入

adb devices

执行下面的命令

adb.exe connect 127.0.0.1:7555

3.2 连接模拟器

说远程连接也行,我发现2个地方都行

adb shell pm list package  # adb获取app包名,其他方式不说了,网上太多

4、打开一个app应用

点击touch,然后到右侧取框选app即可,测试一下,点击 运行  即可执行打开app

优化一下代码

5、优化代码,使用包名打开app

# -*- encoding=utf8 -*-
__author__ = "cheng"from airtest.core.api import *auto_setup(__file__)d = device()
all_app = d.list_app()
print(all_app)  # 查看手机安装所以app的包名
soul = "cn.soulapp.android"
start_app(soul)# 打开soul
sleep(3)
stop_app(soul)
# home()  # 返回home页面

 6、swipe划动

选择起点和终点 或者起点图片等方式

下图是通过图片滑动,修改图片匹配度的值

7、Poco 辅助框

click、send命令都可根据找出的元素进行操作

7.1 初始化设置

选择Android,然后yes导入初始化代码

from poco.drivers.android.uiautomation import AndroidUiautomationPoco
poco = AndroidUiautomationPoco(use_airtest_input=True, screenshot_each_action=False)

7.2 锁定页面定位元素(手机页面不可操作)

点击锁定元素,然后再右侧选择元素点击,在从左侧双击即可实现元素定位

7.3 页面不锁定,可操作

 

7.4 脚本录制

六、 查看报告

七、附录

1、Android助手

先得连上机器或者模拟器

点击刷新可以获取包名

2、 坐标

选项-设置,开启了坐标就可以在右侧鼠标放上去显示坐标

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

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

相关文章

[业务系统]人物坐骑系统介绍I

1.问题描述 旧版本的坐骑系统依赖于人物装备了【法宝】(一种装备类型),装备了法宝的人物变拥有了【幻化】坐骑的能力,即在人物装备栏中的【外观】中会有已经幻化和未幻化(解锁)的坐骑。如果玩家至少幻化一…

基于R语言的分位数回归技术应用

回归是科研中最常见的统计学研究方法之一,在研究变量间关系方面有着极其广泛的应用。由于其基本假设的限制,包括线性回归及广义线性回归在内的各种常见的回归方法都有三个重大缺陷:(1)对于异常值非常敏感,极少量的异常值可能导致结…

(全部习题答案)研究生英语读写教程基础级教师用书PDF|| 研究生英语读写教程提高级教师用书PDF

研究生英语读写教程基础级教师用书PDF 研究生英语读写教程提高级教师用书PDF pdf下载(完整版下载) (1)研究生英语读写教程基础级教师用书PDF (2)研究生英语读写教程基提高级教师用书PDF

【C++那些事儿】深入理解C++类与对象:从概念到实践(中)| 默认构造函数 | 拷贝构造函数 | 析构函数 | 运算符重载 | const成员函数

📷 江池俊: 个人主页 🔥个人专栏: ✅数据结构冒险记 ✅C那些事儿 🌅 有航道的人,再渺小也不会迷途。 文章目录 1. 类的6个默认成员函数2. 构造函数2.1 概念2.2 特性 3. 析构函数3.1 概念3.2 特性 4. 拷贝…

GO-接口

1. 接口 在Go语言中接口(interface)是一种类型,一种抽象的类型。 interface是一组method的集合,接口做的事情就像是定义一个协议(规则),只要一台机器有洗衣服和甩干的功能,我就称它…

基于springboot+vue的工厂车间管理系统

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战,欢迎高校老师\讲师\同行交流合作 ​主要内容:毕业设计(Javaweb项目|小程序|Pyt…

初阶数据结构之---栈和队列(C语言)

引言 在顺序表和链表那篇博客中提到过,栈和队列也属于线性表 线性表: 线性表(linear list)是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使用的数据结构。线性表在逻辑上是线性结构,也就是说是连…

【操作系统(Operator System)】

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一、概念 二、结构示意图 三、尝试理解操作系统 系统调用和库函数概念 承上启下 总结 前言 世上有两种耀眼的光芒,一种是正在升起的太阳&#xff…

【Go语言】Go语言中的字典

Go语言中的字典 字典就是存储键值对映射关系的集合,在Go语言中,需要在声明时指定键和值的类型,此外Go语言中的字典是个无序集合,底层不会按照元素添加顺序维护元素的存储顺序。 如下所示,Go语言中字典的简单示例&…

FRM模型十三:互换定价(二)

定义一个互换,本金为1e7,7年后到期 固定端:利率2.5%,每年付息一次 浮动端:Libor6M,每半年付息一次 import QuantLib as ql from prettytable import PrettyTable# 定义全局时间:当前日期,下一个结算日&…

【Mybatis】快速入门 基本使用 第一期

文章目录 Mybatis是什么?一、快速入门(基于Mybatis3方式)二、MyBatis基本使用2.1 向SQL语句传参2.1.1 mybatis日志输出配置2.1.2 #{}形式2.1.3 ${}形式 2.2 数据输入2.2.1 Mybatis总体机制概括2.2.2 概念说明2.2.3 单个简单类型参数2.2.4 实体…

计算机网络|Socket

文章目录 Socket并发socket Socket Socket是一种工作在TCP/IP协议栈上的API。 端口用于区分不同应用,IP地址用于区分不同主机。 以下是某一个服务器的socket代码。 其中with是python中的一个语法糖,代表当代码块离开with时,自动对s进行销毁…

将python程序打包为exe格式

1. 安装pyinstaller winr打开命令窗口 输入: pip install pyinstaller输入命令后会自动安装pyinstaller 2. 打包 进入你的代码所在位置,输入cmd 在弹出的窗口中输入 pyinstaller --onefile your_script.pyyour_script.py修改为你需要打包的程序名字 …

Sqli-labs靶场第19关详解[Sqli-labs-less-19]自动化注入-SQLmap工具注入

Sqli-labs-Less-19 通过测试发现,在登录界面没有注入点,通过已知账号密码admin,admin进行登录发现: 返回了Referer ,设想如果在Referer 尝试加上注入语句(报错注入),测试是否会执行…

简单网站模板1(HTML)

想要拥有自己的网站&#xff0c;却不知该如何才能简约好看&#xff0c;接下来分享一种自己搭建的网站模板&#xff0c;希望大家喜欢。 展示图&#xff1a; CODE: <!DOCTYPE html> <html> <head><title>我的网站</title><style>body {fo…

【详识JAVA语言】面向对象程序三大特性之二:继承

继承 为什么需要继承 Java中使用类对现实世界中实体来进行描述&#xff0c;类经过实例化之后的产物对象&#xff0c;则可以用来表示现实中的实体&#xff0c;但是 现实世界错综复杂&#xff0c;事物之间可能会存在一些关联&#xff0c;那在设计程序是就需要考虑。 比如&…

黑马点评-短信登录业务

原理 模型如下 nginx nginx基于七层模型走的事HTTP协议&#xff0c;可以实现基于Lua直接绕开tomcat访问redis&#xff0c;也可以作为静态资源服务器&#xff0c;轻松扛下上万并发&#xff0c; 负载均衡到下游tomcat服务器&#xff0c;打散流量。 我们都知道一台4核8G的tomca…

微服务API网关---APISIX

最近在做微服务调研&#xff0c;看到了apisix这个网关&#xff0c;于是进行了初步了解一下。 微服务是指&#xff0c;将大型应用分解成多个独立的组件&#xff0c;其中每个组件都各自的负责对应项目。 系统的架构大致经历了&#xff1a;单体应用架构–> SOA架构 -->微服务…

(六)Dropout抑制过拟合与超参数的选择--九五小庞

过拟合 即模型在训练集上表现的很好&#xff0c;但是在测试集上效果却很差。也就是说&#xff0c;在已知的数据集合中非常好&#xff0c;再添加一些新数据进来效果就会差很多 欠拟合 即模型在训练集上表现的效果差&#xff0c;没有充分利用数据&#xff0c;预测准确率很低&a…

SpringCache【缓存接口返回值信息】【前端访问后端,后端访问数据库(可以缓存这个过程,前端访问后端,保存记录,下次访问直接返回之前的数据)】

SpringCache 针对不同的缓存技术需要实现不同的CacheManager&#xff1a;注解入门程序CachePut注解CacheEvict注解Cacheable注解 Spring Cache是一个框架&#xff0c;实现了基于注解的缓存功能&#xff0c;只需要简单地加一个注解&#xff0c;就能实现缓存功能&#xff0c;大大…