关于QTP的问题,应如何解决?
Dim i '定义行号Dim duqushiji'定义一个读取实际提示信息的变量
Dim duquyuqi'定义一个读取预期提示信息的变量
For i=1 to datatable.GetSheet("Action1").getrowcount
Browser("江苏先联信息系统有限公司").Page("江苏先联信息系统有限公司").Link("玉林测试环境").Click
Browser("先联电子病历系统 V1.37").Page("先联电子病历系统 V1.37").WebEdit("doctor.user_name").Set DataTable("yh", dtLocalSheet)
Browser("先联电子病历系统 V1.37").Page("先联电子病历系统 V1.37_3").Output CheckPoint("先联电子病历系统 V1.37")
Browser("先联电子病历系统 V1.37").Page("先联电子病历系统 V1.37").WebEdit("doctor.user_password").Click 0
Browser("先联电子病历系统 V1.37").Page("先联电子病历系统 V1.37").WebEdit("doctor.user_password").SetSecure DataTable("mm", dtLocalSheet)
Browser("先联电子病历系统 V1.37").Page("先联电子病历系统 V1.37").WebElement("进入").Click
Browser("先联电子病历系统 V1.37").Page("先联电子病历系统 V1.37_3").Output CheckPoint("先联电子病历系统 V1.37_3")
duqushiji=datatable("shijishuchuzhi",dtlocalsheet)
duquyuqi=datatable("yuqizhi",dtlocalsheet)
if duqushiji<>duquyuqi Then
reporter.ReportEvent1,"先联电子病历系统 V1.37","预期值为:"+duquyuqi+",实际值为:"+duqushiji
End If
datatable.GetSheet("Action1").setnextrow
Next
'以下是已经登录系统的页面
Browser("先联电子病历系统 V1.37").Page("先联EMR").Frame("topFrame").Image("退出").Click
Browser("先联电子病历系统 V1.37").Dialog("Microsoft Internet Explorer").WinButton("确定").Click
Browser("先联电子病历系统 V1.37").Page("先联电子病历系统 V1.37_2").Sync
Browser("先联电子病历系统 V1.37").Close
Browser("江苏先联信息系统有限公司").Page("江苏先联信息系统有限公司").Sync
Browser("江苏先联信息系统有限公司").Close
这是一个对登录系统的测试流程,代码在运行时在会提示reporter.ReportEvent1,对象不支持此属性或方法,请问这是什么原因? 这个问题应如何解决呢? 我是初学QTP,希望各位高手帮帮忙 Reporter并没有reportevent1的方法 回复 4# 风雪夜归人
看书上说,1代表的是错误 回复 5# 804845430
LZ所写的Reportevent与1之间少了个空格吧, 1代表Fail, LZ要细心点哈:D 回复 5# 804845430
不解释 回复804845430
LZ所写的Reportevent与1之间少了个空格吧, 1代表Fail, LZ要细心点哈
shingo0109 发表于 2011-3-15 16:14 http://bbs.51testing.com/images/common/back.gif
谢谢你,问题解决了 呵呵 回复 6# shingo0109
你好,我还有个问题不明白,就是我设计了一个登录系统的测试功能,刚开始在录制流程的时候使用正确的用户名和密码进入并退出的,当我在参数化时,将空用户名和空密码放在了第一行,并编写了上面的脚本,当回放提示“请输入用户名”时,还在点击进入按钮,就会弹出Object Error,这个问题要怎么解决呢? 回复 9# 804845430
LZ要么在for循环里面加个if判断, 如果取到的用户名DataTable("yh", dtLocalSheet)或者取到的密码DataTable("mm", dtLocalSheet)为空的话, 就退出for循环 或者根据错误提示信息来判断,如果提示信息“请输入用户名”存在的话, 就退出for循环, 然后继续下一行 或者根据错误提示信息来判断,如果提示信息“请输入用户名”存在的话, 就退出for循环, 然后继续下一行
shingo0109 发表于 2011-3-16 15:20 http://bbs.51testing.com/images/common/back.gif
但是这个登录测试点的设计考虑很多种,比如帐号和密码都为空或者其一为空,或者一个正确一个错误,或者两个都错误;这么多的测试点都要去进行判断退出for循环吗?有简单点的方法吗? lz你好,不知道第二个问题你解决没有。我说下我的想法。
录制正确输入的情况,是没有“请输入用户名”窗口弹出的,所以再用这个脚本跑“错误”的情况当然是不通的。所以我们说录制脚本是第一步,增强脚本是第二步。
可以用if判断,我理解你说的情况是当输入二者皆为空时,无需点击“进入”按钮,系统也会弹出“请输入用户名”。如果是这种情况,再输入用户名和密码后,用if检测有无错误窗口弹出(先不点击“进入”)。如果有,点击错误窗口的“确定”,反之,再点进入。
With Browser("先联电子病历系统 V1.37").Page("先联电子病历系统 V1.37")
.WebEdit("doctor.user_name").Set DataTable("yh", dtLocalSheet)
.Output CheckPoint("先联电子病历系统 V1.37")
.WebEdit("doctor.user_password").Click 0
.WebEdit("doctor.user_password").SetSecure DataTable("mm", dtLocalSheet)
if .webtable("错误窗口").exist then'伪代码, 错误窗口包括各种组合情况的提示信息
.webbutton("确定").click
else
.WebElement("进入").Click
end if
end with 回复 12# 804845430
由于用户名错误或者密码错误肯定要根据系统的提示信息来判断的, 不然无法知晓输入是否错误,这些if判断没法简化了。要么把判断用户名和密码不为空的情况设为先前条件,我简单写了下, LZ根据实际情况修改:
if 用户名="' or 密码="" Then
Reporter.ReportEvent micFail, "检查用户名或密码是否为空", "用户名或密码为空"
Exit For
else
.WebEdit("doctor.user_name").Set 用户名
.WebEdit("doctor.user_password").SetSecure 密码
.WebElement("进入").Click
if .WebElement("innertext:=用户名不存在").Exist(0) Then
Reporter.ReportEvent micFail, "检查用户名是否正确", "用户名不存在"
Elseif .WebElement("innertext:=密码错误").Exist(0) Then
Reporter.ReportEvent micFail, "检查密码是否正确", "密码错误"
Else
'进入之后进行后面的操作
End If
End If
如果错误提示信息是pop-up的情况, 还需添加点击的操作 回复 13# shanfeng1419
谢谢你的回答 回复804845430
由于用户名错误或者密码错误肯定要根据系统的提示信息来判断的, 不然无法知晓输入是 ...
shingo0109 发表于 2011-3-17 10:51 http://bbs.51testing.com/images/common/back.gif
好难懂,我目前还是个初学者,呜呜
页:
[1]