UI自动化测试的正确姿势-Airtest API详解第二篇

一、背景

Airtest作为一款优秀的自动化测试工具,有着强大的API功能,处理日常自动化测试过程中需要的各类操作。接着上一篇文章:UI自动化测试的正确姿势-Airtest设备连接&API详解第一篇, 今天我们继续分享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

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

在这里插入图片描述
参数:

  • filename – 保存截图的文件名,默认保存路径为 ST.LOG_DIR
  • msg – 截图文件的简短描述,将会被显示在报告页面中
  • quality – 图片的质量,[1,99]的整数,默认是10
  • max_size –图片的最大尺寸,例如 1200
# 设置截图的质量为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

五、sleep

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

在这里插入图片描述
参数:
secs – sleep的时长

六、assert_exists

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

在这里插入图片描述
参数:

  • v – 要验证的目标图片
  • msg – 描述测试点,将记录在测试报告中

在这里插入图片描述

六、assert_not_exists

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

七、assert_equal、assert_not_equal

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

在这里插入图片描述
参数:

  • first – 用于判断的第一个值
  • second – 用于判断的第二个值
  • msg – 验证点的描述信息, 将会被记录在报告中
assert_equal(1, 1, msg="assert 1==1")

八、Demo演示

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

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

在这里插入图片描述
脚本运行效果如下:

airtest demo

==============================================================================
以上就是本次的全部内容,喜欢的宝子们,麻烦点个赞+收藏+关注,一键三连啦~ 欢迎关注下方我的公众号:程序员杨叔,各类文章都会第一时间在上面发布,持续分享各类测试开发知识干货,你的支持就是作者更新最大的动力。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值