SilkTest Q&A 12

111. 谁能告诉我,正在执行的SilkTest的log是存放在哪里?

答案1: 用下面的命令可以导出文本格式的log

“c:/program files/segue/silktest/partner.exe” -complog “c:/logs.txt”
-resextract -r “C:/sample.pln”

答案2: 默认情况下,Silktest并不创建log文件,它会创建.res文件,.res文件是二进制的,而log文件一般是文本文件。

然而,如果你从命令行用-resextract调用partner.exe,这将会建立一个以.txt为后缀的.res文件的副本,该文件会被存放在正在执行的.t文件和.pln文件的同级目录。

 

 

112自动测试框架是什么,尤其是在SilkTest中代表什么?

答案: 自动测试框架是指一种结构并且被正确地设计和架构。你可以理解和实现它。自动测试框架一般会包含下面的东西:

1.      针对于AUT的特殊库

2.      包装函数库的工具

3.      数据驱动的执行引擎(在给定数据上驱动测试的执行脚本)

4.      结果报告机制(每个case成功或是失败,总的测试结果,如果能有AUT的快照就更好了)

5.      长期自动化的计划

6.      保持GUI对象的信息和声明动态或静态化

7.      无人值守的执行计划

同样,框架设计因工具,脚本语言和AUT而异。现在,人们用perl,python,tcl/tk来做CLI的自动化。这种设计和做GUI测试的工具(QTP, Winrunner, Silktest, Robot, QARun等)有很大的区别。

你可以参考下面的链接,每个链接都给出了不同的自动测试框架组件集合

完全数据驱动自动测试http://link.fyicenter.com/view.php?ID=776

自动测试框架http://link.fyicenter.com/view.php?ID=601

 

 

113 如何得到float变量的小数部分,如何得到float变量的整数部分,有相应的函数么?
答案:可以通过下面的代码来解决该问题。
[ ] real rVal1=89.822 // 假设你的实数是 rVal1
[ ] integer iValue = [int]rVal1
[ ] real rVal2= rVal1-iValue
[ ] print(iValue) // 整数部分
[ ] print(rVal2) // 实数部分

 
114. 如何自动化.net的应用?
我在使用silktest7.5自动化.net应用,但是大多数控件无法被silktest识别。尽管我强制map

这些控件到标准控件,可是仍然不work…
答案:尝试去搞个.net extension吧…你需要为此另外付费…

 

 

115. 有办法解决这个问题么?
当我在点击新页面的link时(可能是同一个窗口,也可能是新窗口),窗口无法完全打开,也就是说,进度条会停止,最后程序会在180秒后超时。
一个workaround是增加程序的超时时间,然后等更长的时间。你们有更好的workaround么,有办法来解决这类问题么?
答案:尝试使用browser.StopLoading ( )吧,该方法会点击工具栏上的stop按钮。当浏览器没有响应时(进度条停止)。使用Browser.ForceReady(True)来和浏览器交互,当需要执行的动作完成后(这里是browser.StopLoading ( )..),然后再使用Browser.ForceReady(False)

 

 

Q116: 我想要验证点击链接后弹出来窗口的标题 …

在脚本中我没有使用 frame 文件,我动态地获取页面上所有的链接,然后点击其中一些特定名称的。我现在遇到的问题是,当我点击一个链接 ”x” ,它将会打开一个新的浏览器窗口。我想要验证新窗口的 title 。因为我没有使用 frame 文件,我发现很难得到新浏览器的窗口 title ,有什么办法解决么?

答案:尝试使用 GetCaption ()….
BrowserPage.Getcaption () 将会返回网页的caption/title. 然后比较吧..
对,你必须确保新窗口被激活:
BrowserPage.SetActive ()
BrowserPage.Getcaption ()

If
它的caption 和开始的页面不同,这就是你要找的新弹出的页面。
Else
Desktop.TypeKeys (“”)
if BrowserPage.IsActive ()
得到caption 再进行比较
else
Desktop.TypeKeys (“”)
这就就是个大致的算法,你需要用合适的循环来实现。这样才能独立于当前打开的窗口数目。

Q117: 当我想给浏览器 enable extensions 的时候,报下面的错误:
“Can’t load helper qaphlpr.dll: The specified module could not be found.”
我的问题是,是否以为着我必须重新安装SilkTest ,有workaround 么?

答案:检查要求的dll 是不是存在于SilkTest 的安装目录。

 

 

Q119. 需要在我的SilkTest 项目中使用相对路径,如何将绝对路径转换成相对路径?

需要在我的SilkTest 项目中使用相对路径,如何将绝对路径转换成相对路径?目的是,当打包一个项目的时候,希望它能运行在任何其他机器上,而不考虑具体的路径是什么。

答案1 :假设你有下面的文件结构:

C:/Test/Script/Script.t
C:/Test/WDec/WDec.inc

在script.t 文件中,包含了Wdec.inc ,代码如下:

use ” C:/Test/WDec/WDec.inc” –> 绝对路径

use “../WDec/WDec.inc” –> 相对路径

答案2 :

我想如果你用silktest 项目的话,silktest 已经提供了解决方案。如果你的test 不是用project 的方式,那么最好的选择是在runtime 选项里面设置hardcoding 根目录

例如:让 Path = S:/Suite << 其中S 映射为自动测试集的根目录,然后用相对路径: 例如frame.inc, ../config/config.inc

Leave a comment

请输入正确的验证码