51Testing软件测试论坛

标题: 我用QTP这样测试对不对? [打印本页]

作者: Anniephoto    时间: 2006-3-31 16:55
标题: 我用QTP这样测试对不对?
由于不能直接贴图,我描述下附件的页面:
有五个字段:ID、Username、Password、Validate、GroupID

条件:
ID:只能为整数
Username:不能为空、字符长度为50
Password:不能为空、字符长度为20
Validate:判断date格式是否正确

我按正确操作录制了该页面。之后在QTP中加入参数和IF语句作判断。举例:Username

参数设置两个:Test和空值

IF语句:
CheckUS=DataTable("USER")
If (CheckUS<>"") Then
    If (Len(CheckUS)>50) Then
          Reporter.ReportEvent micFail, "判断长度", "输入数据大于50"
    End If
ELSE               
    Reporter.ReportEvent micFail, "判断是否为空值", "User不能为空"
End If


我在参数中故意输入不符合条件的空值数据,由于程序本来就做了错误的判断,这样系统就会弹出错误信息,只能手动把弹出窗口关掉,QTP才能继续运行下去。ID、username、password、validate也是这样的情况。

我用QTP这样测试对不对啊?一定要手动把弹出窗口关掉才能继续,这样就不是自动测试了,我是不是还要做错误录制?


刚学QTP,不太明白。请指教,小妹在此多谢了!
作者: Anniephoto    时间: 2006-3-31 16:58
在线等,请大侠们帮帮忙,教教我!QTP使用教程我看完了,但感觉还糊涂,所以发上来问问,谢谢大家了!
作者: Horus_Ra    时间: 2006-3-31 17:08
当然不对……

你应该用Exist属性判断窗口是否存在……
作者: Anniephoto    时间: 2006-3-31 17:42
谢谢Horus_Ra

是不是要先录制不符合条件,出现系统弹出窗口,就关闭的操作。
然后做判断,如果不符合条件,就执行上面所述的操作。

Exist属性是怎么用的?谢谢了。
作者: 我要做SQAD    时间: 2006-3-31 17:50
if object.exist then
...
end if
作者: 笑游天涯侠    时间: 2006-3-31 17:51
我也是刚接触QTP,但我认为3楼的不对吧;人家小M的意思是测试程序是否对输入的用户名的长度为0或大于50进行了判断,给出了提示信息。你的回答,是去判断用户名输入框存不存在。
具体该怎么设计,我也不清楚。希望有高手来回答。关注中
作者: Anniephoto    时间: 2006-4-3 09:39
顶,继续求助~~~~~

谢放上在回复的筒子们:-)
作者: Anniephoto    时间: 2006-4-3 09:40
晕,打错了好几个字: 谢谢上面回复的筒子们:-)
作者: Anniephoto    时间: 2006-4-3 11:06
在线等
作者: Anniephoto    时间: 2006-4-3 11:43
麻烦大侠们讲细点,谢谢了
作者: yangkinki    时间: 2006-4-3 12:50
CheckUS=DataTable("USER")
If (CheckUS<>"") Then
    If (Len(CheckUS)>50) Then
        window("").check checkpoint("")        ' 检查点,检查是否有"超过50"的提示信息
    End If
ELSE               
      window("").check checkpoint("")        ' 检查点,检查是否有"用户名不能为空"的提示信息
End If
作者: Anniephoto    时间: 2006-4-3 13:50
太谢谢yangkinki 版主,我现在就试试。sdlkfj



原帖由 yangkinki 于 2006-4-3 12:50 发表
CheckUS=DataTable("USER")
If (CheckUS<>"") Then
    If (Len(CheckUS)>50) Then
        window("").check checkpoint("")        ' 检查点,检查是否有& ...

作者: Anniephoto    时间: 2006-4-3 17:32
弹出窗口不是window窗口,只是个弹出提示窗口,怎样取window("")?
我手动取了弹出窗口都是这样:

Browser("TUser.title").Dialog("Microsoft Internet Explorer")


问题来了:所有提示信息都是这样的?而且弹出提示的文字加不了文字检查点,QTP怎样区别哪个是提示ID错误窗口?或是USER错误窗口?


CheckUS=DataTable("USER")
If (CheckUS<>"") Then
    If (Len(CheckUS)>50) Then
        
        If  Browser("TUser.title").Dialog("Microsoft Internet Explorer").Exist then
         Browser("TUser.title").Dialog("Microsoft Internet Explorer").Close
        else
                           .........
作者: Anniephoto    时间: 2006-4-4 09:08
继续顶啊~~~~
作者: mstiunicon    时间: 2006-4-4 09:50
原帖由 Anniephoto 于 2006-4-3 17:32 发表
弹出窗口不是window窗口,只是个弹出提示窗口,怎样取window("")?
我手动取了弹出窗口都是这样:

Browser("TUser.title").Dialog("Microsoft Internet Explorer")


问题来 ...

If (Len(CheckUS)>50) Then
            
       If  Browser("TUser.title").Dialog("Microsoft Internet Explorer").Exist then
         dim checkMsg
         checkMsg=Browser("TUser.title").Dialog("Microsoft Internet Explorer").static("userid is required").getROproperty("text")
        if instr(checkMsg,"required")>0 Then
         Browser("TUser.title").Dialog("Microsoft Internet Explorer").Close
       End If

      else
作者: Zee    时间: 2006-4-4 09:51
这个用例是怎么写的?
作者: Horus_Ra    时间: 2006-4-4 13:13
原帖由 笑游天涯侠 于 2006-3-31 17:51 发表
我也是刚接触QTP,但我认为3楼的不对吧;人家小M的意思是测试程序是否对输入的用户名的长度为0或大于50进行了判断,给出了提示信息。你的回答,是去判断用户名输入框存不存在。
具体该怎么设计,我也不清楚。希望 ...




你没明白我的意思。

判断窗口是否存在的原因是,如果它存在的话就要验证上面的提示,并关闭它,你不关闭它如何继续执行??
作者: Anniephoto    时间: 2006-4-4 14:42
谢谢mstiunicon,我就是想要得到这样的结果,但在运行到

checkMsg=Browser("TUser.title").Dialog("Microsoft Internet Explorer").static("userid is required").getROproperty("text")

有错误,错误如图





原帖由 mstiunicon 于 2006-4-4 09:50 发表

If (Len(CheckUS)>50) Then
            
       If  Browser("TUser.title").Dialog("Microsoft Internet Explorer").Exist then
         dim checkMsg
         checkMsg=Brows ...

作者: minliu    时间: 2006-4-4 15:10
请教楼上各位:

这些代码是在录制好后插入的吗,能不能提供一个完整简单的类似的脚本,刚学,谢谢!!!!!!!!!
作者: Anniephoto    时间: 2006-4-4 15:21
是录制好后插入的脚本
作者: Anniephoto    时间: 2006-4-4 15:22
继续求助~~~~
作者: Anniephoto    时间: 2006-4-4 16:27
大家再帮帮我
作者: Horus_Ra    时间: 2006-4-4 16:46
你那个错误说,没有找到"userid is required"这个对象
作者: Anniephoto    时间: 2006-4-4 16:54
谢谢Horus_Ra,我知道是没有找到"userid is required"这个对象,但不知怎样解决?

checkMsg=Browser("TUser.title").Dialog("Microsoft Internet Explorer").static("userid is required").getROproperty("text")

取不到提示窗口的信息吗?应该怎样做?谢谢。
作者: Anniephoto    时间: 2006-4-4 17:19
这个问题我找了好多资料啊,看到有kai_top 筒子在"基础代码交流贴"发过类似的贴子:

"如果弹出对话框就获取上面提示信息并与表中的信息对比,不统一证明弹出的提示出错,主要用来验证"

 if browser("web_name").dialog("dialog_name").exist(1) then'如果不出现=false
     error_message=browser("web_name").dialog("diaglog_name").static("用户密码错误!").getRoproperty("text")
   if error_message<>(datatable.value("error_info"))then
         msgbox(error_message)
      end if
     browser("web_name").dialog("diaglog_name").close
  end if


  为什么他这里error_message=browser("web_name").dialog("diaglog_name").static("用户密码错误!").getRoproperty("text")可以取得“用户密码错误”,而不会出错?


郁闷啊,自己解决不了。。。
作者: tkgg0122    时间: 2006-4-4 18:24
标题: 提示信息中不是已經說明白了嗎
提示信息中不是已經說明白了嗎?你的對象倉庫中沒有那個對像,既然對像不存在那怎麼能獲取一個不存在的對像屬性呢?
解決辦法就是你得先把帶"userid is required"提示信息的對話框添加到對像倉庫中去

[ 本帖最后由 tkgg0122 于 2006-4-4 18:26 编辑 ]
作者: tkgg0122    时间: 2006-4-4 18:30
标题: 在QTP中一切都是對像
在QTP中一切都是對像,所有的操作都是基於對象而言的
作者: Horus_Ra    时间: 2006-4-5 13:22
QTP要将对象放到对象库中才能识别,不是你写什么他就会认什么的……

"userid is required"是什么东西??你自己写的吧???不是一个对象吧???
作者: minliu    时间: 2006-4-6 16:49
原帖由 mstiunicon 于 2006-4-4 09:50 发表

If (Len(CheckUS)>50) Then
            
       If  Browser("TUser.title").Dialog("Microsoft Internet Explorer").Exist then
         dim checkMsg
         checkMsg=Brows ...

请教一下:执行完事后,是不是会自动关闭所有窗口,我想让它提示通过(以对话框形式),应如何写代码啊,谢谢,我想弹出一对话框提示此功能pass,大家看看这样行吗
Dim CheckUS
Dim CheckPW
CheckUs=Browser("XXX").Page("XXX").WebEdit("managerId").Set(DataTable("USER", dtGlobalSheet) )
CheckPW=Browser("XXX").Page("XXX").WebEdit("password").SetSecure(DataTable("PASSWORD", dtGlobalSheet))

If ( CheckUS = "" )Then
  If   ( Browser("XXX_2").Dialog("Microsoft Internet Explorer").Exist(1)) Then
   Dim a
   if  ( a = Browser("XXX_2").Dialog("Microsoft Internet Explorer").Static("请输入登录名!").check(checkpoint("请输入登录名!")) = true )then
  msgbox "passed"
   end if
   end if                   
End if

我调试了,可没提示passed啊,请问错误出在哪里,大家帮帮忙,谢谢

[ 本帖最后由 minliu 于 2006-4-6 17:02 编辑 ]
作者: Horus_Ra    时间: 2006-4-6 18:21
我看不懂……
CheckUs=Browser("XXX").Page("XXX").WebEdit("managerId").Set(DataTable("USER", dtGlobalSheet) )
CheckPW=Browser("XXX").Page("XXX").WebEdit("password").SetSecure(DataTable("PASSWORD", dtGlobalSheet))
这两句干吗用的?
作者: minliu    时间: 2006-4-6 18:24
将DataTable中USER字段中的值(默认第一行,也可通过方法取指定行)作为登录名,密码的输入值输入
我这里好象都没按下确定按钮的语句,可是还是执行了,还有,你看我这里达到测试目的了吗,有点糊涂

[ 本帖最后由 minliu 于 2006-4-6 18:26 编辑 ]
作者: zengyixun    时间: 2006-4-6 23:47
标题: 你是不是想看看弹出窗口是不是你期望的出错窗口?
如果是的话,你的问题是所有窗体的标题都一样,你无法区分是
因为什么错误而出现的提示窗体,我觉得,这个窗体对像,你是可以
获取的,然后在这个窗体上的Text其实也是控件撒,就取这个窗体上的
提示Text比对一下,就应该知道了。
作者: minliu    时间: 2006-4-7 09:20
弹出 的窗口是预期的,我想让它出现提示通过的消息来确认正确性,用代码怎么实现;(或者说弹出不是期望的,提示失败);直接用msgbox行吗,怎样用啊,该消息框会出现在什么什么时候


If CheckUs =” ”
If 弹出错误提示对话框(输入不能为空)
    If 对话框提示正确
       提示通过   //主要想实现这一步   
   Else 提示“提示信息有误”
Else 提示“提示对话框出错”

[ 本帖最后由 minliu 于 2006-4-7 09:31 编辑 ]
作者: Horus_Ra    时间: 2006-4-7 13:19
不要动不动就Msgbox,你运行脚本的时候不可能等在旁边按的……

报错可以用Reporter.ReportEvent 1,具体用法查帮助
作者: pldy    时间: 2006-4-7 13:55
qtp是一种回归测试工具,那为什么不录制输入不符合条件时的脚本呢.之后再做一些检查点和参数化的设置.
那么以后就可以直接运行这些脚本查看修改的程序是否仍然对这些错误作判断.
作者: minliu    时间: 2006-4-7 15:01
原帖由 Horus_Ra 于 2006-4-7 13:19 发表
不要动不动就Msgbox,你运行脚本的时候不可能等在旁边按的……

报错可以用Reporter.ReportEvent 1,具体用法查帮助

哦,谢谢,我想问一下怎么判断文本框内容为空(检查按清空按钮后文本编辑框是否清空)

[ 本帖最后由 minliu 于 2006-4-7 15:03 编辑 ]
作者: 447981218    时间: 2009-9-28 11:27
Dim CheckUS
Dim CheckPW
CheckUs=Browser("XXX").Page("XXX").WebEdit("managerId").Set(DataTable("USER", dtGlobalSheet) )
CheckPW=Browser("XXX").Page("XXX").WebEdit("password").SetSecure(DataTable("PASSWORD", dtGlobalSheet))

If ( CheckUS = "" )Then
  If   ( Browser("XXX_2").Dialog("Microsoft Internet Explorer").Exist(1)) Then
   Dim a
   if  ( a = Browser("XXX_2").Dialog("Microsoft Internet Explorer").Static("请输入登录名!").check(checkpoint("请输入登录名!")) = true )then
  msgbox "passed"
   end if
   end if                  
End if




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