自动化测试的正确姿势-Airtest API详解&Demo演示

一、背景

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    // Homekeyevent 4    // Backkeyevent 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*1200snapshot(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%免费】

视频文档获取方式:

这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值