谈一谈QTP中正则表达式的应用
2010-02-24 18:25
246 查看
最近,应客户要求一直在开发几个项目的自动化脚本,作为回归测试的脚本。在整个过程中,因为有些对象的识别条件会有些变化,如何能够让代码能够适应这种种的变化呢?应用了正则表达式后可以进行模糊匹配,能够更宽的适应这些识别条件,现分享一下自己的心得:
一, 正则表达式直接用于对象的描述
实例: 客户站点的browser的识别.
它有时是这样一种形式 Browser("title:=Harry potter | ISBN ...")
有时如果title太长的话,它又是这样一种形式 Browser("title:=I love you and you love me / love series ....")
为了写出的代码能够对两种情况全部适用,能够不管哪种情况都能将browser识别出来,我采用了正则表达式,首先用title的前面部分参数化,前面相当于是书名,这个是给定的测试数据,可以从数据表中得到,命名为strTitle, 后面就用到正则表式了写成如下形式:
Browser("title:=" & strTitle & ".*" & "|.*ISBN.*")
举个实例这个字串相当于是:"Harry potter.*|.*ISBN.*", .可以代表除换行外任意字符,*表示重复任意次,|是分隔符用来表示两种匹配均可也就是如上两种情况的browser均可被识别,不管它的title是长还是短。
二,正则表达式用于Description的定义
实例:如何将页面中类似于这样的一些link找出来: 1. Harry potter, 2. I love you, 3. Thank you, 4. Hello...
这种时候用上两个技术:一个是Description, 一个是ChildObjects方法
代码如下:
Set objDesc=Description.Create() '声明一个Description对象
objDesc("micclass").value="Link" '定义这个Descriptio对象的micclass的属性为link
objDesc("text").value="^/d+/..*$" '这一句就用上了正则表达式,先解释一下各个符号的意思, ^匹配字符串开始,/d匹配任意数字,+前面的字符重复至少一次,/.因为点在正则表达式是有意义的,而/.就表示点本身,.匹配除换行外任意字符,*表示重复任意次, 那么这个正则表达式其实就是匹配以上据说的那些link的形式。
Set arrLink=Browser("Title:=search result").page("Title:=search result").ChildObjects(objDesc) 'ChildObjects方法返回的是子对象数组,这里是将符合Description定义的那些了对象返回,那些我需要的link就全部找到了。
以上就是我对于正则表达式的两点应用,相信还有很多地方可以使用它,还有很多灵活的用法,就靠大家自己在实际应用中去挖掘。
一, 正则表达式直接用于对象的描述
实例: 客户站点的browser的识别.
它有时是这样一种形式 Browser("title:=Harry potter | ISBN ...")
有时如果title太长的话,它又是这样一种形式 Browser("title:=I love you and you love me / love series ....")
为了写出的代码能够对两种情况全部适用,能够不管哪种情况都能将browser识别出来,我采用了正则表达式,首先用title的前面部分参数化,前面相当于是书名,这个是给定的测试数据,可以从数据表中得到,命名为strTitle, 后面就用到正则表式了写成如下形式:
Browser("title:=" & strTitle & ".*" & "|.*ISBN.*")
举个实例这个字串相当于是:"Harry potter.*|.*ISBN.*", .可以代表除换行外任意字符,*表示重复任意次,|是分隔符用来表示两种匹配均可也就是如上两种情况的browser均可被识别,不管它的title是长还是短。
二,正则表达式用于Description的定义
实例:如何将页面中类似于这样的一些link找出来: 1. Harry potter, 2. I love you, 3. Thank you, 4. Hello...
这种时候用上两个技术:一个是Description, 一个是ChildObjects方法
代码如下:
Set objDesc=Description.Create() '声明一个Description对象
objDesc("micclass").value="Link" '定义这个Descriptio对象的micclass的属性为link
objDesc("text").value="^/d+/..*$" '这一句就用上了正则表达式,先解释一下各个符号的意思, ^匹配字符串开始,/d匹配任意数字,+前面的字符重复至少一次,/.因为点在正则表达式是有意义的,而/.就表示点本身,.匹配除换行外任意字符,*表示重复任意次, 那么这个正则表达式其实就是匹配以上据说的那些link的形式。
Set arrLink=Browser("Title:=search result").page("Title:=search result").ChildObjects(objDesc) 'ChildObjects方法返回的是子对象数组,这里是将符合Description定义的那些了对象返回,那些我需要的link就全部找到了。
以上就是我对于正则表达式的两点应用,相信还有很多地方可以使用它,还有很多灵活的用法,就靠大家自己在实际应用中去挖掘。
相关文章推荐
- 【软件测试自动化-QTP系列讲座 28】==正则表达式的应用 ==
- QTP的那些事--描述性编程和正则表达式的应用(转陈能技老师博客)
- qtp 获取弹出提示框(异常框)的文本显示信息(正则表达式和自定义函数应用)
- 什么是正则表达式以及在Java1.4中的应用
- TCL的读取、写入文件,正则表达式的应用及列表的应用实例
- 正则表达式应用(一)
- Java正则表达式—小应用—简易爬虫
- PHP函数preg_match_all正则表达式的简单应用
- QTP的描述性编程与正则表达式
- QTP正则表达式--邮箱动态链接
- 正则表达式应用实例
- QTP的那些事--有关正则表达式匹配对象的一个小注意点
- Linux学习记录--正则表达式与其应用 推荐
- qtp脚本中使用正则表达式
- 学习正则表达式在python中的应用
- javascript 正则表达式应用 【test和search】
- 正则表达式的简单应用实例
- 正则表达式与grep的应用
- 正则表达式的几个实际应用
- 串的简单处理(正则表达式 应用)