耍猴第一式 - 隐藏命令
monkey隐藏的两个命令:
1 |
|
monkey还有一个隐藏的命令那就是:
1 |
|
一般monkey测试都是随机的测试事件,假如我们需要测试某一个特定的场景,普通的命令很难办到,这是就是需要自定义脚本这个命令了,它的使用方式也是很简单方便的,只要我们按照monkey的脚本规范写好脚本,之后将它保存到手机中,然后运行monkey的时候使用-f 命令指定脚本就行。
耍猴第二式 - monkey自定义脚本格式
1、虽然,Google 官方并没有提供对 MS 详细讲解的 API 文档,但是我们是可以通过源码来分析出 MS 支持的API的。
2、MS 的源码文件是:MonkeySourceScript.java
3、monkey的源码MonkeySourceScript.java类中有一段关于monkey脚本规则的描述MonkeySourceScript.java有兴趣的同学可以去看一下这个源码,这里以 5.1.1 为例子,进行讲解,其实这一块的代码变动非常的少,找一个版本了解即可。我们看一下源码(33行到46行)对j脚本规则描述。
脚本规则的描述
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
解释他们的意思
1 2 3 4 5 6 7 8 9 10 11 12 |
|
知道了monkey脚本书写的基本格式,在来看一眼monkey常见脚本API
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
|
在源码中,所有我们上面介绍的 API 都是以一个 static final
的形式被声明。这里简单就 LaunchActivity 的方法的源码进行讲解,其他的 API 其实也大同小异。
LaunchActivity 的方法的源码讲解
1、浏览器输入源码地址,找到静态字符串LaunchActivity,如图:
2、将鼠标定位到静态字符串LaunchActivity通过ctrl(command)+🖱️左键我们可以定位到方法的位置。大约在597行,如图:
3、将鼠标定位到LaunchActivity的方法通过ctrl(command)+🖱️左键我们可以进入到方法代码。大约在597行,如图:
4、如上边LaunchActiviity 方法源码所示,LaunchActiviity 会以数组的形式接收两个参数,分别表示 PackageName 和 Activity 的 ClassName,下面具体对应的实现,我们就不细看了。再参照上面介绍的 API ,就可以很清晰的定位出方法和参数的含义了。
5、有兴趣的小伙伴们可以通过以上步骤一一查看哪些方法的API。
耍猴第三式 - monkey 脚本的实例
1、Monkey脚本主要包含两部分,一部分是头文件信息,一部分是具体的monkey命令。
2、按照2.1的脚本描述规则我们来编辑monkeyscript,如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
以上脚本主要操作过程:
1、点击夜神模拟器的应用中心
2、进入应用中心,点击搜索框
3、在搜索栏输入:hongge
4、结束
注意这里分别使用了 DispatchPress 和 DispatchString 来分别使用,就是为了做演示,实际你可以依赖场景选择使用的 API 。而其中涉及到坐标点的问题,这个在后面会讲解如何获取控件的坐标点。
执行脚本
1、编写好脚本,保存为monkey.script 文件。
2、通过 adb push 将其上传到待测试的设备中。要push到sdcard文件夹中(这里一夜神模拟器为例),如图:
1 |
|
3、查看有没有push到设备中,从下图可以看到成功的push进去了。如图:
4、有兴趣或者不相信的可以查看文件内容,如图:
5、然后通过 monkey -f
执行此脚本,例如下面执行 1次。
1 |
|
6、效果截图,在应用中心的搜索栏里输入了:hongge。
7、执行完成之后,可以在控制台,看到输出的 Log 信息。
8、我们一起看一下执行过程小视频,小伙伴们都看到了吧,猴子按你的指令在夜神模拟器上开始表演,如下:
小结
1、通过adb pull和adb push 手机与电脑之间传输文件
(1)将手机卡中的某个文件复制到电脑
1,手机连接电脑后,在命令行输入 adb devices,获取到设备序列号后说明手机已经和电脑连接成功。
2,输入: adb pull 手机存储路径 电脑路径
adb pull /sdcard/xxx /Users/xxxx/xxx.tx
(2) 从电脑端向手机复制文件
1,输入: adb pull 电脑路径 手机存储路径
adb push /Users/xxxx/xxx.txt /sdcard/xxx
2、注意事项(此处有坑要留心注意哦!!!)
头文件代码书写注意“=”两边预留空格,否则会出现如下报错。
java.lang.NumberFormatException: Invalid int: ""
3、好了,今天关于耍猴就到这里了!哈哈!最后祝大家都成为耍猴高手!!!
【下面是我整理的2023年最全的软件测试工程师学习知识架构体系图】
一、Python编程入门到精通
二、接口自动化项目实战
三、Web自动化项目实战
四、App自动化项目实战
五、一线大厂简历
六、测试开发DevOps体系
七、常用自动化测试工具
八、JMeter性能测试
九、总结(尾部小惊喜)
生命不息,奋斗不止。每一份努力都不会被辜负,只要坚持不懈,终究会有回报。珍惜时间,追求梦想。不忘初心,砥砺前行。你的未来,由你掌握!
生命短暂,时间宝贵,我们无法预知未来会发生什么,但我们可以掌握当下。珍惜每一天,努力奋斗,让自己变得更加强大和优秀。坚定信念,执着追求,成功终将属于你!
只有不断地挑战自己,才能不断地超越自己。坚持追求梦想,勇敢前行,你就会发现奋斗的过程是如此美好而值得。相信自己,你一定可以做到!