我快乐,不是因为我得到的多,而是因为我计较的少

QTP 参数化

上一篇 / 下一篇  2008-12-28 16:43:59 / 个人分类:QTP

QTP 参数化

原始脚本录制:
Browser("LightPole").Page("LoginPg").Sync    '打开LightPole的网站
Browser("LightPole").Refresh                        '刷新当前页面
Browser("LightPole").Page("LoginPg").Link("Company").Click       '点击Company链接
Browser("LightPole").Page("Company").Sync        ' Company链接页面打开
Browser("LightPole").Close                              '关闭当前页面  

*******************************

参数化 (一)
Dim mylink                            '定义一个变量mylink
mylink="Press"                        '给这个变量赋值为Press

Browser("LightPole").Page("LoginPg").Sync
Browser("LightPole").Refresh
Browser("LightPole").Page("LoginPg").Link("text:="&mylink).Click   '把原来录制脚本时候的链接参数化(用描述性编程"text:="&mylink)
Browser("LightPole").Page("text:="&mylink).Sync        '可以回避这个页面,对应打开的页面也应该参数化,页面也参数化,和链接保持一致
Browser("LightPole").Close                    '关闭当前页面

运行这个脚本就会打开Press链接对应的页面 (注意:在运行脚本的时候把其它的IE窗口关掉,否则的话可能出现对象库为定义的问题) 

*************************************************

参数化 (二)   把参数放在QTP自带的Datatable里,然后QTP会循环执行,用datatable里面指定列的每一行参数
前提:在datatable里面输入指定的参数,参见图片:para.jpg (在发布图片的testing 里,因为我现在在文档里面添加不了图片)
 
Dim mylink
mylink=DataTable("A",dtGlobalSheet)    '指定列为A
Browser("LightPole").Page("LoginPg").Sync
Browser("LightPole").Refresh
Browser("LightPole").Page("LoginPg").Link("text:="&mylink).Click
Browser("LightPole").Page("text:="&mylink).Sync
Browser("LightPole").Close
 
************************************************************

参数化(三)
把excel表格中的数据倒入(import)到QTP的datatable中,制定其倒入的“文件名”,sheet名,把excel的数据导入到本地第几个datatable里

DataTable.ImportSheet(FileName,SheetSource,SheetDest)
Datatable.ImportSheet "参数1" ,参数2,参数3
参数1:要导入的excel文件的绝对路径
参数2:要导入的excel文件的第几个sheet
参数3:要导入到本地datatable的第几个表中



关于一下两个例子的备注说明:

注1: excel表的内容
excel:地址d:\\mydata.xls;
sheet1:                       sheet2:
mylink                         mylink
Company                        Blog
Press
注2.本地datatable的两个表的名称:1.Golbal ;2.Action1 


例 1:

Datatable.ImportSheet "d:\\mydata.xls" ,2,2  '把excel文件中第二个sheet的数据导入到本地第2个datatable的数据表格中
Dim mylink
mylink=DataTable("lindk","Action1")   '所以在这里就要调用本地第二个datatable的数据
msgbox mylink
Browser("LightPole").Page("LoginPg").Sync
'Browser("LightPole").Refresh
Browser("LightPole").Page("LoginPg").Link("text:="&mylink).Click
Browser("LightPole").Page("text:="&mylink).Sync
Datatable.SetNextRow
Browser("LightPole").Close

运行结果应该是:Msgbox应该弹出 Blog。
调用本地的第二个datatable时候,程序不会自动执行循环去遍历所有的参数,此时需要使用循环语句,判断本地其他数据表中数据的个数(遍历次数);只有在本地的Global中的数据才能自动遍历执行。


例2:


Datatable.ImportSheet "d:\\mydata.xls" ,1,1    '把excel文件中第一个sheet的数据导入到本地第二个datatable的数据表格中
Dim mylink
mylink=DataTable("lindk",dtGlobalSheet)    '所以在这里就要调用本地第二个datatable的数据
msgbox mylink
Browser("LightPole").Page("LoginPg").Sync
'Browser("LightPole").Refresh
Browser("LightPole").Page("LoginPg").Link("text:="&mylink).Click
Browser("LightPole").Page("text:="&mylink).Sync
Datatable.SetNextRow
Browser("LightPole").Close

运行结果因该是:Msgbox应该弹出 Company,再一遍弹出Press。


TAG: QTP

谦卑胜刚强 引用 删除 actrei   /   2009-08-23 12:23:08
偶是懒人,放空间主要为自己提个醒
Soluble Coffee 引用 删除 zhengwq   /   2008-12-31 16:38:39
看了以后感慨网络的不可思议,这也太不敬业了,相似到连颜色都不该,为了大家,还是改一下的好
 

评分:0

我来说两句

我的栏目

日历

« 2024-05-05  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 8244
  • 日志数: 13
  • 建立时间: 2008-12-04
  • 更新时间: 2010-03-12

RSS订阅

Open Toolbar