手机自动化测试IDE-----Airtest实战篇

Python进阶者
• 阅读 1771

大家好,我是IT共享者,人称皮皮。上篇文章我们介绍了

手机自动化测试IDE ----- 手把手教你用Airtest模拟器来连接手机,这篇我们来讲讲Airtest实际操作方法,一起来看看吧。

前言

前面我们讲到了Airtest的基础知识,手机自动化测试IDE-----Airtest基本操作方法手机自动化测试IDE ----- Airtest的安装和IDE控件详解,今天我们就来说说Airtest的具体操作方法吧,让我们轻松实现软件自动化,真正解放我们的双手吧。

基本操作

我们就是用我们说的跨平台API模块中的方法来操作我们的APK,下面来看下吧。我们先点击Touch,然后框选App所在的区域,如图:

手机自动化测试IDE-----Airtest实战篇

这里框选好了后就会在脚本编辑器中自动生成代码了,如图:

手机自动化测试IDE-----Airtest实战篇

这里就相当于点击了拼多多这个App了。当然这里只是给大家讲了一个例子,我们真正来做开发时,可以选择一些短视频软件,比如抖音,微视,快手等下面我们就以抖音为主来讲解下具体操作流程。

1.点击目标APP并等待界面加载完毕

我们要做自动点击肯定不能只是点击App就完事了啊,还有每个APP启动后的时间都不固定,我们肯定得等APP启动完毕之后我们才可以进行下一步操作,那么这样怎样做呢?我们以短视频软件微视为主,下面请看:

手机自动化测试IDE-----Airtest实战篇

我们先点击微视,打开微视有两种方法,如下:

1).根据图像识别来打开

上面的这种方法就是根据图像识别来打开的。使用这种方法你要打开的APP必须在当前页,不可在其它页,否则搜索不到。

2).根据包名打开

这里我们首先需要获取到所有的包名,然后找到微视的包名,如下;

dev=device()  # 先获取到当前设备对象,即是Android对象

手机自动化测试IDE-----Airtest实战篇

喜欢哪种方法就用哪种方法。建议用第一种,因为有时候包名太多不好找。

2.点赞评论关闭

由于刚刚微视崩溃了,所以这里采用抖音短视频,这里我们需要将需要打开的APP的图像截取下来,先等到它在这篇区域出现然后点击才能进行其它操作 ,如下:

手机自动化测试IDE-----Airtest实战篇

然后就是输入评论,输完后关闭评论,最后退出。

手机自动化测试IDE-----Airtest实战篇

这样我们就实现了打开抖音视频并且给视频点赞和评论,然后关闭抖音回到桌面。这里有个小技巧分享给大家,就是大家在点击某一个区域的图像时记得先Wait一下哦,因为如果Wait的话如果你直接点击的话就会报错了。

3.截屏加滑动屏幕

如果想要捕捉操作截图的话,可以使用Snapshot进行截图,记得指定绝对地址哦。如下:

snapshot(filename=r'C:\Users\Administrator\Desktop\test.jpg',msg='截图成功')

手机自动化测试IDE-----Airtest实战篇

成功截图了;然后我们给它添加个滑动视频的动作,因为我们不知道我们鼠标此时所处的位置的坐标的值是多少,所以我们需要开启Airtest中的一项重要功能----实时坐标显示。设置方法如下图所示:

手机自动化测试IDE-----Airtest实战篇

第二个代码补全对于电脑配置好的可以开启,电脑配置太差不建议开启。

手机自动化测试IDE-----Airtest实战篇

可看到鼠标的坐标了。然后我们需要使用Swipe的帮助,有了它我们可以进行滑动屏幕的操作了,如下:

手机自动化测试IDE-----Airtest实战篇

这行代码是我通过截取视频中两个地方的图像然后才得到的方法参数,这里是向量位移的操作。我们可以看到我们进行了这么多操作,但是都是一些图片,而且图片有的大有的小,看着不美观,我们其实可以将这些图片转换为代码,如下:

手机自动化测试IDE-----Airtest实战篇

只需选中图片代码模式切换即可,我们所截取的图片都在这个文件里,大家可以去看看就知道了。其实这个就是PY文件里的内容。

4.不断滑动屏幕

那么重点来了,我们该如何将它重复一直滑动了,很简单,死循环,顺便给它加个随机延时。

import random

wait(Template(r"tpl1594203055954.png", record_pos=(0.356, 0.562), resolution=(1080, 2340)))
sleep(1)

touch(Template(r"tpl1594203066034.png", record_pos=(0.354, 0.564), resolution=(1080, 2340)))
sleep(2)
exists(Template(r"tpl1594203382253.png", record_pos=(0.415, 0.139), resolution=(1080, 2340)))
sleep(2)
snapshot(filename=r'C:\Users\Administrator\Desktop\test.jpg',msg='截图成功')
sleep(2)
assert_exists(Template(r"tpl1594203920118.png", record_pos=(0.411, 0.33), resolution=(1080, 2340)), "请填写测试点")

while True:#死循环,不断滑动短视频
    aa=random.randint(1,5)
    swipe((700,1950),(700,300))
    sleep(aa)

我们也可以在这个死循环里加入其它的操作,比如点赞,评论啥的,上面我都有说到,大家可以结合试试。

总结

通过对Airtest框架的学习,我们就能轻松做出短视频的点赞评论滑动以及其它功能,很多互粉的小盆友需要的正是这种神器了。

我是皮皮,如果觉得文章不错,记得三连噢,大家有问题也可以点击下方的图片,加我好友,交个朋友也好呀~

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Python进阶者 Python进阶者
3年前
手机自动化测试IDE-----Airtest基本操作方法
大家好,我是IT共享者,人称皮皮。这篇我们来讲讲手机自动化测试IDEAirtest。前言前面我们讲到了Airtest的界面和安装技巧,今天我们就来说说Airtest的具体操作方法吧,让我们轻松实现软件自动化,真正解放我们的双手吧。一、基本API介绍我们在做自动化脚本的时候,每个生成的脚本文件会给我们自动生成一些代码,如图:这里所导入的模块其实就是跨平台的
Irene181 Irene181
3年前
手机自动化测试IDE-----Airtest基本操作方法
大家好,我是IT共享者,人称皮皮。这篇我们来讲讲手机自动化测试IDEAirtest。前言前面我们讲到了Airtest的界面和安装技巧,今天我们就来说说Airtest的具体操作方法吧,让我们轻松实现软件自动化,真正解放我们的双手吧。一、基本API介绍我们在做自动化脚本的时候,每个生成的脚本文件会给我们自动生成一些代码,如图:这里所导入的模块其实就是跨平台的
Irene181 Irene181
3年前
手机自动化测试IDE-----Airtest实战篇
大家好,我是IT共享者,人称皮皮。上篇文章我们介绍了,这篇我们来讲讲Airtest实际操作方法,一起来看看吧。前言前面我们讲到了Airtest的基础知识,,,今天我们就来说说Airtest的具体操作方法吧,让我们轻松实现软件自动化,真正解放我们的双手吧。基本操作我们就是用我们说的跨平台API模块中的方法来操作我们的APK,下面来看下吧。我们先点击To
Karen110 Karen110
3年前
​一篇文章总结一下Python库中关于时间的常见操作
前言本次来总结一下关于Python时间的相关操作,有一个有趣的问题。如果你的业务用不到时间相关的操作,你的业务基本上会一直用不到。但是如果你的业务一旦用到了时间操作,你就会发现,淦,到处都是时间操作。。。所以思来想去,还是总结一下吧,本次会采用类型注解方式。time包importtime时间戳从1970年1月1日00:00:00标准时区诞生到现在
Stella981 Stella981
3年前
Docker 部署SpringBoot项目不香吗?
  公众号改版后文章乱序推荐,希望你可以点击上方“Java进阶架构师”,点击右上角,将我们设为★“星标”!这样才不会错过每日进阶架构文章呀。  !(http://dingyue.ws.126.net/2020/0920/b00fbfc7j00qgy5xy002kd200qo00hsg00it00cj.jpg)  2
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
暗箭伤人 暗箭伤人
1年前
【www.ithunter.club】 20230922下午
不容易的2023年,我们一起努力【www.ithunter.club】(2023092208:00:00.8872062023092216:00:00.887206)1.人事招聘专员数名(可选远程或入职)2.招聘向坐标东京Yahoo、Shift、L
Python进阶者 Python进阶者
11个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这