51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 4416|回复: 22
打印 上一主题 下一主题

[原创] 参数化结果

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2007-2-5 15:34:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
小弟初学QTP,请教下各位,我想做一个验证功能,需要输入单位代码、用户名、密码,然后登录,反复测试5000个帐号,小弟碰到些困难。
      先用QTP8.2录制一个成功的登录脚本,然后参数化单位代码、用户名、密码,参数化时选择全局表的,但是到了有错误的帐号时登录不成功,后面的就不执行了。我想让QTP在碰到错误的时候(就单纯指单位代码、用户名、密码有错误时)继续执行后面未执行的帐号,以验证哪些帐号是可用的,不至于中途退出,谢谢各位了,麻烦各位大哥大姐说详细些,小弟在此感谢。
      基本上参数化我会用,就是错误处理,小弟在问下,如果参数化时单纯的全局表,可以参数5000个么,如果不行,有别的方法么?

小弟在线等各位高手解答,谢谢了!

[ 本帖最后由 423799223 于 2007-2-5 15:35 编辑 ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2007-2-5 16:05:51 | 只看该作者
你可以这样:如果有错误的话,是不是能够弹出提示或者对话框来,如果有的话,做一个IF判断后关掉这个对话框,然后将错误信息写入报告中。
第二个问题,我想最好是试一下。没有见到过这种情况。
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2007-2-5 16:09:32 | 只看该作者
楼上的大哥
关键进我录制的脚本只是单纯的登录系统成功后再退出
里面并没有什么出错的东西
我怎么弄呢
麻烦您给一个仔细点的代码
谢谢
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2007-2-5 16:12:34 | 只看该作者
你的意思是说没有任何的错误信息是吧.那在你出错的情况下是一种什么的情形呢.
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2007-2-5 16:19:24 | 只看该作者
错误信息就是弹出一个窗口,内容大就是说用户名或者密码出错,然后非得我点击那个错误窗口的确定按钮,后面的就不执行了
    我想让QTP在出现这些错误时候自己点击这些错误,然后再继续执行后面的操作,最终给我一个完整的结果
    我也知道需要加一个判断,判断登录成不成功,关键是我不知道这个代码该怎么写
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2007-2-5 16:21:19 | 只看该作者
首先,因为你录制的脚本是成功登陆的情况,所以它只能处理成功登陆的业务流程,但当你使用错误帐号登陆时,系统的响应应该是和成功登陆的流程不一样的,那脚本当然会报错了.至于如何在登陆错误的情况还能执行下面的参数,那就是你脚本要做的逻辑处理了,应该就只需要一个判断语句吧,正确时怎么处理,错误时又怎么处理

QTP的help中说明它的data table的max worksheet size是65536 rows by 256 columns,所以你5000个参数应该是可以处理的吧,呵呵,但我没有放过这么多数据,你试试吧
回复 支持 反对

使用道具 举报

该用户从未签到

7#
 楼主| 发表于 2007-2-5 16:22:52 | 只看该作者
楼上大哥
能不能说得具体些
是不是需要拆分两个Action
能不能给一段这样的代码看看
谢谢
或者录制脚本是怎么录制,麻烦教教,小弟初学
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2007-2-5 16:26:22 | 只看该作者
"内容大就是说用户名或者密码出错,然后非得我点击那个错误窗口的确定按钮"
你把"点击那个错误窗口的确定按钮"这个动作录下来不就可以让QTP处理了
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2007-2-5 16:26:39 | 只看该作者
楼主可以考虑一下场景恢复或者直接提取文本框文本
回复 支持 反对

使用道具 举报

该用户从未签到

10#
发表于 2007-2-5 16:27:49 | 只看该作者
原帖由 423799223 于 2007-2-5 16:19 发表
错误信息就是弹出一个窗口,内容大就是说用户名或者密码出错,然后非得我点击那个错误窗口的确定按钮,后面的就不执行了
    我想让QTP在出现这些错误时候自己点击这些错误,然后再继续执行后面的操作,最终给 ...


这个问题不就是我刚才说的嘛!
我用伪码说一下思路:
   if 错误窗口存在
     then 点确定关闭错误窗口
            将错误账号信息写入到报告中
   else
            将正确账号信息写入到报告中
   end if
回复 支持 反对

使用道具 举报

该用户从未签到

11#
 楼主| 发表于 2007-2-5 16:29:39 | 只看该作者
这个明白了
还有一点 就是判断的时候不明白
我怎么判断登录成功和没成功呢
我知道点击“登录”按钮后如果出现第二个页面就是成功,出现错误就是没成功
关键是我不知道这个IF怎么判断 我想请楼上大哥拿一段代码来看看 谢谢
回复 支持 反对

使用道具 举报

该用户从未签到

12#
发表于 2007-2-5 16:32:03 | 只看该作者
原帖由 423799223 于 2007-2-5 16:29 发表
这个明白了
还有一点 就是判断的时候不明白
我怎么判断登录成功和没成功呢
我知道点击“登录”按钮后如果出现第二个页面就是成功,出现错误就是没成功
关键是我不知道这个IF怎么判断 我想请楼上大哥拿一段代 ...


登录成功和没成功 肯定界面是不一样的吧,自然窗口的属性也不一样的.
你可以判断如果出现某个窗体,就表示成功,反之则不成功啊。和刚才的思路是一样的
回复 支持 反对

使用道具 举报

该用户从未签到

13#
 楼主| 发表于 2007-2-5 16:33:30 | 只看该作者
************************
Browser("尘封办公OA系统").Page("尘封办公OA系统").WebEdit("admin").Set "1"'输入错误的用户名
Browser("尘封办公OA系统").Page("尘封办公OA系统").WebEdit("password").SetSecure "45c6e8579c308067"'输入错误的密码
Browser("尘封办公OA系统").Page("尘封办公OA系统").WebButton("管理登陆").Click'点击登录按钮
Browser("尘封办公OA系统").Dialog("Microsoft Internet Explorer").WinButton("确定").Click'这个是错误揭示
Browser("尘封办公OA系统").Page("尘封办公OA系统").WebEdit("admin").Set "admin1"'输入正确的用户名
Browser("尘封办公OA系统").Page("尘封办公OA系统").WebEdit("password").SetSecure "45c6e862132d510269aa31d881c862ae"'输入正确的密码
Browser("尘封办公OA系统").Page("尘封办公OA系统").WebButton("管理登陆").Click'点击登录按钮
Browser("尘封办公OA系统").Page("尘封办公OA系统_2").Frame("top").Link("退出系统").Click'登录成功,进行第二个页面,然后点击'“退出系统”
Browser("尘封办公OA系统").Page("尘封办公OA系统_3").Sync '回到登录页面
Browser("尘封办公OA系统").Close' 关闭IE
************************
以上是小弟录制的脚本
但是我就是不知道IF怎么写
麻烦你们把脚本修改下,谢谢大哥们了
回复 支持 反对

使用道具 举报

该用户从未签到

14#
 楼主| 发表于 2007-2-5 16:34:17 | 只看该作者
12楼大哥这个说法我听得清楚
我试试先
==
回复 支持 反对

使用道具 举报

该用户从未签到

15#
发表于 2007-2-5 16:40:49 | 只看该作者
if Browser("尘封办公OA系统").Dialog("Microsoft Internet Explorer").exist
  then Browser("尘封办公OA系统").Dialog("Microsoft Internet Explorer").WinButton("确定").Click
else reporter.reportevent 0,"successful","成功"
end if

不知行不,你调一下,还有个问题是,如果出现错误信息点确定后,你的输入账户名和密码的文本框会不会自动清空,如果不能的话,你还要录一下,不然的话,你的下一条记录输入的话会提示错误的
回复 支持 反对

使用道具 举报

该用户从未签到

16#
 楼主| 发表于 2007-2-5 16:56:58 | 只看该作者
出现错误后,只会清除密码,不能清除用户名,还得手工指定焦点
您再看下我的这个脚本,登录失败时知道点击错误窗口的确定,但是登录成功后却不点击退出系统
*****************
Browser("尘封办公OA系统").Page("尘封办公OA系统").WebEdit("admin").Set DataTable("name", dtGlobalSheet)
Browser("尘封办公OA系统").Page("尘封办公OA系统").WebEdit("password").SetSecure DataTable("paw", dtGlobalSheet)
Browser("尘封办公OA系统").Page("尘封办公OA系统").WebButton("管理登陆").Click
if Browser("尘封办公OA系统").Dialog("Microsoft Internet Explorer").exist then
   Browser("尘封办公OA系统").Dialog("Microsoft Internet Explorer").WinButton("确定").Click
   reporter.ReportEvent 0,"successful","失败"
else
reporter.reportevent 0,"successful","成功"
Browser("尘封办公OA系统").Page("尘封办公OA系统_2").Frame("top").Link("退出系统").Click
end if
Browser("尘封办公OA系统").Page("尘封办公OA系统_3").Sync
Browser("尘封办公OA系统").Close
*****************
这是我的测试结果,用户名和密码已经参数化了

*****************
无标题测试 结果概要 : 未完成



测试: 无标题测试  
结果名: Res9
时区: 中国标准时间
运行开始时间: 2007-2-5 - 16:43:17
运行结束时间: 2007-2-5 - 16:43:25

循环编号  结果  
  
  
1  通过  
  
2  完成  



状态  次数  
  
通过 1
  
失败 0
  
警告 0


*****************
回复 支持 反对

使用道具 举报

该用户从未签到

17#
发表于 2007-2-5 17:04:52 | 只看该作者
reporter.ReportEvent  看看帮助,0和1是有区别的!
至于为什么不识别"退出系统",参考一下http://bbs.51testing.com/thread-64745-1-1.html
其实有很多问题,在论坛里都能找到解决方法的.
回复 支持 反对

使用道具 举报

该用户从未签到

18#
 楼主| 发表于 2007-2-5 17:21:45 | 只看该作者
还有个问题
QTP如果是先正确登录,就不再动了
麻烦楼上大哥帮忙看下代码,用户名和密码都已参数化
****************
Browser("尘封办公OA系统").Page("尘封办公OA系统").WebEdit("admin").Set DataTable("name", dtGlobalSheet)
Browser("尘封办公OA系统").Page("尘封办公OA系统").WebEdit("password").SetSecure DataTable("paw", dtGlobalSheet)
Browser("尘封办公OA系统").Page("尘封办公OA系统").WebButton("管理登陆").Click
If   browser("尘封办公OA系统").Dialog("Microsoft Internet Explorer").Exist   then
        Browser("尘封办公OA系统").Dialog("Microsoft Internet Explorer").WinButton("确定").Click
        reporter.ReportEvent 1,"successful","失败"
else
        reporter.ReportEvent 0,"successful","成功"
        Browser("尘封办公OA系统").Page("尘封办公OA系统").WebEdit("admin").Set DataTable("name", dtGlobalSheet)
        Browser("尘封办公OA系统").Page("尘封办公OA系统").WebEdit("password").SetSecure DataTable("paw", dtGlobalSheet)
        browser("尘封办公OA系统").Page ("尘封办公OA系统_2").Frame ("top").Link ("退出系统").Click
End If
Browser("尘封办公OA系统").Close
****************
我说下我的思路,先登录,登录后判断“If   browser("尘封办公OA系统").Dialog("Microsoft Internet Explorer").Exist   then”,如果有错误就点击“确定”,没错误就再输入用户名和密码,再点退出登录

我一开始用户名和密码是正确的,运行一下子到了IF那就不动了
回复 支持 反对

使用道具 举报

该用户从未签到

19#
 楼主| 发表于 2007-2-5 17:25:57 | 只看该作者
说白了就是IF这里没弄好
我自己也知道应该是这样的
*************
输入用户名和密码,点击登录
IF 用户名和密码不正确 THEN
    点击错误窗口中的确定按钮
ELSE
    点击退出登录
END IF
执行完所有的参数后,关闭IE
*************
我不知道执行完IF后怎么回到上面的输入用户名和密码窗口,用GOTO么
大哥麻烦教下 小弟万分感谢

这是我修改后的代码,怎么还是到了正确的用户名和密码登录成功后,没有点击退出登录呢
******************
Browser("尘封办公OA系统").Page("尘封办公OA系统").WebEdit("admin").Set DataTable("name", dtGlobalSheet)
Browser("尘封办公OA系统").Page("尘封办公OA系统").WebEdit("password").SetSecure DataTable("paw", dtGlobalSheet)
Browser("尘封办公OA系统").Page("尘封办公OA系统").WebButton("管理登陆").Click
If   browser("尘封办公OA系统").Dialog("Microsoft Internet Explorer").Exist   then
        Browser("尘封办公OA系统").Dialog("Microsoft Internet Explorer").WinButton("确定").Click
        reporter.ReportEvent 1,"successful","失败"
else
        reporter.ReportEvent 0,"successful","成功"
        browser("尘封办公OA系统").Page ("尘封办公OA系统_2").Frame ("top").Link ("退出系统").Click
End If
Browser("尘封办公OA系统").Close
******************

[ 本帖最后由 423799223 于 2007-2-5 17:30 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

20#
发表于 2007-2-5 17:44:14 | 只看该作者
多动手调一下吧.这样说也说不清楚啊,大体思路对了就没有问题了.
还有你看看key view视图---右点你的action 点call properties 然后可以进行运行次数的设置.我记不太清楚具体位置了,反正你要实现你的datatable 表中的数据一条条执行的话,可以在那里面设置的,最好多多看看帮助。
看一遍帮助,你的很多问题都能解决的。

[ 本帖最后由 wssgily 于 2007-2-5 17:59 编辑 ]
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-27 00:43 , Processed in 0.089686 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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