QTP指导.docx
《QTP指导.docx》由会员分享,可在线阅读,更多相关《QTP指导.docx(24页珍藏版)》请在冰豆网上搜索。
QTP指导
批评测试工具产品参考报价
1、QTP8.2:
18万
2、loadrunner8.0:
$5.5w-7.5w
(1)支持的虚拟用户:
100个的12.3w,250个的16.5w,500个的20.6w,1000个的30.9w
QTP安装与破解
1、安装脚本调试工具
(1)使用“QTP脚本调试器.iso”
2、安装QTP10.0
(1)使用“QTO10.0.iso”
(2)到输入序列号时,取消退出
3、破解
(1)在C:
\ProgramFiles\CommonFiles\MercuryInteractive下创建文件夹:
LicenseManager
(2)将“QTP补丁.iso”中的破解程序mgn-mqt82.exe复制到E:
\HP\QuickTestProfessional\bin下
(3)运行mgn-mqt82.exe
(4)打开C:
\ProgramFiles\CommonFiles\MercuryInteractive\LicenseManager\lservrc文件,Copy第一行#前的代码
(5)将上一步复制的内容粘贴到QTP安装界面的license文本框中,点击完成
QTP界面
1、file菜单——settings
(1)properties
<1>Associatedadd-ins(插件)
若录windows程序,常把web项勾掉
若录网页,常把visualbasic勾掉,练习无所谓,可以全选
(2)run:
执行参数化时常用
iteration:
重复、迭代、循环
Objectsynchronizationtimeout:
界面报错时等待最长时间
DisableSmartIdentificationduringtherunsession:
禁止智能识别用户操作
Saveimageofdesktopwhenerrorsoccurs:
出错时保存图片
一单击Run后,弹出的窗口会询问结果存入硬盘和是临时存储
(3)Web:
网站的用户名和密码,一般不用
(4)Recovery:
如测试计算器时,QQ闪了一下,QTP会将焦点移至QQ,挡住了QTP,找不到计算器了,此时可设置去执行其他事情或步骤
2、Resources菜单——ObjectRepository(对象库)
(1)必须打开程序
(2)可以高亮显示控件:
Highlight工具
(3)可以添加控件:
单击某个控件即可,可以直接把控件拖到代码中,这会自动生成新代码
3、tools——options
(1)General
DisplayAdd-in:
在启动QTP时显示插件,选上会使QTP启动变慢
DisplayStartPage:
启动QTP时显示开始页,选上也会使QTP启动变慢
<1>在开始页中,简单介绍一下Welcome下的一些图标
<2>Test选项卡:
TestFlow为测试流,在这里可以建很多Action
单击下方的"ExpertView(专家视图)",可以在此输入代码,如msgbox("hello!
",64+1,"caption"),提示需要安装好调试插件(脚本调试器debuggersetup.exe:
可以断点执行)
Automaticallygenerate"with":
自动生成with语句,with语句(调用函数)如
xxx.chi()xxx.he()xxx.shui()xxx.chang
可以改写为:
withxxx
begin
chi()
he()
shui()
chang()
end
RestoreLayout:
回到刚安装完QTP的面板状态
(2)Run
Normal:
可以设置回放速度,可设置为1000或2000,表示1s、2s,一般QTP回放会较快
Allow…:
允许QC等访问QTP
(3)WindowsApplications
<1>Searchradius:
查找半径,以鼠标单击处为圆心,此值为半径查找控件
4、工具栏
(1)Record
<1>录制其实是截图,在保存的测试文件夹中Action1(场景)——snapshots——看以看到压缩的图片,需要解压软件才能查看,回放时以此图对比
(2)Run
<1>回放时,以单击鼠标的位置为圆心,常以35px为半径进行查找控件(通过控件的名字识别控件),从左向右,从上向下查找,根据超时来决定何时结束查找
QTP初步使用
1、QTP使用流程
(1)录制Windows程序
<1>QTP自动打开程序
脱机版小飞机
1)Automation——RecordandRunSettings——WindowsApplication
A)选中“Recordandrunonlyon”——选中“Applicationsspecifiedbelow”——点击窗口中右部的“+”——看一下application的内容:
…\QuickTestProfessional\samples\flight\app\flight4a.exe
LaunchApplication选项指录制脚本时自动启动程序
Includedescendantprocesses:
包括子进程
B)录制:
点击工具栏Record,按软件提示输入即可
C)回放:
即允许,单击工具栏Run或按F5,可以保存测试结果
2)Applicationsopendviathedesktop(bythewindowsshell)可以录制从桌面操作的软件
记事本:
C:
\WINDOWS\notepad.exe
计算器:
C:
\WINDOWS\system32\calc.exe
<2>手动打开程序
脱机版小飞机:
开始——QTP——samples——Flight
记事本
计算器
(2)录制Web程序
<1>Web版小飞机
安装网页版小飞机:
Mtours.iso\MTours
关闭再启动Tomcat服务(在开始菜单的MercuryTours下,类似于IIS),不要关闭Tomcat服务窗口
打开开始菜单下的Mercurytours网页,在localhost后面加8080
注册新账号(在注册时应该会崩溃,因为java安装程序有些问题,找到Mtours.iso\1.2,停止Tomcat,把其中内容拷至C:
\ProgramFiles\MercuryInteractive\MercuryTours\Javasoft\jre\12.\,全部替换<注:
jre是运行java程序,是客户端;jdk是用于开发java程序的>)
登录(若有提示安装Activex插件,最好不要动,或在录之前处理好,最好录制前什么都不弹出,可把自动完成全部勾除,否则在录制时,若没有弹出,回放就会不成功,因为不能重现了)
录制:
输入网址:
http:
//IP地址:
8080/mtours(注意不要遗漏8080)——登录(不能注册,否则注册又会重复)——选2张票——logout——停止录制——关闭网页——Run(回放,因没有设置检查点,所以不知道测试是否成功)
<2>自动打开Web小飞机程序
<3>手动打开Web小飞机程序
2、测试步骤的编辑或补录
(1)代码形式(ExpertView)
<1>写入代码即可,如加上updateorder,转到关键字模式后,可见不可识别其项目——转到KeywordView,单击项目列表——Objectfromrepository——点击手状按钮(最好事先打开flight程序)——找到要添加的对象控件(可以按住ctrl是鼠标脱离手状)——点击如ExpertView即可刷新
(2)关键字模式
<1>先在工具栏对象库(Objectrepository)中添加控件——在打开的窗口中,单击工具栏的添加(Addobjectstolocal)按钮——定位控件,单击一下即可——在KeywordView中,单击项目列表——加一个步骤:
在item最后一行(空白行)处单击——找到新添加的空间名字——转到ExpertView,可见自动写入了代码(或在某一步骤后右击添加新步骤)
(3)补录
<1>在ActiveScreen视图中右击要添加的控件——StepGenerator
模拟录制
1、区别
(1)AnalogRecord,会把鼠标的操作录入;一般用于对所有的操作比较严格时,特适用于签名时
(2)NormalRecord为一般录制只会录制与程序有关的控件操作
(3)低级录制:
根据鼠标相对位置录制,一般可以开始时单击某个对象,确定参考点
2、小飞机单机版签名演示
(1)在插入订单的界面,单击工具栏“打开”——输入日期
(2)文件——传真订单——输入传真号码如0108888888——选中订单中签名——手工写入签名,不过不用这种方式录制
(3)模拟录制
<1>录制
<2>打开画图板,选中画刷,单击QTP工具栏“模拟录制”,选择第二项,单击手状按钮,点击“启动模拟录制”按钮,写完一些文字,关闭画图板,不保存,停止录制
<3>回放
<4>说明:
签名不以代码方式保存,而是类似于录屏
低级录制
1、低级录制只录制鼠标的相对位置,只关注鼠标的起始点和结束点,或者说鼠标点击和放开的位置;适合于控件识别不了时,控件能单击,使用此方式进行相对坐标录制即可
2、录制
3、打开画图板,点低级录制工具,在画图板中写东西
4、回放
检查点
1、有8种检查点(预期结果):
标准、图片、图像、表格、网页、文本、数据库、XML(加红色的为需重点讲解的)
2、录制“小飞机”单机版
(1)新建一个测试Test
(2)自动化——录制和运行设置——windows应用程序(注意同时Web项选第一个)——选择第一项
(3)Record录制
(4)手动:
开始——程序——QTP——SampleApplications——Flight——输入用户名如wwww,点击“help”——点击“确定”——输入密码mercury——关闭窗口
(5)停止录制
(6)Run回放:
设置回放速度如1s,工具——选项——Run——RunMod:
normal设置为1500ms
(7)可以直接查看结果,菜单View——ExpandAll,可以全部展开
3、添加检查点:
如检查“帮助”中的mercury对不对
(1)在关键字视图中,找到帮助的弹出窗口
(2)精确定位到弹出窗口中的mercury等文字,右击“插入文本检查点”或“插入标准检查点”
<1>文本检查点的选项解释
matchcase:
区分大小写;exactmatch:
精确匹配;ignorespace:
忽略空格
checkpointtimeout:
找不到控件或文字等对象时的超时设置
<2>标准检查点的选项解释
enabled:
对象可用性,如置灰否
x、y:
为对象的坐标
text:
文本值
insertstatement:
表示此检查点语句防止的位置在当前步骤的前或后
(3)取消enabled,点击text,超时设置为5s,ok
(4)回放Run
(5)在结果中查看检查点已经通过
4、修改检查点:
添加一个不能通过的检查点
(1)在关键字视图,找到检查点(第二列Operation为check),单击第三列Value中的勾,可以修改检查点
(2)把mercury改为mercury1
(3)Run,查看结果
5、图像检查点(多用于回归测试)
(1)小飞机
<1>找到登录界面,让飞机图片完全显示,不要有任何遮挡,右击飞机图片——插入bitmap检查点
<2>tolerance:
公差,容忍度,可以设置颜色的符合标准或质地,可以不设置,会很苛刻
<3>超时设置为5s
<4>Run回放,看结果
(2)三角形回归测试
<1>搭建三角形网站
<2>录制新三角形
<3>修改代码,把打开的网页网址修改为旧三角形的网址,右击三角形图形,插入图像检查点,设置超时3s
<4>Run回放
<5>切换到专家试图,把代码中网址中的newsjx改成sjx,重新回放,看结果
6、录制过程中插入检查点
(1)录制小飞机
<1>打开小飞机脱机版
<2>弹出help密码时,菜单插入检查点——文本检查点
<3>点击一下Thepassword…——检查点为常数——超时3s——…
<4>常在录制好以后添加检查点
<5>运行
7、同步检查点
(1)主要用在动态的控件中,比如进度条等
(2)在录制过程中插入才可以插入
(3)propertyname选择text,value填入"insertdone",此时结果会有警告,value中加上…就可以了,大小写也得一致)
(4)注意超时时间不要太小,否则插入数据完不成
参数化、输出值检查点
1、即设置用例中的很多具体数据、对应的很多具体的预期结果、实际结果
2、Web程序的例子(参数化之前)
(1)发布两个网站sjx(1.0版)和newsjx(2.0版)(可重新搭建)
(2)先试验能够打开两个网站
(3)新建测试——录制与运行设置——Web——选择第一项——录制——打开IE——手动输入网址(不要复制粘贴,否则无法录制)http:
//192.168.5.211/sjx——输入三边3,3,3——提交——确定——关闭窗口——停止录制
(4)添加检查点与上边完全相同
(5)Run回放
3、简单的参数化
(1)在上一步的基础上,找到输入第一条边3的行,单击Value列,设置其值
(2)选择parameter,Name起名为p1,ok
(3)选择DataTable视图,可以看到下面的Excel表中已经有数据
(4)类似的把另外两条边的数据接入,分别起名为p2、p3
4、参数化、检查点
(1)对提交后弹出框中的“等边三角形”添加检查点,对检查点进行参数化,起名为checkpoint1,超时3s(Textnotdisplayed表示不显示预期结果,此项不能选)
(2)Run回放,看结果
(3)利用原来数据的参数化并无实际意义
5、实际的参数化
(1)清除原有的检查点和参数化
(2)在DataTable视图中,加入
<1>3,3,4:
等腰三角形
<2>3,6,9,不能构成三角形
<3>吃、喝、玩,输入错误
(3)Run回放(跑3遍),看结果
6、输出值检查点(实际的输出结果)
(1)找到最终的弹出界面
(2)右击输出的文字——插入输出值——选中text——点击modify进行参数化,编辑parameter最右方的图标
(3)Run回放,看结果
(4)在QTP结果界面中,点击TestSummary下的Run-timeDataTable可以看到临时结果
(5)查看DataTable中的输出列,实际值没有显示在QTP没有关系,可在存储结果的报告文件中保存
7、Excel编程处理测试结果及统计分析
(1)事先保存测试结果
(2)在测试结果文件夹中找到Default.xls
(3)在最后一列加列名Results,编辑公式写入Passed或Failed
(4)有多少用例通过等体积数据也可以自行设计
8、执行部分测试用例
(1)菜单:
文件——设置——运行——可以设置执行用例的条数
9、DataTable中的复制粘贴(数据批量处理)
(1)使用小飞机网站版
(2)手动录制
<1>注意启动Tomcat
<2>注意事先注册一个用户
<3>注意网址中的8080
<4>回放
(3)参数化
<1>对出发地、目的地参数化
(4)DataTable中的数据批量处理
<1>从Excel导入测试数据
<2>从软件中导入(只适用于Web程序)
找到出发地的控件,右击CopyContent,转到DataTable,然后粘贴,类似的在目的地列也粘贴
调整DataTable的两列数据,使同一行不同
回放
DB检查点
1、数据库检查点用于检查数据是否正确插入、修改或删除
2、使用小飞机单机版,需要Office数据库Access的支持
(1)小飞机:
开始\程序\QTP\sample\flight
(2)找一下数据库存放位置:
右击程序中的小飞机——属性
(3)查看数据库,主要使用orders表
3、录制小飞机单机版
(1)录制,用户名输入what,客户名输入where
(2)查看数据库中的orders表,可见多了1记录,是录制时加入的
(3)回放
(4)查看数据库中的orders表,可见又多了1记录,是回放时加入的
4、插入DB检查点(检查已有数据)
(1)删除数据库中的第10条后面的记录
(2)找到InsertOrder按钮,插入DB检查点(注意检查点应该在Insert之后)
只能使用主菜单:
Insert——Checkpoint——DBCheckpoint
选择使用SQL语句
create:
选择机器数据源,选择QT_Flight32,输入SQL语句:
select*fromorders
<1>数据列带勾:
表示输入数据时检查数据是否存在,点击右上方#号,可把勾去掉,此处全打勾,表中的数据是预期结果
<2>打勾,表示预期结果
<3>选择Aftercurrentstep
<4>CellIdentification:
设置数据项的识别方式,byrownumber表示只检查DbTable中的行
(3)回放,查看结果,通过,运行时检查了DbTable中的所有数据
(4)随便修改DB中的前10行中的一个数据,再回放,看结果,失败
(5)以上操作说明,对新插入的数据是不做检查的
(6)修改表数据,确定数据库中只有11条,若没有11条,可回放加入
5、检查新插入的数据
(1)删除原来的DB检查点,重新创建DB检查点,选中最后一行此处为第11行,表示只检查第11行,回放,结果通过,但这并不表明刚刚插入的数据是正确的,因为刚刚插入的并没有检查
(2)随便修改DB中第11行的一个数据,再回放,看结果,失败
(3)随便修改DB中第11行以后的一个数据,回放,看结果,通过,因为直接检查第11行
(4)把DB中的第10条以后的数据全部删除,看一下DB检查点中的检查项,回放
结果没通过,单击没通过处,在右方打开的出口最右侧栏,单击“天平”图标,可见有预期结果,没有实际结果,因为DB中还没有11条记录,这说明数据没有被成功写入数据库,当一点击Insert时,就开始检查了,但数据还没有被写完
增加等待检查时间:
在专家视图,找到Insert对应的代码,在后边加上wait8等待8s使数据库写完
删除第10行以后的数据,重新回放,看结果,通过
6、检查点参数化
(1)只保留数据库中的第10条及其之前的记录
(2)将DB检查点参数化(此处仅选中11)
(3)查看DataTable,再添加一个12
(4)回放,查看结果,11成功,12失败,因为检查的还是第11行,byrownumber只检查DbTable中的行
(5)修改参数化,使检查随着参数值向下走
只保留数据库中的第10条及其之前的记录
选择“Celldefinition”——选择“Byselectedkeycolumn”(只要列中有待检查值即通过)——(一定要)单击右边的1(列号)
回放,看结果,通过
再加一行测试数据如13,试试,通过
7、客户名检查点(DB检查点另一个例子)
(1)删除DB中第11条记录(保留)以后的数据
(2)删除原有的DB检查点,注意同时删除DataTable中的数据
(3)参数化客户名,加入测试数据zuzhang、banzhang
(4)Insertorder后插入DB检查点(即检查DB中是否存在此数据),写入SQL语句:
selectcustomer_namefromorders
(5)选择只检测第11条(where),参数化,在CellIdentification中选择Byselectedkeycolumn,选中1为关键列,选择Aftercurrentstep
(6)代码中在DB检查代码之前加入wait8
(7)在DataTable中添加DB检查点值zuzhang、banzhang,回放,看结果全通过
(8)把客户名改为xuewei(这是实际要插入的数据),DB检查点值仍为where,回放,看结果全通过
删除DB中第10条以后的数据,重新回放,结果显示为xuewei通过,因为xuewei被成功的写入了DB,但是where没有写入,DB中没有曾经写入的数据
删除DB中的第10条以后的数据,将xuewei和where对调,重新回放
参数传递(了解)
1、录制小飞机脱机版
2、右击Action1——ActionProperties——parameters
(1)输入参数名为username,默认值为what(不要加引号)
(2)输出参数名为output1
3、点击AgentName——参数化——选择username
4、添加检查点:
在密码之前,验证文本值what(预期)
5、Run
输出参数(可以不讲)
1、续上,右击Action1——ActionProperties——parameters
(1)输出参数名为output1
2、在关键字视图中选择AgentName,点击工具栏步骤生成器(或F7)
3、operation选择GetROProperty,下面的property的value值为text
4、点击ReturnValue,选择output1
5、在上面代码的下一行加入msgboxparameter("output1")可看输出值
环境变量
1、续上,最好少用,占内存
2、工具栏settings(QC工具的左侧)——Environment——可大致看一下built-in,此处选择user-defined——添加,起名为myuser值为when(预期值,此处不能改变输入值)
3、对AgentName参数化,选择环境变量
4、Run
Action拆分
1、Action基础
(1)类似于函数
(2)可以分组脚本,是一个步骤集
2、录制小飞机脱机版
(1)录制时首先输入Denver到London,insert
(2)对InsertDone插入同步检查点,属性名选择text,属性值输入"InsertDone…"
(3)修改London到Denver,update
(5)回放
(6)参数化:
update前的出发地、目的地
(7)再加一条Paris到London(共两条用例数据)
(8)回放2次,第2次跑不起来,出错了,原因在于录制时的选项,只能回放一次
3、Action拆分
(1)在前面的用例执行时,登录、插入、更新都会重复执行两次,实际上登录和插入只需要一次,拆分可以解决
(2)选择一个分界线,如第1个FlightReservation,点击工具栏“SplitAction”(分界线属于下一个Action)
(3)netsed为拆分为父子关系,此处现在第1项
(4)输入1st名字为login,描述为登录,2nd为flight,描述为订票
(5)双击展开flight,在下面的检查点下面分割为insert和update
(6)双击展开update,找到最后一步,分割出close