在QTP的Select方法中使用正则表达式

别再只录操作了!用QTP给MercuryTours订票流程加上检查点,让你的自动化测试真正‘智能’起来 本文深入探讨了如何利用QTP检查点提升MercuryTours订票流程的自动化测试智能化水平。通过四类黄金检查点(文本、标准、数据库、图像)的设计与实现,确保业务逻辑、数据一致性和系统状态的准确验证,使功能自动化测试从简单操作模拟升级为智能验证系统。 阅读详情

方法1:

Function RegexSelectQTP(Object, sPattern)

       Dim oRegExp, arrAllItems, ix

 

       'Create RegExp Object

       Set oRegExp = New RegExp

       oRegExp.IgnoreCase = False

       oRegExp.Pattern = sPattern

 

       'Split Object's all_items property

       arrAllItems = Split(Object.GetROProperty("all items"), ";")

       For ix = LBound(arrAllItems) To UBound(arrAllItems)

              'If RegExp pattern matches list item, we're done!

              If oRegExp.Test(arrAllItems(ix)) Then

                     Object.Select "#" & ix

                     Set oRegExp = Nothing

                     Exit Function

              End If

       Next

 

       'Select Item #1 by default

       Object.Select "#0"

End Function

RegisterUserFunc "WebList", "RegexSelectQTP", "RegexSelectQTP"

 

使用的例子:

Browser("").Page("").WebList("").RegexSelectQTP "London - Heathrow" 'Select London-Heathrow

Browser("").Page("").WebList("").RegexSelectQTP "London - Heath.*"  'Select London-Heathrow

Browser("").Page("").WebList("").RegexSelectQTP "London - /D+"      'Select London-Heathrow

 

 

方法2:

 

Function RegexSelectDOM(Object, sPattern)

       Dim oRegExp, oOptions, ix

 

       'Create RegExp Object

       Set oRegExp = New RegExp

       oRegExp.IgnoreCase = False

       oRegExp.Pattern = sPattern

 

       'DOM options

       Set oOptions = Object.Object.Options

       For ix = 0 to oOptions.Length - 1

              'If RegExp pattern matches list item, we're done!

              If oRegExp.Test(oOptions(ix).Text) Then

                     Object.Select "#" & ix

                     Set oRegExp = Nothing

                     Exit Function

              End If

       Next

 

       'Select Item #1 by default

       Object.Select "#0"

End Function

RegisterUserFunc "WebList", "RegexSelectDOM", "RegexSelectDOM"

 

使用的例子:

 

 

 

方法3:

这种方法并没有使用正则表达式,而是使用了VBS中的InStr和Mid方法

Public Function VBSSelect(Object, sString)

       Dim sAllItems, varLocation, varEnd, varBeginning

 

       'Retrieve Object's all_items property

       sAllItems = Object.GetROProperty("all items")

 

       'Verify if the supplied string is found in list's all_items property

       varLocation = InStr(1, sAllItems, sString)

       'If found:

       If varLocation > 0 Then

        varEnd = InStr(varLocation, sAllItems, ";")

              If varEnd = 0 Then varEnd = Len(sAllItems) + 1

              varBeginning = InStrRev(sAllItems, ";", varLocation)

              Object.Select "" & Mid(sAllItems, varBeginning + 1, varEnd - varBeginning - 1)

              Exit Function

       End If

 

       'Select Item #1 by default

       Object.Select "#0"

End Function

RegisterUserFunc "WebList", "VBSSelect", "VBSSelect"

 

使用的例子:

Browser("").Page("").WebList("").VBSSelect "London - Heathrow" 'Select London-Heathrow

Browser("").Page("").WebList("").VBSSelect "London - Heath"    'Select London-Heathrow

Browser("").Page("").WebList("").VBSSelect "London - "         'Select London-Heathrow

 

 

三种方法的执行效率比较:

Run Mode

 Normal

 Fast

RegexSelectQTP

0.44 s

0.38 s

RegexSelectDOM

0.45 s

0.40 s

VBSSelect

0.39 s

0.35 s

 

 

 

参考:

http://relevantcodes.com/regular-expressions-with-select-method-listbox/

 

 

Python并发编程与正则表达式实战指南 并发编程是提升Python程序性能的核心技术,通过多线程、多进程和协程三种模式应对不同场景需求。多线程适合I/O密集型任务,多进程突破GIL限制实现真正并行,协程则在高并发网络服务中表现优异。正则表达式作为文本处理的利器,通过模式匹配实现高效数据提取与清洗,预编译和原子分组等技巧可显著提升性能。这些技术在爬虫开发、日志分析、Web服务等场景有广泛应用,掌握它们能帮助开发者构建高性能的Python应用。 阅读详情

相关推荐

概率数据关联(PDA):多目标跟踪的基石算法

1. 为什么需要概率数据关联? 2. 核心思想与假设条件 3. 算法核心:概率分配与状态更新 4. 典型应用场景与优势 5. 挑战与改进方向 6. 下期预告

qq_44965657的博客 1462

在QTP中自定义测试对象WinList的Select方法

在QTP中自定义测试对象WinList的Select方法

gdhjgfr的博客 453

ZYNQ Linux环境下PS端I2C驱动OV5640摄像头全流程解析

本文详细解析了在ZYNQ Linux环境下,通过PS端I2C驱动OV5640摄像头的完整流程。内容涵盖从Vivado硬件配置、PetaLinux系统构建、设备树节点添加,到用户空间I2C编程与寄存器配置实战,并提供了关键的调试技巧与常见问题排查方法,帮助开发者快速实现嵌入式视觉应用的传感器配置。

vulkan6gpu的博客 853

MySQL讲义第 35 讲——select 查询之正则表达式

MySQL讲义第 35 讲——select 查询之正则表达式 正则表达式用来描述或者匹配符合规则的字符串。它的用法和 LIKE 相似,能够实现一些特殊的规则匹配。在MySQL中, 使用 REGEXP 操作符来进行正则表达式匹配。 一、正则表达式匹配规则 正则表达式常用的字符匹配列表: 选项 说明 例子 匹配值示例 ‘字符串A’ 包含【字符串A】 ‘银行’ 中国银行,交通银行股份有限公司 | 或者(OR) ‘字符串A|字符串B|字符串C’ 包含【字符串A】 或 【字符串B】 或 【

睿思达DBA 4720

工业组态软件Intouch(单机版)入门{第一篇}

通俗来讲Intouch就是一个能将PLC里的信号显示在画面上的软件。

weixin_41571357的博客 1万+

运算放大器测试方法-输入失调电压

由于运放输入回路的不对称性,在输入端将产生一定的误差信号,从而限制运放信号灵敏度。通常用输入失调电压(VOS)、输入失调电流(Ios)和输入偏置电流(IB)表示。运放有四个主要特征:输入失调特征、开环特征、共模特征及输出特征。其放大倍数较大,由于外界的影响,即使运放的输入端产生较小的输入信号,经过放大,在输出端也会产生较大的误差。为能精确测量其性能,一般采用辅助运放进行测试。下面着重讲了运放的主要参数及如何精确测量这些参数。文中DUT代表被测运放,A代表辅助运放。

weixin_46135931的博客 1万+

正则表达式

#正则表达式的图片 #总结的知识点(随时更新) 1. select 'fad'||'除去【'】其他任意特殊字符'||'dfa' from dual 例如:select 'fad'||'&'||'dfa' from dual #常用的正则表达式,转载自:https://blog.youkuaiyun.com/zpz2411232428/article/details/83549502 1....

麋鹿 226

华为OD机试真题 新系统 9月20号 【字符串分组求和】

华为OD新系统机试真题【字符串分组求和】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【字符串分组求和】解析。

qq_45776114的博客 607

QTP 正则表达式 学习

只能输入数字:"^[0-9]*$"。 只能输入n位的数字:"^\d{n}$"。 只能输入至少n位的数字:"^\d{n,}$"。 只能输入m~n位的数字:。"^\d{m,n}$" 只能输入零和非零开头的数字:"^(0|[1-9][0-9]*)$"。 只能输入有两位小数的正实数:"^[0-9]+(.[0-9]{2})?$"。 只能输入有1~3位小数的正实数:"^[0

wangsy0202的博客 577

【SECS】初识SECS协议

项目标题的第一位和第二位告诉下面有多少字节表示项目的长度。而项目的长度是指项目标题后面的字节数,这里第一个字节就是项目标题。1个字节可以表示的最大长度是0-255,所以只要项目标题后面的字节数小于等于254,都是0x01。

weixin_48618536的博客 1641

数据结构课程设计--基于知识图谱的中医食疗数据管理与应用

【代码】数据结构课程设计--基于知识图谱的中医食疗数据管理与应用。

M_inherit的博客 565

掌握MySQL基础:SELECT查询和正则表达式实用指南!

想要提升MySQL技能?本文深入探讨SELECT查询和正则表达式的基础知识,教你如何高效运用这些命令,轻松解决数据查询难题!赶紧学习,成为MySQL高手!

m0_52474839的博客 576

图解B+树的插入过程

B+ 树在现代数据库中很常见,如果我们了解它,在工作中可能对性能优化会有更好的帮助! 最近我一直在思考 B+ 树的高度是由什么决定的。知道我了解了 B+ 树的插入过程,才有一种恍然大悟的感觉! 网上的一些资料杂乱无章,不同的数据库可能还有对 B+ 树有不同的实现。但是万变不离其宗,B+ 树的定义,大致如下所示: 总结一下,B+ 树有下面 5 个重要的特点。 B+ 树包含 2 种类型的结点: 内部结点(也称索引结点)和叶子结点。 根结点本身即可以是内部结点,也可以是叶子结点。 根结点的关键字个数最

愿君出走半生,归来时仍是少年 2133

Vbscript 正则表达式实例及在qtp中…

Vbscript 正则表达式实例及在qtp中应用 一、实例: Function RegExpTest(patrn, strng) Dim regEx, Match, Matches      ' 建立变量。 Set regEx = New RegExp        ' 建立正则表达式。 regEx.Pattern = patrn        ' 设置模式。regEx.IgnoreCase =

Cheers Li 软件测试博客 683

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

QTP的那些事--WebList与正则表达式

Function IsRegEqual(s_Text, s_Pattern)  Dim regEx, retVal ' 变量  Set regEx = New RegExp ' 创建正则表达式 .  regEx.Pattern = s_Pattern ' 模式  regEx.IgnoreCase = True  IsRegEqual = regEx.Test(s_Text)End Function...

weixin_33816821的博客 88

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

QTP脚本汇总比较有价值

1、Object Spy的Tips Hold the CTRL key to change the window focus or perform other mouse operations 2、QTP为什么无法单步调试? 安装Microsoft Script Debuger即可 3、QTP如何访问Oracle数据库? Dim rs,sq,pkeyset co...

ddd96317的博客 850

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

QTP-TIPS

1、Object Spy的Tips Hold the CTRL key to change the window focus or perform other mouse operations 2、QTP为什么无法单步调试? 安装Microsoft Script Debuger即可 3、QTP如何访问Oracle数据库? Dim rs,sq,pkeyset conn=c...

agol83082486的博客 2089

QTP汇总比较有价值的脚本

1、Object Spy的Tips Hold the CTRL key to change the window focus or perform other mouse operations   2、QTP为什么无法单步调试? 安装Microsoft Script Debuger即可   3、QTP如何访问Oracle数据库? Dim rs,sq,pkey set conn=cr

erix1991的专栏 6132

正则表达式三

上节我们说了VBS的RegExp对象.下面我们结合实例来看看如何使用此对象 WinList,WinComboBox,WebList这些对象QTP都是有直接的方法可以直接选择的,但是我们多余一点说一下怎么来用正则去操作这些对象. 实例如下: 对象:WebList. 选项:name1 name2 name3 ....... Function SelectRegExp(Obj

fanglige的专栏 601

QTP之WinMenu对象的测试

WinMenu对象是指菜单控件,常用的测试操作是Select方法,用来模拟用户选择某个菜单项。可以使用BuildMenuPath方法构建菜单路径如:MenuPath = object.WinMenu("Menu").BulidMenuPath("<item1>;<item12>") object.WinMenu("Menu").Select MenuP...

weixin_30675247的博客 129

TIB自动化测试工作室-QTP脚本汇总比较有价值

TIB自动化测试工作室-QTP脚本汇总比较有价值 http://www.cnblogs.com/testware 1、Object Spy的Tips Hold the CTRL key to change the window focus or perform other mouse operations 2、QT...

weixin_30497527的博客 737
上一篇: QTP第三方调试器PowerDebug试用手记
下一篇: 《软件自动化测试成功之道》随书附带源代码
TIB
TIB
博客等级 码龄19年 2879粉丝 957原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值