在QTP中使用Dictionary对象来替代环境变量

QTP基本使用——检查焦点 <br />今天看到一段检验焦点的代码, 特地研究 并分享出来。 希望共同分析。<br /> <br />'目的: 利用Tab键来检查焦点的位置变化是否正确<br /><br /> '检查控件的focused属性的函数<br /> Public function CheckFocus (TestObject)<br />    If  TestObject.CheckProperty("focused","True",2) Then<br />         CheckFocus = True< 阅读详情

Dictionary对象经常用来存储对象 ,把Dictionary添加到注册表中QTP的保留对象 ,则可以用于替代QTP的环境变量(Environment),在Action之间共享数据 。

 

下面的脚本摘自QTP的CodeSamplesPlus并做了点修改,添加了点注释:

 


'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'As an alternative to using environment variables to share values between actions
' you can use the Dictionary object.   
'The Dictionary object enables you to assign values to variables that are accessible from all actions (local and external)
'called in the test in which the Dictionary object is created.
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

' 把Dictionary添加到注册表,这样可以在使用GlobalDictionary时有Intelisence智能感应提示
'in order to have intelisence for the Dictionary object, and have it recognized by other actions, it is added to the registry
Dim WshShell
Set WshShell =CreateObject("WScript.Shell")
WshShell.RegWrite "HKCU/Software/Mercury Interactive/QuickTest Professional/MicTest/ReservedObjects/GlobalDictionary/ProgID", "Scripting.Dictionary","REG_SZ"
Set WshShell = Nothing

'clearing the Keys if they exist in the object    清空Dictionary中的项
If  GlobalDictionary.Exists("AgentName") Then
    GlobalDictionary.Remove("AgentName")
End If
If  GlobalDictionary.Exists("Password") Then
    GlobalDictionary.Remove("Password")
End If
If  GlobalDictionary.Exists("OrderNumber") Then
    GlobalDictionary.Remove("OrderNumber")
End If

'add 3 keys to the Dictionary object    添加项
GlobalDictionary.Add "AgentName", "Mercury"
GlobalDictionary.Add "Password","Mercury"
GlobalDictionary.Add "OrderNumber", 0

' 使用GlobalDictionary中的数据
'login to Mercury Flight application using the Dictionary objects we just defined.
Dialog("Login").WinEdit("Agent Name:").Set  GlobalDictionary.Item("AgentName")
Dialog("Login").WinEdit("Agent Name:").Type  micTab
Dialog("Login").WinEdit("Password:").SetSecure GlobalDictionary.Item("Password")
Dialog("Login").WinButton("OK").Click

'inserting an order in the flight application
Window("Flight Reservation").WinObject("Date of Flight:").Type "111111"
Window("Flight Reservation").WinComboBox("Fly From:").Select "Denver"
Window("Flight Reservation").WinComboBox("Fly To:").Select "Frankfurt"
Window("Flight Reservation").WinButton("FLIGHT").Click
Window("Flight Reservation").Dialog("Flights Table").WinButton("OK").Click
Window("Flight Reservation").WinEdit("Name:").Set "6"
Window("Flight Reservation").WinRadioButton("Business").Set
Window("Flight Reservation").WinButton("Insert Order").Click
'Window("Flight Reservation").ActiveX("Threed Panel Control").WaitProperty "text", "Insert Done...", 10000
Window("Flight Reservation").WinObject("AfxWnd40").WaitProperty "text", "Insert Done...", 10000

'saving the Order number in the Datatable, and then saving it in a dictionary item
Window("Flight Reservation").WinEdit("Order No:").Output CheckPoint("Order No:")
GlobalDictionary.Item("OrderNumber") = datatable.Value ("Order_No_text_out",dtGlobalSheet)

'closing the application
Window("Flight Reservation").Close

'reports to the report all the Keys & items found in the dictionary object
For i=0 to GlobalDictionary.Count-1
    KeysArray = GlobalDictionary.keys
    ItemsArray = GlobalDictionary.Items
    reporter.ReportEvent Done,"Reporting Dictionary Item Number : " & i ,  "Key : " & KeysArray(i) & " , Item : " & ItemsArray(i)
Next

 

' 调用Action2

RunAction "Action2", oneIteration

 

 

 

Action2的代码:

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' This code segment also exists in the main Action.
' in this reusable action, the value are avaiable ONLY  when they are called from Test "Dictionary"
' calling this action as a stand alone, will result in an error since those Keys & values won't be valid.
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' GlobalDictionary中的数据可以跨Action使用
'reports to the report all the Keys & items found in the dictionary object
For i=0 to GlobalDictionary.Count-1
    KeysArray = GlobalDictionary.keys
    ItemsArray = GlobalDictionary.Items
    reporter.ReportEvent Done,"Reporting Dictionary Item Number : " & i ,  "Key : " & KeysArray(i) & " , Item : " & ItemsArray(i)
Next

 

基于QT实现的词典(附源码) 主要用到的技术:JSON字符串,堆栈窗体(方便以后加新功能),QTcpSocket,LcdNumber,时间戳的转换。通信用的是TCP通信,将TCP封在了一个头文件中,哪个文件想去通过TCP链接发送消息就可以使用头文件。QT端写的是客户端,服务器还是在我笔记上次的Linux系统下写的服务器,做了一些小修改。词典的功能主要分为五个部分,查询单词,查询历史记录,注册,登陆,删除历史记录。以下是代码资源,供大家使用~ 阅读详情

相关推荐

QtDictionary

Qt实现电子词典 使用QT实现的电子字典,采用红黑树进行搜索 环境QT5 打包文件夹中是打包好的exe可以直接运行 需求规格说明 电子辞典是一种将传统的印刷词典转成数码方式,进行快速查询的学习工具,成为21世纪学生学习生活的掌上利器。在很多实际应用中,动态索引结构在文件创建或初始嵌入记录时生成,在系统运行过程中插入或删除记录时,为了保持更好的检索性能,索引结构本身将随之发生改变。教材上已经介绍过的动态查找数据结构包括:二叉搜索树(BST),平衡二叉树(AVL),红黑树(RBT),B-树。 本题要求挑选一种已经学过的动态搜索树结构,设计并实现一个基于英语四级词汇的电 子辞典软件。 总体分析与设计 设计思想: 存储结构:红黑树 主要算法思想:对红黑树经行操作以实现基本的单词的查找等功能 设计表示: 主要类别:字典,负责电子词典的控制逻辑,主要的数据成员DicTree,主要窗口类别负责显示 类中

QTSSDictionary 例子

// test.cpp : 定义控制台应用程序的入口点。 // #include using namespace std; #include "XMLPrefsParser.h" #include "StringFormatter.h" #include "QTSSDictionary.h" enum { //QTSS_ServerObject parameters // These

sunxiaopengsun的专栏 920

基于Qt的词典

个人用Qt做的词典,比较好用,欢迎体验!

在QTP中使用Dictionary对象

VBScript的Dictionary 对象与PERL的关联数组(associative array)类似,其中存储的内容可以是任何数据,每一个存储的数据都与一个唯一的键(Key)关联,键用于获取每一项数据,键通常是整型或字符串类型。在QTP中,可以把Dictionary 当成数组来用,而且可以随时添加数据,而不需要预先定义大小。下面是一个使用的例子: 创建Dictionary对象Set

软件质量优化 5821

TestComplete与QTP的简单比较

TestComplete与QTP的简单比较, 如何选择,一对比便知道!

芯片硅前验证技术与驱动工程师实战指南

硅前验证是芯片开发流程中的关键环节,通过pre-silicon simulation等技术手段在流片前验证设计正确性。其核心技术包括软件仿真、FPGA原型验证和硬件仿真器解决方案,涉及Linux驱动开发、芯片架构理解和波形分析等核心技能。作为连接芯片设计与系统集成的桥梁,硅前验证能早期发现设计缺陷,节省数百万美元流片成本。以Cadence Palladium为代表的硬件仿真器,通过专用服务器系统实现比纯软件方案快100-1000倍的仿真速度,为驱动工程师提供完整的外设模型验证环境。掌握硅前验证技术可显著提升

weixin_42522857的博客 321

QTP使用dictionary 对象

1. 创建即使用Dictionary对象 ' 创建Dictionary对象Set Dic = CreateObject("Scripting.Dictionary")' 添加Dictionary的key和valueFor Iterator = 1 To 3 Step 1Dic.Add CStr(Iterator),Iterator & "_Value"Next' 循环读取Di...

weixin_30618985的博客 104

1553B通信项目开发笔记(一)协议概述

最近接了个项目,需要用1553B协议通信,仅作为RT端口进行通信,控制器采用ARM 使用芯片为国产的BU61580芯片,功能和引脚和DDC的61580完全一致。

u010396127的博客 2万+

通过QTP的XMLUTIL将XML和字典对象Dictionary之间的互相转换

本文转自knowledgeInbox       在QTP运行过程中,如果中途出现意外情况,导致运行停止。那么,内存中关于当前CASE的状态信息就会丢失。因此,需要一个中转信息的媒介,来保存运行时必要的信息,以供后续运行时继续读取。笔者认为,XML是个一个很好的数据储存载体。因此,写了以下2个方法,来分别展示Dictionary对象与XML之间数据的存储和读取。 'Function: Load

软件自动化测试专栏 1813

利用docx4j与docx4j-ImportXHTML高效实现HTML到Word的自动化转换

本文详细介绍了如何利用docx4j与docx4j-ImportXHTML库,在Java环境中高效实现HTML到Word文档的自动化转换。内容涵盖从环境搭建、核心依赖配置,到集成Spring Boot REST API的完整实战流程,并深入解析了处理图片、CSS样式、字体设置以及使用模板保证样式统一等高级技巧与常见问题解决方案,帮助开发者构建稳定的文档自动化生成流水线。

cnn8visionary的博客 364

深入AOSP构建系统:从BUILD_FINGERPRINT的生成逻辑,看如何定制你的Android设备标识

本文深入解析AOSP构建系统中的设备指纹生成机制,详细介绍了BUILD_FINGERPRINT的生成逻辑及其在Android设备中的关键作用。通过分析多个指纹属性的区别与联系,以及如何定制设备标识,帮助开发者更好地理解和掌握Android系统构建过程。

weixin_27017211的博客 217

QTP测试数据管理-Excel+Dictionary

relevantcodes.com的《QTP: Creating a Highly Efficient Test-Data Dictionary》这篇文章介绍了如何使用ADO读取Excel测试数据,并存储到Dictionary对象中:http://relevantcodes.com/qtp-creating-a-highly-efficient-test-data-dictionary/ 

软件质量优化 2926

SAP-ABAP:SAP中如何查看系统表之间的关联关系?

在业务逻辑开发或者ALV开发过程中,我们通常要从系统中找出几个标准表之间的关联关系,有的是head与item,通过外键进行关联的关系。那么怎么去找到呢?以上就是具体如何产看系统表之间的关联关系的步骤,对于不同代码的业务顾问,也是必须要掌握的。

LinkStar的博客 2430

揭秘QTP保留对象机制

注:本文最早发表于51testing揭秘QTP保留对象机制在QTP的帮助文档中,介绍了通过Dictionary对象来在Action之间共享数据的方法,就是在注册表中添加一个保留对象(reservedobject),例如“GlobalDictionary”,把Dictionary对象作为环境变量来使用,可以在多个Action

软件质量优化 3066

瑞芯微rk3568移植openbmc(一)----关于ob移植的优缺点

基于rock3a的单板,CPU为瑞芯微rk3568的环境,移植了openbmc

feixiang3839的专栏 5536

Python爬虫:如何抓取亚马逊商品评论和评分

通过本文的学习,您已经掌握了如何使用Selenium爬取亚马逊商品的评论数据,并处理反爬虫机制。特别是在亚马逊这样的大型电商平台,商品评论和评分不仅能够反映产品的质量和顾客的体验,还可以对商家进行竞争分析。通过爬取亚马逊的商品评论,您可以获得有价值的市场信息,如产品的优缺点、消费者的反馈等。通过查看源代码,您可以发现,亚马逊的商品评论和评分数据往往通过JavaScript动态加载,这也意味着在抓取时需要使用Selenium或Playwright等工具来模拟浏览器加载。亚马逊的评论页面支持分页加载。

2201_76125261的博客 1437

QTP自动化测试之VBScript对象

QTP自动化测试之VBScript对象 VBScript作为脚本语言不仅能够编写简单的脚本,而且还能够创建及使用对象编写复杂的脚本,如Class对象,数据字典,操作文件夹及文件,错误处理,正则表达式等等。 1. Class对象 2. Dictionary对象 3. FileSystemObject对象 4. Err对象 5. RegExp对象 1. Class对象 使用Class语

splenday的专栏 738

SAP UI5 OData V4 操作结果访问:从 getObject 到返回值上下文与 $$inheritExpandSelect

SAP UI5 OData V4 操作结果获取指南 摘要:在 SAP UI5 OData V4 模型中,操作结果需通过绑定上下文获取而非直接从 invoke() 返回。本文详解核心要点: 数据获取路径 使用 invoke() 发起请求后,通过 getBoundContext().getObject() 获取结果 特定场景下 invoke() 可能返回返回值上下文(如草稿切换) 关键实践技巧 使用 $$inheritExpandSelect 继承字段选择,避免二次读取 对象页应用中,通过替换绑定上下文实现无缝

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

【软件测试自动化-QTP系列讲座 31】== 管理动态保留对象的隐藏组件 ==

Rss订阅IQuickTest(关于如何订阅?)GoogleReader订阅地址: http://feeds.feedburner.com/iquicktest作者:zzxxbb112时间:2010/3/9 版权所有,侵权必究。出处:http://blog.youkuaiyun.com/zzxxbb112      看过我之前讲座的朋友一定对保留对象有一定的了解了,甚至可以说能够熟练应用的,还没有理解保留对象

iQuickTest 领先技术研究专栏 4481

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

上一篇: QTP & DOM
下一篇: 揭秘QTP保留对象机制
TIB
TIB
博客等级 码龄19年 2879粉丝 957原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值