自动化测试框架实例研究及解决方案

发表于:2011-4-26 11:03

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:柳胜    来源:51Testing软件测试网原创

分享:

  查看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>

     </TestJob>

  ……………………

  查看全文请点击下载: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

Window("Flight Reservation").Close

  ……

  查看全文请点击下载:http://www.51testing.com/html/39/n-234539.html

  版权声明:51Testing软件测试网及相关内容提供者拥有51testing.com内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像,否则将追究法律责任。

33/3<123
重磅发布,2022软件测试行业现状调查报告~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2023
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号