技术开发 频道

QTP学习笔记

  【IT168 技术文档】QTP学习笔记(一)

  一.测试目的:在测试过程中,需要使用"模拟器"来产生测试需要的数据,因为需要统计软件的数据准确率,所以每次使用的数据都是相同的,这样会产生一定的重复工作量,并且手工产生数据会有一定出错的机率,所以使用自动化测试工具录制脚本,每次执行测试之前运行该脚本可使用保证测试速度和数据的准确程度。

  二.录制模式和方法:因为暂时没有安装.net插件,所以脚本采用"analog模式"录制。测试需要用到的数据分为A1、A2两大类,每个大类的数据又分为16小类,A1采用action调用的方式进行录制,A2采用顺序录制方式。

  三.Action调用的操作方法:

  分别在多个脚本中完成子类数据的action录制,而后集成到action_A1中,在QTP界面insert call to copy of Action from test:脚本名称action:需要调用的action?location:After the current step

  注:在涉及action调用的情况下进行action copy不能连同它所调用的action一块拷贝过来,它所调用的action需要另外添加。

  四.评价

  1.增加新action的时候,如果采用"After the current step"方式,可使脚本的步骤层次分明,但是这种录制方式在调用的action级数较多时,修改会非常的麻烦,删除其中的一个action会连同它的子action一起被删掉。

  2.采用"At the end of the test"方式可避免上述问题,但是录次不是很分明。在软件达到一定规模的情况下,建议两种增加action的交替使用,增加脚本的可用性。

  五.学习到的内容

  1.插入等待时间

  Wait 秒,毫秒

  例如:wait 10 等待10秒

  Wait 0,200 等待200毫秒

  2.添加新action

  Inserit?call to new action

  3.在本脚本中实现action调用

  Insert?call to existiong action

  4.添加新步骤

  Insert?new step

  5.执行当前action

  Automation?run current ation

  6.从当前步骤执行

  Automation run current step

  7.逐步调试运行

  Debug?step into

  8.设置运行脚本的模式

  Tools--options run选项卡

  9.设置运营脚本时的各项数据

  File settings run选项卡 超时等待,发生错误时是否退出执行并弹出提示,出错时是否保存image信息等。

  QTP学习笔记(二)

  一.测试目的:在软件系统联调的过程中,子系统B担当了提供核算数据的任务,所以对子系统B的操作很多是重复的步骤,并且B所提供的数据需要十分准确,所以采用自动化测试来解决这个问题。

  二.处理方法:

  1.采用顺序录制方式,不涉及其他调用

  2.采用"Analog Recording"录制模式与常规录制模式结合的方法

  三.评价:

  1.缩短了执行时间,每个脚本平均运行时间为1分钟

  2.减少数据录入错误

  四.学习到的内容:

  1.设置action的属性

  将action的属性设置为"Reusable action"后,该action可被其他action或其他脚本调用

  2.VBS脚本中"do… …until"循环的使用

  例如循环两次

  Dim m

  M=0

  Do until m=2

  Runaction"01_01",oneIteraction

  M=m+1

  Loop

  3.VBS脚本中"for nest"循环的使用

  例如循环执行10次

  Dim i

  I=0

  For i=0 to 9 step 1

  … …

  I=i+1

  Next

  QTP学习笔记(三)

  一.测试目的:在软件系统联调的过程中,子系统B担当了提供核算数据的任务,所以对子系统B的操作很多是重复的步骤,并且B所提供的数据需要十分准确,所以采用自动化测试来解决这个问题。

  二.问题及解决方法:

  1.问题:录制脚本的过程上通过分action录制方式,将各业务分别录制,但通过实践,将action的属性设置为"after the current step"方式,使action的结构层次过多,不便于后期维护

  答:将新添加的action属性设置为"At the end of the test"方式

  2.问题:某一段录制过程需要重复执行时,采用"For… …next"循环,其中"step"指定的步骤发生错误,导致循环未被执行

  答:"for… …next"循环中的step是指循环中包含的步骤的顺序号,而不是针对整个脚本而言

  3.问题:单步调试通过的步骤在run的时候执行发生错误

  答:暂时未找到更好的解决方法,仍采用重新录制脚本的方式解决

  三.评价:

  1.该脚本的实际执行时间为25分钟,同样的操作由测试人员手工完成需要至少2个小时,节约了时间成本,减少了人为出错机率。

  2.完成B测试工作量的60%,减少了测试成本。

  3.录制初期没有将软件测试流程考虑全面,导致脚本执行度较低,并且质量差,不适用于当前的系统测试,后经多次返工才日趋完善。

  四.学习到的内容

  1.action属性的正确设置方法

  2.若在其他action中编写"RunAction"action名称,oneIteration来达到action调用的目的

  3.在同一个action中,重得执行的步骤可通过拷贝、粘贴"专家视图"中的编码完成

  QTP学习笔记(四)

  一.测试目的:在软件系统联调的过程中,子系统B担当了提供核算数据的任务,所以对子系统B的操作很多是重复的步骤,并且B所提供的数据需要十分准确,所以采用自动化测试来解决这个问题。

  二.问题及解决方法:

  1.问题:因为界面中各个控件的集成度较低,采用"analog recording"模式录制脚本,但因为各编译版本界面的逻辑位置发生改变,导致脚本只能够运行在当前录制的脚本上。

  答:更新各个action中的对象,采用updata的方式将界面对象进行更新

  三.学习到的内容

  1.更新action对象的方法

  Resources?object repository?action:要进行对象更新的action?选中对象?object?update from application?指定到更新目标

  2.通过对象管理器添加界面中的对象

  Resources?object repository manager?object?navigate and learn?选中界面?navigate and learn窗体中选择"learn"按钮?退出时保存即可

  QTP学习笔记(五)

  一.测试目的:能够在TD中调用已编写好的QTP脚本,实现自动化测试的管理。

  二.操作方法

  1.登录TC主页面?add_in page?more testdirector add_ins选择项--,下载连接QTP的插件,并安装

  2.打开QTP脚本,在界面工具栏中点击"quality center connection"按钮,在"server url"中输入TD的地址,"project connection"中各项按TD中的配置添加

  3.tools?options?"run"选项卡?勾选"submit a defect to quality center for each failed step","allow other mercury products to run tests and components"

  4.登录TD在"REQUIREMENTS"选项卡中添加测试项目,在"TESTPLAN"选项卡中添加测试计划,并将两项内容在"REQUIREMENT"中关联起来

  三.问题及解决方法

  1.问题:完成操作方法中"1~3"步后并没有在QTP脚本中增加连接成功的标志

  2.问题:在为TESTPLAN增加的step配置"test script"时TD退出

  3.问题:即使在生成"test script"时TD不退出,加载QTP脚本也会失败,偶尔连接成功,脚本为"read_only"模式,脚本内容不可被修改并且原录制步骤被删除

  答:上述1~3问题的解决办法见QTP学习笔记(七)

  四.针对上述问题的个人意见

  上述产生有可能与TD是破解版本有关,因破解时部分内容出错导致,另一种可能是启动了瑞星防火墙。

  五.学习到的内容

  安装TD之前在server服务器上应事先安装oracle,sql server或access数据库,用来存储数据。

  QTP学习笔记(六)

  一.测试目的:创建QTP对象库

  二.操作方法

  1.保存对象

  Resources?object repository?file?export local objects

  2.在新建action或新建脚本中引用对象

  Resources?associate repositories在"repositories"中选择对象文件,在"available actions"中选择调用对象的action

  三.学习到的内容

  1.在保存对象时,每个action的对象单独保存,同样,引用对象时也需要逐一引用(全局对象除外),建议为每个脚本创建一个对象文件夹,用来与其他脚本进行区分

  2.QTP的".net"插件,"qtp92-net-addin.zip"安装后仍不识别"data gridview"控件中的下拉列表,只能用"analog recording"模式录制脚本

  QTP学习笔记(七)

  一.测试目的:

  1.编写自动化脚本,代替手工测试

  2.使用TD跟踪测试结果,评价软件质量

  二.问题及解决方法

  1.问题:录制脚本时QTP窗口为最大化状态,阻碍鼠标的移动轨迹

  答:recording?最小化QTP窗口,以后每次录制时QTP窗口都会自动执行最小化

  2.问题:TD与QTP的连接失败(同QTP学习笔记(五))

  答:为TD安装"TDConnect.exe,SysAgent.ext,TDClientSideInstallation.exe"三个插件

  3.问题:因为使用破解版TD所以在添加"Test Script"时TD会自动退出

  答:在指定folder中创建"WR_Automate"类型的TEST,查看该TEST的TEST Script,再选中新创建的"Quicktest_test"类型的TEST,TD就不会退出了

  4.问题:QTP加载插件后仍连接不上TD

  答:为QTP安装插件"QTP安装包" setpup.exe quality center加载项,安装自带的插件比较好用

  5.问题:QTP远程连接TD失败的问题

  答:1.查看该请求是滞被防火墙过滤

  2.网络管理服务器及TD服务器上是否安装了网管软件

  符合上述条件的时候,QTP远程访问TD会发生失败

  6.问题:与TD建立连接后脚本的编辑问题

  答:与TD连接后,QTP自动生成与TD的TEST名称相同的脚本,可对该脚本进行编辑、保存、另存等与单机使用QTP创建脚本相同的操作,建议每个脚本在本机另存一份,并保留脚本对象,创建对象库。与TD连接后,QTP默认加入的插件被修改为"web插件",新建测试脚本时要注意。

  三.学习到的内容

  1.QTP与TD建立连接时所指定的服务器名、Domain、Project、UserName、Password信息应与TD登录时一致,否则会发生连接失败的错误

  2.为TD TESTPLAN Folder TEST增加了TEST Script后,不可再编辑该TEST,如"step"的设置

  3."TEST Script"运行后的执行结果在"REQUIREMENTS"中可查看到,以此可作为评价软件质量的依据之一

  4.TD REQUIREMENT REQUIREMENT Child REQUIREMENT 可以为其指定多个"TEST"用例,被关联的用例不可编辑

  5.与TD建立连接的QTP脚本运行结果自动保存在TD中,连接成功后QTP的"Remote Agent"进程自动启动

  6.QTP与TD服务器远程连接

  工具栏?Quality center Connection:指定Server URL为远程服务器,并输入正确的Domain、Project、Username、Password即可

  QTP学习笔记(八)

  一.测试目的:

  使用QTP建立较为完成的测试脚本,通过TD对自动化测试的流程进行系统的管理。

  二.问题及解决方法:

  1.问题:由TD的TEST?Test Script启动QTP脚本后,QTP在启动时自动只加载"web插件",并且在录制脚本的过程中,点击"Record"按钮后,弹出web页面与QTP中心连接,严重影响脚本的录制

  答:1.TD TEST PLAN Folder TEST Test Script启动QTP并创建新的测试脚本

  2.保存该脚本,退出QTP

  3.重新启动QTP,加载"Active X"控件

  4.创建新脚本,并连接TD

  5.open open Test from Quality Center打开步骤1所创建的脚本即可

  三.学习到的内容

  1.更改当前脚本加载的插件

  在启动QTP的时候将所有插件都色选上,打开脚本,File Settings Properties选项卡 选择modify按钮即可

  2.TD中为TEST添加Steps后,点击Generate Script Quicktest Test可将设置的steps加载到测试脚本中

  3.在录制脚本步骤前仔细规划脚本的结构,定义好各Action完成的任务,及Action之间的调用关系,要比录制执行步骤后再添加新Action容易

  QTP学习笔记(九)

  一.测试目的:

  1.将已经完成录制的脚本中,每个叶子"Action"设置为"Reusable Action"属性,以方便下一段录制过程中的Action进行调用

  2.修改TD上TEST的名字,对已经建立了测试脚本的测试用例进行重命名

  二.问题及解决方法:

  1.问题:将已经录制了执行过程的action设置为"Reusable Action"属性后再设置成普通属性,执行脚本时,脚本不识别界面对象,导致脚本不可执行。

  答:在脚本录制成功能一,将脚本的对象分别保存到本地对象库和TD对象库中,使用已经保存的对象文件,完成该测试脚本的对象重新加载。

  注:不要随便更改已完成录制任务的"Action"属性

  随时为已完成录制的脚本做对象保存工作

  2.问题:在TD上修改了TEST的名称后,执行脚本时,该脚本不能识别界面对象

  分析:

  1.该脚本已经与测试用例关联,且为QTP的当前脚本,修改TEST名称失败时,可将QTP关闭

  2.选中脚本中第一个叶子action,对其进行对象更新,完成一个步骤即可,然后保存该脚本

  3.重新保存脚本对象,分别存储地本地和TD上

  注:如不是特别要求,最好不要对已完成脚本录制的TEST进行属性修改的操作。

  三.学习到的内容:

  1.从TD上导出对象文件

  选中TEST Attachments 选中对象文件"save as"按钮

  2.在TD上记录TEST中脚本的运行结果,并对脚本的运行进行设置,跟踪脚本的执行情况

  a.在"TESTLAB"页中选中"Root"项--New Folder(添加项目名称)New Test Set(添加子项目名称),在"Execution Grid"或"Execution Flow"页中点击"Selects Tests"选择相关的测试用例,其中"Run"和"Run Test Set"按钮可以从TD上直接运行QTP,以"Read_only"的模式打开脚本并执行

  b.在"Excution Grid"页中,可到TEST脚本的执行情况,通过双击测试条目可以查看到"Test Rum Properties"更详细的情况

  c.在"Excution Flow"页中可设置TEST的执行时间,执行关系等

  d.在"Test Rum Properties"中可设置有关TEST脚本执行的选项

  QTP学习笔记(十)

  一.测试目的:

  1.将已经完成录制的脚本中,每个叶子"Action"设置为"Reusable Action"属性,以方便下一段录制过程中的Action进行调用

  2.修改TD上TEST的名字,对已经建立了测试脚本的测试用例进行重命名

  二.问题及解决方法:

  1.问题:为测试用例添加好执行时间后,在该设置时间已到的情况下脚本没有被执行

  答:设置并更改了执行时间后,点击〖Run〗按钮,在"Execution of … …"窗口设置〖Run of Host〗的主机域名,可双击设置,当执行脚本的PC为本机时可选择〖Run All Tests Locally〗选项。当存在多个测试用例时,可使用"ctrl+Test"的方式进行多项选择,然后点击〖Run〗按钮等待,或点击〖Run All〗按钮执行所有TEST。

  2.问题:怎样通过参数化测试步骤来实现脚本的循环执行?

  答:在需要检查数据的测试步骤,点击[value]字段 [<#>]按钮,进入"value configuration options"窗口àParameteràDataTableàNameà为参数化取名àGlobal sheet

  注:1.Global sheet:全局,适用于Action较少,需要全局执行的情况

  2.Current action sheet(local):只适用于当前Action,不可被其他Action采用

  3.这种参数化不适用于执行完成参数化的步骤后,关闭或退出等影响界面存在的操作。

  3.问题:通过TD的设定时间来执行TEST时,下拉列表的选择速度变慢

  答:解决办法暂无

  三.学习到的内容:

  1.使用TD定时执行后,脚本的执行结果直接存储到TD中,不在执行结束时直接弹出,并且各步骤的执行时间间隔不再受QTP控制,TD的默认时间

  2.可以通过QTP为TD创建TEST,步骤如下:

  QTPàNewàNew TestSave(已连接到TD的情况下)选择TD上的对应测试项命名OK

  3.使用随机数来参数化测试步骤

  QTP选择要参数化的步骤value<#>ParameterRandom Number或者采用专家视力进行编辑

  QTP学习笔记(十一)

  一.测试目的:

  1.使用QTP录制".net"应用程序的脚本

  2.在网络管制的情况下使用TD管理自动化测试

  二.问题及解决方法:

  1.问题:QTP自带插件不识别".net"应用程序中的控件,但QTP的".net插件"仅为试用版,限期为14天

  答:在测试机上安装虚拟机,划分足够大的内存及硬盘空间,安装QTP及其".net"插件,在虚拟机中完成脚本的录制、回放。插件过期后,再重新建立虚拟机,重复使用。需要注意的是在虚拟机中保存的脚本及对象要在测试机上及时备份。

  2.问题:因网络管制导致虚拟机上的QTP连接测试机的TD服务器失败

  答:同样在虚拟机中安装TD服务器(以下称为VTD),在该服务器中创建与测试机上的TD服务器(以下称为STD)相一致的各个测试项目,定期将VTD的内容保存到STD中。

  三.学习到的内容:

  1.为脚本添加检查点

  a."Analog Recording"录制模式不适用于检查点的添加及过程参数化

  b.对于文本类的控件,可添加"Text Checkpoint"和"Text Area Checkpoint"两种类型的检查点,前者适用于单个文本控件的检查,后者适用于文本对象集合的检查

  c.所有对象都可使用"Standard Checkpoint",但涉及特殊要求的情况,如数据库数据的检查等,标准检查点就不太专业了

  d.在编辑状态下只有"Standard Checkpoint""Database Checkpoint""XML Checkpoint(From Resource)"检查点可用,其他为置灰不可用状态

  2.添加检查点的脚本,执行通过没有发生错误的情况下,在回放结果Test Results文件中"Status"字段的值为"Passed"并记录通过测试的检查点数量;如果在执行的过程中,执行结果与检查点的值不同,则会在TD中自动添加相应的BUG

  3.做了参数化的脚本,在执行后Test Results文件的"Teration#"字段会显示出参数的索引编号及执行结果

  4.Test Results窗口中,可以通过点击连接TD的图标,与TD建立连接,查看保存在TD上的脚本执行结果

  5.在GUI应用程序中"Bitmap Checkpoint"不适用于动态统计图,即使数据一致,在执行结果中仍会指明该检查点执行时出现错误

0
相关文章