现在的位置: 首页 > 综合 > 正文

QTP学习笔记 之 DataTable参数化循环

2013年05月06日 ⁄ 综合 ⁄ 共 1407字 ⁄ 字号 评论关闭

   前段时间开始了QTP学习生涯,首先是熟悉了QTP工具的使用及组成部分的介绍,没有按照书上写的例子来,而是使用工作中真实的例子一步步摸索,熟悉的过程已过去一段时间了,由于比较忙暂停了,今天以脑海中的记忆重新开始,主要研究的是参数化后如何循环运行和下拉列表取值。其实掌握之后才发现很简单,然而自己走了很多弯路,以至于一

天下来就学会了这两点:
   录制的流程是:登录-新增教师名单-退出,这三个事件分别放在不同的ACTION里面,即login,addteachers,logout,我使用的DATA TABLE对教师信息进行参数化的,工号不能重复,性别和职务都是从下拉列表中随机取值,logint logout不需要循环,仅addteachers循环,其实很简单,只需选中addteachers点击鼠标右键选择action call properties - run 中有几个选项:
   run one iteration only:是指仅运行一次迭代,也就是说,即使Data table 中有多条测试数据,也仅执行一次。
   run on all rows:是指按数据表格中的所有数据都运行一次
   run from row...to row...:可根据自己需要设置运行的测试数据范围
   起初我本想写个for循环的,但怎么也不行,问题就出在这些参数不是全局的,而是在addteachers这个Action里,所以每次循环时要么就是从登录开始,要么就是获不到这个参数值。还是把我先写的for循环语句写出来吧,如果有知道的朋友请指正,我是在addterachers里写的,如下:

  dim currRow
  currROW=DataTable.GetCurrentRow 获得当前行赋给currRow作为初始值
  for i=currRow to datatable.GetRowCount -1 (datatable.GetRowCount是获得总行数,因为起止行是从0开始,所以减去1,后面有个Step 1 ,默认是1)

  DataTable.setCurrentRow(i) (然后再将i的值赋给currRow)

  statements..... 执行脚本

  next

  也有可能是我的循环语句写错了,反正没成功,也不知道使用这两种方法有何区别,哪种效率高?

下面再介绍如何获得下拉框的值

   Browser("").Page("").Frame("mainFrame").WebList("select").Select RandomNumber(0, 1)随机取下拉框中的值

  Browser ("").Page("").Frame("mainFrame").WebList("select").GetROProperty("items count")(这一句是获得下拉框的值数量)

Browser("").Page("").Sync  

下面这段是我在网上搜的

'i = Browser ("").Page("").Frame("mainFrame").WebList("select").GetROProperty("items count")
'row = i-1
'For j=0 to row
Browser("").Page("").Frame("mainFrame").WebList("select").Select RandomNumber(0, 1)'  "#"& j
Browser("").Page("").Sync

抱歉!评论已关闭.