一、什么是持续集成?
(1)Continuous integration(CI)
持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽快地发现集成错误。许多团队发现这个过程可以大大减少集成的问题,让团队能够更快的开发内聚的软件。而jenkins就是持续集成其中的工具之一。
(2)monkey与Jenkins千丝万缕
身为一个测试人员我们最常用的集成工具就是jenkins了,而monkey这款工具我们也常常用来检测做app的冒烟测试和稳定性测试,如何我们将写好的monkey的脚本与jenkins结合,让jenkins来管理我们的monkey的测试脚本,以及设定定时任务,那我我们就可以在jenkins设置定时任务,自动去检验app的稳定性,自动将错误信息通过集成邮件的方式,发送给开发人员。这样可以大大节省测试时间以及提高测试效率。
(3)在jenkins进行真机的配置
很多情况下我们选择真机做monkey测试,结果更加可靠。下面,我们看一下如何用jenkins搭配真机进行monkey测试。在配置jenkins之前,我们需要确保PC端已经配置好了android adb的环境变量。
定时任务的设置
一、定时构建语法
* * * * *
(五颗星,中间用空格隔开)
第一颗*表示分钟,取值0~59
第二颗*表示小时,取值0~23
第三颗*表示一个月的第几天,取值1~31
第四颗*表示第几月,取值1~12
第五颗*表示一周中的第几天,取值0~7,其中0和7代表的都是周日
1.每30分钟构建一次:
H/30 * * * *
2.每2个小时构建一次
H H/2 * * *
3.每天早上8点构建一次
0 8 * * *
4.每天的8点,12点,22点,一天构建3次
0 8,12,22 * * *

在jenkins构建的案例

参数化构建
由于monkey测试需要进行一系列参数配置,所以我们可以在jenkins的General中配置一些构建过程中需要使用的参数。例如,monkey运行的参数evencount,seed,hrottle, pct-touch, pct-motion ,pct-appswitch ,pct-rotation都可以在此进行输入配置,可以更加灵活的控制monkey测试。



构建
采用真机进行monkey测试,需要通过adb命令来启动monkey测试。所以需要在构建步骤中增加execute shell选项。然后在选项中,添加执行monkey测试的脚本。脚本主要执行两项任务,首先将构建的包安装到手机端,然后启动monkey测试。脚本中可以使用前面配置的参数,这样方便测试者依据不同的测试需求,构建不同的测试任务。
命令行执行monkey测试,基本语法:
adb shell monkey [options] <event-count>
event-count: 为必选参数,用于指定monkey测试过程中模拟的用户事件数量。
[options]主要参数如下:
-p packageName :该参数指定需要执行monkey测试的包名。如果需要测试多个包,需要添加多个-p参数,每个参数后带一个包名。
-s seed :该参数指定伪随机生成器的seed值。
-v: 指定monkey测试结果中输出log信息的详细程度,总共分为三个级别。默认级别是0:-v,测试结果中只包含启动信息,测试完成信息和最终结果信息。级别2:-v -v,打印测试过程中执行的一些信息,如模拟的用户点击事件。级别3:-v -v -v,打印最详细的信息。
--hprof:在事件序列前后立即生成profiliing report
--throttle milliseconds:指定monkey模拟事件的前后间隔时间。通过这个选项可以减缓monkey的执行速度。如果不指定该选项,monkey模拟事件将会持续执行,事件间不会有停顿。
<percent>--pct-touch:后面接触摸事件百分比
<percent>--pct-motion:调整手势事件百分比
<percent>--pct-appswitch:后面接应用启动事件百分比
<percent>--pct-rotation 后面接屏幕旋转事件的比例值
--ignore-crashes: 该参数指定monkey测试过程中是否忽略crash。如果设置了该参数,测试过程中如果发生了crash,monkey测试会继续执行。否则测试过程中遇到crash,停止测试。
--ignore-timeouts:该参数指定monkey测试过程中忽略ANR。如果测试过程中出现了ANR,将忽略此现象,继续执行monkey测试。
-ignore-security-exceptions:在设置此选项后,当应用程序发生任何权限错误(如启动一个需要某些权限的Activity)时,monkey将继续运行直到计数完成。如果不设置此选项,monkey遇到此类权限错误将停止运行。


测试小结
jenkins与monkey结合能大大提高了测试的效率,其实还可以结合python,来统计app内存泄漏,耗电测试,cpu的利用率等等问题。
网友评论