QTP中正则表达式的使用

上一篇 / 下一篇  2010-10-20 10:03:53 / 个人分类:自动化测试技巧

问题:需要对魔方WebElement("日平均成交人数 35,670")这个控件的innertext属性值进行校验,确保这块是有数据的,由于这个值每天都在变化,直接使用35,670这个数据进行校验肯定行不通,因此想到了使用正则表达式。最初使用正则的脚本是:

if Browser("数据魔方").Page("成交趋势分#atart:2010-10-15|end:20").WebElement("日平均成交人数 35,670").GetRoProperty("innertext")="日平均成交人数"&"(\d*,)*(\d+)" then

reporter.ReportEvent micPass,"测试成功","此处有数据"

else

reporter.ReportEvent micFail,"测试失败","此处无数据"

end if

跑出来的结果每次都是“测试失败”。

解决方法:后来网上查资料发现在QTP中使用正则表达式是需要RegExp对象来支持的,改成以下脚本就能跑通:

Function RegExpTest(patrn, strng) ' 其中patrn为用户描述正则表达式的匹配模式,strng是用于匹配的字符串

Dim regEx, retVal ' 建立变量。

Set regEx = New RegExp ' 建立正则表达式。

regEx.Pattern = patrn ' 设置模式。

regEx.IgnoreCase = False ' 设置是否区分大小写。

retVal = regEx.Test(strng) ' 执行搜索测试。

If retVal Then

RegExpTest = true

Else

RegExpTest =false

End If

End Function

if RegExpTest("(\d*,)*(\d+)",Browser("数据魔方").Page("成交趋势分析#start:2010-10-16|end:20").WebElement("42,060,526").GetROProperty("innertext")) then

reporter.ReportEvent micPass,"测试成功","此处有数据"

else

reporter.ReportEvent micFail,"测试失败","此处无数据"

end if


简单总结下QTP中使用正则表达式的方法:

1.生成正则表达式对象
Set regEx = New RegExp 

2. 设置正则表达式对象的属性(共三个属性)
regEx.Pattern = patrn 'patrn属性用于描述正则表达式的匹配模式
regEx.IgnoreCase = True 'IgnoreCase属性用于设置匹配字符串时是否区分大小写
regEx.Global = True 'Global属性用于设置搜索过程中是仅匹配第一个还是全部匹配

3. 设置正则表达式对象的方法(共三种方法)

regEx.Replace(string1, string2) 'Replace方法用于替换在正则表达式中查找到的文本

regEx.Test(string) 'Test方法用于对指定的字符串执行一个正则表达式搜索,并返回一个布尔值,标识是否找到匹配的模式
regEx.Execute(string) 'Execute方法用于对指定的字符串执行正则表达式搜索,并返回一个Matches集合,其中包含了在指定的字符串中找到的每一个匹配项

4.使用正则表达式


TAG:

104509426的个人空间 引用 删除 104509426   /   2012-08-02 17:57:07
5
 

评分:0

我来说两句

日历

« 2024-05-04  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 11619
  • 日志数: 13
  • 建立时间: 2010-09-15
  • 更新时间: 2010-10-20

RSS订阅

Open Toolbar