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

上一篇 / 下一篇  2010-03-11 17:10:34 / 个人分类:QTP

   前段时间开始了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                                                            


TAG:

踏雪无痕的个人空间 引用 删除 gaozhaoshan   /   2011-07-28 16:30:42
1
wsq8413的个人空间 引用 删除 wsq8413   /   2011-06-10 12:49:44
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

上面获取datatable中所有行数GetRowCount
Dim countNum
countNum=Datatable.GetSheet("sheet名").GetRowCount
For  i=1  to countNum  
——————
Datatable.GetSheet("sheet名").SetNextRow
Next

当然用SetCurrentRow(i) 也可以的
引用 删除 qwertyuiqwse   /   2010-03-12 17:02:45
技术分析:沪综指呈现区间波动 持续在200日均线附近打转 复制查看: [size=5][color=#ff0000]www.gt556.com[/color][/size]


分析师称铁矿石提价50%报导是“做样子” 实际幅度或更高  复制查看: [size=5][color=#ff0000]www.gt556.com[/color][/size]


独家:急跌诡异 反攻一触即发?十机构预测明日走势  复制查看: [size=5][color=#ff0000]www.gt556.com[/color][/size]


股东名册竟提前泄露 王亚伟似成莲花味精的大股东  复制查看: [size=5][color=#ff0000]www.gt556.com[/color][/size]


明日股市三大猜想及应对策略   复制查看: [size=5][color=#ff0000]www.gt556.com[/color][/size]


三新股明日上市定位分析 发行节奏加快 中签查询  复制查看: [size=5][color=#ff0000]www.gt556.com[/color][/size]
 

评分:0

我来说两句

日历

« 2024-04-27  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 6565
  • 日志数: 5
  • 建立时间: 2009-06-26
  • 更新时间: 2010-08-02

RSS订阅

Open Toolbar