SilkTest FAQ 2

Q11: Segue的测试方法论是什么?
Segue的测试方法论是一个包括六个阶段的测试流程:
1)计划。决定测试策略并且定义测试需求。
2)捕捉。将你的应用程序中的GUI对象对象化,并且建立一个运行测试的框架。
3)创建测试。创建自动的,可重用的测试。利用录制和编程手段建立用Segue的4Test语言编写的测试脚本。
4)运行测试。选择某些测试并且针对需要测试的软件执行它们。
5)报告。分析测试结果并且生成缺陷报告。
6)追踪。在待测软件中追踪缺陷并且执行回归测试。

Q12: DBTester提供了哪些函数?
DBTester提供了6个函数,你可以在你的4Test脚本里面直接使用它们:
DB_Connect: 通过指定的OBDC DSN名打开一个数据库连接。DB_Connect返回一个连接句柄,该句柄可以被用在其他的DBTester函数中。SQL语句将被提交到数据库中去。
DB_Disconnect:关闭指定连接句柄所代表的数据库连接。所有该连接相关的资源将被释放。
DB_ExecuteSql:将指定的SQL语句发送到指定的数据库连接上执行。DB_ExecuteSql返回一个结果句柄,该句柄将会被DB_FetchNext函数使用。
DB_FetchNext:得到指定的查询结果句柄的下一行内容。
DB_FetchPrevious:得到指定的查询结果句柄的上一行内容。
DB_FinishSql:关闭指定的查询结果句柄。

Q13: SilkTest host是什么?
Silktest host 是一个用来管理和执行测试脚本的组件。Silktest host通常运行在和待测软件不同的机器上。

Q14:  如何验证web应用中里面的动态文本?
我正在用silktest测试一个web程序,当我填写好form并且提交的时候,页面显示一个包含用户名的文本消息,例如:Successfully created test account for user John Winrunner。这个消息将会随着用户名的不同而变化,例如:Successfully created test account for user Andrew SilkTest。如何来验证这个动态的文本呢?
你肯定是要获取一些特别的消息,根据你的需求不同这里有一些建议可以采用:
1)采用消息的索引而不是标题来申明他们,因为标题可能不时地改变。
2)单独申明每个消息,然后检查他们是否存在。在某一时刻只能有一个存在,而且你可以根据他当时提供的消息继续进行将要做的事情。

3)用4Test代码将Agent的选项OPT_VERIFY_UNIQUE暂时设置为flase,例如:
Agent.SetOption (OPT_VERIFY_UNIQUE, FALSE)
// 4Test code that requires non-unique messages
Agent.SetOption (OPT_VERIFY_UNIQUE, TRUE)

Q15:SilkMeter的license server 停了,我该怎么做?
silkMeter的license server 停了,并且这一周都无法使用,但是我却要在周末之前完成一个十分重要的测试项目。我如何能够按时完成这些工作?
你需要联系Borland公司,申请一个零时的license或者是机动的license.

Q16: 如何使用4Test语言删除cookie文件?
我用4Test脚本来测试web应用,我想知道如何在脚本执行过程中删除指定的cookie文件。
下面的4Test 函数可以用来删除指定的cookie文件
[-] RemoveCookies (String sPath, String sFile)
[ ] //*******************
[ ] //* The function for removing a stored web cookie file.
[ ] //* sPath The complete path to the directory where the cookie is stored
[ ] //* Example “C:/Documents and Settings/Administrator/Cookies/”
[ ] //* sFile unique part of the cookie file name
[ ] //* for example “*winrunner*”
[ ] //*******************
[ ] LIST OF FILEINFO lfInfo
[ ] LIST OF STRING lsFileName
[ ] INTEGER iCount
[ ] STRING sLFile
[ ] Boolean bFound
[ ]
[ ] lfInfo = SYS_GetDirContents (sPath) //obtain directory content
[-] for iCount = 1 to ListCount(lfInfo) //for every FILEINFO in lsInfo
[ ] ListAppend(lsFileName, lfInfo[iCount].sName) //append the name of the files
[ ]
[-] for each sLFile in lsFileName //for each file name in lsFileName
[ ] bFound = MatchStr (sFile, sLFile) //check if the sFile string is in the File Names
[-] if bFound == TRUE //if the sFile string is in file name
[ ] SYS_RemoveFile (sPath + sLFile) //delete the file from the sPath directory
你可以简单地修改这个函数用来删除特定文件夹中的所有文件,或者通过循环来删除一组文件。

Q17:如何关闭桌面上所有的窗口?
我想要关闭桌面上包括浏览器在内的所有窗口,但是MS SQL Query Analyzer, Visual SourceSafe, SecureCRT 等软件在执行我的testcase前由于印度团队的要求已经被打开了,如何解决?
可以使用下面的4Test语言代码:
[-] CloseAllPrograms()
[ ] //http://blog.csdn.net/yuetiantian/
[ ] LIST OF WINDOW lwOpen = Desktop.GetChildren()
[-] while (lwOpen !={})
[ ] ListDelete(lwOpen, ListFind(lwOpen, Taskbar))
[ ] ListDelete(lwOpen, ListFind(lwOpen, DialogBox(“Program Manager”)))
[-] if(lwOpen == {})
[ ] break
[ ] Window w = lwOpen[1]
[-] do
[ ] w.SetActive()
[ ] w.Exit()
[-] except
[ ] w.SetActive()
[ ] w.Exit()
[ ] lwOpen = Desktop.GetChildren()

Q18:如何从MS的Excel里面读取数据
我们尝试从excel数据表里面读取一块数据用于创建ddt。我们不希望在这个过程中使用特定的列名,我们希望能够从指定的数据区例如B4:D11里面读取数据。基本地,我们希望能够从所有的spreadsheet单元格中读取数据,并打印出来。
可以尝试下列代码:
[] hDBC = DB_Connect (“DRIVER=Microsoft Excel Driver (*.xls); FIRSTROWHASNAMES=1;READONLY=FALSE;
DRIVERID=790;DBQ=C:/QA.xls”)
[] //run a SQL statement
[] hSQLq = DB_ExecuteSQL (hDBC, “SELECT * from [Sheet1$B4:D11]”)
[] //while there are still rows to retrieve
[-] while DB_FetchNext (hSQLq, description, var1, var2)
[] print(“{++i}:{ description } { var1} { var2} !”)
[]
[] DB_Disconnect(hDBC)
从培训的角度,你还可以查看silktest用户手册中的以下函数:
·    DB_Connect
·    DB_ExecuteSQL
·    DB_FetchNext
·    DB_FinishSql
和数据类型
·    HDATABASE
·    HSQL
还可以从DBTester数据库函数中寻找有用的信息。

Q19:如何执行一个字符串代表的函数?
在silktest培训的过程中,我无法创建一个使用字符串作为函数名进行执行的脚本。有什么办法可以实现它么?
下面的4Test代码使用@作为函数引用。请确保你调用的这个函数已经被定义了,否则将会导致异常跑出。具体的@操作符使用细节可以在borland提供的语言参考附录中查找。
[-] testcase foobar() appstate none
// prints directory on the host machine where startup include files located
[ ] string sFunc = “GetStartupDir”
[ ] string sDirectory = @(sFunc)()
[ ] print(sDirectory)

Q20:在silktest中如何使用正则表达式?
QA工程师希望知道如何在一个testcase中使用正则表达式来确认某个字符串是有效的格式。
不幸的是,即使是在最新的8.0版本中,silktest 仍然不支持POSIX或者是Perl类型的正则表达式。聪明的QA工程可以用问号来匹配单个字符,用星号来匹配零个或者多个字符组成的字符串。SubStr,MatchStr和GetFiled可能是有帮助的,但是它们都有一定的限制。

Leave a comment

请输入正确的验证码