Airtest-UI 自动化集大成者
前言
Airtest是由网易研发的一款基于Python的、跨平台的UI自动化测试框架,基于图像识别原理,适用于游戏和App。该项目目前已在Github上面开源:
https://github.com/AirtestProject/Airtest
官网地址:
http://airtest.netease.com/
官方文档手册非常详细,建议大家入门可以先去看下相关的文档说明。
为什么需要Airtest?
众所周知,UI层测试按照平台种类划分有Windows、Linux、Android、Web、小程序等
针对于移动端Android & IOS平台,有最火的Appium测试框架 http://appium.io/
Web端有selenium测试框架 http://seleniumhq.org/
windows应用平台有AutoIT、Pywinauto
而业界针对游戏类的应用并没有比较好的解决方案,而Airtest测试框架应运而生,基于底层的Airtest和poco:
- Airtest:基于Python的、跨平台的UI自动化测试框架,基于图像识别原理,适用于游戏和App。
- Poco:基于UI控件搜索的自动化测试框架,其核心优势是除了对Android、IOS之外,对游戏也是支持的,同时也支持微信小程序、微信小游戏和H5应用。
Airtest还非常贴心的配备了Airtest IDE,不需要写一行脚本,即可完成脚本的录制。
Airtest IDE录制
录制Android平台自动化脚本
step1 检测设备链接状态
本地安装的雷电模拟器
C:\Users\Administrator>adb devices
List of devices attached
emulator-5554 device
step2 Airtest IDE连接设备


可以看到Airtest可以直接将设备画面进行映射,同Appium的inspector或者UIAutomatorViewer.bat工具不一样
step3 录制脚本
点击录制即可开启录制功能,并且提供了很多不同的元素操作,如:点击、等待、滑动、断言等等

这里以柠檬班App为例,录制登录测试用例

录制回放

Airtest采取图像识别方式,这种方式比较适合游戏自动化
但是在脚本的兼容性方面存在一些问题(屏幕的分辨率、图标大小等)。官方也给了几个小的技巧:
- 1、提升截图技巧-尽量截图完整图片
- 2、调整图像识别阈值
- 3、利用灰度图像识别
这些方式只能尽量优化,并不能根本上解决,所以官方最终建议是尽量使用poco:通过UI元素属性信息定位
poco
Airtest提供另外一种更加稳健的元素操作方式-基于UI控件搜索框架poco

# -*- encoding=utf8 -*-
__author__ = "Administrator"
from poco.drivers.android.uiautomation import AndroidUiautomationPoco
poco = AndroidUiautomationPoco(use_airtest_input=True, screenshot_each_action=False)
poco("柠檬班").click()
poco("com.lemon.lemonban:id/navigation_my").click()
poco("com.lemon.lemonban:id/fragment_my_lemon_avatar_title").click()
poco("com.lemon.lemonban:id/et_mobile").set_text(18588220152)
poco("com.lemon.lemonban:id/et_password").set_text(123456)
poco("com.lemon.lemonban:id/btn_login").click()
可以看到 poco这种模式更加适合公司项目,如果你自己会Python,还可以在脚本的基础上继续拓展,比如:应用PO设计模式 分层设计 等等。
Airtest-UI 自动化集大成者的更多相关文章
- Airtest 网易 UI 自动化工具 Airtest 浅用记录
一 使用目的 该工具主要是面向游戏UI测试基于图像识别,如游戏框架unity,Cocos-js以及网易内部的游戏框架同时也支持原生Android App 的基于元素识别的UI自动化测试.本文主要使用目 ...
- 网易 UI 自动化工具 Airtest 浅用记录
一 使用目的 该工具主要是面向游戏UI测试基于图像识别,如游戏框架unity,Cocos-js以及网易内部的游戏框架 同时也支持原生Android App 的基于元素识别的UI自动化测试. 本文主要使 ...
- airtest自动化中的poco+python连接手机实现ui自动化
airtest:http://airtest.netease.com/docs/docs_AirtestIDE-zh_CN/index.html官网地址 AirtestIDE:跨平台的UI自动化测试编 ...
- UI自动化测试之Airtest
官方文档: https://airtest.doc.io.netease.com/ 本文我们讲解下Airtest的使用,主要学习目标有以下几点: (1)认识Airtest (2)了解Airtest能做 ...
- 小程序UI自动化(一):appium小程序自动化尝试
appium 进行 小程序自动化尝试: 由于工作中进行app自动化用的是appium,故首先尝试用appium进行小程序自动化,以美团小程序为例(python脚本实现) 一.配置基础信息 启动微信ap ...
- Android手机QQ的UI自动化实践
本文首发于果的博客园,原文链接:https://www.cnblogs.com/yuxiuyan/p/14992682.html, 转载请注明出处. UI自动化 我们为什么要搞UI自动化 可能很多同学 ...
- 手机UI自动化之显示点触位置(触摸轨迹)
上期回顾:Airtest源码分析--Android屏幕截图方式 不管是用Appium还是Airtest,或是其他手机UI自动化工具,你是不是经常遇到这种情况,代码明明执行了click或swipe,怎么 ...
- UI自动化,你值得拥有
去年春节联欢晚会,为了那张“敬业福”,全家都卯足了劲儿“咻一咻”,连节目都顾不上看了.当时我就想,要是能自动化该多好,不停点击屏幕,屏幕不疼手还疼呢,何况还不好分心,生怕错过了“敬业福”.玩“咻一咻” ...
- 【Android测试】UI自动化代码优化之路(临时发布, 随时删除)
◆版权声明:本文出自胖喵~的博客,转载必须注明出处. 转载请注明出处:http://www.cnblogs.com/by-dream/p/5993622.html 关于UI自动化的抱怨 听过不少人这样 ...
- Appium UI自动化的那些梗
@作者 彭海波 转载请注明出处 前言 由于需求的快速迭代和敏捷测试的要求,在测试过程中引入自动化成为必不可少的手段.作为一个互联网测试团队,我们自然也引入了自动化测试这个环节.在众多的测试框架中,我们 ...
随机推荐
- VUE创建播发器组件并调用
欢迎来到我的友链小屋 首先用vue-cli创建前端项目 参考:https://www.cnblogs.com/ouyangkai/p/11549290.html 新建play.vue文件 编写pl ...
- 费劲周折的Haskell开发环境搭建过程
大概倒腾了一周才搭建好Haskell的开发环境,遇到了很多莫名其妙的问题. 首先,Haskell实在是够冷门,中文网站上的信息实在有限.仅有的一些安装教程分享都感觉不大靠谱,所以我还是直接去外网找吧. ...
- sonarqube+sonar runner分析C#代码
最近研究一个代码覆盖率和代码分析工具.遇到一些比较坑的问题,现在分享给大家. 1.Sonar介绍 Sonar是一个用于代码质量管理的开源平台,用于管理Java源代码的质量.通过插件机制,Sonar 可 ...
- saltstack的简单搭建
环境; centos 7 192.168.10.10 master centos 7 192.168.10.129 minion 1.为了方便关闭防火墙 [root@local ...
- Vue.js最佳实践--VueRouter的beforeEnter与beforeRouteLeave冲突解决
用Vue做应用管理系统,通常会在离开某个页面的时候,需要检测用户是否有修改,询问用户需要不需要保存之类的需求 这时候,在读VueRouter文档:组件内的守卫 的时候,发现beforeRouteLea ...
- Java生成前三位是字母循环的字典
title: Java生成前三位是字母循环的字典 date: 2018-08-17 18:52:22 tags: Java --- 最近要破解一个秘密,还好这个密码是有线索的,已知密码的前三位是三个字 ...
- ASP.NET Core 2.2 和之前版本区别: 可以在IIS上进行ASP.NET核心进程托管 (翻译)
原文链接: https://weblog.west-wind.com/posts/2019/Mar/16/ASPNET-Core-Hosting-on-IIS-with-ASPNET-Core-22 ...
- 红黑树实现(c/c++)
红黑树 简介 一直想写的一种数据结构,非常厉害的思想,插入,删除,查找,修改,都是\(log_2 n\)的时间复杂度. 比AVL更强大的是,插入删除综合效率比AVL要优秀一点. 性质 一颗红黑树是满足 ...
- Centos7 samba配置
目录 免密码只读 加密码可读写 Samba配置了很多次,总是忘,现在写在博客里. 免密码只读 最主要的是免密配置,主要用到了两个配置,要写在[global]里: map to guest = Bad ...
- rz上传文件乱码
问题 使用rz上传文件时,出现乱码,上传失败. 原因 文件中包含控制字符 解决方法 使用 rz -be -b:–binary 用binary的方式上传下载,不解释字符为ascii: -e:–esca ...