查看Account A和B的余额,确认A账户减少1000元,B账户上增加1000元。
以上三个步骤从银行业务角度来看是各自独立的三个功能,但在转账场景里,又有密切的联系。步骤2依赖于步骤1的先决运行,步骤3则需要步骤2的转账数据。
使用QTP等工具针对以上案例开发脚本,则会面临棘手的问题,如果把三个功能写在一个脚本里,就会大大降低每个功能脚本的复用性。若开发成三个不同的脚本,那么彼此的关系和数据交互又需要增加额外的开发成本来实现。
2.2 使用AC的观点完成TestJob的定义
在AC的世界里,一切都得非常简单,三个功能将被定义成三个TestJob。
Create_Account_Info负责创建测试账户A和B,然后将accountA,accountB作为参数输出。在AC中做如下定义:
<TestJob name="Create_Account_Info" description="以管理员身份登录后台系统创建测试账户及相关卡信息 " depends="" driver_type="QTP"> <JobOutput name="accountA"/> <JobOutput name="accountB"/> <Lib location=”common\lib\lib_utility.vbs”/> <Run path="testcase\qtp\admin_createaccount"></Run> </TestJob> |
其中admin_createaccount是录制好的qtp脚本路径,lib_utility.vbs是脚本使用到的lib文件,AC将会自动加载到QTP运行环境中。
Transfer_FromAToB则会运行转账交易,将account A里的款项转给account B,并将转账数额作为参数输出。在AC中做如下定义:
<TestJob name="Transfer_FromAToB" description="以账户A登录,转账给B账户" depends=""Create_Account_Info" driver_type="QTP"> <JobInput name="accountA"/> <JobInput name="accountB"/> <JobOutput name="transfer_amount"/> <Lib location=”common\lib\lib_utilityvbs”/> <Run path="testcase\qtp\transfer_bank"></Run> |
……………………
查看全文请点击下载:http://www.51testing.com/html/39/n-234539.html
2.3 AC提供QTP的工厂开发模式
基于录制生成的QTP脚本,是面向功能的,而不是结构化的测试案例。这使得QTP在维护和增加测试案例时,成本十分昂贵。为此,AC引入工厂开发模式,使得QTP的开发像Junit一样清晰方便。
QTP的工厂开发模式有如下规范:
1、每个QTP的测试案例在表现形式上都是一个Vbscript的函数,测试案例的增加/删除通过增加/删除一个VBS的Function来达到。
2、工厂模式不支持对象库模式的脚本,所有的功能都以Description编程来实现
3、使用checkDependence函数来检查每个测试案例的运行结果状态
4、调用writeIntoACChannel和getDataFromChannel来完成测试案例之间的数据交互。
5、每个测试案例都是一个函数,一个函数是否成为一个测试案例取决于在TestJobFile.xml中的定义。
示例:
QTP自带的Flight演示程序,录制生成的脚本如下模式:
‘登录客户端 Dialog("Login").WinEdit("Agent Name:").Set "testing" Dialog("Login").WinEdit("Password:").Set "mercury" Dialog("Login").WinButton("OK").Click ‘输入机票信息,下订单 Window("Flight Reservation").ActiveX("MaskEdBox").Type "081210" Window("Flight Reservation").WinComboBox("Fly From:").Select "Frankfurt" Window("Flight Reservation").WinComboBox("Fly To:").Select "London" Window("Flight Reservation").WinButton("Insert Order").Click |
……
查看全文请点击下载:http://www.51testing.com/html/39/n-234539.html
版权声明:51Testing软件测试网及相关内容提供者拥有51testing.com内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像,否则将追究法律责任。