51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

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

[原创] QTP的登陆脚本设计

[复制链接]
  • TA的每日心情
    奋斗
    2016-6-13 14:30
  • 签到天数: 12 天

    连续签到: 2 天

    [LV.3]测试连长

    跳转到指定楼层
    1#
    发表于 2008-8-20 23:34:24 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
    问题是这样的,“我的错误的用户名就没办法登陆”,其实含义就是脚本最好能处理成功的用户名错误的用户名,那么这里涉及到脚本的设计。
    目标如下:
    1.    脚本需要处理成功和失败的用户的登陆
    2.   数据驱动 设计开发脚本如下:

    第一步录制脚本如下
    Browser(智能变电巡检仪系统 4.0).Page(智能变电巡检仪系统 4.0).WebEdit(txtLoginName).Set 吕巍
    Browser(智能变电巡检仪系统 4.0).Page(智能变电巡检仪系统 4.0).WebButton(登 录).set
    Browser(智能变电巡检仪系统 4.0).Page(Page).Syn
    Browser(智能变电巡检仪系统 4.0).Close
    以上为录制的正确的用户名,下边录制错误的用户名
    Browser(智能变电巡检仪系统 4.0).Page(智能变电巡检仪系统 4.0).WebEdit(txtLoginName).Set xx
    Browser(智能变电巡检仪系统 4.0).Page(智能变电巡检仪系统 4.0).WebButton(登 录).set
    出现错误提示“该用户不存在”
    第二步 增强脚本
    现在需要设计的是一套脚本驱动所有的测试数据,这样可以驱动所有的用例数据,qtp中提供了datatable。
    但是有数据驱动也要做一个事情就是如何处理错误的用户名和正确的用户名,如何结合起来呢?
    这里我把datatable看作存放测试用例的地方,里面放入测试数据,还放入测试的预期结果。这样我的设计已经出现雏形了。
    我把datatable设计为三列
    username  password status
    吕x               
    xxx       xxxx     该用户不存在
    第三列放入最后执行的结果,我设计的是空为成功登陆,如果有信息就用实际运行的结果和这一列对比.好了万事俱备只欠东风了
    修改脚本如下:
    Dim iStatus
    Browser(智能变电巡检仪系统 4.0).Page(智能变电巡检仪系统 4.0).WebEdit(txtLoginName).Set DataTable(username, dtLocalSheet)
    Browser(智能变电巡检仪系统 4.0).Page(智能变电巡检仪系统 4.0).WebButton(登 录).set DataTable(password, dtLocalSheet)
    iStatus = DataTable(status, dtLocalSheet)
    If   iStatus=  Then
      Browser(智能变电巡检仪系统 4.0).Close
    End If

    If   iStatus=该用户不存在    Then
         Reporter.ReportEvent micFail, 登陆, 登陆失败.
    End If
    Browser(智能变电巡检仪系统 4.0).Close
    第三步,设置脚本运行过程
    打开 tests-〉settings
    设置RUN TAB页面下 Datatable iterations中 Run On all rows
    这样就完成了整个脚本的设计工作,以上通过一个简单例子吧脚本的设计和软件的功能结合起来,达成脚本的设计效果。
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    该用户从未签到

    4#
    发表于 2012-6-11 18:13:07 | 只看该作者
    反应有点慢,3楼楼主修改后的脚本,“iStatus = Browser(智能变电巡检仪系统 4.0).Page(智能变电巡检仪系统 4.0).dialog().exit   
    if iStatus = false then
       Reporter.ReportEvent micFail, 登陆, 登陆成功.
    ”这点写得挺不错的
    想了半天才反应过来,如果用户名是非正确的一定会弹出对话框,楼主这么写只要没有对话框就说明是登陆成功,我最近也在做类似的判断,正好在判断如果用户名是正确的时候不好写,谢谢楼主给的提示
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3#
    发表于 2008-8-21 09:50:16 | 只看该作者
    楼主的这个想法不错
    通过自己实践来同大家分享

    这里就你这个case说说一些自己的看法
    xiaonan上面的这个问题我们就不讨论了  是一个缺陷

    另外你在设计上我提点个人看法
    你这个思路是通过是否有弹出对话框来进行判断登陆是否成功
    按照你的代码
    如果出现其他错误信息提示,比如网络链接中断,或者服务器登陆不上等?
    你怎么办?

    所以
    你可以判断是否有弹出框架弹出
    修改你的代码为
    Dim iStatus
    Browser(智能变电巡检仪系统 4.0).Page(智能变电巡检仪系统 4.0).WebEdit(txtLoginName).Set DataTable(username, dtLocalSheet)
    Browser(智能变电巡检仪系统 4.0).Page(智能变电巡检仪系统 4.0).WebButton(登 录).set DataTable(password, dtLocalSheet)
    iStatus = Browser(智能变电巡检仪系统 4.0).Page(智能变电巡检仪系统 4.0).dialog().exit
    if iStatus = false then
       Reporter.ReportEvent micFail, 登陆, 登陆成功.
       Browser(智能变电巡检仪系统 4.0).Close
    else
       if Browser(智能变电巡检仪系统 4.0).Page(智能变电巡检仪系统 4.0).dialog().getRoProperty() = “该用户不存在” then
             Reporter.ReportEvent micFail,"登陆", "登陆失败,密码错误".
       else
             Reporter.ReportEvent micFail, "登陆", "登陆出现异常." (当然你也可以把这个异常弹出框中内容写出来)
       end if
    end if

    ===
    这里我就没有用到你数据中的第三项
    如果你要用 也可以
    在判断的地方修改下程序即可
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    2#
    发表于 2008-8-21 09:26:12 | 只看该作者
    我好象没看到实际结果和预期的结果对比嘛?
    iStatus = DataTable(status, dtLocalSheet)
    If   iStatus=  Then
      Browser(智能变电巡检仪系统 4.0).Close
    End If

    If   iStatus=该用户不存在    Then
         Reporter.ReportEvent micFail, 登陆, 登陆失败.
    End If
    这里你只是取的预期的值,跟实际程序得到的结果没有发生联系啊
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-22 13:15 , Processed in 0.071103 second(s), 30 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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