51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 4628|回复: 3
打印 上一主题 下一主题

[原创] QTP--参数化

[复制链接]
  • TA的每日心情
    难过
    2015-9-21 13:50
  • 签到天数: 4 天

    连续签到: 1 天

    [LV.2]测试排长

    跳转到指定楼层
    1#
    发表于 2009-5-18 16:45:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    花了点时间写个参数化的东西,分享给各位。同时请各位给我挑错……

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

    比如:你想增加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 编辑 ]

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

    x
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    该用户从未签到

    2#
    发表于 2009-5-18 17:03:14 | 只看该作者
    感觉后两种的例子和LZ定义的为什么参数化联系不是太紧密。

    但这两种用法是经常用到的。(不是说参数化的这种用法)
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3#
    发表于 2009-6-8 13:56:37 | 只看该作者
    原帖由 jifeng 于 2009-5-18 17:03 发表
    感觉后两种的例子和LZ定义的为什么参数化联系不是太紧密。

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

    同意楼上的说法 不过楼主的文章还是很有用的 学习了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4#
    发表于 2012-7-16 14:33:40 | 只看该作者
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-10-5 15:28 , Processed in 0.087011 second(s), 29 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表