300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > monkey测试linux设备 关于使用Monkey运行脚本测试

monkey测试linux设备 关于使用Monkey运行脚本测试

时间:2019-11-04 02:51:24

相关推荐

monkey测试linux设备 关于使用Monkey运行脚本测试

转自:

monkey

、在pc(Linux)上运行模拟器,两种方法

l可以通过eclipse运行emulator,具体方法略。

l可以通过命令行:root@lenovo-desktop:~# emulator -avd android2.2

、进入adb shell模式,如下:

root@lenovo-desktop:~# adb shell

#

、运行monkey工具开启专用端口

# monkey --port 1080 -v -v

:Monkey: seed=0 count=1000

:IncludeCategory: android.intent.category.LAUNCHER

:IncludeCategory: android.intent.category.MONKEY

… …

注:执行完monkey命令后可以使用netstat查看端口是否开启,下面红色部分是我们要关注的地方。

# netstat

Proto Recv-Q Send-Q Local Address Foreign Address State

tcp 0 0 127.0.0.1:5037 0.0.0.0:* LISTEN

tcp 0 0 0.0.0.0:5555 0.0.0.0:* LISTEN

tcp 0 0 127.0.0.1:1080 0.0.0.0:* LISTEN

tcp 0 0 10.0.2.15:5555 10.0.2.2:43064 ESTABLISHED

udp 0 0 0.0.0.0:55433 0.0.0.0:*

udp 0 0 0.0.0.0:52470 0.0.0.0:*

#

、在pc端开启转发端口

root@lenovo-desktop:~# adb forward tcp:1080 tcp:1080

注:执行完adb forward后,同样可以使用netstat命令查看端口是否启用,命令如下:

root@lenovo-desktop:~# netstat -an | grep 1080

root@lenovo-desktop:~#

root@lenovo-desktop:~# adb forward tcp:1080 tcp:1080

root@lenovo-desktop:~# netstat -an | grep 1080

tcp 0 0 127.0.0.1:1080 0.0.0.0:* LISTEN

root@lenovo-desktop:~#

、使用telnet工具连接android

root@lenovo-desktop:~# telnet 127.0.0.1 1080

Trying 127.0.0.1...

Connected to 127.0.0.1.

Escape character is '^]'.

出现上面的提示,没有异常退出的话,说明连接成功,这时候就可以参照example_script.txt脚步里面的内容输入键值了。

root@lenovo-desktop:~# telnet 127.0.0.1 1080

Trying 127.0.0.1...

Connected to 127.0.0.1.

Escape character is '^]'.

key down 3

OK

key up 3

OK

注:key down 3,key up 3,是用户输入的键值,ok是返回值,如果看到ok字样的返回值,说明发的键值为有效值,否则,为无效值!

此时你会想到,如果必须这样一次一次的输入没个键值的话,那还有啥自动化测试的意义呢,还不如一个一个的去按呢,事实上是可以通过管道一次把所有命令传入monkey的。

、一次性输入example_script.txt脚步里面的所有内容,命令如下:

root@lenovo-desktop:~# cat example_script.txt | telnet 127.0.0.1 1080

这时,你就可以在你执行# monkey --port 1080 -v –v命令的窗口看到打印的一系列Events消息:

……

:Sending Pointer ACTION_DOWN x=160.0 y=200.0

:Sending Pointer ACTION_UP x=160.0 y=200.0

Sleeping for 1000 milliseconds

:Sending Pointer ACTION_DOWN x=300.0 y=450.0

:Sending Pointer ACTION_UP x=300.0 y=450.0

Sleeping for 1000 milliseconds

:Sending Pointer ACTION_DOWN x=300.0 y=450.0

:Sending Pointer ACTION_UP x=300.0 y=450.0

Sleeping for 1000 milliseconds

:Sending Pointer ACTION_DOWN x=300.0 y=450.0

:Sending Pointer ACTION_UP x=300.0 y=450.0

Sleeping for 1000 milliseconds

:SendKey (ACTION_DOWN): 20 // KEYCODE_DPAD_DOWN

:SendKey (ACTION_UP): 20 // KEYCODE_DPAD_DOWN

:SendKey (ACTION_DOWN): 20 // KEYCODE_DPAD_DOWN

:SendKey (ACTION_UP): 20 // KEYCODE_DPAD_DOWN

:SendKey (ACTION_DOWN): 23 // KEYCODE_DPAD_CENTER

:SendKey (ACTION_UP): 23 // KEYCODE_DPAD_CENTER

:SendKey (ACTION_DOWN): 30 // KEYCODE_B

:SendKey (ACTION_UP): 30 // KEYCODE_B

:SendKey (ACTION_DOWN): 37 // KEYCODE_I

:SendKey (ACTION_UP): 37 // KEYCODE_I

:SendKey (ACTION_DOWN): 40 // KEYCODE_L

:SendKey (ACTION_UP): 40 // KEYCODE_L

:SendKey (ACTION_DOWN): 40 // KEYCODE_L

:SendKey (ACTION_UP): 40 // KEYCODE_L

:SendKey (ACTION_DOWN): 20 // KEYCODE_DPAD_DOWN

:SendKey (ACTION_UP): 20 // KEYCODE_DPAD_DOWN

:SendKey (ACTION_DOWN): 30 // KEYCODE_B

:SendKey (ACTION_UP): 30 // KEYCODE_B

:SendKey (ACTION_DOWN): 37 // KEYCODE_I

:SendKey (ACTION_UP): 37 // KEYCODE_I

:SendKey (ACTION_DOWN): 40 // KEYCODE_L

:SendKey (ACTION_UP): 40 // KEYCODE_L

:SendKey (ACTION_DOWN): 40 // KEYCODE_L

:SendKey (ACTION_UP): 40 // KEYCODE_L

:Sending Pointer ACTION_DOWN x=300.0 y=450.0

:Sending Pointer ACTION_UP x=300.0 y=450.0

Events injected: 34

:Dropped: keys=0 pointers=0 trackballs=0 flips=0

## Network stats: elapsed time=18299ms (18299ms mobile, 0ms wifi, 0ms not connected)

注:你发现没?以上显示的内容呢,正是examp_script.txt的内容。

、在pc(windows )上运行monkey测试工具

备注:这个example_script.txt也完全可以在windows机器上运行,运行方法和步骤完全同上,所用到的系统命令也几乎一样。

monkey

、连接设备

使用usb线或其他方式如串口连通设备和pc,使之能够相互通讯即可,验证方法参照命令netstat。

、如何测试

剩下的测试方法参照楼上的虚拟机方法即可。

example_script.txt例子非常简单,但是要真正的把它拿到自动化测试当中来,还需要花费很大的力气,其中的events,不泛是例子中的几个简单的events,而是还可以实现很多功能的,具体的events用法可参考monkey的源码.

路还是很长滴…

(example_script.txt)

# Touch the android

touch down 160 200

touch up 160 200

sleep 1000

# Hit Next

touch down 300 450

touch up 300 450

sleep 1000

# Hit Next

touch down 300 450

touch up 300 450

sleep 1000

# Hit Next

touch down 300 450

touch up 300 450

sleep 1000

# Go down and select the account username

key down dpad_down

key up dpad_down

key down dpad_down

key up dpad_down

key down dpad_center

key up dpad_center

# account name: bill

key down b

key up b

key down i

key up i

key down l

key up l

key down l

key up l

# Go down to the password field

key down dpad_down

key up dpad_down

# password: bill

key down b

key up b

key down i

key up i

key down l

key up l

key down l

key up l

# Select next

touch down 300 450

touch up 300 450

# quit

quit

五、附录:

以下内容为android系统中的keycode值:

KEYCODE_UNKNOWN=0;

KEYCODE_SOFT_LEFT=1;

KEYCODE_SOFT_RIGHT=2;

KEYCODE_HOME=3;

KEYCODE_BACK=4;

KEYCODE_CALL=5;

KEYCODE_ENDCALL=6;

KEYCODE_0=7;

KEYCODE_1=8;

KEYCODE_2=9;

KEYCODE_3=10;

KEYCODE_4=11;

KEYCODE_5=12;

KEYCODE_6=13;

KEYCODE_7=14;

KEYCODE_8=15;

KEYCODE_9=16;

KEYCODE_STAR=17;

KEYCODE_POUND=18;

KEYCODE_DPAD_UP=19;

KEYCODE_DPAD_DOWN=20;

KEYCODE_DPAD_LEFT=21;

KEYCODE_DPAD_RIGHT=22;

KEYCODE_DPAD_CENTER=23;

KEYCODE_VOLUME_UP=24;

KEYCODE_VOLUME_DOWN=25;

KEYCODE_POWER=26;

KEYCODE_CAMERA=27;

KEYCODE_CLEAR=28;

KEYCODE_A=29;

KEYCODE_B=30;

KEYCODE_C=31;

KEYCODE_D=32;

KEYCODE_E=33;

KEYCODE_F=34;

KEYCODE_G=35;

KEYCODE_H=36;

KEYCODE_I=37;

KEYCODE_J=38;

KEYCODE_K=39;

KEYCODE_L=40;

KEYCODE_M=41;

KEYCODE_N=42;

KEYCODE_O=43;

KEYCODE_P=44;

KEYCODE_Q=45;

KEYCODE_R=46;

KEYCODE_S=47;

KEYCODE_T=48;

KEYCODE_U=49;

KEYCODE_V=50;

KEYCODE_W=51;

KEYCODE_X=52;

KEYCODE_Y=53;

KEYCODE_Z=54;

KEYCODE_COMMA=55;

KEYCODE_PERIOD=56;

KEYCODE_ALT_LEFT=57;

KEYCODE_ALT_RIGHT=58;

KEYCODE_SHIFT_LEFT=59;

KEYCODE_SHIFT_RIGHT=60;

KEYCODE_TAB=61;

KEYCODE_SPACE=62;

KEYCODE_SYM=63;

KEYCODE_EXPLORER=64;

KEYCODE_ENVELOPE=65;

KEYCODE_ENTER=66;

KEYCODE_DEL=67;

KEYCODE_GRAVE=68;

KEYCODE_MINUS=69;

KEYCODE_EQUALS=70;

KEYCODE_LEFT_BRACKET=71;

KEYCODE_RIGHT_BRACKET=72;

KEYCODE_BACKSLASH=73;

KEYCODE_SEMICOLON=74;

KEYCODE_APOSTROPHE=75;

KEYCODE_SLASH=76;

KEYCODE_AT=77;

KEYCODE_NUM=78;

KEYCODE_HEADSETHOOK=79;

KEYCODE_FOCUS=80;//*Camera*focus

KEYCODE_PLUS=81;

KEYCODE_MENU=82;

KEYCODE_NOTIFICATION=83;

KEYCODE_SEARCH=84;

KEYCODE_MEDIA_PLAY_PAUSE=85;

KEYCODE_MEDIA_STOP=86;

KEYCODE_MEDIA_NEXT=87;

KEYCODE_MEDIA_PREVIOUS=88;

KEYCODE_MEDIA_REWIND=89;

KEYCODE_MEDIA_FAST_FORWARD=90;

KEYCODE_MUTE=91;

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。