1. QTP简介
1.1QTP功能与特点
QTP是QuickTest Professional的简称,是一种自动化软件测试工具。在软件的测试过程中,QTP主要来用来通过已有的测试脚本执行重复的手动测试,用于功能测试和回归测试。使用QTP要求测试人员在测试前考虑好应用程序测试的内容,步骤,输入数据和期望的输出数据等。
QTP由Mercury公司开发,该公司开发的同类产品还有LoadRunner,但是Mercury已被HP收购,如今两大企业级软件测试工具均属HP旗下的商业产品。QTP与LoadRunner的最大区别在于二者的侧重面不同,QTP侧重于软件的功能测试和回归测试,属功能测试工具,而LoadRunner侧重于软件的压力、负载等性能测试。
1.2自动化测试的优点
自动化测试相比人工测试,具有突出的有点。人工测试非常浪费时间而且需要容易出错。使用人工测试的结果,往往是在应用程序交付前,无法对应用程序的所有功能都作完整的测试。QuickTest可以加速整个测试的过程,可以重复使用测试脚本进行测试。使用QTP进行自动化测试的好处显而易见,总结如下:
优点 | 描述 |
---|---|
快速 | QTP执行测试比人工测试速度快多了。 |
可靠 | QTP每一次的测试都可以正确的执行相同的动作,可以避免人工测试的错误。 |
可重复 | QTP可以重复执行相同的测试。 |
可程序化 | QTP可以以程序的方式,撰写复杂的测试脚本,以带出隐藏在应用程序中的信息。 |
广泛性 | QTP可以建立广泛的测试脚本,涵盖应用程序的所有功能。可再使用 QTP可以重复使用测试脚本,即使应用程序的使用接口已经改变。 |
1.3 QTP安装常见问题
QTP最新版本官方下载地址见
http://www8.hp.com/us/en/software-solutions/unified-functional-automated-testing/index.html#.UNMOQ2_FWS8。QTP在官网已被改名为UFT(Unified Functional Testing)统一功能测试,或者下载迅雷下载11.0版本:http://kuai.xunlei.com/d/EIWJMUDNHFBA。
下载完成后遇到的安装问题主要有提示安装组件计算机缺少Microsoft Visual C++运行时组件,但是发现安装之后仍然无法安装。解决办法进去解压后的安装包目录下安装目录下QuickTest\CHS\prerequisites\vc2005_sp1_redist 有一个vcredist_x86安装文件,点击安装即可。
2. 测试平台
使用QTP进行功能测试,实验的平台信息如下:
操作系统 | Windows 7 64bit |
内存 | 4GB |
CPU | AMD x4 640 |
测试工具 | QTP11.0 |
测试对象 | Notepad++6.7.9 |
3.测试步骤
利用QTP对文本编辑器Notepad++进行简单的功能测试,主要包括文本文件的新建,输
入、删除和保存。主要操作步骤如下:
(1)打开Notepad++,点击一级菜单File下的二级菜单New新建无名文本文件。
(2)输入hello world,换行再次输入this is test。
(3)选中test进行删除。
(4) 然后点击一级菜单File下的Save As…进行保存,命名为lvlv.cpp,保存路径为本地桌
面。
4.录制脚本
将安装好的QTP打开,主界面如下:
当浏览网站或使用应用程序时,QTP 会纪录你的操作步骤,并产生测试脚本。当停止录制后,会看到QTP 在Keyword View 中以表格的方式显示测试脚本的操作步骤。
点击主界面的左上角New按钮新建测试案例后,选中“Test>Record”或者点选工具栏上的“Record”按钮。打开“Record and Run Settings”对话窗口:
因为我们要测试的窗体应用程序,所以选择Windows Applications选项,如上图所示。点击绿色加按钮,添加被测试的应用,弹出如下对象框,我们选择Notepad++作为我们测试的对象,并选择工作目录Working Folder作为脚本保存的路径。如下图所示:
设置完成后,即可点击OK,按照先前的设定测试步骤进行操作并录制测试脚本。在录制过程中,QuickTest会在测试脚本管理窗口(也叫Tree View 窗口)中产生对每一个操作的相应记录。并在Keyword View中以类似Excel 工作表的方式显示所录制的测试脚本。当录制结束后,QuickTest 也就记录下了测试过程中的所有操作。测试脚本管理窗口显示的内容如下图所示:
在测试脚本管理窗口切换至Expert View可观察到测试脚本。其内容如下:
Window("Notepad++ [Administrator]").WinMenu("Menu").Select "File;New Ctrl+N"
Window("Notepad++ [Administrator]").WinObject("hello world").Type "hello world"
Window("Notepad++ [Administrator]").WinObject("hello world").Type micReturn
Window("Notepad++ [Administrator]").WinObject("hello world").Type "this is test"
Window("Notepad++ [Administrator]").WinObject("hello world").Drag 157,34
Window("Notepad++ [Administrator]").WinObject("hello world").Drop 113,28
Window("Notepad++ [Administrator]").WinObject("hello world").Type micBack
Window("Notepad++ [Administrator]").WinMenu("ContextMenu").Select "File;Save As... Ctrl+Alt+S"
Window("Notepad++ [Administrator]").Dialog("另存为").WinEdit("文件名(N):").Set "lvlv.cpp"
Window("Notepad++ [Administrator]").Dialog("另存为").WinButton("保存(S)").Click
最终Notepad++被编辑的结果如下如图所示:
5.修改脚本与回放
5.1修改脚本
将上面录制所得的脚本加入如下两行:
Window("Notepad++ [Administrator]").WinObject("hello world ").Type micReturn
Window("Notepad++ [Administrator]").WinObject("hello world").Type " add by scripts"
加入这两行的意思在删除test之后通过脚本加入add by scripts值lvlv.cpp中,修改后的脚本如下图,脚本加入的位置下图的红色方框所示。
5.2脚本的回放
删除桌面原先产生的lvlv.cpp文件,通过脚本回放并再次产生lvlv.cpp文件,并查看文件内容是否是按预期脚本执行产生确定的内容,用来验证脚本执行的正确性。
点击QTP左上角的run按钮,设置测试结果保存路径,确定之后即可回放修改后的脚本。本次测试路径设置如下:
回放修改后的脚本成功,打开新产生的lvlv.cpp,其内容如脚本修改的那样,正确的加入了add by script。文件内容如下如所示:
6.总结
通过本次测试实验,我对功能测试工具QuickTest Professional有了一定的了解。懂得了QuickTest Professional的安装、功能测试的基本流程和测试脚本的编写有了一定的认识。也深刻的感受到自动化测试在在软件声明周期中的重要性和相对人工测试体现出的不可替代的优点。
本次实验前期,搜索了相关测试工具简介的资料,在这个过程中我学到很多软件测试的知识,提升了软件测试的兴趣。通过本次学习,在将来的项目中,自己可以将测试工具QuickTest对自己的项目进行功能测试,从而简化测试的流程,做到学以致用。
版权声明:本文为博主原创文章,未经博主允许不得转载。
自动化测试工具QTP的使用实例 分类: 软件测试 2015-06-17 00:23 185人阅读 评论(0) 收藏的更多相关文章
-
JAVA 对象数组,加载图片实例 分类: Java Game 2014-08-14 16:57 80人阅读 评论(0) 收藏
主函数: package com.mywork; import java.awt.Color; import java.awt.Image; import javax.swing.ImageIcon; ...
-
Rebuild my Ubuntu 分类: ubuntu shell 2014-11-08 18:23 193人阅读 评论(0) 收藏
全盘格式化,重装了Ubuntu和Windows,记录一下重新配置Ubuntu过程. //build-essential sudo apt-get install build-essential sud ...
-
菜单之一:Menu基础内容 分类: H1_ANDROID 2013-11-03 00:23 906人阅读 评论(0) 收藏
参考<疯狂android讲义>2.10节P168 1.重要接口 Android菜单相关的重要接口共有以下四个: 其中Menu为普通菜单,SubMenu包含子项,ContextMenu当长时 ...
-
C/C++中const的用法 分类: C/C++ 2015-07-05 00:43 85人阅读 评论(0) 收藏
const是C语言的关键字,经C++进行扩充,变得功能强大,用法复杂.const用于定义一个常变量(只读变量),当const与指针,引用,函数等结合起来使用时,情况会变得复杂的多.下面将从五个方面总结 ...
-
浅谈new operator、operator new和placement new 分类: C/C++ 2015-05-05 00:19 41人阅读 评论(0) 收藏
浅谈new operator.operator new和placement new C++中使用new来产生一个存在于heap(堆)上对象时,实际上是调用了operator new函数和placeme ...
-
short-path problem (Spfa) 分类: ACM TYPE 2014-09-02 00:30 103人阅读 评论(0) 收藏
#include <cstdio> #include <iostream> #include <cstring> #include <queue> #i ...
-
Monthly Expense(二分) 分类: 二分查找 2015-06-06 00:31 10人阅读 评论(0) 收藏
Description Farmer John is an astounding accounting wizard and has realized he might run out of mone ...
-
iOS8 UISearchViewController搜索功能讲解 分类: ios技术 2015-07-14 10:23 76人阅读 评论(0) 收藏
在iOS8以前我们实现搜索功能需要用到UISearchbar和UISearchDisplayController, 在iOS8之后呢, UISearchController配合UITableView的 ...
-
iOS调用相机,相册,上传头像 分类: ios技术 2015-04-14 11:23 256人阅读 评论(0) 收藏
一.新建工程 二.拖控件,创建映射 三.在.h中加入delegate @interface ViewController : UIViewController 复制代码 四.实现按钮事件 -(IBAc ...
随机推荐
-
CCNA网络工程师学习进程(3)常规网络设计模型与基本的网络协议
本节介绍分层的网络设计模型与基本的网络协议,包括ARP协议,ICMP协议和IP协议. (1)三层网络架构: 一个好的园区网设计应该是一个分层的设计.一般分为接入层.汇聚层(分布层).核 ...
-
利用PBFunc在Powerbuilder中支付宝当面付功能
在PB实现支付宝当面付的功能,需要先在支付宝进行商户签约,并设置相关的公钥信息(具体参考支付宝文档). 然后使用对应的私钥文件对参数进RSAWithSha1前面计算.具体代码如下: string ls ...
-
12款最佳的 WordPress 语法高亮插件推荐
语法高亮工具增强了代码的可读性,美化了代码,让程序员更容易维护.语法高亮提供各种方式由以提高可读性和文本语境,尤其是对于其中可以结束跨越多个页面的代码,以及让开发者自己的程序中查找错误.在这篇文章中, ...
-
提升程序的特权(AdjustTokenPrivileges)
首先列出需要的函数 1.OpenProcessToken 2.AdjustTokenPrivileges 3. LookupPrivilegeValue ----------------------- ...
-
OQL对象查询语言
在用mat工具分析内存使用情况查询OutOfMemory原因时,OQL会有很大帮助,所以先在这里总结一下. 基本语法: select <javascript expression to sele ...
-
r个有标志的球放进n个不同的盒子里,要求无一空盒,问有多少种不同的分配方案?
由题意可知道r>=n,我原来想的是先取n个全排列,剩下的r-n个每个有n中选择,所以结果是n!*n^(r-n).经满神猜测,这样是会重复的.比如说,1到5个球,ABC三个盒子,ms ...
-
关于字符串计算size的方法比较
往往字符串需要计算size来满足UI排版的自适应的需要,而一般字符串也是放在UILabel里的. 而在计算size的方法里,一般有两种方式(deprecated的就不说了). NSString的方法 ...
-
HDU5409---CRB and Graph 2015多校 双联通分量缩点
题意:一个联通的无向图, 对于每一条边, 若删除该边后存在两点不可达,则输出这两个点, 如果存在多个则输出第一个点尽可能大,第二个点尽可能小的. 不存在输出0 0 首先 若删除某一条边后存在多个联通分 ...
-
iOS设计模式——单例模式
单例模式用于当一个类只能有一个实例的时候, 通常情况下这个“单例”代表的是某一个物理设备比如打印机,或是某种不可以有多个实例同时存在的虚拟资源或是系统属性比如一个程序的某个引擎或是数据.用单例模式加以 ...
-
Spring boot打包war包
1.设置打包的类型(war/jar) 在pom.xml里设置 <packaging>war</packaging> 2.移除嵌入式tomcat插件 //在pom.xml里找到s ...