Android中如何做Monkey测试

请划出转载的努力挖掘!

关键

嘲弄的引见

嘲弄是命令行器,可以在仿效者或使臻于完善容易中运转,运用Android调试桥(ADB)来运转它,向零碎发送伪随机用户事情流,对功劳的适用举行应力测试。,可争辩获取的日记通讯举行维修状态。。

猴的根本适用

  1. 衔接容易:adb devices 检查容易假设成衔接
  2. adb shell 进入壳交流
  3. 容易成立要运转的软件包或apk(或许经过检查data/data下的软件包):亚行成立APK:在成立的APK途径下,运用ADB install **.apk
  4. 表演monkey测试命令:monkey -p your.package.name -v 500

当成立的APK的包名不察觉时,用ADB命令检查包的称呼:

  1. adb logcat|grep START
  2. 翻开已成立的APK,检查呈现的ActuviyMeor干练的人通讯,cmp=name,如此称呼是翻开的APK的包名。。

运用嘲弄命令

-help   列出简略用法

-v      功能:命令行上的每个V将补充物反应通讯的程度。。
Level0(默许),更开端、测试抛光和终极水果只给予较小地的通讯。。
一级,给予更特点的测试通讯,事情通讯独一接独一地发送到作战。
二级,给予更多通讯来设置,诸如在测试中选择或未选择的作战通讯。
例:
adb shell monkey -v 10
adb shell monkey -v -v 10
adb shell monkey -v -v -v 10

-s 
功能:伪随机数位产生器的种子值。以防再次以平等的的种子值运转嘲弄,将产生平等的的事情序列。。
例: adb shell monkey -s 12345 -v 10 

--throttle 
功能:在事情经过拔出使坚固或稳固时期(手写本)推延,你可以运用如此设置来慢的嘲弄的速率。,以防未装设此参量,事情经过将不会有究竟哪个延误。,事情将以感光快的的速率产额。。
例: adb shell monkey –throttle 300 -v 10
注:经用参量,它通常设置为300手写本。,引起是使臻于完善用户作用大概300手写本摆布。,所以此处它通常设置为300手写本。。

-p 
功能:以防装设独一或多个记载包,嘲弄只容许号召这些包做成某事作战。以防适用需求号召这些包,诸如选择CONTAC,您需求装设这些包。以防您不装设究竟哪个包,嘲弄将容许零碎启动领地包的作战。。装设多个包,运用多P,-p以后的包名。
例: adb shell monkey -p com.android.browser -v 10 

-c 
功能:以防装设独一或多个类别,嘲弄只容许零碎启动这些一般的中列出的作战。。以防不装设究竟哪个类别,嘲弄将选择SLEE类中列出的作战,和。装设运用多C的多个类别,每个-C装设独一类别。
例: adb shell monkey -p com.paipai.ershou -v 10 -c 

--pct-touch 
功能:对准触摸事情的百分法。(触摸事情是银幕上的倾斜的事情。,在银幕上某处按下并增加的作用。
例: adb shell monkey –pct-touch 100 -v 10
注:经用参量,此参量设置适合于电流测试的A的作用。,诸如,适用80%的作用是触摸。,那就可以将此参量的百分法设置成确切的较高的百分法。

--pct-motion 
功能:对准打举止要求事情的百分法。(打举止要求事情是银幕上某处的倾斜的事情。、燕尾服伪随机使感动事情和起床事情。
例: adb shell monkey –pct-motion 100 -v 10
注:经用参量,要紧的是要当心,使感动事情是垂线滑动。,以下轨迹球打举止要求遏制曲线打举止要求。

--ignore-crashes
功能:通常,当产生冲击或非常时,嘲弄将终止运转。。以防设置了该项,嘲弄将持续向零碎发送事情,直到事情计数抛光。

--ignore-timeouts
功能:事情问加班效果嘲弄的测试。以防设置了该项,嘲弄将持续向零碎发送事情,直到事情计数抛光。

保持健康测试日记真的很简略,命令如次:
adb shell monkey -p com.ihongqiqu -v -v -v 500 > monkeytest.txt

嘲弄测试通讯

在Monkey测试列队行进中可能会呈现顺序崩裂(CRASH)和顺序无解答的使适应(ANR),获取测试的日记通讯,处理bug。

CRASH

飞机失事是飞机失事通讯,顺序运转做成某事非常脱离。 不克不及疏忽崩裂,测试列队行进中呈现崩裂,打断测试,显示冲击通讯和种子通讯

由于种子值抛光BUG的重现:adb shell monkey -p com.feicuiedu.monkeytestdemo -s 1476474162566 -v 1000

ANR

Applicaton Not 解答。

同一在monkey测试列队行进中,以防在ANR气象,确切的的通讯将被输出。,从ANR开端,处理通讯成绩,它也可以被种子付印。。

附:以防在人工把持测试时刻呈现ANR,日记通讯呈如今使感动电话机中:

  1. adb shell
  2. cd /data/anr 切换到容易途径
  3. ls 可以记录 向内是日记通讯

MonkeyScript

MunKcript是嘲弄的手稿程序语言,嘲弄可以使杰出的一组命令。,它可以帮忙我们家抛光燕尾服使坚固或稳固的反复作用。,嘲弄经过本子测试,简略快捷、不需求究竟哪个器,正确的独一使人高兴的人,缺陷是在座标系中。、钥匙缺勤逻辑,等等及其他。。

本子体式

#头用纸覆盖、嘲弄发送音讯的参量把持
type=raw events
count=10
speed=1.0
上面是嘲弄命令
start data >>
DispatchPress (KEYCODE_HOME)
DispatchPress (KEYCODE_MENU)

流传API

流传API的引见,内幕的keycode翻阅键码表

LaunchActivity(pkg_name, cl_name): 启动适用的作战。参量:软件包称呼和启动作战。

螺丝攻(X), y, tapDuration): 仿照惟一的手指点击事情。参量:x,Y是独一把持搭配,TopSimult是点击的持续时期,如此参量可以省略。。

DispatchPress(keyName): 键。参量: keycode

RotateScreen(rotationDegree, 督促) 旋转银幕。 参量:旋转度是旋转的角度, e.g. 1代表90度;生命力指向式的旋转后假设使坚固或稳固。,0用于旋转后回复,非0是使坚固或稳固稳定的。。

DispatchFlip(true/false): 翻开或合上自定义功能键盘。

LongPress(): 2秒长。

PressAndHold(x, y, pressDuration): 仿照长按事情。

DispatchString(input):  输出字母行。

Drag(xStart, yStart, xEnd, yEnd, stepCount): 用于仿照拖放作用。

PinchZoom(x1Start, y1Start, x1End, y1End, x2Start, y2Start, x2End, y2End, stepCount): 仿照缩放举止。

UserWait(sleepTime): 睡一段时期

DeviceWakeUp(): 唤醒的银幕。

PowerLog(power_log_type, test_case_status): 电池通讯的幻影。

WriteLog(): 将电池通讯以书面提出SD卡。

RunCmd(cmd): 运转shell命令。

DispatchPointer(downtime,eventTime,action,x,yxpressure,size,metastate,xPrecision,yPrecision,device,edgeFlags):抵达装设场所,发送独一举止。

DispatchPointer(downtime,eventTime,action,x,yxpressure,size,metastate,xPrecision,yPrecision,device,edgeFilags):发送钉钮扣于音讯。

LaunchInstrumentation(test_name,runner_name): 运转器具测试用例。

DispatchTrackball: 仿照输送轨迹球事情。

ProfileWait: 在其他人走后留下来5秒。

StartCaptureFramerate(): 获取帧速率。

EndCaptureFramerate(input): 完毕帧速率。

API方式做成某事把持场所(X),Y轴搭配的获取:运用Android给予的器

在安卓 在SDK途径下 tools –> ,翻开以显示在容易/幻影器上显示的看。,显示看建筑风格和搭配。

简略示例

#头用纸覆盖、嘲弄发送音讯的参量把持
type=raw events
count=10
speed=1.0
上面是本子的原文
start data >>
1。翻开浏览图书报刊者
LaunchActivity()
ProfileWait()
2。空网址
Tap(223,146)
ProfileWait()
DispatchPress(112)
ProfileWait()
三。输出网址
DispatchString()
ProfileWait()
4。告知已收到,堆积网站
DispatchPress(KEYCODE_ENTER)
ProfileWait()
5。抛光脱离浏览图书报刊者
DispatchPress(KEYCODE_HOME)
ProfileWait()

1。本子抛光后,txt 用纸覆盖推到电话机

adb push name.txt path

name指的是嘲弄本子用纸覆盖的称呼,途径是推到电话机的途径

2。运转嘲弄本子

monkey -f path/name.txt -v 500

途径是鞭策的途径,称呼是本子用纸覆盖的称呼。

包围使臻于完善

MonketTestDemo随机事情流测试:

1. adb devices 检查容易假设衔接

2. adb shell 进入壳交流

3. monkey -p com.feicuiedu.monkeytestdemo -v 500 表演嘲弄命令

4. (可选)嘲弄 -p com.feicuiedu.monkeytestdemo -v 500 > monkeytest.txt 表演嘲弄命令,并内存嘲弄日记

随机非本意的动作猴实验。

MonkeyScript对MonkeyTestDemo举行测试:

1. 写赌博,保持健康到必然的途径

2. 切换到途径

3. adb push 记载/土著的/暂时/(容易的究竟哪个途径),无明白规则)

4. adb shell 切换到容易

5. cd /data/local/temp 切换到途径

6. monkey -f -v 10 嘲弄本子的表演与表演次数

单嘲弄非本意的动作嘲弄测试的抛光。

发表评论

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