51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2971|回复: 13
打印 上一主题 下一主题

[原创] 关于Static值的验证问题

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2008-2-3 15:54:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
关于static型的值,应该怎么进行比较呢?
这是网上找到的一段实例代码:
Option Explicit
Dim fso
'数据驱动文件路径,数据文件,当前行
Dim ddFilePath, ddFile, ddCurrLine
'执行日志文件路径,日志文件
Dim logFilePath, logFile
Dim strInfo

ddFilePath = Environment.Value("TestDir") & "\ddFile.txt"
logFilePath = Environment.Value("TestDir") & "\logFile.txt"

'====写入测试用例数据到数据驱动文件中===='
Set fso = CreateObject("Scripting.FileSystemObject")
'OpenTextFile第三个参数如果是False表示如果文件一定要存在.
Set ddFile = fso.OpenTextFile(ddFilePath, 2, True)

ddFile.WriteLine "ad,Mercury,Agent name must be at least 4 characters long."
'ddFile.WriteLine "admin,merc,Incorrect password. Please try again"
'ddFile.WriteLine "admin,Mercury,Flight Reservations"
ddFile.Close


'====写入测试结果到数据日志文件中===='
Set logFile = fso.OpenTextFile(logFilePath, 2, True)
logFile.WriteLine "************************************************************"
logFile.WriteLine "************************************************************"
logFile.WriteLine "*************************测试日志***************************"
logFile.WriteLine "******************用例名称:用户登陆**************************"
logFile.WriteLine "**********************作者:Holly zhao*************************"
logFile.WriteLine "********************执行时间:" & Date & "*********************"
logFile.WriteLine "************************测试开始:**************************"

'从ddFile中读取测试数据
Set ddFile = fso.OpenTextFile(ddFilePath, 1, True)

  
While NOT ddFile.AtEndOfLine
       ddCurrLine = Split(ddFile.ReadLine, ",")

       'SystemUtil.CloseProcessByName "Flight4a.exe"
       SystemUtil.Run Environment.Value("ProductDir") & "\samples\flight\app\flight4b.exe"

       Dialog("Login").WinEdit("Agent Name:").Set ddCurrLine(0)
       Dialog("Login").WinEdit("Password:").Set ddCurrLine (1)
       Dialog("Login").WinButton("OK").Click

       If Dialog("Login").Dialog("Flight Reservations").Exist Then
             if Dialog("Login").Dialog("Flight Reservations").Static("errInfo").GetROProperty("text") = ddCurrLine(2) Then
    ‘为什么我找不到Static("errInfo")对象?我查看了所有相关的Static,但是没有找到。这个Static("errInfo")是自定义的吗?                       
                  logFile.WriteLine "测试成功!"
                  MsgBox Dialog("Login").Dialog("Flight Reservations").Static("errInfo").GetROProperty("text")
              Else
                  MsgBox Dialog("Login").Dialog("Flight Reservations").Static("errInfo").GetROProperty("text")
                  logFile.WriteLine "测试失败!"
              End If
              Dialog("Login").Dialog("Flight Reservations").WinButton("OK").Click
              Dialog("Login").WinButton("Cancel").Click
       Else
              If Window("Flight Reservation").Exist Then
                     logFile.WriteLine "测试成功!"   
End If     
              Window("Flight Reservation").Close   
       End If     
Wend

logFile.WriteLine "==========================测试结束==================================="
logFile.WriteLine "*********************************************************************"
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2008-2-3 16:53:24 | 只看该作者
是的,对象库里
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2008-2-3 16:53:52 | 只看该作者
你没有别人的对象库,只把别人的代码拿过来当然不能直接用。对象的名称是可以改的。估计就是下面这个东西。你在自己对象库里把名称改成一样就可以了。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2008-2-3 18:31:53 | 只看该作者
谢谢你们的回复,但我还是遇到了一点问题,我的解决方法:
1)检查Object库,得到的结果
   C:\Object.JPG
2)用Spy查看了一下error 信息的属性,得到
  C:\spy.JPG
3)把代码改为
   if Dialog("Login").Dialog("Flight Reservations").Static("Agent name must be at least 4 characters long.").GetROProperty("text") = ddCurrLine(2) Then
4)检查结果
  1。发现还是有问题,报不能识别。
  2。即使能够识别的话,Agent name must be at least 4 characters long.是个动态的信息,能否用errInfo这样的参数来代替,如果能,又该怎么修改object库
    (Notes:我试着直接在object库中修改static的信息,同样报错)
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2008-2-3 18:34:27 | 只看该作者
这是Object的对象库

这是spy到的结果

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2008-2-3 20:43:21 | 只看该作者
把对象库里的对象名称改成errinfo啊,你改代码作甚。8.2版本手头没有。就是改画框的名称,你自己找找吧。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
回复 支持 反对

使用道具 举报

该用户从未签到

7#
 楼主| 发表于 2008-2-4 12:45:55 | 只看该作者
按照你的方法,问题解决了,Thank you very much!
回复 支持 反对

使用道具 举报

该用户从未签到

8#
 楼主| 发表于 2008-2-4 15:54:35 | 只看该作者
呵呵,有遇到了另外一个问题,就是循环体中的objects的设置问题,操作:
1)在代码中加入测试项,把代码改为
   ddFile.WriteLine "ad,Mercury,Agent name must be at least 4 characters long."
   ddFile.WriteLine "admin,merc,Incorrect password. Please try again"
   ddFile.WriteLine "admin,Mercury,Flight Reservations"
    ......
   
While NOT ddFile.AtEndOfLine
    .....
   If Dialog("Login").Dialog("Flight Reservations").Exist Then
       if Dialog("Login").Dialog("Flight Reservations").Static("errInfo").GetROProperty("text") = ddCurrLine(2) Then
    .......
   Wend
2)在objects中添加第二个错误提示对象
   C:\untitled.JPG
3)出现问题
   我试着把static的name设置为errInfo,提示errInfo已经存在。但是如果不设置为errInfo,while循环就不能继续执行下去,报对象不能识别

   这个问题能通过什么方式解决呢?
回复 支持 反对

使用道具 举报

该用户从未签到

9#
 楼主| 发表于 2008-2-4 15:55:55 | 只看该作者
在objects中添加第二个错误提示对象

[ 本帖最后由 xyst99 于 2008-2-4 15:58 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
回复 支持 反对

使用道具 举报

该用户从未签到

10#
发表于 2008-2-4 17:28:58 | 只看该作者
你要修改static对象的object identification。缺省好像是nativeclass和window id,你似乎加多两个识别属性,这样每次只要内容不同就变成了不同对象,当然找不到对象了。
回复 支持 反对

使用道具 举报

该用户从未签到

11#
 楼主| 发表于 2008-2-4 19:06:33 | 只看该作者
太谢谢了,问题解决了,也学到了不少。^_^
回复 支持 反对

使用道具 举报

该用户从未签到

12#
发表于 2008-3-11 16:31:05 | 只看该作者
解决了一个难题,谢谢!
回复 支持 反对

使用道具 举报

该用户从未签到

13#
发表于 2009-2-9 09:56:44 | 只看该作者
请问你的errInfo是变化的吗?是不是取的下面3个值?
   ddFile.WriteLine "ad,Mercury,Agent name must be at least 4 characters long."
   ddFile.WriteLine "admin,merc,Incorrect password. Please try again"
   ddFile.WriteLine "admin,Mercury,Flight Reservations"    ......

因为不同的 case,会出现不同的文本,所以不能预设static的值,是不是要把static的这些值放到被读取的excel的对应的case里,然后用FOR循环取staticXXX的提示框的值YYY?

[ 本帖最后由 FLY000 于 2009-2-9 10:00 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

14#
发表于 2009-3-13 15:01:43 | 只看该作者
搞了半天 终于把这个例子跑通了,不过前提是要对操作进行录制,使得对象库里面有相应的对象。
那么如何不使用对象库,对Static进行描述性编程呢?
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-6 11:06 , Processed in 1.100602 second(s), 29 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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