SilkTest指南.docx
- 文档编号:10312653
- 上传时间:2023-05-25
- 格式:DOCX
- 页数:21
- 大小:25.55KB
SilkTest指南.docx
《SilkTest指南.docx》由会员分享,可在线阅读,更多相关《SilkTest指南.docx(21页珍藏版)》请在冰点文库上搜索。
SilkTest指南
SilkTest1-DataDrivenTest向导
SilkTest提供了建立DataDriven测试用例的向导,它可以帮助测试工程师快速地建立DDT的case。
该向导的有点就是简单易用,对于那些数据量不大,只是需要经常更新测试数据的case来说非常有用。
它的缺点是,无法提供类似DBTester那样的强大功能,灵活性欠佳。
下面就让我们来一步步建立一个DDT的testcase。
首先,你需要建立一个存放数据的Excel文件,在sheet1里面,第一行的两个column分别输入id,name。
第二行对应地输入1,SilkTest。
保存该Excel文件为c:
\user.xls。
接下来你需要将该excel文件设置为数据源,以便SilkTest能访问到其中的内容。
通过控制面板-管理员工具-数据源(ODBC)打开ODBC数据源管理窗口,选择用户DSN页,然后点击ADD按钮添加一个MicrosoftExcelDriver(*.xls)。
在弹出的设置窗口中输入数据源名,比如“Test1”,然后通过选择工作簿来选择刚才我们保存在c盘的user.xls文件,然后点击确定,点击ODBC数据源管理窗口上的应用和确定。
这样,我们的数据源就设置好了。
打开SilkTest,我用的版本比较老啦,是6.5版本的,高版本应该操作相似。
新建一个项目,就叫DDT好了,然后通过workflow菜单选中DataDriven,这样DataDrivenworkflow工具栏就会出现。
然后,你先新建一个test1.t的脚本,在其中添加一个testcase名为test1,在脚本中点击鼠标右键选择“datadriventestcase”,在弹出的窗口中选择我们刚新建的test1测试用例,下一步,silktest会让你指定datadriven脚本,你就使用系统自动指定的那个脚本即可,在这里是test1.g.t,然后点击确定。
接下来Silktest会让你选择数据源,这时,我们选择刚刚新建的数据源Test1,然后点击确定。
系统又会让你指定Datadriven的测试用例名,好,我们还是用silkTest帮我们指定好的DD_test1即可,点击确定。
接下来,SilkTest就帮我们新建了一个test1.g.t的脚本文件,并且将它自动添加到了项目中。
我们先关闭紧接着弹出来的Find/ReplaceValues窗口,然后可以看到新的脚本被自动加入了一些代码如下:
[-] // *** DATA DRIVEN ASSISTANT Section (!
!
DO NOT REMOVE !
!
) ***
1. [ ] use "datadrivetc.inc"
2. [ ] use "test1.t"
3. [ ]
4. [ ] // *** DSN ***
5. [ ] STRING gsDSNConnect = "DSN=Test1;UID=;PWD=;"
6. [ ]
7. [ ] // *** Global record for each testcase ***
8. [ ]
9. [ ] type REC_DATALIST_DD_test1 is record
10. [ ]
11. [ ] // *** Global record for each Table ***
12. [ ]
13. [ ] // *** Global record containing sample data for each table ***
14. [ ] // *** Used when running a testcase with 'Use Sample Data from Script' checked ***
15. [ ]
16. [ ] // *** End of DATA DRIVEN ASSISTANT Section ***
17. [ ]
18.[-] testcase DD_test1 (REC_DATALIST_DD_test1 rData)
19. [ ]
我们先不管它,在自动生成的DD_test1用例中添加简单的两行。
Stringname
name=str
print(name)
然后右击鼠标,取消“validatereplacements”,然后用鼠标选中整个str字符串,右击鼠标,选择find/replacevaluses,在弹出的对话框中,将column下来框选中name,然后选择replace。
这时系统又会帮你生成一堆代码,现在这个脚本的内容会大致如下:
1.[ ]
2.[-] // *** DATA DRIVEN ASSISTANT Section (!
!
DO NOT REMOVE !
!
) ***
3. [ ] use "datadrivetc.inc"
4. [ ] use "test1.t"
5. [ ]
6. [ ] // *** DSN ***
7. [ ] STRING gsDSNConnect = "DSN=Test1;UID=;PWD=;"
8. [ ]
9. [ ] // *** Global record for each testcase ***
10. [ ]
11. [-] type REC_DATALIST_DD_test1 is record
12. [ ] REC_Sheet1_ recSheet1_ //Sheet1$,
13. [ ]
14. [ ] // *** Global record for each Table ***
15. [ ]
16. [-] type REC_Sheet1_ is record
17. [ ] REAL id //id,
18. [ ] STRING name //name,
19. [ ]
20. [ ] // *** Global record containing sample data for each table ***
21. [ ] // *** Used when running a testcase with 'Use Sample Data from Script' checked ***
22. [ ]
23. [-] REC_Sheet1_ grTest_Sheet1_ = {...}
24. [ ] NULL // id
25. [ ] str // name
26. [ ]
27. [ ] // *** End of DATA DRIVEN ASSISTANT Section ***
28. [ ]
29.[-] testcase DD_test1 (REC_DATALIST_DD_test1 rData)
30. [ ] string name
31. [ ] name = rData.recSheet1_.name
32. [ ] print(name)
当你尝试运行这个脚本的时候,silkTest会报错,说REC_Sheet1_grTest_Sheet1_中的str没有定义,由于该结构是用于默认样例测试的,所以你有两个选择,一个是将其整个注释掉,另外一个方法就是将str换成任意字符串,在我们这个case中,我将它换成“Example”字串,即为如下:
[-]REC_Sheet1_grTest_Sheet1_={...}
[]NULL//id
[]"Example"//name
再次运行该脚本,会输出如下的结果:
[-]TestcaseDD_test1({{1.000000,"SilkTest"}})-Passed
[]SilkTest
这说明我们的testcase通过DDT向导从excel文件中读出数据成功了!
如果用“Runtestcase”按钮来运行脚本,我们还能为DD_test1这个case勾上“UseSampleDatafromscript”这个选项,这个时候就是用我们脚本里面的数据来执行了。
输出的结果应该如下:
[-]TestcaseDD_test1({{NULL,"Example"}})-Passed
[]Example
作者:
ZengYueTian
网站:
SilkTest中文站
网址:
版权所有-转载时必须以链接形式注明作者和原始出处
SilkTest-自动复原系统
SilkTest提供了一套自动恢复系统,让测试在出现异常和错误的情况下能够自动复原到指定的系统状态。
在silktest入门快打系列里,我已经简单介绍了appstate的用法,这里也不再赘述。
今天主要想讲一下其他一些可以与appstate配合使用的函数,以及他们之间的关系。
实际上,silktest的测试用例的组织,可以大致概括为plan包含script,script再包含case。
也就是说有三层结构可以使用,当然在最上层,你还可以plan再包含plan,这种情况我们这里也不用讨论。
一般来说plan调用script,然后script调用case,silktest对应地提供了TestPlanEnter(),TestPlanExit(),ScriptEnter(),ScriptExit(),TestCaseEnter(),TestCaseExit(),和Appstate()。
Appstate()你可以将它看成为多个case之间运行的函数。
所以他们之间的关系和顺序应该如下:
TestPlanEnter()->ScriptEnter()->TestCaseEnter()->Appstate()->TestCaseExit()->ScriptExit()->TestPlanEnter(),看上去很像一个V字,对吧。
他们的作用就是在进入或者退出plan,script,case的时候做一些初始化和清理工作。
如果一个script中多个case都会用到的初始化,你就可以写在这个script的ScriptEnter()里面,都会用到的清理工作,你就可以放到ScriptExit()里面,对于其他的函数也是同理。
说了这么多,还是用例子来说明比较实在,你可以新建一个项目,然后建立一个FunctionStep.plan的plan文件,内容如下:
1.[-] Function Step1
2.
3. [ ] script:
FunctionStep1.t
4.
5. [ ] testcase:
test1
6.
7.[-] Function Step2
8.
9. [ ] script:
FunctionStep1.t
10.
11. [ ] testcase:
test2
12.
13.[-] Function Step3
14.
15. [ ] script:
FunctionStep2.t
16.
17. [ ] testcase:
test3
18.
19.[-] Function Step4
20.
21. [ ] script:
FunctionStep2.t
22.
23. [ ] testcase:
test4
然后建立一个多个脚本共享的include文件FunctionStep.inc,内容如下:
1.[-] TestPlanEnter()
2.
3. [ ] Print ("Enter Test plan")
4.
5.[-] TestPlanExit(BOOLEAN bException)
6.
7. [ ] Print ("Leave Test plan")
8.
9. [-] if(bException)
10.
11. [ ] ExceptLog ()
最后有两个script,文件名分别是FunctionStep1.t和FunctionStep2.t,它们的内容如下:
1.[ ] use "FunctionStep.inc"
2.
3.[ ]
4.
5.[-] ScriptEnter()
6.
7. [ ] Print("Enter script1")
8.
9.[-] ScriptExit(BOOLEAN bException)
10.
11. [ ] Print("Leave script1")
12.
13. [-] if (bException)
14.
15. [ ] ExceptLog ()
16.
17. [ ]
18.
19.[-] TestCaseEnter()
20.
21. [ ] Print("Enter Testcase")
22.
23.[-] TestCaseExit (BOOLEAN bException)
24.
25. [ ] Print("Leave Testcase")
26.
27. [-] if (bException)
28.
29. [ ] ExceptLog ()
30.
31.[ ]
32.
33.[-] testcase test1()
34.
35. [ ] print("I'm in testcase1")
36.
37.[-] testcase test2()
38.
39. [ ] print("I'm in testcase2")
1.[ ] use "FunctionStep.inc"
2.
3.[-] appstate app_no() basedon DefaultBaseState
4.
5. [ ] print("In Appstate")
6.
7.[ ]
8.
9.[-] ScriptEnter()
10.
11. [ ] Print("Enter script2")
12.
13.[-] ScriptExit(BOOLEAN bException)
14.
15. [ ] Print("Leave script2")
16.
17. [-] if (bException)
18.
19. [ ] ExceptLog ()
20.
21. [ ]
22.
23.[-] TestCaseEnter()
24.
25. [ ] Print("Enter Testcase")
26.
27. [ ] SetAppState ()
28.
29.[-] TestCaseExit (BOOLEAN bException)
30.
31. [ ] Print("Leave Testcase")
32.
33. [-] if (bException)
34.
35. [ ] ExceptLog ()
36.
37.[ ]
38.
39.[-] testcase test3() appstate app_no
40.
41. [ ] print("I'm in testcase3")
42.
43.[-] testcase test4()
44.
45. [ ] print("I'm in testcase4")
尝试着运行你的plan,你将会得到下面的结果:
1.[-] Function Step1
2.
3. [ ] Enter Test plan
4.
5. [ ] Enter script1
6.
7. [ ] Enter Testcase
8.
9. [ ] I'm in testcase1
10.
11. [ ] Leave Testcase
12.
13. [ ] Leave script1
14.
15.[-] Function Step2
16.
17. [ ] Enter script1
18.
19. [ ] Enter Testcase
20.
21. [ ] I'm in testcase2
22.
23. [ ] Leave Testcase
24.
25. [ ] Leave script1
26.
27.[-] Function Step3
28.
29. [ ] Enter script2
30.
31. [ ] Enter Testcase
32.
33. [ ] *** DefaultBaseState is invoking Notepad
34.
35. [ ] In Appstate
36.
37. [ ] I'm in testcase3
38.
39. [ ] Leave Testcase
40.
41. [ ] Leave script2
42.
43.[-] Function Step4
44.
45. [ ] Enter script2
46.
47. [ ] Enter Testcase
48.
49. [ ] I'm in testcase4
50.
51. [ ] Leave Testcase
52.
53. [ ] Leave script2
54.
55. [ ] Leave Test plan
来分析一下,看看这些函数执行的顺序,是不是和咱讲的一样?
作者:
ZengYueTian
网站:
SilkTest中文站
网址:
版权所有-转载时必须以链接形式注明作者和原始出处
SilkTest-测试JavaAWT应用
AWT是抽象窗口软件包的简称(AbstractWindowToolkit),它在Java1.0的时候被引入,不过当初的AWT十分简陋,它直接调用本地方法来创建图形控件,这使得同一个控件在不同的系统平台上看起来有不同的显示。
AWT主要提供两层API,它们是:
1.一个介于java和本地系统之间的通用接口,用来创建窗体,事件驱动和管理布局,这些API是JAVAGUI变成的核心,同时也被Swing和Java2D调用。
2.一组基本的GUI控件。
SilkTest几乎所有版本都提供了AWT应用例程,使得我们可以方便地学习使用SilkTest来测试AWT程序。
我用的是SilkTest2008,在开始之前你最好在测试机上安装jdk并且设置好Java_home和Path环境变量。
下面的步骤很简单,可以带领我们一步步的使用silktest来创建project并且编写脚本进行测试:
1.进入C:
\ProgramFiles\Borland\SilkTest\ng\samples\java\awt目录,运行其中的批处理文件AwtTestApp.bat,它会帮我们启动AWT例程。
2.然后打开SilkTest,建立一个新的project。
3.SilkTest2008比较好,提供了JavaAWT类型应用的项目向导,请选择client/serverapplication下的JavaAWT项目类型,进行创建。
4.将项目命名为TestAWT
5.接下来就和我们测试其他的windows应用类似了
6.新建一个testframe文件,设定应用为刚刚运行起来的AWT应用TestApplication
7.在javaAWT应用上选择control菜单的checkbox菜单项,这时候会弹出来一个子窗口“checkbox”,继续抓取它的定义放在frame.inc的尾部
8.新建一个MenuTest.t的脚本,输入下面的4Test代码,然后运行,看看效果吧。
[-]testcaseSelectMenu()
[]TestApplication.SetActive()
[]TestApplication.Menu2.MenuItem1.Check()
[]sleep
(2)
[-]if(xCheckBox.Exists())
[]xCheckBox.TextField
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SilkTest 指南