logo
 
 
|
|
|
|
|
|
|
|
 
 
您的位置:首页 - 专业知识
QTP输出值的另一种使用
[2010-03-03]
QTP输出值的另一种使用



作者:北大青鸟南京中博---刘飞

        有时在QTP脚本参数化之后,并不是所有受影响的检查点都能够轻松参数化。比如在订单确认页面中订票价格的检查点,要直接对它进行参数化,使之适应每个反复,是很难实现的。因为测试人员无法直接知道从一个地点到另一个地点的价格表,除非一个个查询计算出来,而且很可能在脚本运行的时候,航班价格表已经调整了,这样测试人员还需要手动更改参数表中的值。这时,可以考虑使用QTP的另外一个功能-------使用输出值的方式来验证测试结果。

        建立输出值的过程,就是让QTP在执行脚本的时候,把一些执行结果(中间结果)数据输出到DATA TABLE中,查看输出值与检查点相比,是另外一种测试形式。有时,建立输出值的过程不但是为了查看输出测试结果,这个运行时输出结果还可以作为参数,重新运用在脚本中。下面我就用教学中的例子来进行脚本输出值关联的使用。

        当我们用QTP进行Bugzilla进行测试,测试点的流程是先登陆再查找Bug,查看用户,提交Bug最后,再查找一个不同的Bug,最后退出系统。

        那好我们先录制好脚本。

Browser("Bugzilla Main Page").Page("Bugzilla Main Page").Link("Log in to an existing").Click
Browser("Bugzilla Main Page").Page("Login").WebEdit("Bugzilla_login").Set "root@njbugs.com"
Browser("Bugzilla Main Page").Page("Login").WebEdit("Bugzilla_password").SetSecure "49aa67ac11dc9a7105b412341b29504fe5ed"
Browser("Bugzilla Main Page").Page("Login").WebButton("Login").Click
Browser("Bugzilla Main Page").Page("Find a Specific Bug").WebEdit("id").Set "11"
Browser("Bugzilla Main Page").Page("Find a Specific Bug").WebButton("Find").Click
Browser("Bugzilla Main Page").Page("Bug 11 - abcd").Link("Users").Click
Browser("Bugzilla Main Page").Page("Select match string").Link("New").Click
Browser("Bugzilla Main Page").Page("Enter Bug").Link("专修36班工程师系统").Click
Browser("Bugzilla Main Page").Page("Enter Bug_2").WebList("component").Select "0.结束(添加新工程师需要保存"
Browser("Bugzilla Main Page").Page("Enter Bug_2").WebEdit("short_desc").Set "aqqaq"
Browser("Bugzilla Main Page").Page("Enter Bug_2").WebEdit("comment").Set "qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq"
Browser("Bugzilla Main Page").Page("Enter Bug_2").WebButton("Commit").Click
Browser("Bugzilla Main Page").Page("Bug 232 Submitted").WebEdit("id").Set "100"
Browser("Bugzilla Main Page").Page("Bug 232 Submitted").WebButton("Find").Click
Browser("Bugzilla Main Page").Page("Bug 11 - abcd").Link("Log out").Click
Browser("Bugzilla Main Page").Page("Logged Out").Sync
Browser("Bugzilla Main Page").Close

        以上是我录制好的脚本,大家可以看出我的脚本中是先找编号是11的Bug,中间提交一个新的Bug,再找一个编号是100的Bug。现在编号是11的Bug和编号是100的Bug没有关联的特性,我的需求是你第一次找什么Bug,那么我第二次也找什么,就是想让两者实现彼此的关联。我还想把我的需求更进一步,就是我用随机值来查找第一个Bug,那么第二次也就是相同的Bug。用QTP输出值进行关联就可以解决该问题。

        解决方案就是:
        1. 将上面的脚本进行修改,把11号Bug进行参数化,参数化的类型是用随机值
        2. 我们现在将该Bug输出到Data Table中,脚本位置要放对
        3. 将100号Bug进行参数化,注意要引用到该Data Table中相同的列名
        4. 如果正确写好该脚本,问题就解决了。以下是维护好的脚本

Browser("Bugzilla Main Page").Page("Bugzilla Main Page").Link("Log in to an existing").Click
Browser("Bugzilla Main Page").Page("Login").WebEdit("Bugzilla_login").Set "root@njbugs.com"
Browser("Bugzilla Main Page").Page("Login").WebEdit("Bugzilla_password").SetSecure "49aa67ac11dc9a7105b412341b29504fe5ed"
Browser("Bugzilla Main Page").Page("Login").WebButton("Login").Click
Browser("Bugzilla Main Page").Page("Find a Specific Bug").WebEdit("id").Set DataTable("p_Text", dtGlobalSheet)
Browser("Bugzilla Main Page").Page("Find a Specific Bug").WebEdit("id").Output CheckPoint("id_2")
Browser("Bugzilla Main Page").Page("Find a Specific Bug").WebButton("Find").Click
Browser("Bugzilla Main Page").Page("Bug 11 - abcd").Link("Users").Click
Browser("Bugzilla Main Page").Page("Select match string").Link("New").Click
Browser("Bugzilla Main Page").Page("Enter Bug").Link("专修36班工程师系统").Click
Browser("Bugzilla Main Page").Page("Enter Bug_2").WebList("component").Select "0.结束(添加新工程师需要保存"
Browser("Bugzilla Main Page").Page("Enter Bug_2").WebEdit("short_desc").Set "aqqaq"
Browser("Bugzilla Main Page").Page("Enter Bug_2").WebEdit("comment").Set "qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq"
Browser("Bugzilla Main Page").Page("Enter Bug_2").WebButton("Commit").Click
Browser("Bugzilla Main Page").Page("Bug 232 Submitted").WebEdit("id").Set DataTable("id_value_out", dtGlobalSheet)
Browser("Bugzilla Main Page").Page("Bug 232 Submitted").WebButton("Find").Click
Browser("Bugzilla Main Page").Page("Bug 11 - abcd").Link("Log out").Click
Browser("Bugzilla Main Page").Page("Logged Out").Sync
Browser("Bugzilla Main Page").Close

上一篇:DisplayTag展示与Hibernate物理分页(连载2)
下一篇:浅谈“反射”在java及.net技术中的运用
   
Facebook将允许使用PayPal支付服务 Facebook将允许使用PayPal支付服务
IE8成全球使用最广泛浏览器 首次超越IE6 IE8成全球使用最广泛浏览器 首次超越IE6
QTP的三种录制方式 QTP的三种录制方式
QTP中有三种录制模式:正常录制、模拟录制、低级录制。 QTP中有三种录制模式:正常录制、模拟录制、低级录制。
 

在线报名

  • 姓       名:*
  • 高考成绩:*
  • 电       话:*
  • 地       址:*
 
课程咨询
 

 
中博教育客服在线
 
©南京北大青鸟 隐私政策
学费咨询
学历咨询
专业咨询
订座试听
就业咨询
课程咨询
测试认证
软件认证