51Testing软件测试论坛

标题: QTP--参数化 [打印本页]

作者: fei.ge    时间: 2009-5-18 16:45
标题: QTP--参数化
花了点时间写个参数化的东西,分享给各位。同时请各位给我挑错……

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

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

1、        最老土的办法
正常录制完成后,在关键字视图中参数化你的变量
[attach]52021[/attach]
点击后出现下列提示框
[attach]52022[/attach]
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
感觉后两种的例子和LZ定义的为什么参数化联系不是太紧密。

但这两种用法是经常用到的。(不是说参数化的这种用法)
作者: ziheng198688    时间: 2009-6-8 13:56
原帖由 jifeng 于 2009-5-18 17:03 发表
感觉后两种的例子和LZ定义的为什么参数化联系不是太紧密。

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

同意楼上的说法 不过楼主的文章还是很有用的 学习了
作者: trollmax    时间: 2012-7-16 14:33





欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2