如何用Monkey运行example_script.txt做好自动化测试

如何用Monkey运行example_script.txt做好自动化测试

 


 

目录

一、在虚拟机上运行monkey.2

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

2、进入adbshell模式,如下:...2

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

4、在pc端开启转发端口...2

5、使用telnet工具连接android.3

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

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

二、在真实设备上运行monkey.5

1、连接设备...5

2、如何测试...5

三、总结...5

四、附录:...5


 

一、在虚拟机上运行monkey

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

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

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

      2、进入adb shell模式,如下:

              root@lenovo-desktop:~# adb shell

#

      3、运行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:*

#

      4、在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:1080tcp:1080

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

tcp       0     0 127.0.0.1:1080          0.0.0.0:*              LISTEN

root@lenovo-desktop:~#

      5、使用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的。

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

              root@lenovo-desktop:~# cat example_script.txt | telnet127.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 (18299msmobile, 0ms wifi, 0ms not connected)

 

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

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

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

 

二、在真实设备上运行monkey

1、连接设备

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

2、如何测试

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

 

三、总结

       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 theaccount 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 passwordfield

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;


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值