本人喜欢写各种脚本来提高工作效率。前两天遇到一个需要在测试中模拟手机手势的问题,于是在网上大概搜索了一下,大部分这方面的脚本都是利用adb 的 shell swipe 命令来实现的。那我果断用PowerShell实现了一把,下面就把具体的实施过程分享一下。
1.一条命令模拟手势
adb shell input swipe 300 600 300 100
就这么简单,哈哈哈
先来分析下这条命令。
- adb - 这是安卓开发的时候用来调试机器的一个工具(做安卓开发的同学不要喷我,先让我装一会儿),不知道的童鞋自行度一下(其实安装了安卓开发环境就有了)
- shell input - 我不说也明白了吧,差不多就是说输入命令了
- swipe - 输入什么命令呢?这个swipe命令。英文好的童鞋就知道这是啥意思了。就是你手机上左滑,右滑,上滑,下滑的各种动作(嗯,怎么感觉像开车)。说人话:就是向你的手机发送一条滑动屏幕的命令。
- 300 600 300 100 这是滑动的起始坐标,(300,600)大概就是手机屏幕靠下的位置然后biu的一下滑到(300,100)大概就是手机屏幕靠上的位置了。总得来说就是从下往上滑了一下
然后我们就看到真的滑到了下一条视频。
那么我们到这里就结束了么?当然不是,我们刷的是快手,可不是我自己快。
2. 一条命令的背后
我们怎么才能让这一条命令好用呢?
a. 把手机连上电脑
什么你觉得这不算问题?不要用你的直男思维来思考问题。不要用你的专业眼光来看待所有人,人人都是小白成长起来的。搞安卓开发的也许有无数种方式连上手机,但是你能确定你用的不就是无线和有线两种吗?
大家,不要喷,千万不要喷哈~~写代码适当放松一下
b. 打开手机调试模式
每个手机都有不同的姿势调试模式,网上有教程,baidu一下就知道了。有的手机要先打开开发者选项,然后再打开调试模式,然后你才能在后面的步骤中运行那一条命令 囧。要是你用的苹果机,请移步,程序员老公没有用肾机的权利。鄙人用的小米,还是比较老的那种。
c.安装adb
这个当然就是安卓机的开发工具了,可以去安卓官网。也可以去其它地方下。
官网下载链接: https://developer.android.google.cn
下个 Android Studio 基本上就啥都有了,嗯,Visual Studio里面貌似也可以装。细节不用问我,本人还不是移动端开发。安装完后一般都会在这么个目录找到adb工具:
<安装目录>\Android-Sdk\platform-tools\adb.exe
如果你在命令窗口里面输入adb提示找不到这个命令,那么就是还缺个环境变量。
d.测试手机是否链接成功
输入如下命令,如果能看到有设备,那么恭喜你离成功又近了一步。
e. 测试手势命令
打开手机的快手,输入如下的命令,然后看一下视频是否切换到下一条。如果切换了,那么恭喜你成功了。
3. 如何让手机自己自动化
到现在位置我们已经打通了薅羊毛的任督二脉,接下来我们就看看怎么让所有的过程串起来。
新建一个test.ps1文件,输入如下的内容,然后保存,不多哈,一共20行代码,尽量的注释了应该看的懂。
$count=[int](Read-Host -Prompt "你希望运行多少个测试:" -ErrorAction:Stop) #这里只考虑了次数,也可以考虑时间,或者做成无限运行就不需要这个了。当然目前为了演示效果加了这个。
$index=1
$measure=Measure-Command -Expression {
do { #根据用户输入的次数循环执行划屏操作。
adb.exe shell input swipe (Get-Random -Minimum 200 -Maximum 300) (Get-Random -Minimum 500 -Maximum 600) (Get-Random -Minimum 200 -Maximum 300) (Get-Random -Minimum 80 -Maximum 120) #加入了随机数
$sleep=(Get-Random -Minimum 5 -Maximum 40)
if($count -gt 0) #判断有没有达到用户输入的次数
{
if ($($count -1) -gt 0) {
Write-Host "执行第 $index 次,剩余 $($count -1) 次, 距离下次运行还有 $sleep 秒"
Start-Sleep -Seconds $sleep
}
else {
Write-Host "执行第 $index 次,剩余 $($count -1) 次" #最后一次直接显示进度,不等待
}
}
$index++
} while (--$count -gt 0)
}
Write-Host "运行结束 ^_^ ,本次运行用时:",$measure.TotalSeconds," 秒"
打开powershell窗口(按键盘上的windows键,输入powershell,然后点击powershell),然后运行你写的脚本
好了,到现在位置我们就可以让手机插在电脑上,运行自动化测试了。
5. 作业
当然得留点作业了,赚钱的好机会,不动手试试怎么行呢。
- 动手自己实践一下
- 思考一下如何吧点赞和其它的积分也赚了
- 试试如何让手机自己打开App,刷完,关闭APP,如此循环
- 如何多个手机同时薅羊毛
- 一定要把你成功的果实分享出来让我们一起薅羊毛
总结
使用Android的ADB 工具可以在开发模式下模拟各种手势,可以用于自动化测试。
- PowerShell:如何一行代码(脚本)刷抖音快手视频?老司机教你如何薅羊毛–【多线程版】
- Powershell:使用PSCustomObject,序列化执行结果
- PowerShell: 为啥大神们的PowerShell窗口还有智能提示?因为他设置了这个
- PowerShell: 远程管理除了知道Invoke-Command,还应该掌握Enter-PSSession这个命令
- PowerShell: RDP管理服务器效率低下,使用invoke-command同时维护多台服务器不再难
- PowerShell:用原生PowerShell就能解决访问web资源时的ADFS认证问题
- PowerShell:不需要学Python,使用powershell也能处理Excel提高办公效率
- PowerShell:作为一个PowerShell菜鸟,如何快速入门?掌握这些就够了