《软件测试基础系列培训 性能测试.ppt》由会员分享,可在线阅读,更多相关《软件测试基础系列培训 性能测试.ppt(36页珍藏版)》请在三一办公上搜索。
1、性能测试,安徽科大讯飞信息科技股份有限公司AnHui USTC iFlyTek CO.,LTD.2009年08月,什么是性能测试,狭义概念:性能测试用来保证产品发布后系统的性能满足用户需求。通过模拟生产运行的业务压力或用户使用场景来测试系统是否产品性能的要求性能测试在软件质量保证中起重要作用广义概念:系统的性能是一个很大的概念,覆盖面非常广泛,对一个软件系统而言包括执行效率、资源占用、稳定性、安全性、兼容性、可扩展性、可靠性等等,2,是否有足够的测试资源?测试人员 客户机,如何调度和同步测试用户?,如何搜集和分析测试结果?,如何完成回归测试?,所有人注意:点击按钮,手动测试存在的问题,Load
2、Runner 的解决方案,利用图表工具分析测试结果,利用录制的脚本进行回归测试,运行大量的“Virtual Users”在不同的机器上,利用“Virtual Users”代替实际测试人员,通过“Controller”管理“Vusers”,LoadRunner 的解决方案,模拟成千上万个用户并发访问整个系统达到定位和孤立问题的目的,Web Server,App.Server,Database,Internet,Controller,Virtual Users,通过LoadRunner监控整个系统,支持最普遍的企业级环境,协议,性能监控器,LR的组件,VuGen,Controller,Analys
3、is,产生压力和搜集测试结果,生成用于“Controller”部署的“Vusers”,通过图表分析工具来编译和显示测试结果,系统性能调优,性能测试工作流程,注:这是LR的一个典型工作流程。,例:任务分配图,网上书店(一天,几千用户),浏览购物,计算并发用户数,用户数的计算方法并发用户数=(吞吐量/单位时间段)*场景业务时间,10,LoadRunner的测试过程,选择协议,脚本录制机制,Webserver,Database server,Web browser,internetextranetintranet,HTTPS,VuGen,LoadRunner录制原理,LR 启动以后,在任务栏会有一个
4、Agent 进程,通过Agent 进程,记录各种协议的Client 与Server 端的请求和响应,用LR 的一套C 语言函数来表现脚本,只要LR支持的协议,都会录制到。,15,RecordProxy,LoadRunner录制原理,NativeProxy,web_url,Webserver,16,NativeProxy,web_url,Webserver,RecordProxy,LoadRunner录制原理,性能测试数据分析图,17,销帐,并发用户数50,平均响应时间,性能测试数据分析,18,1100用户 250用户 330用户 420用户 510用户,LoadRunner实际操作,19,20
5、,一、使用VuGen开发脚本,使用VuGen开发脚本的步骤:录制测试脚本完善测试脚本配置Run-Time Settings项单机运行测试脚本创建运行场景,21,二、使用VuGen开发脚本-录制测试脚本,点击开始-Mercury LoadRunner-Applications-Virtual User Generator或开始-Mercury LoadRunner-Mercury LoadRunner-Load Testing-Create/Edit Scripts来启动VuGen。,启动VuGen后,可以选择新建单协议脚本,多协议脚本,打开脚本等;如果不想下次再显示该页,在Dont show
6、the startup dialog in the future前打勾即可。,22,三、使用VuGen开发脚本-选择协议,选择协议,新建一个用户脚本,选择系统通讯的协议,这里我们需要测试的是Web 应用,所以我们需要选择Web(HTTP/HTML)协议,确定后,进入主窗体。,23,四、使用VuGen开发脚本-录制测试脚本,设置录制选项,Application type中选择应用程序类型Internet ApplicationURL中输入要测试的网址Working directory中设置工作目录Record into Action中选择要把录制的脚本放到哪一个部分,见意选择 Action,Vu
7、Gen 中的脚本分为三部分:vuser_init、vuser_end 和Action。其中vuser_init 和vuser_end 都只能存在一个,不能再分割,而Action 还可以分成无数多个部分(通过点击New 按钮,新建ActionXXX)“Record the application startup”默认情况下是选中的,说明应用程序一旦启动,VuGen 就会开始录制脚本;如果没有选中,应用程序启动后,VuGen 出现右边的对话框,并且暂时不会开始录制脚本,用户操作应用程序到需要录制的地方,按下“Record”按钮,VuGen 才开始录制。,24,五、使用VuGen开发脚本-录制测试脚
8、本,录制工具条介绍,录制过程中,在屏幕上会有一个工具条出现。下面我们简单介绍一下各个按钮的功能:,录制完成后,按下“结束录制”按钮,VuGen 自动生成用户脚本,退出录制过程。,25,六、使用VuGen开发脚本-录制测试脚本,查看脚本录制结束后,可以通过两种方式来查看脚本:脚本视图及树视图,脚本视图脚本视图是一种基于文本的视图,列出了作为 API 函数的 Vuser 操作。要在脚本视图中查看脚本,请单击工具栏上的“View Script”按钮或者选择“View”“View Script”。在脚本视图中,VuGen 将在编辑器中显示带有彩色编码的函数及其变量值的脚本。,树视图树视图是基于图标的视
9、图,列出了作为步骤的 Vuser 操作.要在树视图中查看脚本,请单击工具栏上的“View Tree”按钮或者选择“View”“View Tree”。对于录制期间所执行的每一步骤,VuGen 都在测试树中生成一个图标和一个标题。在树视图中,将看到作为脚本步骤的用户操作。大多数步骤都附带相应的录制快照。,26,七、使用VuGen开发脚本-完善测试脚本,当录制完一个基本的用户脚本后,在正式使用前我们还需要完善测试脚本,增强脚本的灵活性。例如,可以在脚本中插入名为内容检查的步骤,以验证某些特定内容是否显示在返回页上。可以修改脚本来模拟多用户行为,也可以用事务来 度量特定的业务流程。,事务,事务(Tra
10、nsaction):为了衡量服务器的性能,我们需要定义事务。比如:我们在脚本中有一个数据查询操作,为了衡量服务器执行查询操作的性能,我们把这个操作定义为一个事务,这样在运行测试脚本时,LoadRunner 运行到该事务的开始点时,就会开始计时,直到运行到该事务的结束点,计时结束。这个事务的运行时间会在结果中显示。插入事务操作可以在录制过程中进行,也可以在录制结束后进行。LoadRunner 运行在脚本中插入不限数量的事务。,27,八、使用VuGen开发脚本-完善测试脚本,在需要定义事务的操作前面事务的“开始点”,通过菜单或者工具栏插入。,插入事务的方法,插入事务的开始点后,在需要定义事务的操作
11、后面插入事务的“结束点”。同样可以通过菜单或者工具栏插入。,输入事务的名称。注意:事务的名称最好要有意义,能够清楚的说明该事务完成的动作,默认情况下,事务的名称列出最近的一个事务名称。一般情况下,事务名称不用修改。事务的状态默认情况下是LR_AUTO。一般情况下,我们也不需要修改。,参数化过程,Replace with a parameter,Properties,插入集合点方法,在需要插入集合点的前面,选择菜单Insert-Rendezvous。集合点在脚本中的代码:lr_rendezvous(“名称”),Controller中设置集合点策略,Policy,31,九、使用VuGen开发脚本-
12、单机运行测试脚本,运行脚本可以通过菜单或者工具栏来操作:,执行“运行”命令后,VuGen 先编译脚本,检查是否有语法等错误。如果有错误,VuGen将会提示错误。双击错误提示,VuGen 能够定位到出现错误的那一行。如果编译通过,就会开始运行。然后会出现运行结果。,32,十、使用Controller创建场景-新建场景窗口介绍,Loadrunner的场景能够描述在测试活动中发生的各种事件。一个场景包括一个运行虚拟用户活动的Load Generator 机器列表,一个测试脚本的列表以及大量的虚拟用户和虚拟用户组。,点击开始-Mercury LoadRunner-Applications-Contro
13、ller或开始-Mercury LoadRunner-Mercury LoadRunner-Load Testing-Run Load Tests来启动Controller程序。,在新建场景的窗口,选择一种场景类型:Manual Scenario:完全手动的设置场景(1)Manual Scenario with Percentage Mode(1.1):该项只有在“Manual Scenario”选中的情况下才能选择。选择该项后,在场景中我们需要定义要使用的虚拟用户的总数,Load Generator machine 机器集,然后我们为每一个脚本分配要运行的虚拟用户的百分比。GoalOrien
14、ted Scenario(2):在测试计划中,一般都包括性能测试要达到的目标。选择该项后,LoadRunner 基于这个目标,自动为你创建一个场景。在场景中,我们只要定义好我们的目标即可。,33,十一、使用Controller创建场景-Controller设计窗口概述,Controller 窗口的“设计”选项卡包含两个主要部分:场景计划和场景组,场景计划:在“场景计划”部分中,您可以设置负载行为以精确地描绘用户行为。您还可以确定将负载应用于应用程序的速率、负载测试持续时间以及如何停止负载。场景组:您可以在“场景组”部分中配置 Vuser 组。在此部分中,您可以创建代表系统典型用户的各种组。您可
15、以定义这些典型用户运行的操作、运行的 Vuser数以及 Vuser 运行时所用的计算机。,34,十二、使用Controller创建场景-Controller运行窗口概述,Controller 窗口中的“运行”选项卡是用来管理和监控测试的控制中心。“运行”视图包含五个主要部分:场景组,场景状态,可用图树,图查看区域和图例。,场景组:位于左上窗格中,可以查看场景组中的 Vuser 的状态。使用该窗格右侧的按钮可以启动、停止和重置场景,查看单个 Vuser 的状态,并且可以手动添加更多的 Vuser,从而增加场景运行期间应用程序上的负载。场景状态:位于右上窗格中,可以查看负载测试的概要,其中包括正在
16、运行的 Vuser 数以及每个 Vuser 操作的状态。可用图树:位于中部左侧窗格中,可以查看 LoadRunner 图列表。要打开图,请在该树中选择一个图,然后将其拖动到图查看区域中。图查看区域:位于中部右侧窗格中,可以自定义显示以查看一至八个图(“View”“View Graphs”)。图例:位于底部窗格中,可以查看选定图中的数据。,35,十三、使用Analysis分析结果-Analysis窗口概述,在 Analysis 会话过程中生成的图和报告提供了有关系统性能的重要信息。使用这些图和报告,可以轻松地标识和确定应用程序中的瓶颈以及提高系统性能所需的改进。从AnalySis中可以得到用户终端的事务响应时间,事务的平均响应时间,网络和服务器的响应时间等。从开始-Mercury LoadRunner-Applications-Analysis或开始-Mercury LoadRunner-Mercury LoadRunner-Load Testing-Analyze Load Tests来启动Analysis程序。,课程结束!,新员工入职培训,提问时间!,