【软件测试自动化-QTP系列讲座 28】==正则表达式的应用 ==

 Rss订阅IQuickTest关于如何订阅?

GoogleReader订阅地址: http://feeds.feedburner.com/iquicktest

作者:zzxxbb112
时间:2010/2/23 版权所有,侵权必究。

出处:http://blog.csdn.net/zzxxbb112


正则表达式相信很多朋友都不陌生,它是一个非常常用的技术,不管是在什么语言中,今天我们就来看一下QTP中正则表达式的应用。

  • 描述性编程的应用

systemutil.Run "iexplore.exe","www.baidu.com" 
Browser("title:=.*").Page("name:=.*").WebEdit("name:=wd").Set "zzxxbb112"

当我们在使用描述性编程时,我们可以使用正则来代替长标题 

  • VBS中REGEXP的应用

在VBS中有一个叫REGEXP的类,它提供了简单的正则支持

Function RegExpTest(patrn, strng)
   Dim regEx, Match, Matches   ' Create variable.
   Set regEx = New RegExp   ' Create a regular expression.
   regEx.Pattern = patrn   ' Set pattern.
   regEx.IgnoreCase = True   ' Set case insensitivity.
   regEx.Global = True   ' Set global applicability.
   Set Matches = regEx.Execute(strng)   ' Execute search.
   For Each Match in Matches   ' Iterate Matches collection.
      RetStr = RetStr & "Match found at position "
      RetStr = RetStr & Match.FirstIndex & ". Match Value is '"
      RetStr = RetStr & Match.Value & "'." & vbCRLF
   Next
   RegExpTest = RetStr
End Function
MsgBox(RegExpTest("is.", "IS1 is2 IS3 is4"))

以上脚本是F1中提供的regexp的一个例子,非常经典!

  • 隐藏保留对象micRegExpMatch

micRegExpMatch.Initialize "t.*" 
msgbox micRegExpMatch.Compare("test")

执行以上代码我们可以看到弹出了TRUE的消息框,说明代码没问题。接下来重点说一下此对象的来源,此对象是QTP中的一个隐藏的保留对象,在QTP的帮助文档也没有任何的说明,这里简单介绍一下。

 

首先我们打开注册表,运行regedit,进入到HKEY_LOCAL_MACHINE –> SOFTWARE –> MERCURY INTERACTIVE –> QUICKTEST APPLICATION –> MICTEST –> RESERVEDOBJECTS 这个保留对象目录下,在这个目录中我们可以看到所有QTP的保留对象。

 

1

 

我们可以看到micRegExpMatch这个对象中的PROGID为mercury.CompareRegExp,接着我们试试在VBS里创建一下此对象

 

2

 

 

Initialize方法是我们需要初始化的正则表达

Compare主要是我们需要比较的字符串,并返回比较的状态,代码如下

Set rege = CreateObject("mercury.compareregexp") 
rege.Initialize "t.*" 
MsgBox rege.Compare ("test") 

如果我们直接在VBS里运行此代码,会报错“找不到指定模块”

 

3

 

 

这主要是因为此对象是QTP独用的保留对象,不能在外部使用,因此我们只能把代码黏贴到QTP中执行,这样就不会出现以上的错误情况。这样就和之前的最先前的脚本达到了相同的效果。

 

注意事项:

        建议大家在使用此对象时,尽量自己创建此对象的实例,而不要去用QTP隐藏的micRegExpMatch对象实例,因为一方面自己创建可以任意起对象名,另一个方面可以有代码提示,若直接使用micRegExpMatch是没有代码提示,点不出任何效果,大家可以试试(10.0中代码提示才有效)

 

 

4

 

 如有任何问题请去IquickTest Q&A问题库进行提问



 

 

评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值