如何使用Airtest薅短视频的羊毛

发布时间:2022-01-04 15:54:22 作者:柒染
来源:亿速云 阅读:145

如何使用Airtest薅短视频的羊毛,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

Airtest是网易出品的一款基于图像识别和poco控件识别的一款UI自动化测试工具。Airtest的框架是网易团队自己开发的一个图像识别框架,这个框架的祖宗就是一种新颖的图形脚本语言Sikuli。Sikuli这个框架的原理是这样的,计算机用户不需要一行行的去写代码,而是用屏幕截屏的方式,用截出来的图形摆列组合成神器的程序,这是Airtest的一部分。
  另外,Airtest也基于poco这个U控件搜索框架,这个框架也是网易自家的跨平台U测试框架,原理类似于appium,通过控件的名称,id之类的来定位目标控件,然后调用函数方法,例如click(),swip()之类的方法来对目标控件进行点击或者是操作。
       我使用Airtest而不适用appium主要是因为Airtest环境搭建非常方便,基本上安装后就把所有需要的工具都集成了,包括python和adb,Airtest中的Python和本机的Python是不一样的,所以要在本机运行还需要额外安装Python库:pip install poco。因为Airtest是网易开发的,所以拥有比较友好的文档和教程。
官方文档
Airtest快速上手教程
airtest-ide教程
airtest教程

这次要写的一个例子是抖音极速版赚金币的简单薅羊毛例子,非常简单,主要是为了使用Airtest。

 

安装Airtest

https://airtest.netease.com/
下载对应平台的安装包,安装完后正常启动即可

如何使用Airtest薅短视频的羊毛  
 

连接安卓模拟器

如何使用Airtest薅短视频的羊毛  

打开Airtest,在右侧点击刷新ADB,会出现已经连接到电脑的机器(一定要打开USB调试模式),如果没有的话,就重启ADB,再进行刷新。出现连接机器后,在connect后面的下拉列表出现三个选项:Use javacap、Use ADB orientation、Use ADB touch。为了不出现莫名其妙的问题,最好全部选中,然后点击connect连接,就能显示出系统桌面。

如何使用Airtest薅短视频的羊毛  

Airtest在执行的过程中,会向手机安装几个软件:Yosemite(一种输入法,主要是执行输入文字)、pocoservice-debug(执行Airtest发来的命令),在连接真机的过程中,报了一个错误Failure [INSTALL_FAILED_OLDER_SDK],手机版本太低,不能安装数据包。我有一个古董机,512运存的,Android版本是4.3,所以测试的时候一定要注意Android版本哦

写代码

这一篇我们主要不是讲Airtest教程,所以不进行详细讲解。这里我推荐一个非常好的学习网站--哔哩哔哩,就是这个二次元编程网站。上面有很多详细的视频教程,花一个小时看一下,再把官方教程过一遍,就差不多了。我们就以实例代码进行简单讲解。
代码如下:

from airtest.core.api import *
from airtest.cli.parser import cli_setup
from poco.drivers.android.uiautomation import AndroidUiautomationPoco


class DouYin:
    def __init__(self):
        if not cli_setup():
            auto_setup(__file__, logdir=True, devices=[
                "Android://127.0.0.1:5037/emulator-5554?cap_method=JAVACAP&&ori_method=ADBORI&&touch_method=ADBTOUCH"
            ])
        self.poco = AndroidUiautomationPoco(use_airtest_input=True, screenshot_each_action=False)
        size = self.poco.get_screen_size()
        self.width = size[0]
        self.height = size[1]

    def VisitHome(self):
        self.poco(text="抖音极速版").click()

        # 进入短视频页面后,查找推荐元素是否存在
        self.poco(name='com.ss.android.ugc.aweme.lite:id/amh').wait(30)

        # 找到推荐元素表示已经进入首页,但是视频加载需要一些时间,这里等待5秒
        sleep(5)

        try:
            # 初次打开可能会出现青少年模式选项
            self.poco(text='我知道了').click()
        except:
            pass

    def LoopMove(self):
        start_pos = (0.5 * self.width, 0.8 * self.height)
        end_pos = (0.5 * self.width, 0.2 * self.height)
        while True:
            # 从底部滑到上面,切换视频
            swipe(start_pos, end_pos, duration=1)

            # 每个视频观看20秒
            sleep(20)


if __name__ == '__main__':
    douyin = DouYin()
    douyin.VisitHome()
    douyin.LoopMove()
 

在使用py脚本运行时,如果是Linux或者macOS的用户,请注意看运行结果是不是有报错,提示adb没有运行权限。

如何使用Airtest薅短视频的羊毛  

官方文档已经给我们提示过了

如何使用Airtest薅短视频的羊毛  
cd /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/airtest/core/android/static/adb/mac
chmod +x adb
 

主要是auto_setup中连接设备的配置,官方文档中这样解释

如何使用Airtest薅短视频的羊毛  

我们在连接中增加了参数设置cap_method、ori_method、touch_method,分别对应工具上的三个选项,不设置连接会出问题。

get_screen_size获取屏幕大小,这样对于不同的设备,不同的分辨率,滑动距离都是一样的。
poco(text="抖音极速版").click()搜索屏幕上的“抖音极速版”元素,点击打开。要保证抖音在首页显示,如果不在首页要做滑动处理。
sleep(5)视频加载需要时间,所以这里我们静候5秒
swipe(start_pos, end_pos, duration=1)执行滑动操作,设置起点和终点以及滑动时间

然后就可以一直薅羊毛了,各种短视频都可以,当然安装完APP后,先手动打开登陆一下软件更好,这样我们的自动化操作就不需要做这些步骤了。

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。

推荐阅读:
  1. php开启短标签
  2. 短域名原理

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

airtest

上一篇:Shader面板上常用的内置Enum有哪些

下一篇:JS的script标签属性有哪些

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》