51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3588|回复: 9
打印 上一主题 下一主题

[原创] 如何优化qtp代码?

[复制链接]
  • TA的每日心情
    郁闷
    2015-6-16 14:29
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    跳转到指定楼层
    1#
    发表于 2008-2-28 10:19:19 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
    写了一段用户登录的qtp测试代码,感觉代码很长,希望大家帮忙优化一下。
    '-------------------脚本说明---------------
    '产品版本: 用户管理
    '测试员:
    '编写日期:2008-2-27
    '测试功能:用户登录
    '--------------------脚本内容-------------
    Dim inputcode '定义一个输入框,输入验证码
    Dim outputvalue '定义一个参数,读取文本输出值
    Dim istatus '定义一个验证信息值,存放预期校验信息
    Browser("请输入用户名和密码").Page("请输入用户名和密码").WebEdit("UserName").Set DataTable("username", dtLocalSheet)
    Browser("请输入用户名和密码").Page("请输入用户名和密码").WebEdit("UserPwd").SetSecure DataTable("password", dtLocalSheet)
    inputcode=inputbox("请输入验证码!") '弹出输入框,要求输入验证码
    Browser("请输入用户名和密码").Page("请输入用户名和密码").WebEdit("confirm").Set inputcode
    Browser("请输入用户名和密码").Page("请输入用户名和密码").WebButton("提交").Click
    Browser("请输入用户名和密码").Page("请输入用户名和密码").Output CheckPoint("请输入用户名和密码")
    outputvalue=DataTable("outmsg",dtlocalsheet) '第一次获取输出值
    istatus=datatable("status",dtlocalsheet) '第一次获取验证信息
    If  outputvalue <>istatus Then '检查期望验证信息与实际信息是否一致,如不一致则报告错误
            reporter.ReportEvent 1,"用户名验证","用户名正确性未进行验证,期望值为:"+istatus+",实际提示信息为:"+outputvalue
            datatable.GetSheet("Action1").setnextrow
            Browser("请输入用户名和密码").Page("请输入用户名和密码").WebEdit("UserName").Set DataTable("username", dtLocalSheet)
            Browser("请输入用户名和密码").Page("请输入用户名和密码").WebEdit("UserPwd").SetSecure DataTable("password", dtLocalSheet)
            inputcode=inputbox("请输入验证码!")
            Browser("请输入用户名和密码").Page("请输入用户名和密码").WebEdit("confirm").Set inputcode
            Browser("请输入用户名和密码").Page("请输入用户名和密码").WebButton("提交").Click
            Browser("请输入用户名和密码").Page("请输入用户名和密码").Output CheckPoint("请输入用户名和密码")
    else
            datatable.GetSheet("Action1").setnextrow
            Browser("请输入用户名和密码").Page("请输入用户名和密码").WebEdit("UserName").Set DataTable("username", dtLocalSheet)
            Browser("请输入用户名和密码").Page("请输入用户名和密码").WebEdit("UserPwd").SetSecure DataTable("password", dtLocalSheet)
            inputcode=inputbox("请输入验证码!")
            Browser("请输入用户名和密码").Page("请输入用户名和密码").WebEdit("confirm").Set inputcode
            Browser("请输入用户名和密码").Page("请输入用户名和密码").WebButton("提交").Click
            Browser("请输入用户名和密码").Page("请输入用户名和密码").Output CheckPoint("请输入用户名和密码")
    End If
    outputvalue=DataTable("outmsg",dtlocalsheet) '第二次获取输出值
    istatus=datatable("status",dtlocalsheet)  '第二次获取验证信息
    If  outputvalue <>istatus Then  '检查期望验证信息与实际信息是否一致,如不一致则报告错误
            reporter.ReportEvent 1,"密码验证","密码正确性未进行验证,期望值为:"+istatus+",实际提示信息为:"+outputvalue
            datatable.GetSheet("Action1").setnextrow
            Browser("请输入用户名和密码").Page("请输入用户名和密码").WebEdit("UserName").Set DataTable("username", dtLocalSheet)
            Browser("请输入用户名和密码").Page("请输入用户名和密码").WebEdit("UserPwd").SetSecure DataTable("password", dtLocalSheet)
            inputcode=inputbox("请输入验证码!")
            Browser("请输入用户名和密码").Page("请输入用户名和密码").WebEdit("confirm").Set inputcode
            Browser("请输入用户名和密码").Page("请输入用户名和密码").WebButton("提交").Click
            Browser("请输入用户名和密码").Page("请输入用户名和密码").Output CheckPoint("请输入用户名和密码")
    else
            datatable.GetSheet("Action1").setnextrow
            Browser("请输入用户名和密码").Page("请输入用户名和密码").WebEdit("UserName").Set DataTable("username", dtLocalSheet)
            Browser("请输入用户名和密码").Page("请输入用户名和密码").WebEdit("UserPwd").SetSecure DataTable("password", dtLocalSheet)
            inputcode=inputbox("请输入验证码!")
            Browser("请输入用户名和密码").Page("请输入用户名和密码").WebEdit("confirm").Set inputcode
            Browser("请输入用户名和密码").Page("请输入用户名和密码").WebButton("提交").Click
            Browser("请输入用户名和密码").Page("请输入用户名和密码").Output CheckPoint("请输入用户名和密码")
    End If
    outputvalue=DataTable("outmsg",dtlocalsheet)   '第三次获取输出值
    istatus=datatable("status",dtlocalsheet)   '第三次获取验证信息
    If  outputvalue <>istatus Then  '检查期望验证信息与实际信息是否一致,如不一致则报告错误
            reporter.ReportEvent 1,"验证码验证","验证码正确性未进行验证,期望值为:"+istatus+",实际提示信息为:"+outputvalue
            datatable.GetSheet("Action1").setnextrow
            Browser("请输入用户名和密码").Page("请输入用户名和密码").WebEdit("UserName").Set DataTable("username", dtLocalSheet)
            Browser("请输入用户名和密码").Page("请输入用户名和密码").WebEdit("UserPwd").SetSecure DataTable("password", dtLocalSheet)
            inputcode=inputbox("请输入验证码!")
            Browser("请输入用户名和密码").Page("请输入用户名和密码").WebEdit("confirm").Set inputcode
            Browser("请输入用户名和密码").Page("请输入用户名和密码").WebButton("提交").Click
            Browser("请输入用户名和密码").Page("请输入用户名和密码").Output CheckPoint("请输入用户名和密码")
    else
            datatable.GetSheet("Action1").setnextrow
            Browser("请输入用户名和密码").Page("请输入用户名和密码").WebEdit("UserName").Set DataTable("username", dtLocalSheet)
            Browser("请输入用户名和密码").Page("请输入用户名和密码").WebEdit("UserPwd").SetSecure DataTable("password", dtLocalSheet)
            inputcode=inputbox("请输入验证码!")
            Browser("请输入用户名和密码").Page("请输入用户名和密码").WebEdit("confirm").Set inputcode
            Browser("请输入用户名和密码").Page("请输入用户名和密码").WebButton("提交").Click
            Browser("请输入用户名和密码").Page("请输入用户名和密码").Output CheckPoint("请输入用户名和密码")
    End If

    '进入系统后退出
    Browser("请输入用户名和密码").Page("用户管理及用户登录系统").Link("退出登录").Click
    Browser("请输入用户名和密码").Page("请输入用户名和密码").Sync

    [ 本帖最后由 森林一木 于 2008-2-28 13:23 编辑 ]
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    该用户从未签到

    10#
    发表于 2010-4-7 21:39:48 | 只看该作者
    用With,或者用Set提取父对象:

    Dim inputcode '定义一个输入框,输入验证码
    Dim outputvalue '定义一个参数,读取文本输出值
    Dim istatus '定义一个验证信息值,存放预期校验信息

    Set objPage = Browser("请输入用户名和密码").Page("请输入用户名和密码")
    For i=1 To DataTable.GetSheet(dtLocalSheet).GetRowCount
            objPage.WebEdit("UserName").Set DataTable("username", dtLocalSheet)
            objPage.WebEdit("UserPwd").SetSecure DataTable("password", dtLocalSheet)
            inputcode=inputbox("请输入验证码!") '弹出输入框,要求输入验证码
            objPage.WebEdit("confirm").Set inputcode
            objPage.WebButton("提交").Click
            objPage.Output CheckPoint("请输入用户名和密码")
            outputvalue=DataTable("outmsg",dtlocalsheet) '第i次获取输出值
            istatus=datatable("status",dtlocalsheet) '第i次获取验证信息
            If  outputvalue <>istatus Then '检查期望验证信息与实际信息是否一致,如不一致则报告错误
                    reporter.ReportEvent 1,"用户名验证","用户名正确性未进行验证,期望值为:"+istatus+",实际提示信息为:"+outputvalue
            End If
            datatable.GetSheet("Action1").setnextrow '取下一行数据
    Next
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9#
    发表于 2010-4-7 17:35:11 | 只看该作者
    多用WITH,你会发现你会上瘾,优化+美观+直观+好习惯!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-8-25 11:11
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    8#
    发表于 2010-4-7 16:44:07 | 只看该作者
    with
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
    发表于 2010-4-7 14:48:11 | 只看该作者

    回复 2# 的帖子

    求救啊,我写的脚本跟二楼的大侠是一样的,可是运行的时候第一次到for语句后就停了,后面再run就继续,运行到【reporter.ReportEvent 1,"用户名验证","用户名正确性未进行验证,期望值为:"+istatus+",实际提示信息为:"+outputvalue】,到这边停止了提示“对象不支持此属性或方法: 'reporter.ReportEvent1'”,跳过后,还是不会自动读取表中的下一行数据。。。。请帮忙指导下啥问题?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
    发表于 2008-2-28 17:58:02 | 只看该作者
    还要问一下二楼的兄弟:这个循环中的:
    Browser("请输入用户名和密码").Page("请输入用户名和密码").Output CheckPoint("请输入用户名和密码")
    是否有可能引起检查点不能通过的问题?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5#
    发表于 2008-2-28 17:56:41 | 只看该作者
    楼主应该用一个循环,二楼的兄弟已给出!学习了!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2015-6-16 14:29
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    4#
     楼主| 发表于 2008-2-28 13:06:26 | 只看该作者
    哈哈,搞定了。多谢楼上的,还是这里哥们够意思!

    结贴。

    [ 本帖最后由 森林一木 于 2008-2-28 13:25 编辑 ]
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2014-12-26 13:34
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    3#
    发表于 2008-2-28 11:35:23 | 只看该作者

    回复 2# 的帖子

    对头

    把共用的部分提取出来
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    2#
    发表于 2008-2-28 11:29:00 | 只看该作者
    Dim inputcode '定义一个输入框,输入验证码
    Dim outputvalue '定义一个参数,读取文本输出值
    Dim istatus '定义一个验证信息值,存放预期校验信息
    For i=1 To DataTable.GetSheet(dtLocalSheet).GetRowCount
    Browser("请输入用户名和密码").Page("请输入用户名和密码").WebEdit("UserName").Set DataTable("username", dtLocalSheet)
    Browser("请输入用户名和密码").Page("请输入用户名和密码").WebEdit("UserPwd").SetSecure DataTable("password", dtLocalSheet)
    inputcode=inputbox("请输入验证码!") '弹出输入框,要求输入验证码
    Browser("请输入用户名和密码").Page("请输入用户名和密码").WebEdit("confirm").Set inputcode
    Browser("请输入用户名和密码").Page("请输入用户名和密码").WebButton("提交").Click
    Browser("请输入用户名和密码").Page("请输入用户名和密码").Output CheckPoint("请输入用户名和密码")
    outputvalue=DataTable("outmsg",dtlocalsheet) '第i次获取输出值
    istatus=datatable("status",dtlocalsheet) '第i次获取验证信息
    If  outputvalue <>istatus Then '检查期望验证信息与实际信息是否一致,如不一致则报告错误
    reporter.ReportEvent 1,"用户名验证","用户名正确性未进行验证,期望值为:"+istatus+",实际提示信息为:"+outputvalue
    End If
    datatable.GetSheet("Action1").setnextrow '取下一行数据
    Next

    [ 本帖最后由 hsjzfling 于 2008-2-28 11:31 编辑 ]
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-9-22 07:03 , Processed in 0.085837 second(s), 28 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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