显示标签为“命令行”的博文。显示所有博文
显示标签为“命令行”的博文。显示所有博文

2008年10月23日星期四

SilkTest:使用杀进程的方式退出应用程序

最近项目中遇到一个很头疼的问题,总是无法正常关闭应用程序。应用程序为JAVA技术开发,使用SWT3.3,而测试工具使用SilkTest2006,不支持SWT3.3,无法使用Java插件,因此我们在项目中没有使用JAVA插件,这给项目带来了很大的麻烦,因为SilkTest把所有弹出窗口(对话框和tips)都识别为DialogBox。
我使用如下代码关闭Application:


[+] Close ()
[-] if Ajax.Exists (1)
[ ] // Ajax.SetActive ()
[ ] window wCloseWin
[ ] LIST OF WINDOW lsCloseWindows
[ ]
[-] do
[ ] more:
[-] do
[-] if !Ajax.Exists (1)
[ ] goto end
[ ] lsCloseWindows = Ajax.GetCloseWindows ()
[-] for each wCloseWin in lsCloseWindows
[ ] wCloseWin.SetActive ()
[-] if wCloseWin.Exists ()
[-] do
[ ] wCloseWin.Close ()
[-] except
[ ]
[-] if Ajax.Exists ()
[-] else
[ ] goto end
[ ]
[-] except
[ ] goto more
[ ]
[ ] Ajax.SetActive ()
[ ]
[ ] end:
[-] if Ajax.Exists (1)
[ ] Ajax.TypeKeys ("")
[+] if Ajax.DoYouWantToSaveCurrentProject.Exists (1)
[ ] Ajax.DoYouWantToSaveCurrentProject.No.Click ()
[ ] sleep (1)




每次运行脚本的时候,总会有挥之不去的Tips悬在那里,关闭的时候,Ajax.GetCloseWindows ()会获取到Tips然后试图wCloseWin.Close,但是SilkTest关闭窗口的方法全不奏效,因此经常会出现无法关闭应用程序而使得测试失败。
突然想到杀进程不失为一种很好的方法,这样无论应用程序处于什么状态都可以关闭它。这里面我的方法依然是使用运行Dos命令行的方式:

[ ] end:
[+] if Ajax.Exists (1)
[ ] SYS_Execute ("taskkill /f /im java.exe")



2008年9月16日星期二

使用命令行方式删除指定文件夹及其下面所有的文件

功能:完全删除文件夹及其下面所有的文件
参数:目录完全路径
DeleteAllFilesWithFolder (STRING Location)
SYS_Execute ('RD /S /Q "{Location}"')

2008年9月12日星期五

SilkTest:使用DOS命令行方式判断是否存在A驱动

通常我们使用SYS_DirExits () 函数可以判断是否存在有效的目录,但是如果机器中有A驱动器或这光驱,而驱动器中没有A盘或光盘,则用以上函数则会返回false的结果,我们可以用dos命令来判断。
SilkTest执行命令的函数是:SYS_Execute (), 语法格式如下:
iReturn = SYS_Execute (sCmdLine [, lsOutput])

参考SilkTest帮助文档

这里面我们使用fsutil fsinfo drives命令来显示所有的驱动器。
[ ] STRING sCmdLine = "fsutil fsinfo drives"
[ ] LIST OF STRING lsListDrivers = {}
[ ] LIST OF STRING lsOutput
[ ] SYS_Execute (sCmdLine,lsOutput)
[ ] INTEGER i=2
[+] while GetField (lsOutput[2]," ",i)!=""
[ ] ListAppend (lsListDrivers,GetField (lsOutput[2],"
",i))
[ ] i++
[ ] ListPrint (lsListDrivers)

2008年9月7日星期日

SilkTest:通过命令行方式运行SilkTest测试

可以在DOS窗口或者Batch文件运行SilkTest程序,语法如下:

Partner [-complog filename] [-m mach] [-opt optionset.opt] [-p mess] [-proj
filename [-base filename]] [[-q] [-query query name] [-quiet] [-r filename]
[-resexport] [-resextract] [-r] scr.t/suite.s/plan.pln/link.lnk [args]] [-smlog
filename]

各参数的含义请参照SilkTest帮助文档

如:partner -proj "C:\Program Files\Segue\SilkTest\Projects\Sanity\Testing.vtp" -query RunQuery -r "C:\Program Files\Segue\SilkTest\Projects\Sanity\Test Plan\Attachment.pln"

注意:这其中使用了-query参数,query RunQuery需要事先定义。可以使用testplan菜单定义它,打开testplan,Testplan menu>Mark By Query,打开 Mark By Query对话框,输入Query name (RunQuery),在Test attributes 标签下选择必须的选项,点击Mark按钮