在QTP中使用描述性编程(实例)

QTP描述性编程技术集锦 自动化功能测试是一种企业级的用于检验应用程序是否如期运行的功能性测试工具。1. QTP描述性编程 8 2. 描述性编程2 15 3. 函数 17 3.1. QTP中几个截取字符串的函数 18 4. "+" "&"的区别 20 5. QTP场景恢复 21 6. QTP中测试环境的初始化 27 7. QTP将数据库中的数据导入到excel 29 8. 在QTP中将数据库的数据导入到EXCEL 29 9. QTP将数据测试驱动 31 10. QTP中设置共享对象库 32 11. QTP ActiveX 报错; 35 12. 数据驱动在测试中的应用 35 13. 在Excel中增加超链接的方式 39 14. 登陆脚本设计 40 15. QTP中Wait与同步点的区别 41 16. QTP tips 41 17. Action 调用 45 18. Action 参数调用 47 19. QTP中根据日期计算年龄的解决办法 48 20. 测试报告知多少 48 21. 调用共享文件 49 22. 识别grid中的button 52 23. How to parameterize your link 52 24. QTP中的步骤生成器 54 25. QTP感想 56 26. QTP 参数化实例 60 27. 对象库的管理与合并 62 28. QTP中虚拟对象设置 66 29. QTP删除新建文本文件没有权限的问题 68 30. 关于Filter如何使用的疑问 69 31. Call Windows API 69 32. Global 和local区别 72 33. QTP itself API 73 34. QTP需探讨的问题 74 在我的文章中也提到过了,描述性编程能让QTP脱离对象库来执行脚本.在某些特殊应用的时候,可能就更方便点.比如:要针对某个对象的参数化等等.而且描述性脚本因为脱离了对象库,所以增加了脚本的可移植性.同时脚本也更具有可读性.当然也给手工写脚本提供了一个平台. 74 35. 正则表达式的应用 75 36. 数据驱动测试: EXCEL 81 37. Action parameters 92 38. 数据驱动测试:文件 95 39. 相对路径action path 101 40. 两种方法参数化link 101 41. WScript 102 42. QTP Plus 的应用 109 43. 一个万能的键盘模拟函数 110 44. XML参数化 115 45. Oracle QTP 115 46. 对象库的管理与合并 116 47. change sysdate 120 48. Import Excel 120 49. Call Dll 121 50. Call Function 123 51. Global and local 区别 124 52. Shell 124 53. 对文件系统操作 125 54. 对象同步 125 55. 正则表达式应用模板 125 56. Wscript.shell 的应用 126 57. Create log file 126 58. 对象同步 127 59. 异常控制 127 60. Check if the object.exist 128 61. QTP场景恢复 129 62. QTP步骤生成器 135 63. IFRAME issues 138 64. Iframe issues 续 142 65. QTP解析PDF 144 66. QTP常见问题解答一 144 67. QTP常见问题解答二 146 68. QTP常见问题解答三 149 69. QTP常见问题解答四 150 70. QTP设计开发脚本 151 71. 设置共享对象库 152 72. 检查网页上文字显示的颜色 155 73. QTP录制如何识别编辑框 156 74. How to search the string from the html source 157 75. ADORecord.set操作 159 76. Object Property参数化操作 161 77. Quick Test Plus 工具 163 78. Schedule the QTP tasks 164 79. General the radom code 165 80. ChildObjects和webTable的使用 166 81. 怎样在QTP中打开右键菜单 167 82. CaptureBitmap方法 169 83. 校验对象是否存在object.exist 170 84. QTP中&和_的用法。 171 85. 选取webList中某一项 172 86. object.SetCaretPos方法 172 87. Similar to watir sample using description programming 173 88. QTP使用outlook发邮件 173 立即下载
 
 
在QTP中使用描述性编程是一个提高QTP脚本利用率的很好的方式。
通常QTP是通过对象库来识别不同的对象,而描述性编程是QTP另外一种能够识别对象的途径,它不依赖于对象库,通过增加一些对象的描述来识别对象的。
 
说明:本例子是以Flight飞机订票系统的登陆界面为测试页面进行描述的。
 
步骤一:录制脚本
Dialog("Login").WinEdit("Agent Name:").Set "Holly"
Dialog("Login").WinEdit("Password:").SetSecure "46ef0dc7efe5834c73673898279af1204fea51a7"
Dialog("Login").WinButton("Cancel").Click
共录制3步操作,输入Agent Name, Password, 点击Cancel按钮
 
步骤二:初级描述性编程
Dialog("Regexpwndtitle:=Login").WinEdit("Attached text:=Agent Name:").Set "Holly"
Dialog("Regexpwndtitle:=Login").WinEdit("Attached text:=Password:").Set “Mercury”
Dialog("Regexpwndtitle:=Login").WinButton("Class Name:=WinButton", "text:=Cancel").Click
在这里要注意有三点:
1)如果需要两个以上特性来描述一个对象,需要使用逗号(,)对描述性语言进行分割
2)使用:=来连接属性和属性值,并且:=两边不能有空格
3)使用SPY查看对象的属性名和属性值(Tools -> Object Spy)
 
步骤三:描述性编程提高
Dim descEditLogin
Set descEditLogin = Description.Create()
descEditLogin("Class Name").Value = "Dialog"
descEditLogin("Regexpwndtitle").Value = "Login"
 
Dialog(descEditLogin).WinEdit("Attached text:=Agent Name:").Set "Holly"
Dialog(descEditLogin).WinEdit("Attached text:=Password:").Set "Mercury"
Dialog(descEditLogin).WinButton("Class Name:=WinButton", "text:=Cancel").Click
在这里需要注意有两点:
1)把经常使用到的对象定义为一个对象变量,方便以后调用,减少代码工作量和错误
2)使用SPY获取对象的属性和属性值
 
步骤四:使用自定义的环境变量
在File>>Settings>>Environment中选择user-defined,增加一个变量
dlgLogin = “Login”
 
这样脚本可以被修改为:
Dim descEditLogin
Set descEditLogin = Description.Create()
descEditLogin("Class Name").Value = "Dialog"
descEditLogin("Regexpwndtitle").Value = Environment.Value("dlgLogin")
 
Dialog(descEditLogin).WinEdit("Attached text:=Agent Name:").Set "Holly"
Dialog(descEditLogin).WinEdit("Attached text:=Password:").Set "Mercury"
Dialog(descEditLogin).WinButton("Class Name:=WinButton", "text:=Cancel").Click
当然,参数化的方式很多,这边介绍的是使用环境变量
 
步骤五:从XML文件导入环境变量
<Enviroment>
       <Variable>
              <Name>dlgLogin</Name>
              <Value>Login</Value>
       </Variable>
</Environment>
可以使用手工导入,也可以使用LoadFromFile自动导入
 
总结:
优点是当对象的一些属性变更后,脚本更容易维护。
比如说对于一个通用对象,比如save, reset, cancel等按钮,一个页面有3个,30个页面就有90个对象,
假如save变成保存,reset变成重置,cancel变成取消,那么对象库就会产生很大的变动。
而使用了描述性编程只需要在导入的XML文件中修改一个值就可以了。
当然描述性编程的作用远远不止这些,这次只是抛砖引玉,希望大家共同进步。
 
QTP描述性编程简介 简要介绍: 使用描述性编程的时机 描述性编程的使用方法 用编程的方式创建检查点 立即下载

相关推荐

QTP描述性编程技术详解

QTP描述性编程技术详解

描述性编程

描述性编程就是通过把对象库中对象的属性全部用脚本的形式体现出来,并且可以完全脱离对象库运行脚本。'

weixin_46180742的博客 351

QTP描述性编程指南

QTP描述性编程指南

Quick Test Professional9.0编程常用方法及实例详解

SELECT HR_LANGUAGE_TYPE.LANGUAGE_NAME FROM dcwork.dbo.HR_LANGUAGE_TYPE HR_LANGUAGE_TYPE WHERE (HR_LANGUAGE_TYPE.LANGUAGE_NAME='中文') ORDER BY HR_LANGUAGE_TYPE.LANGUAGE_NAME。").WebButton("name:=返回","type:=button").Exist) Then。WSID=数据库的主机名;

qq_38220914的博客 1514

QTP描述性编程

在QTP中使用描述性编程是一个提高QTP脚本利用率的很好的方式。通常QTP是通过对象库来识别不同的对象,而描述性编程是QTP另外一种能够识别对象的途径,它不依赖于对象库,通过增加一些对象的描述来识别对象的。   说明:本例子是以Flight飞机订票系统的登陆界面为测试页面进行描述的。   步骤一:录制脚本   Dialog("Login").WinEdit("AgentName:").Set"Holly"   Dialog("Login").WinEdit("Password:").SetSecure"46ef0dc7efe5834c73673898279af1204fea51a7"   Di

工业视觉中HDR算法的动态范围优化与Debevec/Mertens方法实践

本文深入探讨了工业视觉中HDR(高动态范围)成像技术,重点解析了Debevec和Mertens两种核心算法。针对工业场景中因动态范围不足导致的过曝与欠曝问题,文章详细对比了两种方法的原理、实现步骤、参数调优及适用场景,为工程师在静态检测与高速产线等不同需求下,选择并实践HDR算法提供了清晰的指导。

weixin_29099217的博客 193

qtp:描述性编程

描述性编程的两种方式(对象可以不用添加到对象仓库中)1、一种是直接描述,即对象名(“属性名:=属性值”),从父层一直描述到最终想要操作的对象例如:browser(“micclass:=browser”).page(“micclass:=page”).webedit(“name:=wd”).set“qtp自动化”注释:子对象描述,父对象和祖父对象可以不用描述也是对的 如果父对象和祖父对象都进...

艾力克金 1010

DETRs with Collaborative Hybrid Assignments Training论文阅读与代码

在这篇论文中,作者观察到在DETR中将过少的 Query 分配为正样本,采用一对一的集合匹配,会导致对编码器输出的监督稀疏,严重损害编码器的区分特征学习,反之亦然,也会影响解码器中的注意力学习。为了缓解这个问题,作者提出了一种新颖的协同混合分配训练方案,名为Co-DETR,以从多样的标签分配方式中学习更高效、更有效的基于DETR的检测器。这种新的训练方案可以通过训练多个并行辅助 Head ,以一对多的标签分配方式(如ATSS和Faster RCNN)进行监督,轻松增强端到端检测器中编码器的学习能力。

qingjing0413的博客 1156

QTP描述性编程(descriptive programming)

http://user.qzone.qq.com/175025296/blog/1227852940本文由   Peter   发表在: 迈向破灭的回旋曲  QTP描述性编程(descriptive programming)1 、 descriptive programming 概述 通 常情况下,当在录制一个操作时, QTP 会将被操作对象加入到对象库里(

angel0527的专栏 959

智能车新手必看:如何用PID和差速转弯让小车跑得更稳(附代码示例)

本文详细介绍了智能车控制系统中PID算法和差速转弯的实现方法,包括位置式与增量式PID的选择、参数整定技巧以及编码器反馈的关键作用。通过代码示例和实战经验,帮助新手快速掌握智能车稳定行驶的核心技术,提升赛道表现。

mmm90的博客 122

RTKLIB中RTK定位原理(一)

1 模型 1.1 非差观测值 非差观测值与RTKLIB中PPP定位原理——观测模型部分中一致。 1.2 单间单差观测值 若两个接收机距离较近,经过站间单差,电离层对流层延迟可消除,卫星s的钟差以及初始相位被消除,中依然包含接收机初始相位。 1.3 站间星间双差观测值 经过站间星间双差,接收机钟差及初始相位被消除。 2 EKF参数估计 2.1 EKF法则 EKF法则与RTKLIB中PPP定位原理——观测模型部分中一致。 2.2 状态变量与时间更新 (1)状态变量 在RTK...

papunzal的博客 3817

QTP描述性编程介绍

引言: QTP的描述性编程能够摆脱测试对象库德限制,编制出更为复杂、适应力更强的测试脚本。录制方式的测试脚本创建是最简单和快捷的测试脚本开发方式,但是,它带来的问题也是明显的,就是依赖测试对象库,测试脚本中使用的对象都必须是测试对象库中的对象。 什么时候使用描述性编程 在测试过程中,有些界面元素是动态出现或动态变化的,在录制的时候并没有添加到对象库。   描述性编程的

nnaaqq的博客 522

联想开天N70z/N79Z G1d笔记本Win驱动下载

本文介绍了联想开天N70Z/N79Z G1d笔记本在Win11系统下的驱动安装方法。提供了WiFi网卡驱动(RealtekWlan)和显卡驱动(ZX C960 GPU)的详细安装步骤,包括手动更新驱动和卸载流程。驱动安装后成功支持5G WiFi连接并正确识别显卡型号。文中附有系统信息和安装效果截图,同时提供了官方驱动下载地址及备用下载链接。该指南适用于需要为联想开天N70Z/N79Z G1d笔记本安装Win11驱动的用户参考。

信创运维工程师 · 银河麒麟 & 容器实战 | 金融生产环境迁移·等保加固 | 142篇原创·17万+阅读 3877

QTP中的描述性编程

在QTP中使用描述性编程是一个提高QTP脚本利用率的很好的方式。         通常QTP是通过对象库来识别不同的对象,而描述性编程是QTP另外一种能够识别对象的途径,它不依赖于对象库,通过增加一些对象的描述来识别对象的。           说明:本例子是以Flight飞机订票系统的登陆界面为测试页面进行描述的。           步骤一:录制脚本 Dia

lykangjia的专栏 1201

【RAG文档解析优化】复杂Excel表格处理

—从识别表格边界,到恢复内部结构,再到生成RAG友好的表示——我们可以系统性地将这些“带刺的玫瑰”驯服。虽然代码实现可能充满细节和挑战,但其带来的回报是巨大的:一个更干净、更可靠的知识库,以及一个能真正理解和利用表格数据、从而提供精准答案的RAG系统。为了人类阅读的便利性,制作者常常会使用合并单元格来创建标题、使用多层表头来组织复杂的列、在同一个Sheet页中放置多个相关的表格,并添加大量的注释说明。它们就像一朵朵“带刺的玫瑰”,虽然蕴含着宝贵的数据,但如果直接用传统的方法(如。

kakaZhui的博客 853

用 i18n 驯服标准文案:SAP Fiori elements 的 UI 文本本地化与可替换实践全景

本文系统介绍了SAP Fiori elements应用中UI文本本地化的全面解决方案。从框架层与应用层文本的分类原则出发,详细解析了标准文本替换的四步法:资源准备、键值定位、模型配置和验证部署。文章特别针对不同开发场景,提供了XML、ABAP CDS和CAP CDS三种注解方式的文本覆盖写法示例。同时深入探讨了语言回退机制、表格组件标准键覆盖等关键技术细节,并指出了实际项目中的常见问题与解决方案。通过结合官方文档和社区实践,为开发人员在不破坏框架约定的前提下,实现稳定可靠的UI文本本地化提供了完整指导。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 296

QTP 描述性编程 VS 录制

' 录制 百度搜索:QTP高级编程 Browser("百度一下,你就知道").Page("百度一下,你就知道").WebEdit("wd").Set "QTP高级编程" Browser("百度一下,你就知道").Page("百度一下,你就知道").WebButton("百度一下").Click Browser("百度一下,你就知道").Page("QTP_百度搜索").Link("QTP_

u014645066的专栏 520

Spring Boot 调用豆包大模型如何开启联网搜索?

场景推荐方案有权限创建 Bot + 需强集成✅ 使用bot-xxxx无 Bot 权限 / 追求通用性✅ 自行集成搜索引擎 + 普通豆包模型仅需基础对话❌ 无需考虑联网豆包大模型确实支持联网搜索,但前提是:你用的是“智能体 Bot”,且它被配置了“网页搜索”插件,并调用正确的 API 端点。希望本文能帮你少走弯路,快速构建出真正“知天下事”的智能助手!

lpfasd123的博客 1123

T002_QTP描述性编程(未完)

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33690963的博客 132

怀旧版电脑GBC模拟器

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

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

描述性编程的两种写法

对象库编程(ORP)是一个非常强大的功能,如果对象名字改变了,只需要进入对象库修改对象,脚本即可批量更新。 描述性编程(DP)不需要维护庞大的对象库,而需要维护庞大的代码,但是在某些情况下(比如对象不能添加到对象库)它很有用。 下面通过一个例子来学习如何进行描述性编程: 首先,我们录制一段在百度首页输入“abcde”,然后点击“百度一下”的代码: Browser...

dhtlvr31595的博客 301

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

qtp脚本中使用正则表达式

正则表达式除了可以在对象库里进行动态属性匹配外,还可以在描述性编程中进行匹配。当在使用描述性编程时,可以直接用正则表达式来进行描述: Set syLink = Description.Create syLink("name").RegularExpression = True '打开正则表达式,其实默认就是True,可以省略 syLink("name") = "TestID.*"

yang39的专栏 2312

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

QTP - 描述性编程

描述性编程: 1、QTP的描述性编程能够摆脱测试对象库的限制,编写出更为复杂、适应能力更强的测试脚本。 2、即不需要在仓库晨定义,也能访问和操作实际对象。 3、用描述性编程编写的测试脚本在运行时,QTP会使用测试脚本中给出的对象描述来查找对象,查找的位置不是对象库,而是与测试程序运行运行时QT为其创建的测试对象版本过行匹配。 4、QTP提供了两种描述性编程的开发方式,一种是“直接描述性”的

Ethon自动化测试 526

qtp访问html,[转载]QTP中innertext和innerhtml属性的区别

闲话不多,直入正题。案例代码如下。ifexist=Browser("AdShare").Page("AdShare").WebElement("innertext:=名称已存在").Existmsgbox ifexist调试结果如下实际页面中该对象的确存在使用spy查看对象属性得到如下结果属性名和属性值的确没有出错。到底是哪里出了问题,反复调试后,使用innerhtml属性解决了问题。ifexi...

weixin_29129833的博客 194
上一篇: 测试自动化实现的两个难点-功能分解和对象识别
下一篇: QTP关键技术(一) - 对象识别及存储技术基本常识
浩西
博客等级 码龄19年 47粉丝 48原创
评论 7
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值