前端时间接触了几款看新闻即可赚钱的app(趣看点、东方头条等),运用Ui Automator做了一个可以自动化刷币App,你只需要安装该App,点击App上的启动脚本按钮,即可开启自动化刷币操作。这篇文章主要是介绍刷币应用涉及所需要的一些知识和实现思路。
该刷币应用需要运行在已经Root过的手机上,如果你有闲置的手机,装上应用即可每天自动进行自动化刷币,如果想停止手动杀掉进程即可。
自动化测试
Android有很多自动化测试工具Monkey、MonkeyRunner、Robotium、Ronaorex、Appium、UI Automator、TestBird,这里我选用的是Ui Automator2.0版本,这款工具是谷歌发布的,提供了一组API来构建UI测试,用于在用户应用和系统应用中执行交互,适合编写黑盒自动化测试,其测试代码不依赖于目标应用的内部实现详情,要求Android 4.3(API >= 18)
官方文档链接 https://developer.android.google.cn/reference/android/app/UiAutomation
基本使用方法
- 利用uiautomatorviewer工具(位于%android-sdk%/tools/bin目录中),查看和分析Android设备上当前显示的UI组件和布局层次结构,查找自己需要操作的控件信息
- 新建Android项目,添加依赖androidTestCompile ‘com.android.support.test.uiautomator:uiautomator-v18:2.1.2’,在androidTest模块下书写自动化代码
|
|
- 运行测试用例
通过android studio运行测试用例时,生成的脚本命令可以看出来,Ui Automator自动化运行的过程其实就是运行一个测试Apk的过程。我们可以在手机上安装Android studio生成的apk文件app-debug-androidTest.apk,然后执行adb命令行adb shell am instrument -w -r -e debug false -e class com.min.money.test.AutoScript com.min.money.test/android.support.test.runner.AndroidJUnitRunner,即可运行自动化测试脚本。
刷币应用
这里主要介绍下实现此刷币应用的一些思路和核心实现代码,如需源码可以联系我。
实现思路
- 书写自动化刷币脚本,脚本执行要像真人操作一样,控件点击、页面停留时间、页面跳转都需要做随机操作,还需要兼容运行过程中各种异常情况如忽然有一个推送弹出出现,脚本的运行时间也需要做限制(07:00-23:00),如果你想多个手机一起刷还需考虑ip代理,这些操作都是为了防止被对方后台反欺诈系统发现
- 在android-studio gradle窗口点击运行assembleAndroidTesttask或直接执行gradle assembleAndroidTest,生成自动化脚本apk文件,将生成的测试Apk文件app-debug-androidTest.apk,放入Appassets目录中,命名为auto.apk
- App通过Runtime.getRuntime().exec执行adb shell am instrument -w -r -e debug false -e class com.min.money.test.AutoScript com.min.money.test/android.support.test.runner.AndroidJUnitRunner即可
主要代码介绍
自动化脚本
脚本入口
|
|
基类
|
|
具体实现
|
|
App应用
|
|