前言

游戏并不像app一样直接把渲染树节点暴露出来,这就造成游戏UI自动化在元素定位上的不方便性,不过依赖airtest的图片识别,我们可以直接跳过元素检查,以图片对比的形式进行自动化,虽然效率可能会低一些,但是至少也是自动化了。

脚本文件的创建

首先需要创建脚本文件,airtest提供了两种格式的文件——.air后缀和.py后缀;

虽说分开了两种,但两者之前其实差别不是很大(源码中.air文件最终也是较换成.py文件执行),具体选择哪个看个人喜好,个人比较喜欢纯python文件,因此创建的为.py后缀的文件

设置文件保存的路径及文件名

设定好之后直接点击下方的ok按钮,airtest即会自动生成如下的python文件

设备的连接

设备的连接这里就不细讲了,直接用connect连接便可,若发现连接失败,尝试点击connect右侧的下拉框选择use javacap或者其它

脚本的编写

airtest由于其傻瓜式设计,让脚本的编写变得非常简单,基本上只要了解python的while/for循环、等待,就可以应对大多数的脚本编写

以腾讯动漫举个例子,为其设定一个自动化需求为:

1.打开app

2.登录

3.跳转到QQ授权界面取消授权

4.再登录

5.跳转到QQ授权界面确定授权

6.登录成功

7.搜索漫画“尸兄”

8.退出登录

9.不停重复登录到退出之间的操作以确定是否有问题

当然,app的自动化目前主流是appium,不过airtest的纯UI识别也是可以做app的自动化,因此在此用更为方便的app,而不是游戏

我们首先进行需求分析,“不停重复登录到退出之间的操作”说明我们需要使用的是while循环,而前面的流程我们只需要按顺序写好就行了

打开app(最好是用package名去打开,这里因为懒得去翻腾讯动漫的包名,便直接以ui识别的形式打开):

打开我们只需要点击一次app即可,因此

先点击左侧的touch按钮,点击后会出现截图的效果,直接移动到腾讯动漫的图标上,把动漫的图标截图下来,airtest会自动在.py文件上生成touch代码

由于打开app需要等待一段时间让app初始化一下,大概5秒,我们但要引入python的等待time.sleep(5):

跳转到登录页签:

再将while True写上:

我们手动将app打开,再对后续的步骤每一步用airtest截好对应的操作图:

“点我登录”

跳转到登录方式后,我们要点击QQ登录

后续的都是这样一步一步截图即可,这里就暂略了

脚本的执行

脚本的执行只需要点击上方对应的三角按钮即可

LOG

对于不太懂python的人来说,log查看窗打印的东西可能看不懂,因此有参考价值的只有报错时间(哪一步的报错会直接在代码出置红显示)

java ui自动化测试脚本,如何用Airtest编写UI自动化脚本(示例代码)相关推荐

  1. python脚本写ui自动化_如何用Airtest编写UI自动化脚本

    前言 游戏并不像app一样直接把渲染树节点暴露出来,这就造成游戏UI自动化在元素定位上的不方便性,不过依赖airtest的图片识别,我们可以直接跳过元素检查,以图片对比的形式进行自动化,虽然效率可能会 ...

  2. Python 在windows上跑图色脚本?简单又好玩,自己编写一个自动化脚本

    Python 在windows上跑图色脚本?简单又好玩,自己编写一个自动化脚本 大家好 我又来开新坑了,如图这次准备用python弄个简单脚本(根据图色判断进行键鼠操作) 1.老规矩 先安排运行环境 ...

  3. python画三维立体图-如何用Matplotlib 画三维图的示例代码

    用Matplotlib画三维图 最基本的三维图是由(x, y, z)三维坐标点构成的线图与散点图,可以用ax.plot3D和ax.scatter3D函数来创建,默认情况下,散点会自动改变透明度,以在平 ...

  4. python怎样画立体图-如何用Matplotlib 画三维图的示例代码

    用Matplotlib画三维图 最基本的三维图是由(x, y, z)三维坐标点构成的线图与散点图,可以用ax.plot3D和ax.scatter3D函数来创建,默认情况下,散点会自动改变透明度,以在平 ...

  5. python 画三维函数图-如何用Matplotlib 画三维图的示例代码

    最基本的三维图是由(x, y, z)三维坐标点构成的线图与散点图,可以用ax.plot3D和ax.scatter3D函数来创建,默认情况下,散点会自动改变透明度,以在平面上呈现出立体感 三维的线图和散 ...

  6. Java EasyExcel在Web网站中读写Excel的方法及示例代码

    使用EasyExcel可以更容易简单在Web网站中读写Excel,本文主要介绍在Java Web网站中读写Excel方法及示例代码. 原文地址:Java EasyExcel在Web网站中读写Excel ...

  7. python画三维立体图完整代码_如何用Matplotlib 画三维图的示例代码

    最基本的三维图是由(x, y, z)三维坐标点构成的线图与散点图,可以用ax.plot3D和ax.scatter3D函数来创建,默认情况下,散点会自动改变透明度,以在平面上呈现出立体感 三维的线图和散 ...

  8. APP UI自动化测试:框架选择、环境搭建、脚本编写……全总结

    首先想要说明一下,APP自动化测试可能很多公司不用,但也是大部分自动化测试工程师.高级测试工程师岗位招聘信息上要求的,所以为了更好的待遇,我们还是需要花时间去掌握的,毕竟谁也不会跟钱过不去. 接下来, ...

  9. UI自动化测试工具探索:Airtest

    Airtest 简介 Airtest Project是网易游戏内部工具团队开发并开源的一款UI自动化测试工具,据说曾经获得谷歌力挺. AirtestIDE 是一个跨平台.多端(Windows.web. ...

最新文章

  1. uva-10400-搜索
  2. pandas使用tabulate函数将pandas dataframe以类似于plsql表格的方式打印出来(printing dataframe in tabular format)
  3. python【力扣LeetCode算法题库】10-正则表达式匹配
  4. Reverse Integer
  5. 粗浅看 java反射机制
  6. Swift傻傻分不清楚系列(六)集合类型
  7. 10-2 5-2 查询至少生产两种不同的计算机(PC或便携式电脑)且机器速度至少为133的厂商 (20 分)(思路加详解+测试用例)
  8. 小程序 模糊查询_[轻应用小程序]如何使用信息查询功能?
  9. 编译php,ldap问题
  10. 三维点云学习(4)4-Hough Transform
  11. iptables和SELinux漫谈
  12. 长文详解Attention、Seq2Seq与交互式匹配
  13. UVa 10082 WERTYU
  14. MacBook如何设置双面打印
  15. 解决mescroll固定位置上拉加载无效果?真的只需一步
  16. intouch sqlserver_intouch 连接modbus 。转存数据库方法
  17. 阻止计算机访问注册表,电脑中毒了,注册表打不开了,提示注册表已被管理员禁止,这该怎么办...
  18. 圣诞之歌:クリスマス タイム和My Baby Grand~ぬくもりが欲しくて~ ZARD
  19. [转]在低调中修炼自己
  20. PCB设计之阻抗不连续性,如何解决?

热门文章

  1. wps分享为什么要登入_【知识分享】柴油为什么要加氢处理?
  2. perl java_与Perl相比Java性能问题
  3. mysql字符乱码百度_如何解决MySQL字符集乱码问题
  4. datetime unix php,PHP基于DateTime类解决Unix时间戳与日期互转问题【针对1970年前及2038年后时间戳】...
  5. WPF 实现ScrollViewer的垂直偏移滚动跳转
  6. 动态规划(0-1背包)--- 改变一组数的正负号使得它们的和为一给定数
  7. 小朋友排队|2014年蓝桥杯B组题解析第十题-fishers
  8. 在商城系统开发时遇到商品的多级分类,为增强扩展性,子类可以任意添加,此类问题数据库如何设计...
  9. 动态给H5页面绑定数据,基本万能无错误!
  10. linux上安装memcached步骤