一、背景

Airtest作为一款优秀的自动化测试工具,有着强大的API功能,处理日常自动化测试过程中需要的各类操作。接着上一篇文章:UI自动化测试的正确姿势-Airtest第二弹, 今天我们继续分享Airtest API详解第二篇,结合自动化测试中的各类需求,看看如何通过使用Airtest来快速实现。

二、text

最常用的操作,在目标设备上输入文本,文本框需要处于激活状态。

参数如下:

  • text – 要输入的文本

  • enter – 是否在输入完毕后,执行一次 Enter操作 ,默认是True

  • search-是否在输入完毕后,执行一次 Seach操作,默认是False

text("孤勇者", enter=True)
text("孤勇者", search=True)

备注:Windows下或移动设备上,如果enter参数或search参数设置了不生效,可以使用keyevent来操作enter、search键,或者通过点击相应的确认、搜索按钮来完成操作。

# 输入文字:孤勇者
text("孤勇者")
# 使用键盘上的回车键
keyevent("{ENTER}")

三、keyevent

常用操作,在设备上执行keyevent按键事件。

 

参数:
keyname – 平台相关的按键名称,参考对应的平台接口文档。

Android按键:

直接调用了adb的keyevent(),相当于执行了 adb shell input keyevent KEYNAME

# 点HOME键
keyevent("HOME")
keyevent("3")  # 也可以用数值来代表

# 点BACK键
# 如果你的脚本要同时兼容Android和iOS,则不要使用,因为iOS不支持
keyevent("BACK")
keyevent("4")  # 也可以用数值来代表

# 循环删除输入框内容
# Airtest没有清空输入框的方法,所以可以模拟真实的手工操作,就是不停的按删除键
for i in range(20):
    keyevent("KEYCODE_DEL")  # 或keyevent("67")
这里为大家整理了常用的键值,已经比较全了,平时的操作都能覆盖到了:
keyevent 3    // Home
keyevent 4    // Back
keyevent 66 // Enter 回车键
keyevent 19  //DPAD_UP 导航键 向上
keyevent 20  //DPAD_DOWN 导航键 向下
keyevent 21  //DPAD_LEFT 导航键 向左
keyevent 22  //DPAD_RIGHT 导航键 向右
keyevent 23  //DPAD_CENTER 导航键 确定OK键 
keyevent 24  //VOLUME_UP 音量增加键
keyevent 25  // VOLUME_DOWN  音量减小键
keyevent 82  // Menu 菜单
keyevent 5  // Call 拨号盘
keyevent 6 // EndCall 挂机键
keyevent 84 // Search 搜索键
keyevent 27 // Camera 拍照键
keyevent 80 // Focus 拍照对焦键
keyevent 26 // Power 电源键
keyevent 83 // Notification 通知键
keyevent 91 // Mute 话筒静音键
keyevent 164 // Volume_Mute 扬声器静音键
keyevent 92 // PAGE_UP 向上翻页键
keyevent 93 // PAGE_DOWN 向下翻页键
keyevent 67 // DEL 退格键
keyevent 112 // FORWARD_DEL 删除键
keyevent 124 // INSERT 插入键
keyevent 61 // TAB Tab键
keyevent 143 // NUM_LOCK 小写键盘锁
keyevent 115 // CAPS_LOCK 大写锁定键
keyevent 121 // BREAK Break/Pause键
keyevent 116 // SCROLL_LOCK 滚动锁定键
keyevent 168 // ZOOM_IN 放大键
keyevent 169 // ZOOM_OUT 放大键
keyevent 122 // MOVE_HOME 光标移动到开始键
keyevent 123 // MOVE_END 光标移动到末尾键

Windows按键:

使用Python的第三方库 pywinauto.keyboard 进行按键点击

# 例如这是Enter键的输入方式,需要加上括号{}:
keyevent("{ENTER}")

# 符号^也代表了CTRL键,因此^a即为全选(Ctrl+A):
keyevent("^a")

# 符号%也代表了ALT键,因此%{F4}即为ALT+F4:
keyevent("%{F4}")

# 符号+也代表了SHIFT键,因此+{INS}即为SHIFT+INSERT, 效果等同于ctrl+v, 粘贴剪切板中的内容到当前位置:
keyevent("+{INS}")
# -*- encoding=utf8 -*-__author__ = "yy"
from airtest.core.api import *
auto_setup(__file__, devices="Windows:///")
keyevent("{ENTER}")  # 按回车键
keyevent("^a^c")  # 全选并复制
keyevent("^v")  # 粘贴
keyevent("'%{F4}")  # 按ALT+F4

详细的按键key,参看:https://pywinauto.readthedocs.io/en/latest/code/pywinauto.keyboard.html

IOS按键:

IOS封闭性很高,只支持home/volumeUp/volumeDown3个按键:

keyevent("HOME")
keyevent("volumeUp")
keyevent("volumeDown")

四、snapshot

对目标设备进行一次截图,并且保存到文件中。常用于自动化测试报错时使用,或者做一些验证结果记录时使用。

参数:

# 设置截图的质量为90, 图片尺寸不超过 1200*1200
snapshot(filename="test2.png", msg="test", quality=90, max_size=1200)

# 设置图片的质量为30,全局生效,不用每一次截图都单独设置了
ST.SNAPSHOT_QUALITY = 30
# 设置图片的尺寸不超过600*600,全局生效,不用每一次截图都单独设置了
ST.IMAGE_MAXSIZE = 600
  • filename – 保存截图的文件名,默认保存路径为 ST.LOG_DIR中

  • msg – 截图文件的简短描述,将会被显示在报告页面中

  • quality – 图片的质量,[1,99]的整数,默认是10

  • max_size –图片的最大尺寸,例如 1200

五、sleep

设置一个等待的时间。通常用于执行一个操作后,下一个页面需要等待几秒才能加载完毕时的测试场景。为了等待下一个页面加载完毕,就需要使用sleep。

 

参数:
secs – sleep的时长

六、assert_exists

验证目标图片在设备屏幕上存在,找不到目标图片则验证不通过,直接报错raise AssertError。通常用于执行某个操作后,验证是否正确出现了期望中的结果。

 

参数:

  • v – 要验证的目标图片

  • msg – 描述测试点,将记录在测试报告中

六、assert_not_exists

验证目标图片在设备屏幕上不存在,与assert_exists相对应,通常用于执行某个操作后,验证页面上不存在目标图片,以此来判断操作是否成功。

 

七、assert_equal/not_equal

验证两个值相等或不相等,通常用于测试脚本中做一些逻辑判断时使用,验证不通过则处罚assertion fails。

参数:

assert_equal(1, 1, msg="assert 1==1")
  • first – 用于判断的第一个值

  • second – 用于判断的第二个值

  • msg – 验证点的描述信息, 将会被记录在报告中

八、Demo演示

假设测试用例为:验证通过QQ音乐搜索框能正确搜索出指定的歌曲并播放
测试步骤:
1、点击QQ音乐搜索框
2、输入指定歌曲名"孤勇者",键盘按下回车键
3、正确搜索出陈奕迅版本的歌曲"孤勇者"
4、双击歌曲名称进行歌曲播放

使用Airtest编写的测试脚本如下:

 

脚本运行效果如下:

 

 

 

最后: 下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取【保证100%免费】

​​​软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

在这里插入图片描述

在这里插入图片描述

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐