第一章QTP简介1.1自动化测试的好处如果你执行过人工测试,你一定了解人工测试的缺点,人工测试非常浪费时间而且需要投入大量的人力。使用人工测试的结果,往往是在应用程序交付前,无法对应用程序的所有功能都作完整的测试。使用QuickTest可以加速整个测试的过程,并且建置完新版本的应用程序或网站后,可以重复使用测试脚本进行测试。以QuickTest执行测试,就与人工测试一样。QuickTest会仿真鼠标的动作与键盘的输入,不过QuickTest比人工测试快了很多。自动化测试的好处快速QuickTest执行测试比人工测试速度快多了。可靠QuickTest每一次的测试都可以正确的执行相同的动作,可以避免人工测试的错误。可重复QuickTest可以重复执行相同的测试。可程序化QuickTest可以以程序的方式,撰写复杂的测试脚本,以带出隐藏在应用程序中的信息。广泛性QuickTest可以建立广泛的测试脚本,涵盖应用程序的所有功能。可再使用QuickTest可以重复使用测试脚本,即使应用程序的使用接口已经改变。1.2QuickTest工作流程1.录制测试脚本前的准备在测试前需要确认你的应用程序及QuickTest是否符合测试需求?确认你已经知道如何对应用程序进行测试,如要测试哪些功能、操作步骤、预期结果等。同时也要检查一下QuickTest的设定,如TestSettings以及Options对话窗口,以确保QuickTest会正确的录制并储存信息。确认QuickTest以何种模式储存信息。2.录制测试脚本操作应用程序或浏览网站时,QuickTest会在KeywordView中以表格的方式显示录制的操作步骤。每一个操作步骤都是使用者在录制时的操作,如在网站上点击了链接,或则在文本框中输入的信息。3.加强测试脚本在测试脚本中加入检查点,可以检查网页的链接、对象属性、或者字符串,以验证应用程序的功能是否正确。将录制的固定值以参数取代,使用多组的数据测试程序。使用逻辑或者条件判断式,可以进行更复杂的测试。4.对测试脚本进行调试修改过测试脚本后,需要对测试脚本作调试,以确保测试脚本能正常并且流畅的执行。5.在新版应用程序或者网站上执行测试脚本通过执行测试脚本,QuickTest会在新本的网站或者应用程序上执行测试,检查应用程序的功能是否正确。6.分析测试结果分析测试结果,找出问题所在。7.测试报告如果你安装了TestDirector(QualityCenter),则你可以将发现的问题回报到TestDirector(QualityCenter)数据库中。TestDirector(QualityCenter)是Mercury测试管理工具。1.3QTP程序界面在学习创建测试之前,先了解一下QuickTest的主界面。下图是录制了一个操作后QuickTest的界面。在QTP界面包含标题栏、菜单栏、文件工具条等几个界面元素,下面简单解释各界面元素的功能:标题栏,显示了当前打开的测试脚本的名称。菜单栏,包含了QuickTest的所有菜单命令项。文件工具条,在工具条上包含了以下几个按钮:测试工具条,包含了在创建、管理测试脚本是要使用的按钮,如下图:调试工具条,包含在调试测试脚本时要使用的工具条,如下图:测试脚本管理窗口,提供了两个可切换的窗口,分别通过图形化方式和VBScript脚本方式来管理测试脚本。DataTable窗口,用于参数化你的测试。状态栏,显示测试过程中的状态。在上面上面简要介绍了QuickTest的主窗口,你可能对一些窗口元素到底是干什么的感到很困惑,在我们下面介绍QuickTest具体的功能时,会真正了解它们的作用。但在现在,应该尽可能的去熟悉这些界面元素,记住它们大概的功能,最好是花一些时间通过实际的操作来探索一下它们的功能,这对你能够顺利学习下面的内容是有帮助的。1.4MercuryTours示范网站MercuryTours示范网站是一个提供机票预订服务的网站,在本课程中,我们使用MI公司提供的MercuryTours示范网站作为演示QuickTest各个功能的例子程序。1.在开始使用MercuryTours示范网站()之前,首先要在MercuryTours网站上注册一个使用者账号。2.MercuryTours示范网站使用要登录并使用MercuryTours示范网站必须使用注册账号。在使用网站时,从[FlightFinder]网页开始,按照画面上的指示预订机票。在BookaFlight网页,无需填写真实的旅客信息,信用卡卡号等标示为红色的字段中添加虚拟数据就可以了。3.结束订票动作完成订票动作后,在[FlightConfirmation]网页上点选[LOGOUT]按钮或是选择[SIGN-OFF]按钮。4.关闭浏览器现在知道如何使用MercuryTours示范网站,就可以开始使用QuickTest录制测试脚本了。第二章录制/执行测试脚本当浏览网站或使用应用程序时,QuickTest会纪录你的操作步骤,并产生测试脚本。当停止录制后,会看到QuickTest在KeywordView中以表格的方式显示测试脚本的操作步骤。2.1录制前的准备在录制脚本前,首先要确认以下几项:已经在MercuryTours示范网站上注册了一个新的使用者账号。在正式开始录制一个测试之前,关闭所有已经打开的IE窗口。这是为了能够正常的进行录制,这一点要特别注意。关闭所有与测试不相关的程序窗口。2.2录制测试脚本2.2.1录制测试脚本在这一节中我们使用QuickTest录制一个测试脚本,在MercuryTours范例网站上预定一张从纽约(NewYork)到旧金山(SanFrancisco)的机票。1.执行QuickTest并开启一个全新的测试脚本开启QuickTest,在“Add-inManager”窗口中选择“Web”选项,点击“OK”关闭“Add-inManager”窗口,进入QuickTestProfessional主窗口。如果QuickTestProfessional已经启动,检查“HelpAboutQuickTestProfessional”查看目前加载了那些add-ins。如果没有加载“Web”,那么必须关闭并重新启动QuickTestProfessional,然后在“Add-inManager”窗口中选择“Web”。如果在执行QuickTestProfessional时没有开启“Add-inManager”则点击“ToolOptions”,在“General”标签页勾选“DisplayAdd-inManageronStartup”,在下次执行QuickTestProfessional时就会看到“Add-inManager”窗口了2.开始录制测试脚本选中“TestRecord”或者点选工具栏上的“Record”按钮。打开“RecordandRunSettings”对话窗口:在“Web”标签页选择“Openthefollowingbrowserwhenarecordorrunsessionbegins”在“Type”下拉列表中选择“MicrosoftInternetExplorer”为浏览器的类型;在“Address”中添加“(/网站地址)”这样,在录制的时候,QuickTest会自动打开IE浏览器并连接到MercuryTours范例网站上。现在我们在切换到“WindowsApplication”标签页,如下图所示:如果选择“RecordandruntestonanyopenWindows-basedapplication”单选按钮,则在录制过程中,QuickTest会记录你对所有的Windows程序所做的操作。如果选择“Recordandrunontheseapplication(openedwhenasessionbegins)”单选按钮,则在录制过程中,QuickTest只会记录对那些添加到下面“Applicationdetails”列表框中的应用程序的操作(你可以通过“Add”、“Edit”、“Delete”按钮来编辑这个列表)。我们选择第二个单选按钮。因为我们只是对MercuryTours范例网站进行操作,不涉及到Windows程序,所以保持列表为空。点击“确定”按钮,开始录制了,将自动打开IE浏览器并连接到MercuryTours范例网站上。3.登录MercuryTours网站在用户名和密码输入注册时使用的账号和密码,点击“Sign-in”,进入“FlightFinder”网页。4.输入订票数据输入以下订票数据:DepartingFrom:NewYorkOn:May14ArrivingIn:SanFranciscoReturning:May28ServiceClass:Businessclass其他字段保留默认值,点击“CONTINUE”按钮打开“SelectFlight”页面。5.选择飞机航班可以保存默认值,点击“CONTINUE”按钮打开“BookaFlight”页面。6.输入必填字段(红色字段)输入用户名和信用卡号码(信用卡可以输入虚构的号码,如8888-8888)。点击网页下方的“SECUREPURCHASE”按钮,打开“FlightConfirmation”网页。7.完成定制流程查看订票数据,并选择“BACKTOHOME”回到MercuryTours网站首页。8.停止录制在QuickTest工具列上点击“Stop”按钮,停止录制。到这里已经完成了预定从“纽约-旧金山”机票的动作,并且QuickTest已经录制了从按下“Record”按钮后到“Stop”按钮之间的所有操作。9.保存脚本选择“FileSave”或者电机工具栏上的“Save”按钮,开启“Save”对话窗口。选择的路径,填写文件名,我们取名为Flight。点击“保存”按钮进行保存。通过以上九个步骤,我们录制了一个完整的测试脚本—预定从纽约到旧金山的机票。2.2.2分析录制的测试脚本在录制过程中,QuickTest会在测试脚本管理窗口(也叫TreeView窗口)中产生对每一个操作的相应记录。并在KeywordView中以类似Excel工作表的方式显示所录制的测试脚本。当录制结束后,QuickTest也就记录下了测试过程中的所有操作。测试脚本管理窗口显示的内容如下图所示:在KeywordView中的每一个字段都有其意义:Item:以阶层式的图标表示这个操作步骤所作用的组件(测试对象、工具对象、函数呼叫或脚本)。Operation:要在这个作用到的组件上执行的动作,如点击、选择等。Value:执行动作的参数,例如当鼠标点击一张图片时是用左键还是右键。Assignment:使用到的变量。Comment:你在测试脚本中加入的批注。Documentation:自动产生用来描述此操作步骤的英文说明。脚本中的每一个步骤在KeywordView中都会以一列来显示,其中用来表示此组件类别的图标以及步骤的详细数据。下面我们针对一些常见的操作步骤作详细说明:步骤说明Action1是一个动作的名称Welcome:Mercury是被浏览器开启的网站的名称Welcome:MercuryTours是网页的名称userName是editbox的名称Set是在这个editbox上执行的动作jojo是被输入得值password是editbox的名称SetSecure是在这个editbox上执行的动作,此动作有加密的功能446845bf84444adc…是被加密过的密码Sign-In是图像对象的名称Chick是在这个图像上执行的动作41,4则是这个图像被点击的X,Y坐标2.3执行测试脚本当运行录制好的测试脚本时,QuickTest会打开被测试程序,执行你在测试中录制的每一个操作。测试运行结束后,QuickTest显示本次运行的结果。接下来,我们执行在