视频汇总首页:http://edu.51cto.com/lecturer/index/user_id-4626073.html

1概述

QTP是quicktest Professional的简称,是一种自动测试工具。使用QTP的目的是想用它来执行重复的手动测试,主要是用于回归测试和测试同一软件的新版本。因此你在测试前要考虑好如何对应用程序进行测试,例如要测试那些功能、操作步骤、输入数据和期望的输出数据等。目前已改名为UFT。

2软件特点

1)QTP是一个侧重于功能的回归自动化测试工具;提供了很多插件,如:.NET的,Java的,SAP的,Terminal Emulator的等等,分别用于各自类型的产品测试。默认提供Web,ActiveX和VB。

2)QTP支持的脚本语言是VBScript,这对于测试人员来说,感觉要“舒服”得多(如相比SilkTest采用C语言)。VBScript毕竟是一种松散的、非严格的、普及面很广的语言。

3)QTP支持录制和回放的功能。录制产生的脚本,可以拿来作为自己编写脚本的template。录制时,还支持一种lower level 功能,这个对于QTP不容易识别出来的对象有用,不过它是使用坐标来标识的,对于坐标位置频繁变动的对象,采用这种方式不可行。另外,QTP的编辑器支持两种视图:Keyword模式和Expert模式。Keyword模式想法是好的,提供一个 描述近似于原始测试用例的、跟代码无关的视图(我基本很少用,除了查看、管理当前test中各个action的完整流程),而Expert就是代码视图,一般编写脚本都在这个区域。

4)一个有用的工具:Object Spy,可以用来查看Run-time object和Test object属性和方法。

5)QTP通过三类属性来识别对象:a)Mandatory; b)Assitive; c)Ordinal identifiers。大部分情况下,通过对象的一些特定属性值就可以识别对象(类型a)。这些属性可以通过Tools->Object Identification 定义。

6)Object Repository(OR)是QTP存储对象的地方。测试脚本运行后,QTP根据测试脚本代码,从这个对象库中查找相应对象。每个Action可以对应有一个或者多个OR,也可以设置某个OR为 sharable的,这样可以供其他Action使用。注意,使用QTP录制功能时,默认将被测对象放在local OR中,可以通过 Resources->Object Respository,选择Local查看。

7)说到QTP的要点,不得不说Action。Action是QTP组织测试用例的具体形式,拥有自己的DataTable和Object Repository,支持Input和output参数。Action可以设置为share类型的,这样可以被其他test中的Action调用(注意:QTP是不支持在一个test中调用另外一个test的,只有通过sharable action来调用)。

8)如3)所述,一个test中,多个action的流程组织,只有通过Keyword视图查看和删除,在Expert视图中没有办法看到。

9)调用Action可以通过菜单Insert->Call to *** 来实现。QTP提供三种类型的调用方式:a)call to new Action,在当前test中创建一个新的Action;b)call to Copy of Action;c)call to existing action,调用一个re-usable action,如果这个re-usable action来自另外一个test,将以只读的方式插入到当前test中。

10)QTP提供excel 形式的数据表格DataTable,可以用来存放测试数据或参数。DataTable有两种类型:global 和local。QTP为DataTable提供了许多方法供存取数据,在对测试代码进行参数化的时候,这些方法非常有用。

11)环境变量(Environment Variables)。在一个test中,环境变量可以被当前test中所有action共享。环境变量也有两种类型:build in 和user defined。用户自定义的环境变量可以指向一个XML文件,这样可以实现在众多test之间共享变量。

12)QTP可以引用外部的VBS代码库,通过Settings-》Resource加入,也可以ExecuteFile命令在代码中直接执行。这种VBS库可以为所有action和test共享。

13)QTP默认为每个test提供一个测试结果,包括Passed,Failed,Done,Warning和information几种状态类型,可以进行对结果Filter。但是,只能为每个test产生一个testing result,不能为多个testing产生一个总的testing result.

14)最新版的QTP加入了更多的功能,比如多脚本编辑调试、PDF检查点、持续集成系统、手机测试等。

3基础知识

3.1QTP工具使用

3.1.1建议学习路径

了解QTP以及各个选项->录制回放与脚本增强->优化脚本结构同时熟悉函数->学习vbs脚本语言->拆分程序与数据->创建自定义报告->编写简单的自动化框架->不断优化

3.1.2QTP常用函数

1, 获取对话框相应的文字: GetVisible Text

2, 查找相应的字符串: instr (1,查找目标字符串,所查找的字符串)

3, 随机数的获取: Randomnumber.Value() 或cstr(int(Rnd*10)+1)

4, 等待函数: Wait(秒数)

5, 获取数组下标: UBound (数组名)

6, 拆分数组: Split(MyString, ",", -1, 1)

7, 可执行步骤: OptionalStep

8, 报告信息: Reporter.ReportEvent 3, "Save Step", "Out of cycle!"

9, 判断对话框是否存在: .exist

10,事件过滤函数:Reporter.Filter=过滤条件(0,1,2,3),0代表显示所有的error和warning,1,显示error,2,显示waining,3,任何error和warning都不显示。

11,循环函数:do … loop until,for…to… then next,while.

12,数据表格:DataTable,向外赋值,

Dim aa = DataTable.value(“CellingName”,”ActionName”).

13,获得对象属性的三种方法

GetTOProperty,GetTOProperties,GetROProperty,GetTOProperty获得程序中对象当前的属性,GetTOProperties获得当前属性所有集合,GetROProperty获得的是录制时对象所获得的属性。

14,检查点方法check和输出指定属性值output。

15,函数Descrīption,可以获得某页面同标签的属性进行操作。

16,函数nagative可以随便跳转页面到指定的URL。

17,函数Object可以获得当前页面同属性的控件。

18,函数Focus可以让控件获得焦点,函数Blur则是失去焦点,click单击,dbclick双击。

19,函数setAttribute可以设置控件属性,getAttribute可以获得属性。

3.2VBS语言基础编程

百度一下都有,选个基础的教材开始,边学边练,这个很重要,然后在选进阶的教程。

这里要记住,不要光看vbs,而是要结合qtp用。

基本语法

l常用的一些命令函数

l对字符的一些处理

l对文本文件的读、写、创建、删除等操作

l对Excel文件的读取和写入操作

l对XML文件的读取

l调用Dll

4高级应用

4.1正则表达式

正则表达式,也叫做通配符,我们在计算机上搜

索一个文件,或者编写一条SQL语句时,经常会用

到正则表达式。

l在QuickTest中也可以使用正则表达式,用法与我们上面提到的正则表达式类似。通过在QuickTest测试脚本中加入正则表达式,可以使我们的测试脚本更灵活,适应性更好

l一个正则表达式就是一个文本字符串,其中除了常规字符外,还包含了一些通配字符,比如 “*”、“^”、“[]”、“?”、“+”等等

4.2描述性编程

4.3虚拟对象的使用

在使用录制模式无法正常识别控件的情况下,使用虚拟对象。首先Mark好虚拟对象,然后,

在录制的时候,只要点到你设置的虚拟对象的边界内,QTP就会识别这个虚拟对象,并把该对象记到对象库中去

4.4test banch runner的使用

目的是用于批次运行多个Action

运行目录:开始-程序-QuicktestProfessional-Tools-Test banch runner。 使用add逐个添加action

4.5对字符的处理

l lCStr(expression)

l lInStr([start, ]string1, string2[, compare]) 查找字符在字符串中出现的位置

l lLeft(string, length) 从字符串中截取指定长度的字符

l lLen(string| varname) 取得字符长度

l lSplit(expression[, delimiter[, count[,compare]]]) 将字符串根据拆分标记进行拆分

4.6常用的一些命令函数

l lSystemUtil.Run  “C:\123.txt“  启动应用程序

l lTime  当前系统时间

l lSystemUtil.CloseProcessByName “notepad”关闭相关进程

l lNow() 当前日期和时间

4.7对文本文件的操作

4.7.1读文件

Set fso= CreateObject("Scripting.FileSystemObject")

Set f= fso.OpenTextFile(“C:\123.txt”, 1)

f.readline//读一行

f.readall//读整个文本文件内容

f.read(3) //从文件中读三个字符

f.close//关闭文件

4.7.2写文件

Set fso= CreateObject("Scripting.FileSystemObject")

Set f= fso.OpenTextFile(“C:\123.txt”, 2)

f.Write “test”

f.close//关闭文件

4.7.3创建文件

Set fso= CreateObject("Scripting.FileSystemObject”)

fso.CreateTextFile(“C:\123.txt”)

4.7.4删除文件

Set fso= CreateObject("Scripting.FileSystemObject")

fso.DeleteFile(“C:\123.txt”)

4.8对excel的操作

4.8.1创建excel

'******************************************************************************

' 函数说明:创建一个excel文件;

' 参数说明:

' (1)ExcelPath:Excel文件存储路径;

' (1)ExcelPathName:要创建的Excel文件路径+名称;

' 调用方法:

' QTP_CreateExcel "D:\Temp","D:\Temp\ExcelExamples.xlsx"

'

' ******************************************************************************

Function QTP_CreateExcel(ExcelPath,ExcelPathName)

Dim ExcelApp 'As Excel.Application

Dim excelBook 'As Excel.workbook

Dim fso 'As scrīpting.FileSystemObject

' Dim excelSheet

Set ExcelApp = CreateObject("Excel.Application")

ExcelApp.Workbooks.Add

'ExcelApp.Visible = True

Set excelSheet = ExcelApp.ActiveSheet

Set excelBook = ExcelApp.ActiveWorkbook

Set fso = CreateObject("scripting.FileSystemObject")

On Error Resume Next

' fso.CreateFolder "D:\Temp"

' fso.DeleteFile "D:\Temp\ExcelExamples.xlsx"

' excelBook.SaveAs "D:\Temp\ExcelExamples.xlsx"

fso.CreateFolder ExcelPath

fso.DeleteFile ExcelPathName

excelBook.SaveAs ExcelPathName

ExcelApp.Quit

Set ExcelApp = Nothing

Set fso = Nothing

Err = 0

On Error GoTo 0

End Function

4.8.2读取excel文件

'========================================

' 函数说明:往EXCEL表中写数据;

' 参数说明:

' (1)sExcelName:EXCEL文件名;

' (2)sSheetName:Sheet表名

' (3)x: 行

' (4)y: 列

' (5)Content:内容

' 调用方法:

' QTP_WriteExcel "D:\2.xlsx","sheet1",x,y,"abcde"

'========================================

Function QTP_WriteExcel(sExcelName,SheetNum,x,y,Content)

Set xlsobj=createobject("excel.application")

Set xlsbook=xlsobj.Workbooks.Open(sExcelName)

Set xlssheet=xlsbook.Sheets(SheetNum)

xlssheet.cells(x,y)=Content

xlsbook.Save

xlsbook.Close

End Function

4.8.3写excel文件

'========================================

' 函数说明:往EXCEL表中写数据;

' 参数说明:

' (1)sExcelName:EXCEL文件名;

' (2)sSheetName:Sheet表名

' (3)x: 行

' (4)y: 列

' (5)Content:内容

' 调用方法:

' QTP_WriteExcel "D:\2.xlsx","sheet1",x,y,"abcde"

'========================================

Function QTP_WriteExcel(sExcelName,SheetNum,x,y,Content)

Set xlsobj=createobject("excel.application")

Set xlsbook=xlsobj.Workbooks.Open(sExcelName)

Set xlssheet=xlsbook.Sheets(SheetNum)

xlssheet.cells(x,y)=Content

xlsbook.Save

xlsbook.Close

End Function

5 QTP框架示意

QTP自动化测试自学手册V2.0版本相关推荐

  1. zmail邮件系统安装手册 V2.0版本

    2019独角兽企业重金招聘Python工程师标准>>> Tmail邮件系统安装手册 V2.0版本 1.系统环境 centos6.0以上,最小化安装(64位系统) 2.部署 1.删除自 ...

  2. 微信快速开发框架(六)-- 微信快速开发框架(WXPP QuickFramework)V2.0版本上线--源码已更新至github...

    4月28日,已增加多媒体上传及下载API,对应MediaUploadRequest和MediaGetRequest ------------------------------------------ ...

  3. 七牛云 转码_YYC松鼠短视频系统V2.0版本发布,亮点新增转码加水印功能

    YYC松鼠短视频系统V2.0版本发布,亮点新增转码加水印功能 YYC松鼠短视频系统2020年03月18日V2.0日志: 1.新增上传视频自动转码添加水印功能,水印可以设定四个位置,左上角,右上角,左下 ...

  4. V2.0 版本的 《JavaGuide面试突击版》来啦!带着它的在线阅读版本来啦!

    大家好!我是 Guide 哥!V2.0 版本的 <JavaGuide面试突击版>来啦,带着它的在线阅读版本来啦! 历史更新查看: 完结撒花!JavaGuide面试突击版来啦! V1.1版J ...

  5. 在2012年08月08号这一天,2345浏览器的V2.0版本跑出来了!

    系列文章目录 第九章:在2012年08月08号这一天,2345浏览器的V2.0版本跑出来了! 文章目录 系列文章目录 前言 2012-08-08 V2.0版 新增功能 新增改进 BUG修复 总结 前言 ...

  6. 明远智睿MY-IMX6-EK200 Linux-4.1.15测试手册v2.0(3)

    [接上一章节明远智睿MY-IMX6-EK200 Linux-4.1.15测试手册v2.0(2)] 2.16  SPI测试(ECSPI1) [测试说明]:采用自发自收的方式测试. [接口标识]:SPI1 ...

  7. MY-IMX6-EK200 Linux-4.1.15 测试手册 v2.0(4)

    [接上一章节MY-IMX6-EK200 Linux-4.1.15测试手册v2.0(3)] 2.20  RTC 测试 [测试说明]:读取并设置时间,断电重启后检查时间是否正确 [接口标识]:无 [系统设 ...

  8. Java面试手册V2.0+突击V3.0知识点整理(一) 附封面图片

    虚静出内功 1. Java语言三大特性 1. 封装: 属性用来描述同一类事物的特征,方法可描述一类事物可做的操作 封装就是把属于同一类事物的共性(包括属性和方法)归到一个类中,以方便使用 概念: 封装 ...

  9. 编辑机器人V2.0版本下载,资讯内容定制服务专家!

    小智亲切的想要问大家一个问题? 你,还在用旧版的Giiso写作机器人么? 偷偷告诉你一个秘密: 最新的V2.0版本上线啦 (天呐,我怎么什么都不知道) 升级版"Giiso智能写作机器人&qu ...

最新文章

  1. LeetCode简单题之字符串转化后的各位数字之和
  2. django中model模型
  3. 向数据中心劳动者致敬!
  4. 如何进行服务器备份操作系统,如何在Linux服务器上做备份和恢复
  5. 递归学习 斐波那契 java代码实现
  6. bs模式Java web,基于BS模式的即时通讯系统的设计与实现(MyEclipse)
  7. 在cdh5.1.3中在mapreduce使用hbase
  8. 计算一路话音消耗的带宽
  9. 简化版WIN7安装打印机时提示“打印机无法安装,打印处理器不存在。”正确处理方法...
  10. pcr mix试剂选购相关问题
  11. python判断邮箱格式是否正确_python:校验邮箱格式
  12. Oracle10g或Oracle11g完全卸载正确步骤(亲身体验-详细图文教程)
  13. Unet分割直肠肿瘤图像
  14. HDU 6555 The Fool (整除分块 / 打表找规律)
  15. 乘新能源汽车产业发展东风,智能网联驶入快车道
  16. 老李8.19盘后小结
  17. 小米8 android p 公测,小米8 Android P内测9月开启
  18. HBuilder开发词典app(一)--基本页面布局
  19. python打开gz文件_Python(Python2、Python3)读取gzip(.gz)文件中utf8(utf-8)编码字符串
  20. CMD命令之ECHO大全

热门文章

  1. tp3.2 连接两个数据库
  2. ubuntu设置字体编码GBK和UTF-8
  3. 模拟grub损坏及丢失
  4. 浅谈 iOS 版本号
  5. centos7 yum源_搭建内网Linux CentOS yum源,摆脱依赖包困扰
  6. Nginx —— nginx的命令行控制(nginx的启动与停止、重载配置文件、回滚日志文件、平滑升级等操作)
  7. bzoj2091: [Poi2010]The Minima Game DP
  8. java_2018_Day7_静态static
  9. php 多维数组 array sort 排序 :array_multisort
  10. 【二分图】洛谷P1640连续攻击游戏