QTP学习与实践经验总结
QTP学习与实践经验总结完整版

QTP学习与实践经验总结完整版QTP(QuickTest Professional)是一款自动化测试工具,用于测试Web、Windows和Java应用程序。
在学习和实践QTP过程中,我总结了以下经验。
学习阶段:1.了解基础知识:首先,了解测试的基本概念和QTP的基本功能。
可以通过阅读QTP的官方文档、参加培训课程或查找相关教程来进行学习。
2.熟悉QTP界面:熟悉QTP的界面和各个功能面板的位置和作用,学习如何创建、保存和运行测试用例。
3.了解对象识别:掌握对象识别的原理和方法。
QTP通过识别应用程序中的各种对象来执行操作和检查结果。
学会使用QTP的对象仓库和对象识别器来管理和识别对象。
4.学习VBScript编程:VBScript是QTP使用的默认脚本语言。
学习VBScript编程语法和常用函数,可以加强对QTP脚本的编写和调试能力。
5.实践项目:尝试使用QTP对一个简单的测试项目进行实践。
这将帮助你熟悉QTP的操作流程和常见的测试任务。
实践阶段:1.制定测试计划:在开始测试之前,制定详细的测试计划。
根据需求,确定要测试的功能和场景,并编写测试用例。
2.创建测试对象库:根据应用程序的界面和功能,创建测试对象库。
这将包含应用程序中的各种对象及其属性和方法。
3.录制和回放脚本:使用QTP的录制功能来录制测试脚本。
在录制过程中,执行一系列操作,例如点击链接、填写表单和验证结果。
然后,使用回放功能来验证脚本的正确性。
5.调试脚本:在运行测试脚本之前,使用调试功能来检查脚本的正确性。
可以逐行执行脚本、查看变量值以及添加断点等。
6.批量执行测试:使用批量执行功能来运行多个测试脚本。
可以使用参数化和数据表来生成不同的测试数据,并生成详细的测试报告。
7.错误处理和异常处理:处理脚本中的错误和异常情况。
可以使用异常处理机制和错误定位功能来确定问题的根源。
8.维护测试脚本:随着应用程序的更新和变化,测试脚本也需要进行维护。
QTP学习与实践经验总结2

QTP学习与实践经验总结22 QTP的录制2.1 QTP录制应先作录制计划A问题描述在录制脚本时,通常会遇到一些特殊的情况,比如在编辑脚本时无法添加文字检查点等问题B解决办法在录制脚本之前作录制计划,不一定要详细的计划,只是在头脑中要清晰你要录制什么流程,设立什么检查点,在哪设立检查点.避免不作计划先录制脚本,然后通过编辑的方法来完善脚本,有的时候由于录制级别设置的问题,有的界面可能无法被保存下来,那么你就无法在其上使用任何检查点,边录制边添加检查点的方法就可以避免这个问题.C个人感受: 无2.2 QTP的录制方法A问题描述在学会使用QTP之后需要掌握其正确的录制方法才能达到事半功倍的效果,往往方法不对会导致运行结果与预期不一致,现以录制登陆为例B解决办法以登陆为例,登陆一般分为两个脚本录制,分别是合法登陆,非法登陆合法登陆:使用正确得用户名,密码,登陆系统,检查点检查登陆到系统中非法登陆:使用错误的用户茗,密码,登陆系统,检查点检查因没有登陆进系统,而弹出的提示信息C个人感受: 无2.3 关于下拉选择数据输入框的更改A问题描述:在QTP录制脚本的过程中经常会遇到下拉选择数据输入框的问题和录制后会遇到需要通过参数化来使脚本的重用性提高的问题,你可以通过修改下拉选择数据输入框的属性的值的方法完成参数化B处理流程:B1录制脚本B2参数化下拉菜单B3运行脚本C术语说明C1 TD是MI公司的一款测试管理工具,他采用B/S模式,使得用户可以在任何与Server相连的计算机上实现测试用例的管理C2 QTP是MI公司推出的功能测试工具,主要用于B/S模式的系统测试D实例:D1录制脚本,录制一个关于下拉选择数据输入框的脚本如下图图2.3.D1.1D2参数化下拉选择数据输入框,展开你的脚本,找到有下拉菜单的那个步骤,直接在他的值上作更改或者参数化即可图2.3.D2.2根据你更改的数值,QTP会在下次回放时自动找到这个数值B2添加缺少的步骤B3运行脚本C术语说明C1 TD是MI公司的一款测试管理工具,他采用B/S模式,使得用户可以在任何与Server相连的计算机上实现测试用例的管理C2 QTP是MI公司推出的功能测试工具,主要用于B/S模式的系统测试D实例:D1录制脚本,以登陆系统为例,在登陆系统时需要输入用户名,密码,有时QTP会遗失其中的一个步骤,导致无法正常回放,如下图缺少密码输入的步骤图3.1.D1.1D2添加缺少的步骤,选中输入用户名这个步骤,点击insert-newstep图3.1.D2.2 出现如下界面图3.1.D2.3如果你所要添加的控件QTP已经识别过类似的控件,你可以使用这个类似的控件,并且通过修改属性来添加这个新的步骤,如果QTP 没有识别过,选择step generator,弹出如下对话框图3.1.D2.4 点击如下图所示的按钮图3.1.D2.5 弹出如下对话框图3.1.D2.5点击其中的按钮,鼠标会从箭头变为手型指针,在你要测试页面上选中你要添加步骤所需要的控件,图3.1.D2.6 弹出如下图对话框图3.1.D2.7 点击ok,所选对象的属性将被保存到如下对话框中图3.1.D2.8对于需要输入值的控件,需要在如下图位置输入一个值图3.1.D2.9点击ok,新的步骤被添加D3运行脚本,完成脚本后可以继续运行脚本了E个人感受:无3.2 手工识别控件的方法A问题描述:在QTP的使用过程中,很多时候需要知道一些非录制流程上控件的属性,这时就可以使用手工识别控件,来获取其他控件的属性B处理流程:B1录制完成脚本B2编译脚本时,需要其他的控件的属性C术语说明C1 TD是MI公司的一款测试管理工具,他采用B/S模式,使得用户可以在任何与Server相连的计算机上实现测试用例的管理C2 QTP是MI公司推出的功能测试工具,主要用于B/S模式的系统测试D实例:D1录制完成脚本(详见QTP使用手册)D2在编译时,需要其他控件的属性,这时在QTP主界面点击 object spy 如下图图3.2.D2.1 弹出如下对话框图3.2.D2.2点击鼠标从箭头变成手型指针,在你的测试页选中一个你想要了解属性的控件,出现如下图图3.2.D2.3他显示了控件的位置,以及其中的各种属性,通过这个你可以与你原有的控件属性进行对比E个人感受:无。
QTP学习与实践经验总结(终极收藏版本)

QTP学习与实践经验总结(终极收藏版本)QTP学习与实践经验总结前言:QTP全名Quick Test Professional,是MI公司出品的一款测试工具.它的优点是使用方便,功能强大并且可以通过与测试管理工具的互连达到自动化功能测试的目的. QTP 是专门针对B/S模式的测试工具.它具有:识别能力强,回放精确等优点,是进行B/S模式下功能测试的首选工具.下面是本人学习QTP的经验总结,它包括了在学习阶段和使用阶段所遇到的问题.当然我这里所说的还很不全面,有很多欠缺,希望大家通过上面的联系方式与我联系,大家共同学习.1 TD与QTP的连接 ................................................ ................................................... (3)TD与QTP的连接 ................................................ (3)QTP自动提交错误到TD 中 ................................................ ..............................11 本机创建,修改与提交 ................................................ ...................................... 14 QTP fail自动截图 ................................................ ............................................ 18 上网助手等插件对QTP的影响 ................................................ ........................ 21 防火墙对TD与QTP的连接的影响(瑞星20XX 下) (22)如何定时运行QTP ............................................... ........................................... 24 2 QTP的录制................................................. ................................................... (26)QTP的录制方法 ................................................ .. (27)QTP录制应先作录制计划 ................................................ .............................. 26 关于下拉菜单的更改 ................................................ ....................................... 27 输入法对于回放的影响................................................. ................................... 30 如何修改系统时间................................................. (30)3 QTP的自定义操作 ................................................ ....................................................31 手工添加步骤................................................. . (31)手工识别控件................................................. . (42)4 多个Action一起执行 ................................................ (45)为什么会用到多个Action调用 ................................................ (45)对被调用Action的设定 ................................................ ................................... 46 调用Action ............................................ ................................................... ...... 49 调用Action的模式 ................................................ (56)copy Action与call existing Action的区别 ................................................ ........ 56 5 对于QTP一些功能键的介绍 ................................................ . (57)关于录制设置的区分web event recording configuration ......................................57 关于QTP录制mouseover得问题 ................................................ ..................... 61 关于start transAction的问题 ................................................ ............................ 61 虚拟对象的使用 ................................................ . (65)对于Action screen捕捉不精确的解决办法................................................. ....... 69 QTP录制方式的分类................................................. ...................................... 72 6 对于内部控件属性的一些设定 ................................................ ....... 错误!未定义书签。
QTP 学习小结

总是看别人在总结自己学习QTP的过程,经验.突然很想把自己的学习也总结一下.所以有了今天这个文.从开始学习QTP到现在已经4年多了吧.06年4月开始的吧.一开始只学习了简单的录制.将QTP自带的指南认真跟着做了一遍.这样对QTP的基础用法就有了基本的认识.录制的测试方法基本能达到.千万不要从一开始就想偷懒,这个文档一定要看看啊.慢慢发现,录制的测试远远不够用,所以开始接触更多内容:(一) GlobalSheet和LocalSheet循环的设置GlobalSheet循环设置和LocalSheet的循环设置地方是不一样的. GlobalSheet的循环是在File-Setting-Run中设置的. LocalSheet的循环是在KeyWord View中,该Action右键的Action Call Perporties中设置的.同时,取不同sheet中的值,要注意当前行是多少. 例如同一次循环咱中, 可能GlobalSheet 中取的是第二行的数据,但是LocalSheet中还是第一行,所以取到的还是第一行的数据.可以用getcurrentrow查看当前行是哪一行.用setcurrentrow来设置当前行. 以保证取值是你想要取的.(二) GlobalSheet和LocalSheet的访问方式Parameter=Datatable(“fieldname”,dtglabalsheet) ====datatable(“fieldname”,”Global”)===== datatable.GlobalSheet.getparameter("receiver").valueParameter=datatable(“fieldname”,dtlocalsheet) ====datatable(“fieldname”,”Action1”)=====datatable.LocalSheet.getparameter("receiver").value(三) 低级录制和模拟录制模拟录制顾名思义,就是严格按照你鼠标键盘的操作痕迹,轨迹来模拟操作.低级录制是根据绝对坐标来模拟鼠标键盘的操作.模拟录制没有步骤,无法修改.只能看到Desktop.RunAnalog "Track1"低级录制能看到相应的步骤,还能修改.(当然此步骤非彼步骤)不过似乎修改最多的也是坐标.但是两种都比较受限制,如果系统发生了变更,页面元素位置变更,脚本就无法使用了(回放失败).(四) 参数化标准的QTP增强步骤.参数化是个很重要的操作, 同时QTP自带的手册说的也比较明白,所以这里不多说什么. 多说也是重复手册的话,没意思.所以如果真有什么问题,可以联系我,大家一起讨论.(五) 检查点标准的QTP增强步骤. 不多说了.不过我本人用的比较少,我喜欢用输出值的方式找到值,自己比较,自己写report.(六) 输出值个人使用过程中觉得比较有用的是Text Output Value. 我一般都用它把值输出到GlobalSheet然后,自己比较,生成report. 注意,一定要在录制脚本的同时, Text Output Value 和Text area output Value才可用.虽然我上边也说了Text Area Output Value是录制的过程中才能可用的. 但是实际我是无论如何也没有使用上. 不知道是不是和我添加了Java Add-in有关系.我曾经看到我们自动化脚本服务器上的QTP该项是可用的. 而且根据网上介绍说, 选择测试普通应用程序时,录制就可以看到它可用.但是我没有成功. 如果哪位大侠乐意教导小女子一下. 小女子万分感激.先谢过了. ^_^(七) 对象库(Object Repository)对象库在QTP中来说是很重要的东西. 一定要对它很熟悉,很亲切~~.录制的过程中,对象会自动添加到对象库中.当然世界上没有100%的事,所以有的时候也需要你手动添加对象. 添加方法:打开OR, 点击添加按钮然后点击你要添加的网页/应用系统对象. 确定完就ok了.同样,你可以在OR中,修改对象的名称,属性等. 修改对象库中对象的名称, 前边的代码中对象引用的名称会自动随之变化.(八) 对象库的管理工具(Object Repository Manager)这个里边我觉得比较有用的有两个工具Object Repository Comparison Tool and Object Repository Merge Tool. 顾名思义一个合并工具,一个比较工具. 不多说了比较简单.自己用用就知道了.(九) Object Identification这部分我用的很少,但是也是有用的东西. 举例说明, 对于一个对象,如果你怎么录制,它都无法正常的回放识别,可以考虑看看是不是该对象的属性挑选不够准确,不能唯一标识对象. 这时,你想调整OR中能捕获的属性,就要用到这里了. 你可以看到列表中各种控件或者class 的属性设置. 尝试修改这里, 你可能会修正了你对象不能唯一确定的问题.(十) 查看对象的属性(Object Spy)点击工具栏上的或者Tool-Object Spy, 然后点击界面上的小手状去spy你想查看属性的网页/应用程序. 最后点击网页/应用程序上那个你想看的东东,你就能在Object Spy界面中看到各个属性值了. (注意点击Spy前,保证你上一次打开的页面是IE/你的应用程序,否则你点击,QTP的页面隐藏后,你看到的不是要捕获的对象,就无计可施了~~)下边这个图很有用啊: 我犯过的错误的总结,瞧一敲看一看拉我想取运行时的一个属性的值,但是没用object,怎么也取不到.最后在51得高手帮助才知道要用“object.”汗颜啊~~(十一) 虚拟对象虚拟对象我用的也比较多. 虚拟对象使用情况介绍是说QTP无法识别的对象可以虚拟来用.虚拟对象使用必须是先虚拟,再录制(或者写代码,随你了),这时,录制才会把它当成是你想虚拟成了对象类型,并可在其上使用该”对象类”所具有的方法. (当然请保证Tool-Options-General中的Disable recognition of virtual objects while recording是不选中的) 目前虚拟对象只支持6类.虚拟对象主要是针对你mark的坐标,将坐标内当作你虚拟成的对象来处理之.我举个例子, 我录制我们的产品时, 回放对于某一个按钮的操作有时成功,有时不成功. 我索性就把这个按钮虚拟成button, 回放就次次成功了. 当然这个例子不具有很好的代表性,只是给大家提个醒吧.遇到我这类问题不妨这么试试验. ^_*(十二) 虚拟对象脚本移植由于虚拟对象不会保存在CASE中,只保存在QTP dat/VoTemplate 目录下。
Quick TestProfessional实践报告wqp

QTP学习与实践经验总结1.QTP的基本概念和流程........................................................................................................... - 1 - 1.1了解测试对象模型 (1)1.2对象在操作过程中的作用 (1)1.3QTP测试原理(对象的映射) (1)1.4QTP对象的调用 (3)1.5QTP录制模式的分类 (4)1.6QTP测试流程 (4)2.QTP的基本使用操作............................................................................................................... - 4 - 2.1检查点 (4)2.1.1检查点概述................................................................................................................... - 4 -2.1.2检查点分类................................................................................................................... - 4 -2.1.3检查点的使用.............................................................................................................. - 5 -1.标准检查点的设置......................................................................................................... - 5 -2.数据库检查点的设置..................................................................................................... - 5 -3.文本检查点的设置 ......................................................................................................... - 7 - 2.2参数化 .. (8)2.2.1参数化的概述............................................................................................................. - 8 -2.2.2参数化的种类和使用................................................................................................. - 8 - 2.3输出值 (12)1.标准输出值.................................................................................................................... - 12 - 2.文本和文本区输出值.................................................................................................... - 12 - 3.数据库输出值................................................................................................................ - 12 - 4.XML输出值.................................................................................................................. - 12 - 2.4数据表 (12)2.4.1 数据表概述................................................................................................................ - 12 -2.4.2 数据表的类别............................................................................................................ - 12 -2.4.3 数据表的操作............................................................................................................ - 12 -2.4.4在数据表中使用公式................................................................................................. - 13 -1.使用公式创建参数化数据 ........................................................................................... - 13 -2.在检查点中使用公式 ................................................................................................... - 14 - 2.5恢复场景 .. (15)2.5.1恢复场景概述............................................................................................................. - 15 -2.5.2定义恢复场景............................................................................................................. - 15 - 2.6正则表达式 . (18)2.6.1 正则表达式的概述.................................................................................................... - 18 -2.6.2正则表达式的使用操作............................................................................................. - 18 - 2.7分析测试结果 (20)2.7.1 设置测试运行结果的存储位置................................................................................ - 20 -2.7.2 调试测试脚本........................................................................................................... - 20 -1.语法检查....................................................................................................................... - 21 -2.使用断点....................................................................................................................... - 21 -3.单步调试....................................................................................................................... - 21 -4.调试查看器的使用....................................................................................................... - 21 -5.运行整个测试............................................................................................................... - 21 - 附:操作中遇见的问题及相应的解决方法............................................................................. - 24 - 1.QTP录制 .. (24)1.1 QTP录制应先作录制计划........................................................................................... - 24 -1.2 QTP录制方法............................................................................................................... - 24 -1.3关于下拉列表选择数据输入框的更改........................................................................ - 24 -1.4 中文输入法对于回放的影响...................................................................................... - 25 -2.QTP自定义操作 (25)2.1 手工添加步骤的方法.................................................................................................. - 25 -2.2 手工添加对象的方法................................................................................................... - 27 -2.3 对脚本进行注释........................................................................................................... - 28 -2.4对于Action screen捕捉不精确的解决办法 .............................................................. - 28 -1.QTP的基本概念和流程1.1了解测试对象模型测试对象模型指的是一组对象类库,QTP用它们来描述被测试的应用程序中的实际对象。
QTP学习与实践经验总结5

QTP学习与实践经验总结5QTP学习与实践经验总结5自动化测试工具QTP(QuickTest Professional)是一款流行的自动化测试工具,广泛应用于软件测试中。
在使用QTP进行学习和实践过程中,我积累了不少经验和技巧,总结如下:一、全面掌握QTP的基础知识在使用QTP前,需要对QTP的基本功能和操作进行了解和学习,比如对象识别、对象层次、对象库的使用等。
只有深入理解这些基础知识,才能更好地应用QTP进行自动化测试。
二、灵活运用QTP的录制回放功能QTP的主要功能之一就是录制和回放脚本。
在录制脚本时,要注意选择合适的录制模式,灵活切换录制级别。
在回放脚本时,要注意验证脚本的正确性和有效性,对回放中出现的错误进行调试和修复。
三、编写可重用的测试脚本QTP支持脚本的重用和参数化,可以编写可重用的测试脚本库。
在编写脚本时,要尽量避免硬编码,使用变量和参数。
通过参数化,可以方便地修改输入值和验证值。
同时,可以使用函数和子过程来实现脚本的复用。
四、合理利用对象库和对象识别在使用QTP进行对象识别时,要充分利用对象库和对象识别配置。
对象库用于存储和管理被识别的对象。
在识别对象时,要根据对象的特征进行选择和配置,以提高对象识别的准确性和稳定性。
对于无法识别的对象,可以使用插件或扩展来增强QTP的能力。
五、使用断言和验证点进行自动化验证QTP提供了丰富的断言和验证点功能,可以方便地进行自动化验证。
在脚本中,要添加必要的断言和验证点,对测试结果进行验证。
同时,可以进行条件判断和异常处理,以便在测试过程中发现并处理错误。
六、针对数据驱动测试进行脚本设计QTP支持数据驱动测试,可以通过外部数据表或Excel表格来驱动测试脚本的执行。
在脚本设计中,要将输入数据和验证数据分离,并使用循环结构和数据驱动的方式来执行测试用例。
通过数据驱动,可以快速进行大规模的自动化测试。
七、进行批量执行和报告生成QTP提供了批量执行和报告生成的功能,可以方便地进行持续集成和自动化测试。
QTP小结

QuickTest Professional1 QTP简介QTP是QuickT est Professional的简称,是一种自动测试工具。
使用QTP的目的是想用它来执行重复的手动测试,主要是用于回归测试和测试同一软件的新版本。
在对象仓库中存在三种可以被识别的对象类:ActiveX、Visual Basic、Web。
适合B/S以及C/S架构。
2 QTP测试步骤我学习的是使用软件自带的应用程序进行测试,下面就来介绍这方面的测试步骤。
2.1 录制脚本当录制脚本时,会自动获取被操作对象的一系列属性信息,然后将对象和它的属性信息存在自己的对象仓库中,同时在关键字视图(KeyWord View)和专家视图(Expert View)中产生相应的动作和代码。
QTP提供了三种不同的录制方式:正常录制(Normal Recording)、模拟录制(Analog Recording)和低级录制(Low Level Recording)。
◆正常录制(Normal Recording)正常录制模式是QTP默认的录制模式,这种录制模式是QTP最突出的特点,是直接对对象,比如对标准控件的的操作,录制完之后,不管再次打开的对象位置在哪,它都能执行到。
此模式可以录制下对于应用程序的对象的一些列操作,但是对于一些鼠标的运动轨迹却无能为力。
经典的例子是Windows的画图程序,不能对于画图的过程进行录制。
◆模拟录制(Analog Recording)为了解决上面的问题,QTP提供了模拟录制的方式。
模拟录制模式是鼠标和键盘的精确操作进行录制。
录制鼠标的拖动,捕捉鼠标的运动轨迹,主要用与绘图此类软件的录制。
模拟录制模式分为两种:一种是相对于指定窗口录制;另一种是相对于屏幕录制。
选择相对于指定窗口录制,就会只录制鼠标键盘的指定窗口内的所有动作,在窗口外的动作不会录制。
而屏幕录制就可以录制在整个屏幕内所做的所有动作,包括点击win任务栏上的Quicktest 图标,但在QTP窗口内所做的所有操作不会进行录制。
QTP学习与实践经验总结5

9 关于错误报告的问题9.1 关于report.ReportEventA问题描述:当设定好检查点后,QTP能够自动想TD中添加错误报告,但是有的时候QTP自动提交的错误报告,并不能满足你的要求,这时就需要使用一些自定义的错误报告B处理流程:B1录制脚本B2添加自定义错误C术语说明C1 TD是MI公司的一款测试管理工具,他采用B/S模式,使得用户可以在任何与Server 相连的计算机上实现测试用例的管理C2 QTP是MI公司推出的功能测试工具,主要用于B/S模式的系统测试D实例:D1录制脚本,详细查看QTP user help 使用说明D2添加自定义错误,在QTP主界面选择insert---step---reporter图9.1.D2.1弹出如下对话框图9.1.D2.2页面中包含三个内容: status name detailsStatus: 报告的身份,本问题介绍的报告,不单可以用在错误报告上,也可以用在其他的报告上,比如passed,done warning,falIEd提示: 如果你选择了falIEd那么即使脚本正常通过,检查点也正确,报告也显示为failed并且自动提交到TD中,使用条件语句能够达到判断是否向TD中添加错误的目的Name: 报告的名称Details: 报告的细节,你可以在这里写清脚本或者错误的详细描述设定完成后,点击ok添加的reporter会显示在你选择的脚本,或者检查点后,如下图图9.1.D2.3你也可以在expert vIEw中通过代码添加错误报告使用report.ReportEvent,格式为report.ReportEvent status,”name”,”details”Status的设定分为四种:0或者micpass1或者micfail2或者micdone3或者micwarning例子如下图:图9.1.D2.4也可以写成reporter.reportevent 1, “错误报告”.”进入登陆界面”E个人感受:无9.2 关于reporter.fiterA问题描述:在你查看QTP的reporter时当有参数化时,reporter右边的选择树会很长,即使看起来很不方便,也不利于查找错误B处理流程:B1录制脚本B2在expert vIEw中设定C术语说明C1 TD是MI公司的一款测试管理工具,他采用B/S模式,使得用户可以在任何与Server 相连的计算机上实现测试用例的管理C2 QTP是MI公司推出的功能测试工具,主要用于B/S模式的系统测试D实例:D1录制脚本,详细见QTP使用手册D2在expert vIEw中的设定,当录制完成脚本,并且设置好检查点后,进入expert vIEw,并且在其中输入reproter.filter=....如下图图9.2.D2.1Reporter.filter分为四个属性:0或者rfenableall 所有的报告都显示在test result中1或者enableerrorandwarning错误和警告信息显示在test result中2或者rfenableerroronly只把错误显示在test result中3或者rfdisableall不在test result中显示任何信息你可以根据需要设定你要显示的错误如本问题例子图9.2.D2.2在脚本的开头,设定不显示任何信息,包括检查点的错误信息在检查点的下一个步骤加一个条件语句,如果检查点不通过,则显示自定义的错误信息在条件语句之前,加上reporter.filter让信息显示出来提示:如果reporter.filter=3也就是不显示任何信息,那么即使检查点检查出错误信息也不自动提交到TD中E个人感受:无10 关于在expert中操作的问题10.1 关于getRoporperty ,getTopropertise, getTopropertyA问题描述在expert vIEw中编写测试代码的时候需要得到一些控件的属性值,通过getRoporperty, getTopropertise, getToproperty这三个函数,可以得到你想要的属性值,但是他们互相有区别,功能不同,以下对其作一些介绍B解答B1 getRoporperty返回控件的一个当前值,所谓当前值就是QTP捕获的控件的所有属性值,不一定是QTP 识别控件的基本值,如下图,在object propertIEs中捕获的值都是可以由getRoporperty单独提取出来的图10.1.B.1你也可以通过add/remove来增加新的属性书写格式: object.GetROProperty (Property)其中property为属性的名称例:下面的例子取出radio group的项目数,保存在numoflterms中NumOfItems = Browser("Mercury Tours").Page("Find Flights").WebRadioGroup("seat pref").GetROProperty("Items Count")NumOfItems 内容为3B2 getTopropertise返回控件所有被捕获的属性值,如下图图10.1.B.2你也可以通过add/remove来添加新的属性书写格式: object.GetTOProperties例子:以下的例子是使用GetTOPropertIEs来将web table中的所有属性值提取出来并且将值付给talbledescSet TableDesc = Browser("Mercury Tours").Page("Method ofPayment").WebTable("FirstName").GetTOPropertIEsB3 getToproperty返回object description中的当前值,如下图图10.1.B.3提示:如果你使用getToproperty返回了一个在object description不存在的属性值,那么QTP将在报告中以warning形式提示出来书写格式:object.GetTOProperty (Property)其中preperty为控件的属性名称例子:下面的例子使用GetTOProperty 来返回WebTable的HtmlTag 属性在ObjectRepository中的的值ObjectTableTag = Browser("Mercury Tours").Page("Method ofPayment").WebTable("FirstName").GetTOProperty("HtmlTag")B4 getToproperty看起来与getRoporperty类似,但是他们有实质的区别GetToproperty返回的是object description中的值,如下图图10.1.B.4如其中的index这项,他的值在录制的过程中是9,那么使用getToproperty返回的值就是9GetRoporperty:返回的是当前的值,如下图其中的index值为9但是当QTP运行脚本时,由于脚本可能因为控件的属性发生改变,或者你对index这个值做了参数化,发现index值不为9了,变为了10,使用getRoporperty 返回的值就为10E个人感受:无10.2 编码时在出现expect end of statement的问题A问题描述:当在expert vIEw中运行编写脚本后,可以通过点击keyword vIEw来检验编写是否有语法错误,但是QTP会给出错误提示,但是错误提示一般不会准确,并且在遇到他不能识别的错误时只能给出一种错误提示expect end of statementB处理流程:B1编写代码B2点击keyword vIEwB3弹出错误提示B4修改错误C术语说明C1 TD是MI公司的一款测试管理工具,他采用B/S模式,使得用户可以在任何与Server 相连的计算机上实现测试用例的管理C2 QTP是MI公司推出的功能测试工具,主要用于B/S模式的系统测试D实例:D1编写代码,还是以登陆为例,如下图图10.2.D1.1D2点击keyword vIEw图10.2.D2.2D3弹出错误提示,如果这段代码是QTP能够识别的错误,那么他会弹出对话框,提示哪个语法出现错误,不过一般QTP不能识别大多数错误,一般的对话框为图10.2.D3.3这个对话框就是错误提示框,他显示了错误的行数,以及错误所在Action,并且显示了错误行,在error description中显示了错误类型,当QTP无法识别错误类型时则出现expected end of statementD4修改错误,点击按钮,QTP会自动将光标移动到出错的位置,如下图图10.2.D4.4在光标位置查找你的错误,并且修改,修改完成后,重复上4步,如果没有错误提示,则说明脚本没有语法错误,但是需要注意的是,逻辑错误QTP无法检验出来,需要一定的开发经验E个人感受:无11 关于cs模式的录制11.1 QTP是否可以cs方式下的应用系统A问题描述:通过以上的讲解,大家都知道QTP是一种测试B/S模式很好的工具,QTP不但能够测试B/S 模式,也可以测试cs模式B处理流程:B1进行test and recording setting的设置B2录制脚本B3回放脚本C术语说明C1 TD是MI公司的一款测试管理工具,他采用B/S模式,使得用户可以在任何与Server 相连的计算机上实现测试用例的管理C2 QTP是MI公司推出的功能测试工具,主要用于B/S模式的系统测试D实例:D1进行test and recording setting的设置,打开一个新的Action,如下图图11.1.D1.1点击record按钮,弹出如下对话框图11.1.D1.2选择Windows Applications如下图图11.1.D1.3这里如同Web中一样,可以设定是录制当前以打开的程序,还是录制指定路径的程序Record and run test on any open windows-based application为录制当前打开的程序Record and run test on these application (opened on session start)录制指定路径的程序选择Record and run test on these application (opened on session start),如下图图11.1.D1.4选择add 出现如下对话框图11.1.D1.5点击application中的按钮,选择一个程序,本例子选择winzipWorking folder为运行文件夹Program arguments为描述点击ok开始录制提示: 在设置完成application后应该确保web中的选项如下图所示图11.1.D1.6D2录制脚本录制完成如下图所示显示脚本,并且可以回放图11.1.D2.7D3回放脚本但是这里的active screen里面没有页面,因为页面active screen是为web而设提示: 由于没有active screen,这就需要如果要添加检查点,则要一般录制一边添加E个人感受:无。
QTP回顾与总结

QTP复习提纲一、你对自动化测试的理解是什么?二、把对象从被测软件ui中读取出主要特征,存入对象库,回放时在被测试软件中寻找指定对象,赋予对象一些方法,方法为windows win32或者web上的一些activex控件的通用方法(或者javascript应用于一些未支持的事件,比如link.click), 微软控件对外的接口,把其中一些方法进行封装,成为qtp自己的方法,比如getroproperty=对象.object.value ,然后运用这些方法属性驱动被测试对象完成一些指定的动作。
对于任何一个add-in都是先找到人家的对外接口,然后拿过来封装,需要的时候去调用接口事件,也就成为了QTP的动作。
什么是自动化测试工具?你知道的自动化测试工具有哪些?三、自动化测试和人工测试的优点和缺点是什么?自动化测试的优点:✓回归测试更方便✓可以运行更多更繁琐的测试✓可以执行一些手工测试困难或不可能进行的测试✓更好的利用资源✓测试具有一致性和可重复性✓测试的复用性✓可以让产品更快面向市场✓增加软件信任度自动化测试的缺点:✓不能取代手工测试✓手工测试比自动化测试发现的缺陷更多✓对测试质量的依赖性极大✓测试自动化不能提高有效性✓测试自动化可能会制约软件开发✓工具本身并无想像力四、QTP的实现原理是什么?分两个部分阐述。
GUI识别对象原理自动化测试工具生成脚本原理五、下图的界面如果消失了,要去哪里选择?图中的ActiveX Add-in支持什么语言的ActiveX?ActiveX与语言无关,具体参考我上课给你们的资料。
六、下图的各个选项的功能分别是什么?上面这张图的界面如果消失了,要去哪里选择?七、请大致介绍一下下图中QTP的界面组成、视图类型及用途八、什么是关键字驱动?✓关键字驱动测试是数据驱动测试的一种改进型✓用关键字的形式将测试逻辑封装在数据文件中,测试工具只要能够解释这些关键字即可对其应用自动化✓主要关键字包括三类:被操作对象(Item)、操作(Operation)和值(value),用面向对象形式可将其表现为Item.Operation(Value)✓将测试逻辑按照这些关键字进行分解,形成数据文件九、QTP的录制原理是什么?十、Analog Recording和Low Level Recording的区别?什么时候需要用到它们?十一、QTP的对象库和脚本分别以何种形式存放?它们之间有何联系吗?十二、如何显示代码行?十三、QTP的测试流程是什么样的?✓录制测试脚本前的准备✓录制测试脚本✓加强测试脚本(检查点、参数化、逻辑判断等)✓脚本调试✓运行脚本执行测试✓分析测试结果✓提交BUG十四、没有相关插件是否一定无法使用QTP进行自动化测试?请举例说明解决方案。
QTP学习经验分享

循序渐进学习QTP--初级篇我们使用QTP的目的是想用它来执行重复的手动测试,主要是用于回归测试和测试同一软件的新版本。
因此你在测试前要考虑好如何对应用程序进行测试,例如要测试那些功能、操作步骤、输入数据和期望的输出数据等。
强烈建议你按照版主oldsidney 写的 Tutorial_oldsidney_cn.pdf 文件来认认真真、从头到尾地执行一遍,包括录制脚本、分析脚本、增加check point、Split Action 等。
我想这会减少你在学习QTP过程中的不少困惑和疑虑。
这篇文档对如何使用QTP写的非常详细,是QTP初学者的经典教材。
我就是看了这篇文档后才对QTP的整个测试流程有了一个初步的认识。
在此,我对oldsidney表示感谢。
注意:1,确保你的IE运行正常,依次点击菜单查看 --> 工具栏,一定要上网助手等插件卸载掉,特别3721这个垃圾网站和其它拦截广告的插件(它也把测试过程中弹出的窗口当成广告,一样会拦截的!)!2,如果是按照Tutorial_oldsidney_cn.pdf 文件中的订购飞机票的例子来练习 QTP 的使用,那么只需选择Web 插件就可以了。
如果是测试其它的应用程序或系统,就要根据需要来选择相应的插件了。
循序渐进学习QTP---中级篇在这个阶段你就要自己针对某个系统去录制脚本、维护脚本了。
在录制后的回放过程中,你可能会遇到各种问题,这个时候就需要发挥你的主观能动性来解决遇到的问题。
我想你可以按照下面的方法去解决:1,查看QTP的有关文档,包括Help 、QTP User’s Guide等文档。
这些都是比较系统全面的学习材料。
你该好好利用呀。
2,在本论坛上查看以前别人是如何解决此类问题的(如果有的话)或者是发新贴寻求帮助,也可以搜索Google 等网站寻找问题的解决方法;3,与自己部门的同事交流,例如与测试人员交流他们是如何解决的,与开发人员交流某个QTP无法识别的控件具体是是用什么来识别的等。
QTP的一简单的操作认识

QTP实验的读书感想通过学了几周的QTP,有刚开始的不懂得是干什么用的,也不知道怎么用?但通过老师的引导,慢慢的学习,练习,查点资料,现在能对QTP熟练的使。
以下是我看过书以及几次试验之后的感想和对QTP的认识。
QTP的一些操作:一、QTP的简单认识与基本功能。
它的工作页面分为标题栏,菜单栏,文件工具栏,测试工具栏,文档选项卡,视图栏,专家试图,关键字视图,数据表,资源,可用关键字,测试流,状态栏。
并且快照视图(ActionStreen)不是保存的图片,而是图片的物理路径,信息和步骤。
二、QTP的录制只录制鼠标点击和操作的对象,并且保存到资源管理器中。
三、一个自动化脚本可以测试很多东西。
四、一个例子的具体操作如下:1这是先打开售票系统那个页面录制后的脚本,但还没有测试。
2把东西进行参数化.在keyword view里该静态值参数化。
注:这是先打开售票系统那个页面录制后的脚本,但还没有测试。
注:参数化之后的keyword view注:参数化之后的Expert View和Global里的数据及密码加密后。
注:改成参数形式后进行测试后的结果如何理解,管理测试对象的概念:●测试对象可以大致分为:一抽象测试对象(class)它是存放在插件类库中的。
二录制测试对象,它是放到测试类库中,操作时录入的。
三时时测试对象(脚本运行时临时对象),属性值可变的,回放录制脚本时应用程序的时时对象匹配脚本对象。
●QTP以测试对象为单位管理测试脚本。
●测试对象是QuickTest 在测试或组件中创建的用于表示应用程序中的实际对象的对象。
QuickTest 存储有关该对象的信息,这些信息有助于它在运行会话期间标识和检查该对象。
●运行测试或组件时,QuickTest 通过其测试对象类及其描述(一组用于唯一标识该对象的测试对象属性和属性值)来标识应用程序中的每个对象。
测试对象及其属性和属性值的列表存储在对象库中,运行测试或组件时,QuickTest 将搜索与它记住的描述匹配的对象。
软件测试工作中使用QTP的总结

软件测试工作中使用QTP的总结软件测试工作中使用QTP的总结---转上一篇 / 下一篇 2021-08-18 13:26:28 / 个人分类:测试查看( 68 ) / 评论( 1 ) / 评分( 1 / 0 )工具软件一段时间不用就容易手生,有个备份整理以后复习都事半功倍。
之前就打算好好弄一下一直拖着没动笔。
网上QTP的学习资料大把大把,那些基础的理论东西看过就过了,实践才是王道,操作几个小时胜过看一天的说明文档。
这里列一些我在用QTP时遇到印象比较深刻的问题和解决方案,其他的小问题属于QTP熟练操作的范畴就不赘述了。
因为项目需要接触了差不多三个月的QTP,自知离QTP高手还有段距离,学无止尽,有学习QTP的朋友欢迎发表高见大家互相进步~1、QTP自带函数print调试代码的时候一般习惯用Debug或者Msgbox函数。
监视变量运行时的值用Msgbox,个人感觉不方便的一点就是每次在msgbox窗口弹出来后,脚本会暂停执行,等到鼠标点确定后窗口才会关闭继续运行后续脚本,真的很烦,做自动化测试的时候我真的是已经懒到不愿意动一根手指头。
某天无意发现QTP自带的函数print也可以实现查看变量信息,窗口是非模式的,运行时变量值在 QuickTest Print Log窗口上输出但脚本不用停下来等,而且可以在一个session运行完了之后查看所有需要监视的变量值。
Eg:Dim pp=Browser("xx").page.("xx").webedit("object_name").GetROProperty("value")print p2、calender控件一般日期格式字段是同时支持手填日期格式的text field和用鼠标点日历控件选择。
但是在DMPOD系统里发现部分日期格式的字段居然disable了用户手动输入的属性,只能靠点日历控件来选择日期。
QTP学习与实践经验总结5

QTP学习与实践经验总结5QTP学习与实践经验总结5作为一款自动化测试工具,QTP(QuickTest Professional)在软件测试领域应用广泛。
在学习和实践过程中,我积累了一些经验,现将其总结如下:1.系统学习在开始使用QTP之前,首先要对其进行系统学习。
可以参考官方文档、教程和视频教程,了解其基本概念、功能和操作方式。
还可以参加一些培训班或者在线课程,由专业的讲师进行指导。
只有对QTP有了全面的认识,才能更好地运用它进行测试工作。
2.熟悉对象层次结构QTP的主要工作方式是通过识别应用程序中的对象,对其进行操作。
因此,熟悉应用程序的对象层次结构是非常重要的。
可以使用QTP的对象调试工具来帮助定位对象,并了解其属性和方法。
另外,可以通过使用对象库来管理应用程序的对象,提高测试的可维护性。
3.设计良好的测试脚本在编写测试脚本时,应注意良好的设计原则。
首先,应将测试脚本模块化,将测试逻辑分解成多个可复用的函数或者操作步骤,并采用层次结构的方式组织。
其次,应使用明确的命名规范,对变量、函数和对象进行命名,方便别人理解和维护。
另外,应加入注释,对代码进行解释,便于以后的查看和修改。
4.使用调试工具QTP提供了强大的调试工具,可以帮助我们定位问题。
在执行测试脚本时,可以使用断点功能,暂停脚本的执行,逐步调试。
还可以使用变量监视功能,查看变量的值变化。
另外,还可以使用错误处理功能,捕获并处理测试中的异常情况。
这些工具可以帮助我们快速定位和解决问题,提高测试效率。
5.优化脚本性能在实际的测试过程中,测试脚本的性能可能成为一个瓶颈。
为了提高测试的效率,需要对脚本进行性能优化。
首先,可以优化对象识别,减少对象查找的时间。
其次,可以使用参数化和数据驱动的方法,批量执行相同的测试步骤。
还可以使用并行执行的方式,同时运行多个测试脚本。
这些优化手段可以有效地提高测试的速度和效果。
6.学习VBS脚本语言QTP使用VBScript语言进行脚本编写,因此,学习VBScript是非常重要的。
QTP实践总结

(2).在recourse中添加Library时会提示是否添加为相对路径,点击yes会添加为相对路径
3.QTP中关联函数库的设置
Files-->settings-->Resources-->Associated function libraries
webdlement/event/add/onclick,onmousedown,onmouseup/listen always
8..视图框显示为乱码时:调整原页面编码,在QTP/tools/change active screen
9.启动IE
SystemUtil.Run "iexplore.exe", "**"
reporter.ReportEvent 0,"pass","系统显示了所有的资讯列表!"
else
reporter.ReportEvent 1,"fail","系统没有显示资讯列表!"
end if
14.QTP报告自动跳出设置
4.对象库中对象名称不分为_2,_3...的设置:
tool/options/web/page/fram options/
create a new page test object for为different test object descrīptons
create a new frame test object for为different test object descrīptions
'Company: xxxx
QTP学习与实践经验总结3

4 多Action的问题4.1 为什么会使用多个ActionA问题描述:在录制脚本的时候通常会遇到这种情况,一个步骤需要反复执行,但是其他步骤不需要跟着执行,就比如添加信息,一般分为登陆,添加,退出,这三步,只有添加这个步骤是需要重复执行的,登陆和退出不需要重复执行B解决办法:这个时候就需要用到多个Action调用的方式C个人感受: 无4.2 Action调用的设置A问题描述:在决定使用多个Action调用之后需要对整个脚本有一个划分,解决这个问题,在录制脚本之前,先要对脚本进行划分,还是以添加信息为例,划分成三步,登陆,添加,退出,其中添加是主要部分而添加和退出是次要部分,分别对主要部分和次要部分作相应的设置,就能达到你的要求B处理流程:B1分别将登陆,退出录制成为单独的Action并且单独保存下来B2对这两个Action作设置C术语说明C1 TD是MI公司的一款测试管理工具,他采用B/S模式,使得用户可以在任何与Server 相连的计算机上实现测试用例的管理C2 QTP是MI公司推出的功能测试工具,主要用于B/S模式的系统测试D实例:D1以登陆为例,录制好登陆脚本如下图图4.2.D1.1注意: 很多人录制的时候习惯性的关闭录制完成后的浏览器,这里不能让QTP录制下关闭浏览器这个步骤,所以当登陆进系统后,先停止录制,再关闭浏览器D2对两个Action作设置,还是以登陆为例,选中脚本上的Action图4.2.D2.2 点击右键,选择Action propertIEs出现如下对话框图4.2.D2.3将reusable Action选中,点击ok,主界面变为下图所示图4.2.D2.4 Action图标变为将退出也按上述步骤设定E个人感受:无4.3 调用ActionA问题描述:在设定完登陆和退出之后,还需要在整个脚本的主要部分(添加)上作一些设置B处理流程:B1调用已有脚本B2设定record and run settingB3调整Action的位置B4录制脚本B5对添加脚本进行参数化B6对于添加Action属性的设定C术语说明C1 TD是MI公司的一款测试管理工具,他采用B/S模式,使得用户可以在任何与Server 相连的计算机上实现测试用例的管理C2 QTP是MI公司推出的功能测试工具,主要用于B/S模式的系统测试D实例:D1调用脚本,在QTP主页面选择insert ---call to existing Action图4.3.D1.1弹出如下对话框图4.3.D1.2在from test中,点击会弹出文件夹选项(如果QTP已经连接TD等测试中心,那么会弹出测试中心的保存目录,本例是连接TD的)如下图图4.3.D1.3选择你刚刚录制并且设置完成的登陆,点击ok,弹出如下对话框图4.3.D1.4选择at the end of the test点击ok登陆Action被调用到当前的Action中,执行如上操作,将退出也导入到当前的Action中D2设定record and run setting,在QTP主界面,选择test---record and run setting图4.3.D2.5弹出如下对话框图4.3.D2.6选择record and run test on any open web browserD3调整Action的位置,当完成上述操作,你会看到你的界面如下图所示图4.3.D3.5三个Action顺序排列.但是你需要将登陆Action放在第一步,添加Action放在第二步,退出Action放在第三步,你可以通过用鼠标选中其中的一个Action通过拖动鼠标的方式来调整Action的位置D4录制脚本,手动打开IE浏览器,手动登陆到你登陆Action执行完毕后的那个界面,然后在QTP中点击record,开始录制脚本,注意,不要录制最后关闭这个步骤D5对添加脚本进行参数化,选择你要参数化的步骤,并且参数化你的步骤,但是在选择global或者Action时,选择Action,如下图图4.3.D5.6D6对于添加Action属性的设定,选中你的添加Action,点击右键,并且选择Action call propretIEs如下图图4.3.D6.7在弹出的对话框中选择run on all row,如下图图4.3.D6.8 E个人感受:无4.4 调用Action的模式A问题描述与解答要达到4.2所要达到的目标,其中的几个call Action必须依照4.2的属性来设置,否则将无法按要求运行B个人感受:无4.5 copy Action与call existing Action的区别A问题描述在QTP中可以使用两种调用其他Action的方法分别是call to copy of Action与call existing Action,他们之间的区别如下B问题解答两种方式都是将以被保存的Action调用过来,但是copy Action是将原本Action中的所有属性,及其参数值调用过来,并且可以在其上随意的更改,而且这些更改并不影响源Action,而call existing Action虽然也是将源Action的所有属性及其参数值都调用过来,但是你不能更改其中的任何步骤和参数值,如果一定要更改,需要重新打开源Action,在源Action上进行更改,所作的改动将自动体现在调用的Action上C个人感受: 无5 QTP系统参数设置对录制的影响5.1 关于录制设置的区分web event recording configurationA问题描述:在录制过程中,默认的录制模式很多情况下是不能满足录制要求的,需要进行特殊的设定,你可以在web event recording configuration中完成这些设定B处理流程:B1启动QTPB2进入到web event recording configuration对话框B3web event recording configuration的设置B4保存退出,录制脚本C术语说明C1 TD是MI公司的一款测试管理工具,他采用B/S模式,使得用户可以在任何与Server 相连的计算机上实现测试用例的管理C2 QTP是MI公司推出的功能测试工具,主要用于B/S模式的系统测试D实例:D1启动QTP,如下图图5.1.D1.1D2进入web event recording configuration对话框,点击tools---web event recordingconfiguration如下图图5.1.D2.2D3 web event recording configuration的设置,弹出web event recording configuration对话框,如下图图5.1.D3.3这里有三个录制级别可以设置分别为最低,中等,高级如果你认为还是不能满足你的录制需要可以点击custom settings..按钮弹出如下对话框图5.1.D3.4左边是你的对象列表树,如下图图5.1.D3.5他包含了web中QTP所能识别的所有控件,你可以通过add object添加object控件图5.1.D3.6右边是跟控件相对应的实例,如下图图5.1.D3.7他包含了相对应的控件的鼠标录制属性,你可以通过add event来添加event控件图5.1.D3.8D4 保存退出,录制脚本,点击ok保存设置,这时可以按照你的要求录制脚本E个人感受:无5.2 关于QTP录制mouseover得问题A问题与解答修改了Web Event Recording Configuration中的以下设置:将Any Web Object、Web Object-->Image、Web Object -- >WebArea这三项上的Onmouseover 都改成Always Enable就可以了B个人感受: 无5.3 关于start transAction的问题A问题描述:有时需要查看QTP执行脚本的执行时间,以及使用loadrunner调用QTP,也需要加一个特殊的功能键start transAction,因为loadrunner只能调用start transAction和end trasAction之间的代码段B处理流程:B1录制脚本B2添加start transActionB3运行脚本C术语说明C1 TD是MI公司的一款测试管理工具,他采用B/S模式,使得用户可以在任何与Server 相连的计算机上实现测试用例的管理C2 QTP是MI公司推出的功能测试工具,主要用于B/S模式的系统测试D实例:D1录制脚本,进入QTP页面,录制你的脚本,录制完成后点击stopD2添加start transAction如下图在你需要查看时间的脚本上端添加start transAction,如下图,点击start transAction按钮弹出如下图对话框图5.3.D2.2输入名称,并且选择是在你所选步骤之前加还是之后,设定好后,点击ok添加一个步骤,如下图再选择你要中止的步骤,点击end stransAction,如下图弹出如下对话框图5.3.D2.5 选择你添加的start stransAction点击ok添加成功图5.3.D2.6 添加成功D3运行脚本,运行后就能在result中查看时间信息E个人感受:无5.4 虚拟对象的使用A问题描述:在实际测试过程中,很多时候网页上的控件并不能都被QTP识别,例如网页上一个flash动画,实际上是一个链接,但是QTP无法识别出flash这个控件,这时使用QTP中的虚拟对象来解决这个问题B处理流程:B1使用虚拟对象,将flash设为一个对象B2录制脚本C术语说明C1 TD是MI公司的一款测试管理工具,他采用B/S模式,使得用户可以在任何与Server 相连的计算机上实现测试用例的管理C2 QTP是MI公司推出的功能测试工具,主要用于B/S模式的系统测试D实例:D1使用虚拟对象,将flash设为一个对象,点击tools---virtual objects---new objects,弹出如下对话框图5.4.D1.1点击next,进入下一个对话框图5.4.D1.2在class里选择你想将flash设为那个QTP能够识别的对象,点击next图5.4.D1.3打开你的页面,页面中包含你要的虚拟的对象,并且点击上面对话框中的mark object按钮,页面会最小化,鼠标会编程”+”,你可以使用”+”来限定虚拟对象的范围选好后,会在width height中显示虚拟对象的高和宽,并且点击next,弹出如下对话框图5.4.D1.4 选择entre parent hIErarchy 或者parent only点击next图5.4.D1.5 设定虚拟对象的名称,以及收藏的名字,点击finish虚拟对象添加完成点击tools---virtual object--- virtual object manager如下图图5.4.D1.6刚加的object在V ocollection1中,你可以在其中对这个虚拟对象,删除或者添加新的虚拟对象D2录制脚本,录制脚本,在录制过程中会自动将flash控件识别成object控件E个人感受:无5.5 对于Action screen捕捉不精确的解决办法A问题描述:QTP不能100%精确的捕捉到Action screen,但是对于Action screen捕捉不精确的问题,可以通过QTP Action screen的设置来逐步精确(建议在录制时设检查点,避免捕捉不精确的问题)B处理流程:B1在QTP中设置捕捉级别B2录制脚本C术语说明C1 TD是MI公司的一款测试管理工具,他采用B/S模式,使得用户可以在任何与Server 相连的计算机上实现测试用例的管理C2 QTP是MI公司推出的功能测试工具,主要用于B/S模式的系统测试D实例:D1在QTP中设置捕捉级别,点击tools—options如下图图5.5.D1.1弹出如下对话框图5.5.D1.2 选择active screen tab图5.5.D1.3 分为4个级别none,minimum,partial,complete None: 不保存active screenMinimun: 最小化保存active screenPartial: 中级别保存active screenComplete: 最高级别保存active screen可以点击custom level来自定义,弹出如下对话框图5.5.D1.4可以根据你的需要自定义保存active screen,选择好之后,点击ok,设定被保存D2录制脚本,设定好之后,就可以录制脚本了,QTP会根据你的设定保存active screen E个人感受:无5.6 QTP录制方式的分类A问题描述:QTP录制有3中基本的录制方式,根据不同情况使用不同的录制方式B问题与解答: QTP分为:基本录制,low-level record,analog recordB1基本录制:QTP的默认录制模式,可以通过上面的activescreen来进行设置B2 Low-level record:低级别录制,录制级别高于基本录制,并且能够编辑它录制下来的脚本B3 Analog record:高级别录制,能够录制鼠标的动作,但是录制下来的脚本无法进行编辑和修改,如果页面中控件位置发生变化,则无法继续使用这个模式录制的脚本,当选用analog record模式之后会弹出如下对话框图5.6.B3.1选择record relative to the screen录制当前页,并且回放的时候也是在当前页回放,如果当前页不是录制时的当前页,那么将会出现错误选择record relative to the following window可以指定回放时的界面,点击按钮指定界面,设定好后,点击按钮C个人感受:无。
qtp 实验报告

qtp 实验报告Qt是一种跨平台的应用程序开发框架,它由挪威的Trolltech公司开发,并于2008年被诺基亚收购。
Qt的全称是"Qt Toolkit",它提供了一套用于开发图形用户界面(GUI)和嵌入式系统的工具和库。
Qt采用C++语言编写,具有良好的可移植性和可扩展性,被广泛应用于桌面应用、移动应用和嵌入式系统。
本文将介绍我在Qt实验中的经验和收获,以及对Qt框架的一些评价和思考。
首先,我在实验中学习了Qt的基本概念和使用方法。
Qt提供了丰富的类库和工具,使得开发者可以快速构建功能强大的应用程序。
在实验中,我学会了使用Qt Creator这个集成开发环境(IDE),它提供了可视化的界面设计器和代码编辑器,使得开发过程更加高效和便捷。
其次,我了解了Qt的信号与槽机制。
这是Qt框架中一种非常重要的通信机制,用于对象之间的消息传递。
通过信号与槽的连接,我们可以实现对象之间的解耦和灵活的交互。
在实验中,我通过编写一些简单的示例程序,深入理解了信号与槽的原理和使用方法。
另外,Qt还提供了一套强大的绘图系统,使得开发者可以轻松地创建各种图形界面元素。
在实验中,我学会了使用Qt的绘图API,绘制了一些简单的图形,如线条、矩形和椭圆等。
通过对绘图系统的学习和实践,我对Qt的图形处理能力有了更深入的了解。
此外,Qt还支持多线程编程,使得开发者可以充分利用多核处理器的优势,提高应用程序的性能和响应速度。
在实验中,我学习了Qt的多线程编程模型和相关的类库,编写了一些多线程的示例程序。
通过对多线程编程的实践,我深刻体会到了多线程编程的挑战和重要性。
总的来说,Qt是一种功能强大、易于学习和使用的应用程序开发框架。
它提供了丰富的类库和工具,使得开发者可以快速构建高质量的应用程序。
在实验中,我通过学习和实践,对Qt的各个方面有了更深入的了解和掌握。
然而,Qt也存在一些不足之处。
首先,Qt的学习曲线相对较陡峭,特别是对于初学者来说。
QTP学习与实践经验总结完整版

QTP学习与实践经验总结完整版QTP(Quick Test Professional)是一款常用的自动化测试工具,能够对软件进行功能和性能的自动测试。
通过对QTP的学习与实践,我总结出以下经验与技巧:1.熟悉QTP的基本概念:首先,需要了解QTP的基本概念和术语,例如测试对象、关键字驱动、对象模型、脚本语言等。
这可以通过官方文档、在线教程或培训课程来学习。
2. 掌握VBScript脚本语言:QTP使用VBScript作为脚本语言,因此对VBScript的掌握是非常重要的。
需要学习VBScript的语法、变量、条件语句、循环语句等基本知识,并能够灵活运用。
3.了解应用程序的测试需求:在使用QTP进行测试之前,需要清楚应用程序的测试需求,确定测试的范围和目标。
这可以通过与开发人员、业务分析师和用户进行沟通来实现。
4.构建测试框架:测试框架是QTP脚本的基础,可以提高测试效率和可维护性。
需要通过封装测试对象、关键字库、数据驱动等方法来构建测试框架,以便于模块化和复用。
5. 选择适当的测试对象:在使用QTP进行录制和回放时,需要选择适当的测试对象以确保测试的准确性和稳定性。
一般来说,QTP支持大多数的Windows和Web应用程序,并且可以识别常见的控件和对象。
6. 使用参数化和数据驱动:QTP支持参数化和数据驱动的功能,可以通过将测试用例和测试数据分离,提高测试的灵活性和可维护性。
可以使用数据表、Excel文件或数据库等多种方法来实现参数化和数据驱动。
7.异常处理和错误日志:在测试过程中,可能会遇到各种异常和错误。
需要在脚本中添加异常处理的代码,以便在出现错误时能够进行适当的处理和记录错误日志。
这可以帮助我们更好地跟踪问题和分析原因。
8.高效使用对象识别机制:QTP使用对象识别机制来定位和操作测试对象。
需要清楚各种对象识别属性和方法,以便能够准确地识别和操作测试对象。
可以根据对象的唯一性和稳定性来选择合适的属性和方法。
我的qtp的学习方法及总结

我的QTP的学习方法及总结QTP是目前市场上占有率最高的一款自动化测试工具,也是每一位测试工作者最想掌握的工具之一。
QTP目前最主要的应用是用于回归测试、版本验证测试阶段。
它本身是针对系统界面上的元素进行识别、操作,达到测试系统功能的目的。
因此,自动化测试启动的时机或者说QTP开始介入的时机就要受到系统开发进度的制约。
只有当系统的界面元素不会频繁的变化、系统功能基本稳定,已经通过一至两轮的手工测试,确定系统不会存在重大缺陷时,才可以考虑自动化的实施。
这里说的实施主要侧重脚本的开发,其他如测试方案、开发规范、参数定义等内容可以提前制定。
有的个别大公司可能介入会比较早,界面出来,就开始着手脚本的开发。
但这种方式要有严格的开发、测试规范与之配套,并且每一环节的人员严格按规范、规则进行,否则脚本后期的维护将是非常头疼的一件事情。
第一次与QTP伤心的亲密接触第一次与QTP的亲密接触是在07年,当时进入一家做GIS(地理信息系统)系统的公司。
当时公司想要引入自动化测试,由副总牵头,测试经理负责我和另一位MM具体实施。
这也具备了实施自动化测试的一个辅助条件,公司高层的重视与支持。
但对于没有相关技术积累,相关人员技术缺乏的条件下,为我这次自动化测试的失败埋下了伏笔。
最终这次确实是一次失败的经历,失败的其他原因略过,接下来主要说一下过程中我是怎么学习QTP的。
QTP的运行原理、对象识别机制作为一个QTP的使用者,首先要搞明白它的运行原理,识别对象的机制。
这是以后掌握其他技术的根本,不管是录制方式还是手写代码这个都是非常重要的。
QTP是一款基于语言的工具,而LR是基于协议的。
具体说,就是QTP针对不同的语言提供不同插件去识别对象,默认提供ActiveX、Visual Basic、Web插件,其他.net、java插件单独安装。
每一种插件提供了针对不同对象的识别机制,也就是提供了对象默认的识别属性。
所以在运行QTP前,首先确定加载哪个addin,否则对象就不能正确识别,出现很多奇怪的问题。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
QTP学习与实践经验总结作者:吴迪联系方式:msn: lovedemonforever@e-mail:lovedemonforever@前言:QTP全名Quick Test Professional,是MI公司出品的一款测试工具.它的优点是使用方便,功能强大并且可以通过与测试管理工具的互连达到自动化功能测试的目的. QTP是专门针对B/S模式的测试工具.它具有:识别能力强,回放精确等优点,是进行B/S模式下功能测试的首选工具.下面是本人学习QTP的经验总结,它包括了在学习阶段和使用阶段所遇到的问题.当然我这里所说的还很不全面,有很多欠缺,希望大家通过上面的联系方式与我联系,大家共同学习.1 TD与QTP的连接 (5)1.1 TD与QTP的连接 (5)1.2 QTP自动提交错误到TD中 (13)1.3 本机创建,修改与提交 (16)1.4 QTP fail自动截图 (20)1.5 上网助手等插件对QTP的影响 (23)1.6 防火墙对TD与QTP的连接的影响(瑞星2005下) (24)1.7 如何定时运行QTP (26)2 QTP的录制............................................................................................ 错误!未定义书签。
2.1 QTP的录制方法 ......................................................................... 错误!未定义书签。
2.2 QTP录制应先作录制计划 ......................................................... 错误!未定义书签。
2.3 关于下拉菜单的更改.................................................................... 错误!未定义书签。
2.4 输入法对于回放的影响................................................................ 错误!未定义书签。
2.5 如何修改系统时间........................................................................ 错误!未定义书签。
3 QTP的自定义操作 .................................................................................. 错误!未定义书签。
3.1 手工添加步骤................................................................................ 错误!未定义书签。
3.2 手工识别控件................................................................................ 错误!未定义书签。
4 多个Action一起执行.............................................................................. 错误!未定义书签。
4.1 为什么会用到多个Action调用................................................... 错误!未定义书签。
4.2 对被调用Action的设定............................................................... 错误!未定义书签。
4.3 调用Action .................................................................................... 错误!未定义书签。
4.4 调用Action的模式....................................................................... 错误!未定义书签。
4.5 copy Action与call existing Action的区别 ................................ 错误!未定义书签。
5 对于QTP一些功能键的介绍 ................................................................. 错误!未定义书签。
5.1 关于录制设置的区分web event recording configuration ............ 错误!未定义书签。
5.2 关于QTP录制mouseover得问题............................................... 错误!未定义书签。
5.3 关于start transAction的问题 ....................................................... 错误!未定义书签。
5.4 虚拟对象的使用............................................................................ 错误!未定义书签。
5.5 对于Action screen捕捉不精确的解决办法................................ 错误!未定义书签。
5.6 QTP录制方式的分类 ................................................................... 错误!未定义书签。
6 对于内部控件属性的一些设定............................................................... 错误!未定义书签。
6.1 关于regular expressions ................................................................ 错误!未定义书签。
7 关于datatable ........................................................................................... 错误!未定义书签。
7.1 global与current的区别 ............................................................... 错误!未定义书签。
7.2 import excel的问题....................................................................... 错误!未定义书签。
7.3 关于editing the data table ............................................................. 错误!未定义书签。
8 关于检查点............................................................................................... 错误!未定义书签。
8.1 checkpoint的返回值 ..................................................................... 错误!未定义书签。
8.2 QTP检查点的设定 ....................................................................... 错误!未定义书签。
8.3 关于文字检查点得参数化............................................................ 错误!未定义书签。
8.4 设立可重用检查点........................................................................ 错误!未定义书签。
8.5 QTP检查点添加有问题,造成无法识别控件,导致脚本无法运行的问题错误!未定义书签。
8.6 标准检查点.................................................................................... 错误!未定义书签。
9 关于错误报告的问题............................................................................... 错误!未定义书签。
9.1 关于report.ReportEvent ................................................................ 错误!未定义书签。
9.2 关于reporter.fiter ........................................................................... 错误!未定义书签。
10 关于在expert中操作的问题................................................................... 错误!未定义书签。
10.1 关于getRoporperty ,getTopropertise, getToproperty .................. 错误!未定义书签。
10.2 编码时在出现expect end of statement的问题 ........................ 错误!未定义书签。
11 关于C/S模式的录制............................................................................. 错误!未定义书签。
11.1QTP是否可以cs方式下的应用系统 ............................................ 错误!未定义书签。