51Testing软件测试论坛

标题: 关于QTP的问题,应如何解决? [打印本页]

作者: 804845430    时间: 2011-3-15 13:41
标题: 关于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,对象不支持此属性或方法,请问这是什么原因?
作者: 804845430    时间: 2011-3-15 13:42
这个问题应如何解决呢?
作者: 804845430    时间: 2011-3-15 13:42
我是初学QTP,希望各位高手帮帮忙
作者: 风雪夜归人    时间: 2011-3-15 14:26
Reporter并没有reportevent1的方法[attach]71920[/attach]
作者: 804845430    时间: 2011-3-15 15:28
回复 4# 风雪夜归人


    看书上说,1代表的是错误
作者: shingo0109    时间: 2011-3-15 16:14
回复 5# 804845430


LZ所写的Reportevent与1之间少了个空格吧, 1代表Fail, LZ要细心点哈
作者: 风雪夜归人    时间: 2011-3-15 17:23
回复 5# 804845430

不解释
作者: 804845430    时间: 2011-3-16 14:05
回复  804845430


LZ所写的Reportevent与1之间少了个空格吧, 1代表Fail, LZ要细心点哈
shingo0109 发表于 2011-3-15 16:14


谢谢你,问题解决了 呵呵
作者: 804845430    时间: 2011-3-16 14:14
回复 6# shingo0109


    你好,我还有个问题不明白,就是我设计了一个登录系统的测试功能,刚开始在录制流程的时候使用正确的用户名和密码进入并退出的,当我在参数化时,将空用户名和空密码放在了第一行,并编写了上面的脚本,当回放提示“请输入用户名”时,还在点击进入按钮,就会弹出Object Error,这个问题要怎么解决呢?
作者: shingo0109    时间: 2011-3-16 15:16
回复 9# 804845430


LZ要么在for循环里面加个if判断, 如果取到的用户名DataTable("yh", dtLocalSheet)或者取到的密码DataTable("mm", dtLocalSheet)为空的话, 就退出for循环
作者: shingo0109    时间: 2011-3-16 15:20
或者根据错误提示信息来判断,如果提示信息“请输入用户名”存在的话, 就退出for循环, 然后继续下一行
作者: 804845430    时间: 2011-3-16 21:20
或者根据错误提示信息来判断,如果提示信息“请输入用户名”存在的话, 就退出for循环, 然后继续下一行
shingo0109 发表于 2011-3-16 15:20



    但是这个登录测试点的设计考虑很多种,比如帐号和密码都为空或者其一为空,或者一个正确一个错误,或者两个都错误;这么多的测试点都要去进行判断退出for循环吗?有简单点的方法吗?
作者: shanfeng1419    时间: 2011-3-17 10:05
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
作者: shingo0109    时间: 2011-3-17 10:51
回复 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的情况, 还需添加点击的操作
作者: 804845430    时间: 2011-3-19 10:59
回复 13# shanfeng1419


    谢谢你的回答
作者: 804845430    时间: 2011-3-19 11:00
回复  804845430


由于用户名错误或者密码错误肯定要根据系统的提示信息来判断的, 不然无法知晓输入是 ...
shingo0109 发表于 2011-3-17 10:51



    好难懂,我目前还是个初学者,呜呜




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2