版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1北华航天工业学院软件测试杨丽娟计算机科学与工程系2北华航天工业学院第10章 软件测试自动化3第10章 软件测试自动化教学内容10.1 软件测试自动化概述10.2 自动化测试的原理和方法10.3 使用QTP进行功能测试10.4 使用LoadRunner进行性能测试4第10章 软件测试自动化教学目标理解软件自动化测试的基本概念了解常用自动化测试工具掌握使用QTP进行功能测试的方法;掌握使用LoadRunner进行性能测试的方法。5 10.1 软件自动化测试概述一、自动化测试的必要性软件测试的工作量很大;测试中的许多操作是重复性的、非智力性的和非创造性的,并要求做准确细致的工作;软件自动化测试的定
2、义 它是相对手工测试而存在的,主要是通过所开发的软件测试工具、脚本等来实现,具有良好的可操作性、可重复性和高效率等特点。6 10.1 软件自动化测试概述二、自动化测试的优点提高了测试执行速度,节省了时间。提高了测试效率。提高了准确度和精确度。更好地利用资源。模拟测试条件。自动测试和手工测试相比较的优点710.1 软件自动化测试概述三、自动化测试的适用情况回归测试;大量不同数据输入的功能测试;用手工测试完成难度较大的测试,如性能测试、负载测试、强度测试等。8四、自动化测试的认识误区1、自动化测试完全取代人工测试 手工测试不可替代的优点:测试用例的设计:测试人员的经验和对错误的猜测能力是工具不可替
3、代的。界面和用户体验测试:人类的审美观和心理体验是工具不可模拟的。正确性的检查:人们对是非的判断和逻辑推理能力是工具不具备的。2、测试用例可完全由测试工具自动生成;3、测试工具可在任何场合使用;4、自动化后测试效率立刻提高; 10.1 软件自动化测试概述910.1 软件自动化测试概述五、自动化测试工具测试工具可以从两个不同的方面去分类。根据测试方法不同,自动化测试工具可以分为: 白盒测试工具、黑盒测试工具根据测试的对象和目的,自动化测试工具可以分为: 单元测试工具、功能测试工具、负载测试工具、性能测试工具、Web测试工具、数据库测试工具、回归测试工具、嵌入式测试工具、页面链接测试工具、测试设计
4、与开发工具、测试执行和评估工具、测试管理工具等10(一)主流测试工具1、测试管理工具用于对测试进行管理,负责对测试计划、测试用例、测试的实施进行管理。还能对产品缺陷进行跟踪管理、产品特性管理等。代表:IBM Rational公司的TeamManager、 HP Mercury Interactive公司的 TestDirector(QualityCenter);10.1 软件自动化测试概述11测试工具(一)主流测试工具2、功能测试工具 用于检测程序能否达到预期的功能要求并正常运行。(QTP:QuickTest Professional)3、性能测试工具 用于确定软件和系统的性能。(LoadRu
5、nner)4、白盒测试工具(XUnit系列)1210.2 自动化测试的原理和方法(一)脚本技术脚本是一组测试工具执行的指令集合,也是计算机程序的一种形式。脚本可以通过录制测试的操作产生,然后再做修改,这样可以减少脚本编程的工作量。当然,也可以直接用脚本语言编写脚本。脚本技术可以分为以下几类:线性脚本是录制手工执行的测试用例得到的脚本。结构化脚本类似于结构化程序设计,具有各种逻辑结构(顺序、分支、循环),而且具有函数调用功能。数据驱动脚本、关键字驱动脚本、共享脚本 。1310.2 自动化测试的原理和方法(二)录制和回放录制和回放是一种黑盒测试的自动化方法。录制是将用户每一步操作都记录下来。这种记
6、录的方式有两种:程序用户界面的像素坐标或程序显示对象(窗口、按钮、滚动条等)的位置,以及相对应的操作、状态变化或是属性变化。所有的记录转换为一种脚本语言所描述的过程,以模拟用户的操作。回放时,将脚本语言所描述的过程转换为屏幕上的操作,然后将被测系统的输出记录下来同预先给定的标准结果比较。这可以大大减轻黑盒测试的工作量,在迭代开发的过程中,能够很好地进行回归测试。1410.2 自动化测试的原理和方法(三) 代码分析代码分析类似于高级编译系统,一般针对不同的高级语言去构造分析工具,在工具中定义类、对象、函数、变量等定义规则、语法规则;在分析时对代码进行语法扫描,找出不符合编码规范的地方;根据某种质
7、量模型评价代码质量,生成系统的调用关系图等。1510.3 使用QTP进行功能测试 10.3.1 QTP简介QTP是一种基于Web的企业级自动化功能测试工具。使用QTP进行自动化测试的好处: 快速(Fast)、可靠(Reliable)、可重复(Repeatable)、可程序化(Programmable)、 广泛性(Comprehensive)、可再使用(Reusable)1610.3 使用QTP进行功能测试 10.3.1 QTP 简介1、QTP安装;2、QTP启动;3、QTP界面;17QTP程序界面 18QTP程序界面QTP界面主要元素:标题栏:显示当前测试脚本的名称。菜单栏:包含QTP的所有菜
8、单命令项。文件工具条: 19QTP程序界面QTP界面元素:测试工具条:包含了在创建、管理测试脚本时要使用的按钮。 20QTP程序界面QTP界面元素:调试工具条:包含在调试测试脚本时要使用的工具条 。 21QTP程序界面QTP界面元素:测试脚本管理窗口,提供了两个可切换的窗口,分别通过图形化方式和VBScript脚本方式来管理测试脚本。 Data Table窗口,用于测试的参数化。 状态栏,显示测试过程中的状态。 ActiveScreen窗口2210.3 使用QTP进行功能测试 10.3.2 QTP操作流程1、准备录制;2、进行录制;3、加强测试脚本;4、调试脚本;5、执行测试脚本;6、分析结果
9、,报告问题;23QTP测试过程1、准备录制打开你要对其进行测试的应用程序,并检查QuickTest中的各项设置是否适合当前的要求。2、进行录制打开QuickTest的录制功能,按测试用例中的描述,操作被测试应用程序。243、加强测试脚本通过加入检查点、参数化测试,以及添加分支、循环等控制语句,来增强测试脚本的功能,使将来的回归测试真正能够自动化。4、调试脚本调试脚本,检查脚本是否存在错误。QTP测试过程255、在回归测试中执行测试脚本在对应用程序的回归测试中,通过QuickTest回放对应用程序的操作,检验软件正确性,实现测试的自动化进行。6、分析结果,报告问题查看QuickTest记录的运行
10、结果,记录问题,报告测试结果。QTP测试过程26Mercury Tours 示范网站 Mercury Tours示范网站是一个提供机票预订服务的网站:1首先要注册一个账号。2登录网站并预订机票 在使用网站时,从 Find Flight 网页开始,按照画面上的指示预订机票。3结束订票动作 完成订票动作后,在网页上点选 Sign Off按钮。4关闭浏览器 2710.3.3 QTP测试过程(一)录制前的准备 在录制脚本前,首先要确认以下几项:已经在Mercury Tours示范网站上注册了一个新的使用者账号。在正式开始录制一个测试之前,关闭所有已经打开的IE窗口。关闭所有与测试不相关的程序窗口。28
11、10.3.3 QTP测试过程(二)录制测试脚本 使用QuickTest录制一个测试脚本,在Mercury Tours 范例网站上预定一张机票。C/S结构录制:B/S结构录制: 29(二)录制测试脚本1. 执行QuickTest并开启一个全新的测试脚本2. 开始录制测试脚本 3停止录制与保存脚本4. 录制结果分析30(二)录制测试脚本1. 执行QuickTest并开启一个全新的测试脚本开启QuickTest,加载“Web” add-ins 。在“Add-in Manager”窗口中选择“Web”选项,点击“OK”关闭“Add-in Manager”窗口,进入QuickTest Professio
12、nal 主窗口。 31(二)录制测试脚本2. 开始录制测试脚本 (1)设置Record and Run:选择”AutomationRecord and Run Settings”显示如图“录制、运行设置对话框在Web标签页,选择“Open the following address when a record or run session begins.”单选按钮,浏览器选择“Microsoft Internet Explorer”为浏览器的类型,在“Address”中添入:1080/WebTours/,这样在录制的时候就能打开IE连接到服务器上32(二)录制测试脚本33对于Windows程序
13、,选择Windows Application选项卡:1、如果选择“Record and run test on any open Windows-based Application”单选按钮,则在录制过程中,QuickTest会记录你对所有的Windows程序所做的操作。2、如果选择“Record and run only on 单选按钮,则在录制过程中,QuickTest只会记录对添加到 “Application details”列表框中的应用程序的操作。(二)录制测试脚本34(二)录制测试脚本2. 开始录制测试脚本 (2)脚本录制点击“New”项,创建一个新的测试。点击Record按钮,开
14、始录制脚本。Keyword View显示了QTP录制了每一个操作步骤分析Keyword View中的测试脚本。35开始录制脚本36(二)录制测试脚本3. 停止录制与保存脚本在QuickTest中,选择“Stop” 命令,录制停止。 在QuickTest中,选择“File Save”菜单命令,保存录制的测试。在保存时,要确保保存对话框中的“Save Active Screen files”复选框被选中 ,保存为Recording。37(二)录制测试脚本4. 录制结果分析38分析Keyword View中的测试脚本Item:以阶层式的图标显示每个操作步骤所作用到的组件、工具对象、函数调用或脚本Op
15、eration:要在当前组件上执行动作,如点选(Click),选取(Select)Value:执行的动作参数,例如当鼠标点选一张图片时是用左键还是右键Assignment:所用到的变量39分析Keyword View中的测试脚本Comment:在测试脚本中加入的批注Documentation:自动产生用来描述此操作步骤的英文解释选择ViewExpendAll检测测试脚本的每一个步骤40运行分析测试选择”ToolOptions”菜单,如图选择Run标签页:注意“Save still image captures to results”这一项,它是用来设置需要在测试结果中保存哪些图象信息的。一般情
16、况下我们选择“For errors”或“For errors and warnings”,即在回放测试过程中出现问题时,保存图象信息。为了更多的展示QuickTest的功能,我们在这里暂且选择“Always”。 41执行RUN选择AutomationRun菜单;确定将本次测试运行结果的保存位置。42分析测试结果测试执行完成后显示测试结果,窗口左半部分是一个树状视图,以树叶的形式列出了测试执行过程中的每一个操作步骤 ;窗口右半部分给出了本次测试执行过程的概要信息 4310.3 使用QTP进行功能测试 10.3.2 QTP操作流程1、准备录制;2、进行录制;3、加强测试脚本;4、调试脚本;5、执行
17、测试脚本;6、分析结果,报告问题;44(三) 加强测试脚本加强测试脚本1、建立检查点2、参数化设置4510.3.4 建立检查点“检查点”是将指定属性的当前值与该属性的期望值进行比较的验证点。这能够确定网站或应用程序是否正常运行。当添加检查点时, QuickTest 会将检查点添加到关键字视图中的当前行并在专家视图中添加一条“检查检查点”语句。运行测试或组件时, QuickTest 会将检查点的期望结果与当前结果进行比较。如果结果不匹配,检查点就会失败。可以在“测试结果”窗口中查看检查点的结果。 465.4.4 建立检查点检查点的种类检查点类型说明范例标准检查点检查对象的属性检查某个按钮是否被选
18、取图片检查点检查图片的属性检查图片的来源文件是否是正确的表格检查点检查表格的内容检查表格内的内容是否是正确对的网页检查点检查网页的属性检查网页加载的时间或是网页是否含有不正确的链接文字/文字区域检查点检查网页上或是窗口上出现的文字是否正确检查登陆系统后时候出现登陆成功的文字图像检查点提取网页和窗口的画面检查画面是否正确检查网页或者网页的一部分是否如期显示数据库检查点检查数据库的内容时候正确检查数据库查询的值是否正确XML检查点检查XML文件的内容XML检测点有两种XML文件检测点和XML 应用检测点。XML文件检测点用于检查一个XML文件;XML 应用检测点用于检查一个Web页面的XML文档。
19、47检查对象步骤打开或创建测试脚本选择检测点的位置加入对象检测点保存设置48选择检测点位置选中检查点如“PassFirst0”,在Action screen会显示Book a Flight网页,而且被选取的对象也会被框起来。将鼠标定位在填写用户名的编辑框中,点击鼠标右键。49插入标准检查点在对象上点击右键打开ObjectSelection-Checkpoint Properties;点选OK,开启Checkpoint Properties界面,点击OK。50保存设置QuickTest会在你选取的步骤之前建立一个标准的检查点选择Filesave菜单命令,保存;接下来你可以按照以上的步骤建立其他类
20、型的检查点51插入文字检查点选取要建立检查点的文字建立文字检查点储存测试脚本52选择要建立检查点的文字53建立文字检查点点选Insert Text Checkpoint开启Text Checkpoint Properties对话窗口,当Checked Text出现在下拉式清单中时,在Constant字段会显示你刚刚选取的文字。这也就是QuickTest在执行测试时所要检查的文字。54储存测试脚本点选OK关闭对话窗口。QuickTest会在测试脚本上加上一个文字检查点,这个文字检查点会出现在FlightConfirmation:Mercury网页上。点选FileSave或是点选工具列上的Save
21、按钮5510.3.5 参数化设置参数化应用:需要对多种不同的测试数据,针对同样的操作或功能进行测试。例:验证不同用户的登录操作功能。 (1)将将一个用户的登录操作录制下来; (2)使用QuickTest的参数化功能,把用户名和密码参数化; (3)建立数据表,输入各组测试数据; (4)执行QuickTest测试脚本,完成测试。56定义数据表参数打开或新建测试脚本。选取要参数化的文字;然后再点选参数图示 会开启Value Configuration Options对话窗口。57设定要参数化的属性点选Parameter。可以使用参数值来取代New York这个常数值。请选择DataTable这个选项
22、,这个选项表示此参数的值会从QuickTest的DataTable中取得。Name字段表示参数名称。58value字段的值是从Data Table中的departure字段中取得。QuickTest会在Data Table中显示参数值。Data Table中加入更多条数据,让QuickTest可以使用这些资料执行测试脚本。参数化结果59实验四 使用QTP进行功能测试6010.4 使用LoadRunner进行性能测试 简介 使用概述 使用VuGen开发脚本 使用Controller创建场景 使用Analysis分析运行结果61一、简介LoadRunner 是 Mercury Interactiv
23、e 用来测试应用程序性能的工具。 LoadRunner 通过模拟一个多用户并行工作的环境来对应用程序进行负载测试。通过使用最少的硬件资源,这些虚拟用户提供一致的、可重复并可度量的负载,像实际用户一样使用所要测试的应用程序。LoadRunner 深入的报告和图提供了评估应用程序性能所需的信息。62LoadRunner 通过使用虚拟用户Vuser代替实际用户。这些Vuser模拟实际用户的行为,运行实际的应用程序。 因为一台计算机上可以运行许多 Vuser,因此 LoadRunner 减少了对硬件的要求。 LoadRunner Controller 可以从一个单一的控制点简单有效地控制所有的Vuse
24、r。 LoadRunner 联机监视应用程序的性能。LoadRunner 在测试过程中会自动记录应用程序的性能。LoadRunner 可检查出现性能延迟的地方:网络或客户端延迟、CPU 性能、I/O 延迟、数据库锁定和数据库服务器上的其他问题。LoadRunner 将监视网络和服务器资源以帮助改进性能。一、简介-LoadRunner解决方案 63一、简介-LoadRunner测试过程LoadRunner 测试过程:制定负载测试计划开发测试脚本创建运行场景执行测试监视场景分析测试结果64二、LoadRunner使用概述LoadRunner 包含很多组件,其中最常用的有 Virtual User
25、Generator(简称VuGen)、Controller,Analysis。1、Mercury 虚拟用户生成器 (VuGen) 创建脚本VuGen 通过录制应用程序中典型最终用户执行的操作来生成虚拟用户 (Vuser)。VuGen 将这些操作录制到自动虚拟用户脚本中,以便作为负载测试的基础。65二、LoadRunner使用概述2、Mercury LoadRunner Controller 设计和运行场景 Controller 是用来创建、管理和监控负载测试的中央控制台。使用 Controller 可以运行用来模拟真实用户执行的操作的脚本,并可以通过让多个 Vuser (虚拟用户)同时执行这些
26、操作来在系统中创建负载。3、Mercury Analysis 分析场景 Mercury Analysis 提供包含深入的性能分析信息的图和报告。使用这些图和报告,可以标识和确定应用程序中的瓶颈,并确定需要对系统进行哪些更改来提高系统性能。66三、使用VuGen开发脚本使用VuGen开发脚本的步骤:录制测试脚本完善测试脚本配置Run-Time Settings项单机运行测试脚本创建运行场景67三、使用VuGen开发脚本-录制测试脚本点击开始-Mercury LoadRunner-Applications-Virtual User Generator或:开始-Mercury LoadRunner-
27、LoadRunner-Load Testing-Create/Edit Scripts来启动VuGen。启动VuGen后,可以选择新建单协议脚本,多协议脚本,打开脚本等。68三、使用VuGen开发脚本-录制测试脚本选择协议新建一个用户脚本,选择系统通讯的协议,这里我们需要测试的是Web应用,所以我们需要选择Web(HTTP/HTML)协议,确定后,进入主窗体。69三、使用VuGen开发脚本-录制测试脚本设置录制选项Application type中选择应用程序类型Internet ApplicationURL中输入要测试的网址Working directory中设置工作目录Record int
28、o Action中选择要把录制的脚本放到哪一个部分,建议选择 Action70三、使用VuGen开发脚本-录制测试脚本设置录制选项VuGen 中的脚本分为三部分:vuser_init、vuser_end 和Action。其中vuser_init 和vuser_end 都只能存在一个,不能再分割,而Action 还可以分成无数多个部分(通过点击New按钮,新建ActionXXX)“Record the application startup”默认情况下是选中的,说明应用程序一旦启动,VuGen 就会开始录制脚本;如果没有选中,应用程序启动后,VuGen 出现下图所示对话框,并且暂时不会开始录制脚
29、本,用户操作应用程序到需要录制的地方,按下“Record”按钮,VuGen 才开始录制。71三、使用VuGen开发脚本-录制测试脚本录制工具条介绍录制过程中,在屏幕上会有一个工具条出现。录制完成后,按下“结束录制”按钮,VuGen 自动生成用户脚本,退出录制过程。72三、使用VuGen开发脚本-录制测试脚本查看脚本录制结束后,可以通过两种方式来查看脚本:脚本视图及树视图1、脚本视图脚本视图是一种基于文本的视图,列出了作为 API 函数的 Vuser 操作。要在脚本视图中查看脚本,请单击工具栏上的“View Script”按钮或者选择“View” “View Script”。在脚本视图中, Vu
30、Gen 将在编辑器中显示带有彩色编码的函数及其变量值的脚本。73三、使用VuGen开发脚本-录制测试脚本1、脚本视图74三、使用VuGen开发脚本-录制测试脚本查看脚本2、树视图树视图是基于图标的视图,列出了作为步骤的 Vuser 操作.要在树视图中查看脚本,请单击工具栏上的“View Tree”按钮或者选择“View” “View Tree”。对于录制期间所执行的每一步骤, VuGen 都在测试树中生成一个图标和一个标题。在树视图中,将看到作为脚本步骤的用户操作。大多数步骤都附带相应的录制快照。75三、使用VuGen开发脚本-录制测试脚本查看脚本2、树视图运行脚本 Vuser-Run 设置运
31、行属性:Vuser-Run-time Settings查看结果 View-Test Results三、使用VuGen开发脚本-录制测试脚本77三、使用VuGen开发脚本-完善测试脚本 当录制完一个基本的用户脚本后,在正式使用前还需要完善测试脚本,增强脚本的灵活性。例如,可以在脚本中插入名为内容检查的步骤,以验证某些特定内容是否显示在返回页上。可以修改脚本来模拟多用户行为,也可以用事务来 度量特定的业务流程。78三、使用VuGen开发脚本-完善测试脚本事务事务(Transaction):为了衡量服务器的性能,我们需要定义事务。比如:在脚本中有一个数据查询操作,为了衡量服务器执行查询操作的性能,可
32、以把这个操作定义为一个事务,这样在运行测试脚本时,LoadRunner 运行到该事务的开始点时,就会开始计时,直到运行到该事务的结束点,计时结束。这个事务的运行时间会在结果中显示。插入事务操作可以在录制过程中进行,也可以在录制结束后进行。LoadRunner 运行在脚本中插入不限数量的事务。79三、使用VuGen开发脚本-完善测试脚本在需要定义事务的操作前面插入事务的“开始点” ,通过菜单或者工具栏插入。插入事务的方法输入事务的名称。注意:事务的名称最好要有意义,能够清楚的说明该事务完成的动作80三、使用VuGen开发脚本-完善测试脚本插入事务的方法插入事务的开始点后,在需要定义事务的操作后面
33、插入事务的“结束点”。同样可以通过菜单或者工具栏插入。默认情况下,事务的名称列出最近的一个事务名称。一般情况下,事务名称不用修改。事务的状态默认情况下是LR_AUTO。一般情况下,我们也不需要修改。81三、使用VuGen开发脚本-完善测试脚本添加参数的方法打开测试脚本-选择要替换的参数-右键,编辑参数82三、使用VuGen开发脚本-完善测试脚本83三、使用VuGen开发脚本-单机运行测试脚本运行脚本可以通过菜单或者工具栏来操作:执行“运行”命令,VuGen 先编译脚本,检查是否有语法等错误。如果有错误,VuGen将会提示错误。双击错误提示,VuGen 定位到错误所在行。如果编译通过,即开始运行
34、并显示出现运行结果。84三、使用VuGen开发脚本-单机运行测试脚本运行时设置: Vuser-Run-Time Settings,设置各运行参数.查看测试结果: View-Test Results85四、使用Controller创建场景-新建场景窗口介绍Loadrunner的场景描述在测试活动中发生的各种事件。一个场景包括一个运行虚拟用户活动的Load Generator 机器列表,一个测试脚本的列表以及大量的虚拟用户和虚拟用户组。在Vuser Generator中,Tools-Creat Controller Scenario 或: 在LoadRunner中使用Run Load Test打开
35、LoadRunner Controller,自动弹出New Scenario窗口。86四、使用Controller创建场景-新建场景窗口介绍在新建场景的窗口,有两种场景类型:Manual Scenario:手动的设置场景(1) 选择该项后,在场景中我们需要定义要使用的虚拟用户的总数,Load Generator machine 机器集,然后我们为每一个脚本分配要运行的虚拟用户的百分比。GoalOriented Scenario(2): 在测试计划中,一般都包括性能测试要达到的目标。选择该项后,LoadRunner 基于这个目标,自动为你创建一个场景。在场景中,我们只要定义好我们的目标即可。87
36、四、使用Controller创建场景-新建场景窗口介绍新建场景窗口:88四、使用Controller创建场景-Controller设计窗口概述Controller 窗口的“设计”选项卡包含两个主要部分:场景计划和场景组89四、使用Controller创建场景-Controller设计窗口概述Controller 窗口的选项卡包含两个主要部分:场景计划和场景组。场景计划: 在“场景计划”部分中,可以设置负载行为以精确地描绘用户行为。还可以确定将负载应用于应用程序的速率、负载测试持续时间以及如何停止负载。场景组:可以在“场景组”部分中配置 Vuser 组。在此部分中,可以创建代表系统典型用户的各种组。可以定义这些典型用户运行的操作、运行的 Vuser数以及 Vuser 运行时所用的计算机。90四、使用Controller创建场景-Controller运行窗口概述Controller 窗口中的“运行”选项卡是用来管理和监控测试的控制中心。“运行”视
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论