手机自动化测试IDE-----Airtest基本操作方法

简介: 手机自动化测试IDE-----Airtest基本操作方法

大家好,我是IT共享者,人称皮皮。这篇我们来讲讲手机自动化测试IDE-----Airtest。


前言


前面我们讲到了Airtest的界面和安装技巧,今天我们就来说说Airtest的具体操作方法吧,让我们轻松实现软件自动化,真正解放我们的双手吧。


一、基本API介绍


我们在做自动化脚本的时候,每个生成的脚本文件会给我们自动生成一些代码,如图:

image.png

这里所导入的模块其实就是跨平台的API,除了跨平台的API还有平台特定的API,比如:

airtest.core.android #安卓平台airtest.core.ios   #苹果平台airtest.core.win   #Windows平台

这里我们来详细说说这些模块。


1.跨平台API模块


这里我们要介绍的第一个就是跨平台模块:

from airtest.core.api import * #导入所有方法

1).初始化设备

这里初始化设备我们也有两种方案,下面请看:

1)).根据设备的UUID来初始化

语法格式:

init_device(platform='Android',uuid='',cap_method=JAVACAP for Android)#平台 – Android,IOS或Windows#uuid –目标设备的uuid,例如,用于Android的serialno,用于Windows的handle,用于iOS的uuid#kwargs –可选的平台特定关键字args,例如cap_method = JAVACAP for Android

下面我们来列举一下实例,如下:

init_device(platform='Android',uuid='127.0.0.1:62001',cap_method='JAVACAP')


2)).根据设备的URL来初始化

语法格式如下:

android:///   连接当前安卓设备android://adbhost:adbport/serial NO.?cap_method=javacap&touch_method=adbwindows:///    连接本地桌面程序ios:///     连接IOS设备

这里我们主要是传入了ADB地址,端口和连接的夜神模拟器的序列号而连接上的。具体例子如下:

connect_device('android://127.0.0.1:5037/127.0.0.1:62001?cap_method=javacap&touch_method=adb')


2).返回当前活动设备

device()

image.png


3).设置当前活动设备

有时候如果我们连接了多个设备,我们需要切换的话,就是用这个函数来达到目的,可以使用设备的索引或者设备的序列号来进行切换哦。

set_current(0)set_current('127.0.0.1:62001')


4).运行环境配置

auto_setup(basedir = None,devices = None,logdir = None,project_root = None,compress = 0 )basedir 设置当前脚本的所在位置,__file__也可以。devices 指定运行脚本的设备以列表形式存在logdir 设置脚本运行时的日志保存路径,默认为None,设为True可保存project_root  设置api的项目根目录


5).开启并执行远程Shell命令

shell(cmd) #ls / data / local / tmp


6).在设备上启动程序

start_app('启动的应用程序包名')


7).在设备上停止程序

stop_app('启动的应用程序包名')


8).清除设备上的应用程序数据

clear_app('启动的应用程序包名')


9).在设备上安装应用程序

install(filepath='要在目标设备上安装的文件的路径')


10).在设备上卸载应用程序

uninstall('应用程序包名')


11).截图并保存到文件中

snapshot(filename='1.jpg',msg='hello',quality=3)filename:图片名msg:屏幕截图的简短描述quality:图像质量,范围为[1,99]的整数


12).唤醒并解锁设备

wake('设备')


13).返回目标设备的主屏幕

home('设备')


14).设备屏幕上执行点击,滑动,捏,按键,输入操作

click(v=Template(x,y),times=2) #单击v:触摸目标,可以是Template实例,也可以是绝对坐标(x,y)times:执行多少次触摸
double_click() #双击swipe(v1,v2)#滑动起点和终点swipe(v1,vector=(x,y))#沿向量移动,向量可以是坐标也可以是屏幕百分比#返回值:原点位置和目标位置
pinch()#捏操作,相当于缩放,参数如下:in_or_out:放大或缩小center:默认为None表示屏幕中心percent:捏动作的屏幕比例,默认值为0.5 keyevent(keyname='Home')#按键操作
text('文本')#在设备上输入文本


15).睡眠,等待

sleep(2)#睡眠两秒,延迟两秒wait(v,timeout,interval,intervalfunc)#等待与设备屏幕上的模板匹配v:等待的目标对象timeout:超时时间interval:尝试找到匹配项的时间间隔(秒)intervalfunc:在每次未成功尝试找到相应匹配项后调用返回值:匹配目标的坐标


16).检查给定目标在设备屏幕上是否存在

exists(v)v:检查对象如果找不到目标,则为False,否则返回目标的坐标


17).在设备屏幕上查找所有出现的目标并返回其坐标

find_all(v)v:寻找目标返回坐标列表


18).断言操作

assert_exists(v,msg) #断言目标存在于设备屏幕上assert_not_exists(v,msg) #断言目标在设备屏幕上不存在v:要检查的目标msg:断言的简短描述
assert_equal(v1,v2,msg) #断言两个值相等assert_not_equal(v1,v2,msg) #断言两个值不相等v1:第一个值v2:第二个值msg:断言的简短描述

这里基本上我们就把使用方法说完了,下面我们来进行下实际操作,下一篇文章即将奉上。


二、总结


这篇文章主要介绍了Airtest的基本操作方法,可以让我们轻松实现软件自动化,下一篇文章将带大家一起进行实际操作,敬请期待!


我是皮皮,如果觉得文章不错,记得三连噢,大家有问题也可以点击下方的图片,加我好友,交个朋友也好呀~

相关文章
|
22天前
|
芯片
LDO的原理及测试方法
一、基本结构 这是LM317芯片的核心,这个电路单元称为Bandgap Reference带隙基准源。属于模拟集成电路中的经典电路结构。 LDO拓扑结构图 常见的基本结构 利用VBE的负温度系数,而VT是正温度系数,正负温度系数抵消就的得到稳定的基准参考电压了(三极管的方程VBE=VT*In(lC/IS))。 二、测试意义 了解集成电路的内部结构对测试有意义么? 1、了解内部结构,才能更好的理解测试原理或者设计测试方案2、可以学习提升对电路结构的理解能力。 针对LM317,了解了内部简单原理,可以知道1、内部结构设计针对的是温度系数,因此可能受温度的影响,实际也是会受到温度的影
163 88
|
15天前
|
测试技术
测试用例设计方法之基本路径测试法
基本路径测试法是在程序控制流图的基础上,通过分析控制构造的环路复杂性,导出基本可执行路径集合,从而设计测试用例的方法,设计出的测试用例要保证在测试中程序的语句覆盖100%,条件覆盖100%
25 7
测试用例设计方法之基本路径测试法
|
16天前
|
移动开发 JSON Java
Jmeter实现WebSocket协议的接口测试方法
WebSocket协议是HTML5的一种新协议,实现了浏览器与服务器之间的全双工通信。通过简单的握手动作,双方可直接传输数据。其优势包括极小的头部开销和服务器推送功能。使用JMeter进行WebSocket接口和性能测试时,需安装特定插件并配置相关参数,如服务器地址、端口号等,还可通过CSV文件实现参数化,以满足不同测试需求。
77 7
Jmeter实现WebSocket协议的接口测试方法
|
15天前
|
敏捷开发 数据可视化 Devops
敏捷测试价值观、方法和实践读书笔记(4)
本章节探讨了敏捷测试执行的关键概念与实践。首先介绍了用户故事及其重要性,强调其在敏捷开发中的角色,并阐述了用户故事的 INVEST 原则。接着分析了用户故事生命周期中的测试关注点,包括定义、处理、完成及验收阶段的测试活动。此外,还对比了不同测试术语的差异,并提供了敏捷测试计划的策略与过程。通过看板等工具实现任务管理与跟踪,确保测试活动高效进行。最后,介绍了敏捷测试中的度量指标,帮助团队评估测试效果。
19 5
敏捷测试价值观、方法和实践读书笔记(4)
|
15天前
|
监控 架构师 Devops
敏捷测试价值观、方法和实践读书笔记(3)
本章节介绍敏捷测试转型框架,涵盖模型概览、实施难度与顺序、文化转变、角色技能需求及测试流程。敏捷测试转型模型包括文化、组织、流程与实践等关键要素,并针对各层面提出具体实施建议与障碍解决方案。此外,详细阐述了不同敏捷测试角色的技能需求与职责,以及从Sprint内至跨Sprint的测试流程与交付物。
17 5
敏捷测试价值观、方法和实践读书笔记(3)
|
15天前
|
开发框架 数据可视化 项目管理
敏捷测试价值观、方法和实践读书笔记(1)
敏捷软件开发宣言在身体力行的同时也帮助我们一直在实践中探寻更好的软件开发方法。由此,我们建立了如下价值观:个体和互动 高于 流程和工具工作的软件,高于 详尽的文档客户合作, 高于 合同谈判响应变化,高于 遵循计划。也就是说,尽管右项有其价值,但我们更重视左项的价值。
35 4
敏捷测试价值观、方法和实践读书笔记(1)
|
15天前
|
JavaScript 前端开发 Java
敏捷测试价值观、方法和实践读书笔记(5)
本章节介绍了敏捷功能测试的原则与实践,包括单元测试的概念及其编写步骤,测试驱动开发(TDD)的流程,以及如何通过模拟对象进行测试。详细讲解了单元测试的编写方法,如初始化对象、执行操作及验证结果,并探讨了 TDD 的五个步骤。通过具体案例展示了如何逐步完善储蓄账户的功能测试,包括存款、取款及异常处理。此外,还讨论了代码覆盖率的重要性及其局限性,强调了测试充分性比单纯追求代码覆盖率更为关键。
15 3
敏捷测试价值观、方法和实践读书笔记(5)
|
1天前
|
人工智能 测试技术 开发者
北大李戈团队提出大模型单测生成新方法,显著提升代码测试覆盖率
【9月更文挑战第27天】北京大学李戈团队在人工智能领域取得重要突破,提出HITS新方法,通过将待测方法分解为多个切片并利用大型语言模型逐个生成测试用例,显著提升代码测试覆盖率,尤其在处理复杂方法时效果显著,为软件开发和测试领域带来新希望。尽管存在一定局限性,HITS仍展示了巨大潜力,未来有望克服限制,推动软件测试领域的创新发展。论文详情见【https://www.arxiv.org/pdf/2408.11324】。
11 6
|
1天前
|
小程序 测试技术 程序员
『软件工程12』软件工程实践方法——软件测试
该文章详细阐述了软件测试的重要性和基本原则,并按测试阶段顺序介绍了单元测试、集成测试、确认测试以及系统测试的具体内容和实施步骤。
『软件工程12』软件工程实践方法——软件测试
|
1天前
|
测试技术 程序员 C语言
『软件测试4』耗子尾汁!2021年了,你还不知道这4种白盒测试方法吗?
该文章深入介绍了四种常用的白盒测试方法,包括语句覆盖、判定覆盖、条件覆盖以及路径覆盖,并探讨了这些方法在软件测试中的应用。
『软件测试4』耗子尾汁!2021年了,你还不知道这4种白盒测试方法吗?