SilkTest Q&A 11

101. 如何从其他的机器访问脚本?

答案:将包含脚本的文件夹共享出来…非常简单…你可以使用connect()在你本机运行脚本从而使得它们在其他的一些机器上执行…但是其他人无法访问这些脚本,除非你将它们共享出来或者试试别的什么方法。

 

 

103. 有什么办法可以让默认的复原系统顺序关闭对话框么?

谁能够告诉我有什么办法可以让默认的复原系统顺序关闭对话框么?这些对话框的双亲不是MainWin,而是ChildWin,我将会十分感激。默认的复原系统只能够检查那些双亲是由wMainWindow常量表示的MainWin的对话框。

答案1:
嗯,你不用改变默认的复原系统,但是你可以用一个基于none状态的appstate,而不是基于DefaultBaseState的appstate

答案2:
建立一个全局变量
lwClose = {…}
想要关闭的windows

然后增加:
TestcaseExist ()
window wClose
for each wClose in lwClose
if wClose.Exists ()
wClose.Close ()

答案3:
这里有你想要的,假设你有如下的树状结构:

Win1 Win7
Win2 Win3 Win8 Win9
Win4 Win5 Win6

注意win7和win1有不同的threads
当你申明这些窗口时,你要把他们加入lwClose list中去。下面是加后的list结果(假设你想要让win1打开):
lwClose = {…}
Win9
Win8
Win7
Win6
Win3
Win5
Win4
Win2
这样你就建立了你的threads树,或者你可以建立一个Dismiss()函数如下:

for i = 1 to ListCount (lwClose)
do
for each wClose in lwClose
wClose.Close ()
except
do nothing (假如你必须按顺序关闭窗口)

 

 

104. 我想从 result 窗口中去掉 testcase 中 script 的内容,该如何做?

 如果 case 通过了,在 result 窗口中, case 所在的 script 内容都会在 result 文件里面打印出来。我想把他们去掉,该如何做?

答案 1 : 在 Option 菜单的 runtime 对话框里,有几个 check box 是可以设定 result 的。根据你对 result 的设定,会产生不同的 result 内容。根据你的需要来设定吧。

更详细一点,在 Option->Runtime 对话框中,在 ”debugging” 部分中 uncheck ”print agent calls” 和 ’Print tags with agent calls”

 

 

106. 这种情况怎么办?
有一个应用,通过frame文件来识别对象。假如一个对象是custom object,你把custom object map成标准对象。而在map完成之后,该对象还是不能被SilkTest所识别,那该怎么办呢?
答案:首先,你不得不尝试enable不同的extension,这样对象应该能被识别。如果这样还是不行的话,最后的选择就是使用坐标了,不过如果不能正确地使用坐标的话,这种方法不会很stable的。

 

107. 如何为List of List of String进行排序?

答案:

[+] testcase test() appstate none
[ ]
[ ] LIST OF LIST OF STRING llsStr =
{{“1234″,”A”},{“2242″,”B”},{“2234″,”C”}}
[ ] Print(Sort(llsStr))
[+] LIST OF LIST OF STRING Sort (LIST OF LIST OF STRING llsStr)
[ ]
[ ] LIST OF STRING lsStr
[ ] INTEGER i, j , k
[ ] k = ListCount(llsStr)
[+] for (i=1;i <= k;i++)
[+] for (j=i+1; j<=k; j++)
[+] if val(llsStr[i][1]) > val (llsStr[j][1])
[ ] lsStr = llsStr[j]
[ ] llsStr[j] = llsStr[i]
[ ] llsStr[i] = lsStr
[ ]
[ ]
[ ] return llsStr

 

 

108如何编写 master plan?

答案 1: 是的,你可以用 master plan 这种途径来运行你所有的 sub plan 。只要新建一个 plan 文件,并在其中调用你的 sub plan 或者 testcase 即可。

如果你想要在 master plan 中运行 sub plan ,你可以用如下的语法格式:

Include: mysubplan.pln

答案 2:
1. 打开你的 master plan

2. 你可以 mark 需要运行的 sub plan

3. 从 master plan 中运行 mark 的 sub plan

如何 mark sub plan

1.       在 master plan 中选择 sub plan 的整行 ( 例如, include: subplan1.pln)

2.       到 test plan 菜单,选择 ”mark”

3.       重复该步骤, mark 所有的需要运行的 sub plan

4.       到 Run 菜单,选择 ”run marked tests”

这样你就可以仅仅运行那些 mark 过的 sub plan ,在最终的 result 文件中,你可以通过不同的颜色区别出哪些 plan 是运行过的,哪些是没有运行过的

 

109. 如何在script文件中隐藏密码?
在winrunner中,密码是通过加密的方式记录的,但是silktest中,是按照实际的内容进行记录的。
所以在script中无法隐藏密码,如果你需要绕过这个问题,可以从文件中读取密码。

如果这还不够好(因为在文件中密码还是以文本方式保存的),你可以使用一些加密功能的工具来加密密码。你可以调用外部的语言(Ruby,perl,python等)来加解密,然后把它通过一个变量传过来。
问题是无论你用哪种方法来输入一个未加密的密码到登陆界面,该密码同样可以被写到另外一个文件中去(这样就可以被别人盗用)。

所以,不要使用你自己的账号来做测试。应该使用专门的测试账号。

Leave a comment

请输入正确的验证码