51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 4791|回复: 15
打印 上一主题 下一主题

[原创] QTP 测试登陆

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2008-7-8 18:42:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
QTP 测试登陆时的问题:
   
       我测试登陆时,用户名和密码用了参数化进行设置,当输入正确的用户名好密码时,能够通过测试,
   当输入错误的用户名或密码时 QTP就停下来不动了, 怎么能够把正确的测试结果和错误的测试结果都一
   次性跑一片啊并显示到报表中啊?

     谢谢了!

    输入错误的用户名和密码点击确定时 确定按钮旁边的 DIV 显示 “用户名或密码错误”
     
    我的代码入下:  



Browser("视频监控系统IE副控").Page("视频监控系统IE副控").WebEdit("txtid").Set DataTable("user_Name", dtGlobalSheet)
Browser("视频监控系统IE副控").Page("视频监控系统IE副控").WebEdit("txtpassword").SetSecure DataTable("Password", dtGlobalSheet)


'得到登陆的用户名称和密码 此方法是为每次循环登陆时进行测试
LoginName = Browser("视频监控系统IE副控").Page("视频监控系统IE副控").WebEdit("txtid").Object.value
LoginPwd = Browser("视频监控系统IE副控").Page("视频监控系统IE副控").WebEdit("txtpassword").Object.value

'显示报告错误
'Reporter.ReportEvent micPass, "登陆的用户名好密码为  " ,"用户名为 "+LoginName+"   密码为 :"+LoginPwd+""
'Reporter.ReportEvent micpass, "登陆成功", "用户名与密码正确"

Browser("视频监控系统IE副控").Page("视频监控系统IE副控").WebButton("确定").Click
'得到登陆的结果

Browser("视频监控系统IE副控").Page("视频监控系统IE副控").WebEdit("txtpassword").SetSecure "48741b0a6bdf"


If  NOT href ="http://10.0.0.196/main/user/logo.asp" Then
        Reporter.ReportEvent  micFail, "登陆失败" ,"用户名为 "+LoginName+"   密码为 :"+LoginPwd+""
        ExitAction
Else
        Reporter.ReportEvent  micPass, "登陆成功" ,"用户名为 :"+LoginName
        ExitAction
End If


我知道是 条件判断出错了(就是加粗的地方),但不知道怎么写

[ 本帖最后由 tangxudim 于 2008-7-9 13:03 编辑 ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2008-7-8 18:53:31 | 只看该作者
密码错误跟密码正确的流程都不一致D,录制的脚本也一样!
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2008-7-8 18:54:20 | 只看该作者
这个要用到场景恢复?

[ 本帖最后由 qq102568183 于 2008-7-8 23:24 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2008-7-8 20:27:34 | 只看该作者
这应该是测试设计的问题,对于错误的帐号,测试结果应该预期为登录失败,这时候应该检查程序是否弹出相应的对话框或其他提示信息,如果正确提示,则Pass,否则Fail。

建议这种情况下最好不要用Recovery Scenario。Recovery Scenarios的设计目的是用于处理那些不可预见的事件:
http://blog.csdn.net/Testing_is_ ... /03/17/2193021.aspx


推荐新书《QTP自动化测试实践》
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2008-7-8 21:02:32 | 只看该作者
推荐新书《QTP自动化测试实践》?!!!!
速度好快
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2008-7-8 21:03:42 | 只看该作者
刚刚搜了一下,当当网上没有
再去china-pub上看看
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2008-7-8 23:16:09 | 只看该作者
操作步骤:
1,确定正确密码与错误密码的区别。例如错误的密码就有提示,一个msgbox的存在或者是其它,正确的,就会跳出什么页面之类的。
2,添加或者描述某个这个错误提示的对象。
3,代码可以这样2中方式实现
     a,如果我们只判断正确的,哪么其他的就都是不通过的(姑且这么认为吧)
       if  (通过后,某个对象出现,例如页面跳转,程序对象出现)object.exist then
                     Reporter.ReportEvent micpass, "登陆成功", "用户名与密码正确"
               else
                      Reporter.ReportEvent micfail, "登陆失败", "用户名与密码错误"
               end if
      
          b,我们现在写的是捕获错误的。如果我们想更详细的,哪么我们就可以先得到提示框的内容text,然后通过真正表达式去判断某个字段存在去区分,例如我们在对话框中,得到的文字是“密码”或者是“用户名”
       if  (失败后,某个对象出现,例如页面跳转,程序对象出现)object.exist then
                     捕获对话框内容,返回一个str,然后通过使用正则表达式,提取它的内容得到“a”
               else
                      Reporter.ReportEvent micpass, "登陆成功", "用户名与密码正确"
               end if
               
        select case a
                         case "密码"
                         Reporter.ReportEvent micfail, "登陆失败", "密码错误"
                         case "用户名"
                         Reporter.ReportEvent micfail, "登陆失败", "用户名错误"
                         .....
                        ......
                          end select
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2008-7-8 23:18:44 | 只看该作者
但一般情况呢,我们使用QTP是在后期工程提交前做的验证,所以不会涉及到很复杂的东西。都是实现设计好,那个是用户名正确那个是错的,或者密码错误的。
因此,我们不用写得哪么详细,只要有对话框或者其他出现,就说明什么情况了。
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2008-7-9 09:45:48 | 只看该作者

回复 7# 的帖子

你能不能, 写一个个完整程序出来,我用你方法, 出错很多, 也很难排查, 能不能写一下。
回复 支持 反对

使用道具 举报

该用户从未签到

10#
发表于 2008-7-9 09:53:15 | 只看该作者
我这里不会说那么多大道理,你的问题也同样好解决.

1.把登录成功和不成功的操作步骤都录到一个脚本中,分别用function括起来.
2.在登录时做判断,正确就call刚才写好的正确的function,并出一个成功的report.错误同样.

这样就解决你的问题啦!
这是我自己的方法,大家有意见就提啦!
回复 支持 反对

使用道具 举报

该用户从未签到

11#
发表于 2008-7-9 09:57:23 | 只看该作者
为了你们可以更好理解我说的东东,给代码如下:
Dim username
username = datatable.Value("user_name","Global")
If(username <> "") Then
                Call Login_Success()
else
        Call Login_Error()
End If

Function Login_Success()
Browser("软酷.人力资源引擎").Page("软酷.人力资源引擎").WebEdit("userName").Set DataTable("user_name", dtGlobalSheet)
Browser("软酷.人力资源引擎").Page("软酷.人力资源引擎").WebEdit("password").SetSecure DataTable("pass_word", dtGlobalSheet)
Browser("软酷.人力资源引擎").Page("软酷.人力资源引擎").Image("index_denlu001").Click 42,2
Browser("软酷.人力资源引擎").Page("我的软酷 - 软酷.人力资源引擎_2").Check CheckPoint("我的软酷 - 软酷.人力资源引擎")
Browser("软酷.人力资源引擎").Page("我的软酷 - 软酷.人力资源引擎").Link("测评服务").Click
End Function

Function Login_Error()
   Browser("软酷.人力资源引擎").Page("软酷.人力资源引擎").Image("index_denlu001").Click 52,12
Browser("软酷.人力资源引擎").Page("用户登录/注册 - 软酷.人力资源引擎_2").Image("tydh_05").Click
End Function
回复 支持 反对

使用道具 举报

该用户从未签到

12#
 楼主| 发表于 2008-7-9 11:13:16 | 只看该作者

回复 11# 的帖子

你好@ 你的 中段代码当运行到是错误的用户名好密码 页面显示了错误信息就不会进行下i次循环了啊 ! 能够有其他办法吗? 我新手真的有些不懂?先谢谢啦
回复 支持 反对

使用道具 举报

该用户从未签到

13#
 楼主| 发表于 2008-7-9 11:36:56 | 只看该作者

回复 7# 的帖子

你好! 能够告诉我 得到登陆结果的代码不啊! 我的IF条件中的语句不是很会!新手,先谢谢了
回复 支持 反对

使用道具 举报

该用户从未签到

14#
发表于 2008-7-9 14:23:21 | 只看该作者
错误的时候就应该弹出提示信息,而正确的情况就会发生页面跳转。
1、当错误时,捕获这个提示信息,判断其是否正确。
无论正确与否,都让它点提示信息框上的【确定】按钮 保证其把整个DataTable中的数据遍历一遍。
2、正确时,无非就是看其是否跳转到正确页面。
(1)、如果有【系统签退】、【返回】之类的Link看看是否好用。
(2)、或者就是验证后续操作是否可行,也就是点击页面上的一个Link进入下个页面。
3、你也可以加入截图机制,将正确后跳转的页面截下来,然后你看看是否正确。
回复 支持 反对

使用道具 举报

该用户从未签到

15#
发表于 2008-7-19 22:43:00 | 只看该作者
File -> setting ->Run-> when error occurs during run session = proceed to next step 就可以了,就算是脚本有错误也会继续下一步,直到你的循环结果执行完毕。

如果要输出结果,就需要根据上面的一些方法做判断
回复 支持 反对

使用道具 举报

该用户从未签到

16#
发表于 2010-3-25 09:51:54 | 只看该作者

回复关于登录测试

Browser("视频监控系统IE副控").Page("视频监控系统IE副控").WebEdit("txtid").Set DataTable("user_Name", dtGlobalSheet)
Browser("视频监控系统IE副控").Page("视频监控系统IE副控").WebEdit("txtpassword").SetSecure DataTable("Password", dtGlobalSheet)
Browser("视频监控系统IE副控").Page("视频监控系统IE副控").WebButton("确定").Click

If  Browser("视频监控系统IE副控").Dialog("Microsoft Internet Explorer").Exist  Then
        Browser("视频监控系统IE副控").Dialog("Microsoft Internet Explorer").Static("Please input your User Name.").Check CheckPoint("Please input your User Name.")'对没有输入或者输入错误的用户名和密码弹出提示窗口进行判断
        Browser("视频监控系统IE副控").Dialog("Microsoft Internet Explorer").WinButton("确定").Click
Else'如果没有弹出用户名或者密码错误提示窗口,则表示登录成功
        Reporter.ReportEvent micPass,"登录成功","已经登录成功"
End If


以上方法是按自己测试环境后进行改写,不能照抄,如果有缺少或者不同的部分需要自己作调整,另外此方法还没有完全完善,本来想直接在数据库中取登录名和密码与录入的登录名和密码对比,但因为数据库中密码被加密,所以不能用这个方法,只能用弹出窗口的方法判断是否登录成功了
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-9-23 02:24 , Processed in 0.095030 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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