fei.ge 发表于 2009-5-18 16:45:32

QTP--参数化

花了点时间写个参数化的东西,分享给各位。同时请各位给我挑错……

序:为什么要参数化?
当你做测试时,可能会想到要使用多种不同的测试数据,针对同样的操作或功能进行测试。

比如:你想增加10组不同的订单,明智的选择是将新增订单的操作录制下来,通过QTP的参数化功能来建立这10组数据。

1、      最老土的办法
正常录制完成后,在关键字视图中参数化你的变量

点击后出现下列提示框

Const 代表的是常量,Parameter就是参数了。
当然选择参数话的时候,有三种方式。
A) DataTable         数据表格的形式来存储你的数据
B)environment环境变量形式存储你的数据
C) Random Number用随机数代替你的数据
正常情况下,我们都用datatable 来存储我们的数据~

在选择datatable 后,当然你还需要定义你的参数变量的名称。
另外这里有两个表供你选,第一个表是Global sheet ,另一个是Current action sheet
这两个表的不同点,就不啰嗦了。

2、      上面的做法是正常录制的情况下参数话的结果。
那么我们还可以怎么做呢?
<<<函数化。

      我们可以把我们的脚本做成一个函数,通过给这个函数传送变量的方法来达到参数化的效果。
      例如:我们做一个login的登录函数,通过传参数用户名、密码等给函数,达到参数化的效果
=============================================================================
Function Login_RDMS(sUerName,sPassword)
      ExecuteFile GetTestPath()&"对象库\001-登入模块.vbs"
      CloseIE()
      Url(URLLogin1)
                                                                              
      With Browser(Browser_RDMS).Page(Page_RDMS)
                .WebEdit(WebEdit_username).Set sUerName
                .WebEdit(WebEdit_password).Set sPassword
                .WebButton(WebButton_project).Click
      End with
      
      Login_RDMS= Browser(Browser_RDMS).Page(Page_RDMS).Link(Link_check).Exist(5)
End Function
=============================================================================
      至于怎么从外部的excel取的数据,可以通过DataTable.ImportSheet、DataTable.SetNextRow等方法来获取数据。


3、      还有一种情况(描述性对象编程里的childobjects)
举个例子,比如一个页面里有多个checkbox,我需要把这些checkbox全选上
Set brs = description.Create()
                brs("title").value = ".*"
Set page1 = description.Create()
                        page1("title").value = ".*"
Set wcb = description.Create()
                        wcb("type").value = "checkbox"

Set objs =Browser(brs).Page(page1).childobjects(wcb)
                For I = 1 to objs.cout
                        Objs(i-1).click
                Next

[ 本帖最后由 fei.ge 于 2009-5-18 16:48 编辑 ]

jifeng 发表于 2009-5-18 17:03:14

感觉后两种的例子和LZ定义的为什么参数化联系不是太紧密。

但这两种用法是经常用到的。(不是说参数化的这种用法)

ziheng198688 发表于 2009-6-8 13:56:37

原帖由 jifeng 于 2009-5-18 17:03 发表 http://bbs.51testing.com/images/common/back.gif
感觉后两种的例子和LZ定义的为什么参数化联系不是太紧密。

但这两种用法是经常用到的。(不是说参数化的这种用法)
同意楼上的说法 不过楼主的文章还是很有用的 学习了

trollmax 发表于 2012-7-16 14:33:40

:)
页: [1]
查看完整版本: QTP--参数化