Appium+Python自动薅羊毛

前段时间,本羊毛客分享了用selenium和Python在电脑端,浏览器实现自动签到等薅羊毛脚本任务,现在手机端APP也可以实现了,这次是用appium。因为本羊毛客只有安卓手机,所以本文也是用安卓举例的,苹果iPhone没有测试,但思路都是差不多的,appium在网上的教程很多。

使用appium自动化安卓手机APP测试,需要先安装和配置安卓环境。看的书或一些教程写的是让你安装完整的Android studio,然后配置,本羊毛客因为电脑c盘不是很多,而且倾向于安卓真机,不用模拟器,所以没有安装完整的Android Studio,只装了安卓sdk,其实也是分别下载的,必须有adb(platform-tools文件夹里面)。

环境变量配置网上也有教程,本羊毛客犯了错很多次,最后终于搞清楚了,下面是我的文件夹,Android文件夹和android-sdk文件夹是自建的,里面的其他文件夹是官网上下载后拖进去的,还需要将aapt和zipalign复制一份,放到其他文件夹,脚本跑的时候不报错就行。

对了,appium使用环境还要安装java,这个在腾讯安全管家里面有,小伙伴要装的是开发环境。Java安装后,也需要配置环境变量。整个测试环境弄好后,Windows命令行下adb,java命令有效,就成功了一大部分。还要安装appium desktop。接下来说说脚本,以支付宝为例。

12月有支付宝到店付,活动页面中间有个红包,可以一直点,点10次,休息3秒,得翻倍豆或优惠券等等。这次的目的就是解放双手,手机插上电脑,就可以一直自动点了。先将安卓手机打开开发者模式,usb调试,usb安装(小米手机需要手动打开。Appium会自动在手机上装一个appium app)等,命令行下输入

adb devices -l就可以列出手机型号。

打开appium desktop,转到Python操作,先安装pip install appium-python-client,开头这样写:

from appium import webdriver

desired_caps = {

“deviceName”:”Redmi_4A”, #手机型号

“platformName”:”Android”,

“automationName”:”appium”,

“appPackage”: “com.eg.android.AlipayGphone”, #支付宝包名

“appActivity”: “com.eg.android.AlipayGphone.FastStartActivity”, #支付宝启动名

“noReset”: “True” #不清除数据

}

运行上面的代码就可以在手机上自动打开支付宝,再通过定位操作,一步一步转到活动页面,click或者touch来实现自动点击红包按钮。Appium的定位和selenium的定位差不多,都是元素定位,如何看元素?本羊毛客用的简便办法是,在appium desktop端右上角有个放大镜图标,点一下,打开一个新建会话,在json框里也输入上面的手机和app配置,保存,启动,就可以把安卓手机投屏到电脑上了。然后点app,点按钮做一些操作,就能找到相关元素了。再把元素按语法写到Python脚本里面,运动的时候就会自动操作。

Appium也有录制功能,自动生成命令,运行的时候就自动跑脚本了,看似不用Python,其实,这样的命令有很多错误,不严格,要写真的脚本,还是需要Python来。但是,简单的操作,比如支付宝12月生活节的点点点,就一直一个动作,就用appium也可以自动薅羊毛。Appium有一个缺点,就是比较慢,看上面的投屏截图都不是自动更新,要手动刷新,想要能自动刷新的,小伙伴可以看看另一篇文章介绍网易开发的airtest。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注