贯众云平台脚本编写之判断、循环以及shell命令的使用
最近使用贯众云平台工具写脚本,进行Ui界面的自动化测试。刚开始接触,确实碰到不少的问题,稍微难点的就是判断语句,循环语句以及shell命令的使用,尤其是对于咱们测试这样比较少接触代码的人来说。
其实吧,现在发现本身的语句并不难,当了解怎么使用之后确实很简单,主要是最开始可能不知道如何下手。现在记录一下使用其解决实际写脚本上碰到的问题。
一、判断语句,就是If-Else-EndIf。If后面跟判断条件以及判断后的action,else后定义其它情况下的操作,EndIf是结束判断。比如说某个控件不是一定出现,是根据权限来判定的,如果要点击操作,那么这里我们就要用到条件判断。下面是一个栗子:
If : self.waitForScreen(className=android.widget.ImageView,timeout=10):
Touch : className=android.widget.ImageView
Else :
#
Logger : 广告不存在
EndIf:
这里我们就是判断一个广告的控件是否存在,如果存在,那么我们就关闭这个广告,如果不存在,那么我们就打个广告不存在的日志。
二、循环执行 这里的是For循环,这个就比较简单了,在语句中填入循环次数以及循环的操作即可,栗子:
For : myNum in range(6):
ShellCommand : input keyevent 67
EndFor:
这里就是循环执行ShellCommand的操作,keyevent67代表的是del键。这里这个不是重点,重点是我们要知道填入循环的次数,以及我们循环的操作。shellCommand下面有讲到。
三、shellCommand 在写脚本的过程中碰到这样一个问题,在我们的输入框中已经存在了数据,如果我们要用inputText的话,它会在已有数据后加上数据,就得不到我们需要的结果了。
然而脚本中并没有删除已有数据的命令,这时候我们要用到android中的shellCommand了。keyevent就是模拟键盘输入操作,按键对应着有编号。上面的栗子中我们已经看到了一个编号为67的Keyevent,对应着就是删除操作,这样我们就可以使用该命令对输入框中已有数据进行删除了。下面我就从其它地方搬一下keyevent的编号及按键对照表。
1 --> "KEYCODE_MENU"
2 --> "KEYCODE_SOFT_RIGHT"
3 --> "KEYCODE_HOME"
4 --> "KEYCODE_BACK"
5 --> "KEYCODE_CALL"
6 --> "KEYCODE_ENDCALL"
7 --> "KEYCODE_0"
8 --> "KEYCODE_1"
9 --> "KEYCODE_2"
10 --> "KEYCODE_3"
11 --> "KEYCODE_4"
12 --> "KEYCODE_5"
13 --> "KEYCODE_6"
14 --> "KEYCODE_7"
15 --> "KEYCODE_8"
16 --> "KEYCODE_9"
17 --> "KEYCODE_STAR"
18 --> "KEYCODE_POUND"
19 --> "KEYCODE_DPAD_UP"
20 --> "KEYCODE_DPAD_DOWN"
21 --> "KEYCODE_DPAD_LEFT"
22 --> "KEYCODE_DPAD_RIGHT"
23 --> "KEYCODE_DPAD_CENTER"
24 --> "KEYCODE_VOLUME_UP"
25 --> "KEYCODE_VOLUME_DOWN"
26 --> "KEYCODE_POWER"
27 --> "KEYCODE_CAMERA"
28 --> "KEYCODE_CLEAR"
29 --> "KEYCODE_A"
30 --> "KEYCODE_B"
31 --> "KEYCODE_C"
32 --> "KEYCODE_D"
33 --> "KEYCODE_E"
34 --> "KEYCODE_F"
35 --> "KEYCODE_G"
36 --> "KEYCODE_H"
37 --> "KEYCODE_I"
38 --> "KEYCODE_J"
39 --> "KEYCODE_K"
40 --> "KEYCODE_L"
41 --> "KEYCODE_M"
42 --> "KEYCODE_N"
43 --> "KEYCODE_O"
44 --> "KEYCODE_P"
45 --> "KEYCODE_Q"
46 --> "KEYCODE_R"
47 --> "KEYCODE_S"
48 --> "KEYCODE_T"
49 --> "KEYCODE_U"
50 --> "KEYCODE_V"
51 --> "KEYCODE_W"
52 --> "KEYCODE_X"
53 --> "KEYCODE_Y"
54 --> "KEYCODE_Z"
55 --> "KEYCODE_COMMA"
56 --> "KEYCODE_PERIOD"
57 --> "KEYCODE_ALT_LEFT"
58 --> "KEYCODE_ALT_RIGHT"
59 --> "KEYCODE_SHIFT_LEFT"
60 --> "KEYCODE_SHIFT_RIGHT"
61 --> "KEYCODE_TAB"
62 --> "KEYCODE_SPACE"
63 --> "KEYCODE_SYM"
64 --> "KEYCODE_EXPLORER"
65 --> "KEYCODE_ENVELOPE"
66 --> "KEYCODE_ENTER"
67 --> "KEYCODE_DEL"
68 --> "KEYCODE_GRAVE"
69 --> "KEYCODE_MINUS"
70 --> "KEYCODE_EQUALS"
71 --> "KEYCODE_LEFT_BRACKET"
72 --> "KEYCODE_RIGHT_BRACKET"
73 --> "KEYCODE_BACKSLASH"
74 --> "KEYCODE_SEMICOLON"
75 --> "KEYCODE_APOSTROPHE"
76 --> "KEYCODE_SLASH"
77 --> "KEYCODE_AT"
78 --> "KEYCODE_NUM"
79 --> "KEYCODE_HEADSETHOOK"
80 --> "KEYCODE_FOCUS"
81 --> "KEYCODE_PLUS"
82 --> "KEYCODE_MENU"
83 --> "KEYCODE_NOTIFICATION"
84 --> "KEYCODE_SEARCH"
85 --> "TAG_LAST_KEYCODE"