【软件测试自动化-QTP系列讲座 28】==正则表达式的应用 ==
2010-02-23 12:33
666 查看
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的保留对象。
我们可以看到micRegExpMatch这个对象中的PROGID为mercury.CompareRegExp,接着我们试试在VBS里创建一下此对象
Initialize方法是我们需要初始化的正则表达
Compare主要是我们需要比较的字符串,并返回比较的状态,代码如下
Set rege = CreateObject("mercury.compareregexp") rege.Initialize "t.*" MsgBox rege.Compare ("test")
如果我们直接在VBS里运行此代码,会报错“找不到指定模块”
这主要是因为此对象是QTP独用的保留对象,不能在外部使用,因此我们只能把代码黏贴到QTP中执行,这样就不会出现以上的错误情况。这样就和之前的最先前的脚本达到了相同的效果。
注意事项:
建议大家在使用此对象时,尽量自己创建此对象的实例,而不要去用QTP隐藏的micRegExpMatch对象实例,因为一方面自己创建可以任意起对象名,另一个方面可以有代码提示,若直接使用micRegExpMatch是没有代码提示,点不出任何效果,大家可以试试(10.0中代码提示才有效)
如有任何问题请去IquickTest Q&A问题库进行提问
相关文章推荐
- [原]【软件测试自动化-QTP系列讲座 45】== JScript在QTP中的应用探究(一) ==
- 【软件测试自动化-QTP系列讲座 26】==保留对象XmlUtil的应用 ==
- 【软件测试自动化-QTP系列讲座 12】 ==AOM应用(二)Object Repository Automation==
- 【软件测试自动化-QTP系列讲座 23】 == QTP中API的应用 ==
- 【软件测试自动化-QTP系列讲座 45】== JScript在QTP中的应用探究(一) ==
- 【软件测试自动化-QTP系列讲座 11】== AOM应用(一)+QuickTest+Automation ==
- 【软件测试自动化-QTP系列讲座 5】== DOM技术的应用 ==
- 【软件测试自动化-QTP系列讲座 21】 == 单例模式在QTP中的应用 ==
- 【软件测试自动化-QTP系列讲座 27】== ArrayList数组类在DotnetFactory中的应用 ==
- 【软件测试自动化-QTP系列讲座 37】== MFL自动化路径模型对象应用 ==
- 【软件测试自动化-QTP系列讲座 45】== JScript在QTP中的应用探究(一) ==
- 【软件测试自动化-QTP系列讲座 9】== AutoItX技术的应用 ==
- 【软件测试自动化-QTP系列讲座 2】== 对象库及原理透析 ==
- 【软件测试自动化-QTP系列讲座 32】== 对象封装属性的真正源头 ==
- 【软件测试自动化-QTP系列讲座 48】== 自定义对象强制映射封装类(一) ==
- 【软件测试自动化-QTP系列讲座 24】 == 创建保留对象的会话实例 ==
- 【软件测试自动化-QTP系列讲座 38】== 自定义场景恢复RecoveryFunction ==
- 【软件测试自动化-QTP系列讲座 15】 == 揭开QTP的神秘面纱 (二)隐藏方法篇 ==
- 【软件测试自动化-QTP系列讲座 16】 == 揭开QTP的神秘面纱 (三)保留对象篇 ==
- 【软件测试自动化-QTP系列讲座 50】== 自定义实时控制台输出 ==