[QTP]基本使用

2024-09-06 15:18
文章标签 使用 基本 qtp

本文主要是介绍[QTP]基本使用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1. QTP的基本功能


1.1 QTP测试过程

QTP的基本功能包含两大部分:一部分是提供给初级用户的关键字视图,另一部分是提供给熟悉VBScript脚本编写的专家视图。在实际的测试中可以结合使用。

使用QTP进行自动化测试一般包括5个步骤:

1) 录制测试脚本: 利用QTP对象识别、鼠标和键盘监控机制来录制测试脚本。

2) 编辑测试脚本: 包括调整测试步骤、编辑测试逻辑、插入检查点、添加测试输出信息、添加注释等。

3) 调试测试脚本: 利用"Check Syntax"功能检查测试脚本的语法错误,利用调试功能检查脚本逻辑。

4) 运行测试脚本: 可运行单个"Action",也可批量运行测试脚本。

5) 分析测试结果: 使用QTP的测试结果查看工具查看测试结果。


1.2 关键字视图

对于录制下来的脚本,需要进一步修改和调整,这些工作可在关键字视图(Keyword View)中进行,也可在专家视图(Expert View)中进行。

对于新手,关键字视图会更容易理解和使用。如下图所示,可以看出这个测试的所有测试步骤:

1) 打开浏览器,访问"http://www.baidu.com"。

2) 在搜索框中输入“软件测试”。

3) 点击“百度一下”按钮。

182642700.jpg

虽然QTP能为每一个步骤自动生成文档,但是未必能满足需求,因此还需要为测试步骤添加必要的注释。首先在关键字视图的表格列头中单击鼠标右键,选择"Comment",即多出一列名为"Commnet"的列,在这一列中可以为每一个测试步骤添加注释,如下所示:

182835199.jpg

如果想在某个测试步骤完成后,输出相应的测试信息到测试报告中,可以单击鼠标右键,选择"Insert Step >  Report",在界面中的"Status"下拉框中,选择写入测试报告的状态(可以是Done、Passed、Failed、Warning这4种状态的一种),在"Name"中输入信息摘要,在"Details"中输入详细的测试步骤信息,如下所示:

182352710.jpg

如果想检查搜索框的内容是否被正确输入,可在关键字视图中通过QTP的检查点插入功能来实现。首先定位到设置输入框内容的测试步骤,然后点击鼠标右键,选择菜单"Insert Standard Checkpoint",在界面中选择需要检查的属性,如"Value"属性,设置为“软件测试”。单击"OK"按钮后,则在在关键字视图中看到新添加的检查点步骤,如下所示:

183532225.jpg


1.3 专家视图

在QTP中,选择"View > Expert View",可以看到如下的专家视图,"Expert View"是一个强大的VBScript编辑器,在这里可以直接编写测试脚本的代码,适合熟悉VBScript语言的自化测试工程师使用。

184118786.jpg

QTP提供的脚本编辑器支持“语法感知”功能,例如在代码中输入“Browser("百度一下,你就知道")”后加点,则自动显示一个下拉列表,从中可选取属于“Browser("百度一下,你就知道")”测试对象所包含的所有属性和方法,如下所示:

184438585.jpg


2. 编辑测试脚本


2.1 识别对象

基于GUI的自动化测试主要是围绕着界面的控件元素来进行的,QTP针对不同语言开发的控件,采取不同的对象识别技术。在QTP中,选择菜单“Tools > Object Identification”,在界面中可看到各种标准Windows控件对应的对象识别方法,可以单击"Add/Remove"按钮,选择更多的控件属性来唯一识别控件,如下所示:

203831794.jpg

QTP提供"Object Spy"工具可用于观察运行时测试对象的属性和方法。选择菜单"Tools > Object Spy",在界面中单击左上角的手型按钮,移动到测试对象上,单击鼠标左键选择测试对象,会自动获取到该测试对象的所有属性和方法,如下所示:

204216395.jpg


2.2 对象库管理

另外一种观察和了解测试程序的界面控件元素以及它们的层次关系的方法是通过对象库"Object Repository",在QTP中,选择菜单"Resources > Object Repository",而后在对象库管理界面中选择菜单"Object >  Add Ojbect to Local",然后选择测试程序界面中的某个控件,单击"OK"按钮,可以把测试对象添加到对象库中,如下所示:

204631103.jpg


2.3 访问对象库的测试对象

把界面控件作为测试对象添加到对象库中之后,就可以把它们作为测试资源来访问,例如,在关键字视图中可从对象库中选择需要的测试对象,在下拉列表中选择"Object from repository",在界面中选择对象库中的测试对象,如下所示:

205405813.jpg

而在专家视图中,同样可以访问到对象库的测试对象,以及它们的属性和方法,如下所示:

205617123.jpg


2.4 添加Action

在QTP中,Action相当于测试脚本的文件,可使用Action来划分和组织测试流程,如果想在当前Action的某个测试步骤之后添加新的Action,则可选择菜单"Insert > Call to New Action",在界面中的"Name"输入Action的名称,在"Description"中输入对该Action的描述,在"Location"中选择"Afeter the current step",然后单击"OK"按钮,则可看到新的Action已经成功被添加,如下所示:

205247474.jpg

由于QTP为每一个Action生成相应的测试文件和目录,而对象库作为资源,也是与Action绑定的,因此新添加的Action不能直接使用前一个Action中的测试对象。

解决的方法有两种,一种是通过录制新的测试脚本来产生新的测试对象库,另一种是通过关联前一个Action所导出的对象库文件来使用其测试对象。选择菜单"Resources > Associate Repositories",在界面中单击"+"按钮,选择前一个Action导出的对象库文件,然后将左边的"Available Actions"中的"Action2"移动到右边的"Associated Actions",如下所示:

210029202.jpg


2.5 创建自定义函数

在测试脚本中,除了访问和调用测试库的测试对象、QTP内建的函数外,还可以自定义函数库,把一些可重用的VB脚本封装到函数库中,然后在测试脚本中调用。选择菜单"Insert > Function Definition Generator",在界面中的"Function definition"中的"Name"输入框输入函数名称,在"Type"中选择"Function",在"Scope"中选择"Public",在"Description"中输入函数的描述信息,单击"OK"按钮,则会在当前Action的测试代码中,添加对应的函数框架代码,如下所示:

211054365.jpg


3. 运行测试脚本


3.1 语法检查

选择菜单"Tools > Check Syntax",对测试脚本进行语法检查,如果语法检查通过,则在"Infomation"界面提示如下信息:

191733185.jpg


3.2 使用断点

语法检查通过后,可直接运行测试脚本,也可设置断点对脚本进行调试,如下所示:

192017587.jpg

按F5键运行测试脚本,运行过程中将在断点所在的代码停住,这时候可以选择菜单"Debug > Step Over"或者按快捷键"F10"跳到下一行代码,也可以选择"Debug > Step Into"或者按快捷键"F11"进入代码行中所调用的函数。


3.3 调试查看器

在调试过程中,可选择菜单"View > Debug Viewer",在界面中输入测试对象属性或变量,查看其值,如下所示:

193022108.jpg


3.4 运行测试

对测试脚本进行语法检查和调试无误后,可以按F5键运行整个测试脚本,在运行测试之前,可以对运行做必要的设置,以便满足测试的要求,选择菜单"Tools > Options",在界面中的"Run"页中的"Run mode",可选择运行模式为"Normal"或"Fast",如果选择"Fast",则QTP以尽可能快的速度运行测试脚本中的每一个测试步骤,如果选择"Normal",则可以进一步设置测试运行过程中每一个步骤直接的停顿时间,如下所示:

193454284.jpg

如果有多个Action,则可以定位到需要运行的Action,然后选择菜单"Automation > Run Current Action"来仅仅运行当前的Action,还有另外一种方式,选中某个测试步骤,单击鼠标右键,选择菜单"Run From Step",可以从当前选中的测试步骤开始运行,也可以选择"Run To Step",开始测试并运行到当前所选的测试步骤。


3.5 分析结果

自动化测试的最后一个步骤就是运行测试并查看结果,在QTP中,按F5键运行测试脚本,出现一个对话框,在这里可以选择测试运行结果存储的位置,如果选择"New Run results folder",可以为本次测试选择一个目录用于存储测试结果文件,如果选择"Temporary run results folder",则QTP将运行测试结果存放到默认目录中,并覆盖上一次该目录中的测试结果,如下所示:

205055259.jpg

测试脚本运行结束后,可以查看概要的测试结果信息,包括测试名称、测试开始和结束的时间、测试脚本运行的迭代次数、测试通过的状态等,如下所示:

205339224.jpg

如果设置了运行时保存截屏的选项,则可以在测试结果的"Screen Recorder"中,查看测试步骤对应的界面截屏。屏幕截屏的设置方法是选择菜单"Tools > Options > Run > Screen Capture",在界面中,把"Save still image captures to results"勾选上,并且在下拉框中选择"Always",如下所示:

210027143.jpg



本文出自 “青锋笔记” 博客,谢绝转载!

这篇关于[QTP]基本使用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1142372

相关文章

C++使用栈实现括号匹配的代码详解

《C++使用栈实现括号匹配的代码详解》在编程中,括号匹配是一个常见问题,尤其是在处理数学表达式、编译器解析等任务时,栈是一种非常适合处理此类问题的数据结构,能够精确地管理括号的匹配问题,本文将通过C+... 目录引言问题描述代码讲解代码解析栈的状态表示测试总结引言在编程中,括号匹配是一个常见问题,尤其是在

Java中String字符串使用避坑指南

《Java中String字符串使用避坑指南》Java中的String字符串是我们日常编程中用得最多的类之一,看似简单的String使用,却隐藏着不少“坑”,如果不注意,可能会导致性能问题、意外的错误容... 目录8个避坑点如下:1. 字符串的不可变性:每次修改都创建新对象2. 使用 == 比较字符串,陷阱满

Python使用国内镜像加速pip安装的方法讲解

《Python使用国内镜像加速pip安装的方法讲解》在Python开发中,pip是一个非常重要的工具,用于安装和管理Python的第三方库,然而,在国内使用pip安装依赖时,往往会因为网络问题而导致速... 目录一、pip 工具简介1. 什么是 pip?2. 什么是 -i 参数?二、国内镜像源的选择三、如何

使用C++实现链表元素的反转

《使用C++实现链表元素的反转》反转链表是链表操作中一个经典的问题,也是面试中常见的考题,本文将从思路到实现一步步地讲解如何实现链表的反转,帮助初学者理解这一操作,我们将使用C++代码演示具体实现,同... 目录问题定义思路分析代码实现带头节点的链表代码讲解其他实现方式时间和空间复杂度分析总结问题定义给定

Linux使用nload监控网络流量的方法

《Linux使用nload监控网络流量的方法》Linux中的nload命令是一个用于实时监控网络流量的工具,它提供了传入和传出流量的可视化表示,帮助用户一目了然地了解网络活动,本文给大家介绍了Linu... 目录简介安装示例用法基础用法指定网络接口限制显示特定流量类型指定刷新率设置流量速率的显示单位监控多个

JavaScript中的reduce方法执行过程、使用场景及进阶用法

《JavaScript中的reduce方法执行过程、使用场景及进阶用法》:本文主要介绍JavaScript中的reduce方法执行过程、使用场景及进阶用法的相关资料,reduce是JavaScri... 目录1. 什么是reduce2. reduce语法2.1 语法2.2 参数说明3. reduce执行过程

如何使用Java实现请求deepseek

《如何使用Java实现请求deepseek》这篇文章主要为大家详细介绍了如何使用Java实现请求deepseek功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1.deepseek的api创建2.Java实现请求deepseek2.1 pom文件2.2 json转化文件2.2

python使用fastapi实现多语言国际化的操作指南

《python使用fastapi实现多语言国际化的操作指南》本文介绍了使用Python和FastAPI实现多语言国际化的操作指南,包括多语言架构技术栈、翻译管理、前端本地化、语言切换机制以及常见陷阱和... 目录多语言国际化实现指南项目多语言架构技术栈目录结构翻译工作流1. 翻译数据存储2. 翻译生成脚本

C++ Primer 多维数组的使用

《C++Primer多维数组的使用》本文主要介绍了多维数组在C++语言中的定义、初始化、下标引用以及使用范围for语句处理多维数组的方法,具有一定的参考价值,感兴趣的可以了解一下... 目录多维数组多维数组的初始化多维数组的下标引用使用范围for语句处理多维数组指针和多维数组多维数组严格来说,C++语言没

在 Spring Boot 中使用 @Autowired和 @Bean注解的示例详解

《在SpringBoot中使用@Autowired和@Bean注解的示例详解》本文通过一个示例演示了如何在SpringBoot中使用@Autowired和@Bean注解进行依赖注入和Bean... 目录在 Spring Boot 中使用 @Autowired 和 @Bean 注解示例背景1. 定义 Stud