性能测试分享_第1页
性能测试分享_第2页
性能测试分享_第3页
性能测试分享_第4页
性能测试分享_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、性能测试分享性能测试理论及解决方案132实例练习33性能测试工具使用介绍33什么是性能测试什么是性能测试系统的性能是一个很大的概念,覆盖面非常广泛,对一个软件系统而言包括执行效率、资源占用、稳定性、安全性、兼容性、可扩展性、可靠性等等性能测试用来保证产品发布后系统的性能满足用户需求通过模拟生产运行的业务压力或多用户使用场景来测试系统是否满足产品性能的要求总得来说性能测试就是通过测试工具模拟多种正常、峰值等负载条件来对系统的各项性能指标进行的测试3性能测试主要指标性能测试主要指标响应时间吞吐量(TPS)并发用户数资源利用率(CPU、内存、网络等等)主要指标主要指标-用户角度用户角度响应时间用户最

2、重视的性能体验2/5/8稳定性系统崩溃带来的就是用户崩溃500数据库崩溃应用服务崩溃主要指标主要指标-系统角度系统角度网络运行情况(环境)硬件配置情况(CPU、内存等)软件配置情况(应用服务器tomcatapache等、数据库、系统等)主要指标主要指标-开发角度开发角度架构是否合理数据库设计是否合理SQL语句实现是否合理代码设计是否合理性能测试步骤性能测试步骤需求分析(目的、要素等)测试计划测试方案测试准备(用例、工具、环境、数据、脚本、等)测试执行(场景设计)结果分析常用性能测试工具常用性能测试工具商业:LoadRunner开源:JmeterLoadRunner的解决方案的解决方案Vuser

3、 主机解决测试资源的限制利用Virtual Users代替实际测试人员在不同的机器上运行大量的Virtual Users通过Controller管理Virtual Users使用Analysis分析测试结果AnalysisController压力产生Web serverDatabase server被测系统VuGenControllerAnalysis产生压力和搜集测试结果生成用于Controller部署的Virtual Users通过图表分析工具来编译和显示测试结果LoadRunner的常用组件的常用组件系统性能调优 分析测 试结果阶段5LoadRunnerVU GEN 执行 场景阶段4 设

4、计测 试场景阶段3创建 Virtual Users阶段2阶段1 制定测试计划LoadRunnerController & Analysis注: 这是LR的一个典型工作流程。LoadRunner的工作流程的工作流程LoadRunner的测试过程的测试过程5、分析数据, 从而找到影响性能的瓶颈1、记录用户的交互,将动作记录成为测试需要的脚本2、通过在脚本中添加测试数据和定义用户行为,将脚本变为运行虚拟用户运行所需要的脚本3、运行虚拟用户,从而产生压力4、在压力测试过程中,监控系统的性能性能测试理论及解决方案231实例练习33性能测试工具使用介绍3使用使用VuGen开发脚本开发脚本录制测试脚本完善测

5、试脚本配置Run-Time Settings项单个运行测试脚本15LR 启动以后,在任务栏会有一个Agent 进程,通过Agent 进程,记录各种协议的Client 与Server 端的请求和响应,用LR 的一套类C 语言函数来表现脚本,只要LR支持的协议,都会录制到。 LoadRunner的录制原理的录制原理启动启动VuGen点击开始-HP LoadRunner-Applications-Virtual User Generator 或开始-HP LoadRunner- Load Testing-Create/Edit Scripts来启动VuGen。17应用类型建议选用协议Web网站(J2

6、EE,.NET)Web(HTTP/HTML)FTP服务器File Transfer Protocol(FTP)邮件服务器Internet Messaging ApplicationProtocol(IMAP)Post Office Protocol(POP4)Simple Mail Trans Protocol(SMTP)C/S客户端以ADO,OLEDB方式 连接后台数据库MS SQL ServerOrical,Sybase,DB2,Informix 以ODBC方式连接后台数据库ODBC没有后台数据库Socket分布式组件COM/DCOM,EJB无线应用WAP,PALM选择协议选择协议 App

7、lication type中选择应用程序类型 URL中输入要测试的网址 Working directory中设置工作目录 Record into Action中选择要把录制的脚本放到哪一个部分 VuGen 中的脚本分为三部分:vuser_init、vuser_end 和Action。其中vuser_init 和vuser_end 只有一个,而Action可以有多个“Record the application startup”默认是勾选的,表示应用程序一旦启动,VuGen 就会开始录制脚本;如果没有选中,应用程序启动后,VuGen 出现右边的对话框,并且暂时不会开始录制脚本,用户操作应用程序到

8、需要录制的地方,按下“Record”按钮,VuGen 才开始录制。19设置录制选项设置录制选项 录制过程中,在屏幕上会有一个工具条出现。下面我们简单介绍一下各个按钮的功能: 录制完成后,按下“结束录制”按钮,VuGen 自动生成用户脚本,退出录制过程。20录制工具条介绍录制工具条介绍 脚本视图 脚本视图是一种基于文本的视图,列出了作为 API 函数的 Vuser 操作 树视图 树视图是基于图标的视图,列出了作为步骤的 Vuser 操作 点击View-Script View、Tree View切换视图21查看脚本查看脚本 完善脚本,增强脚本的灵活性 插入事务 插入集合点 插入注释 参数化输入 插

9、入函数 插入Text/Image检查点 关联22完善脚本完善脚本 事务(Transaction) 为了衡量服务器的性能,计算某操作的响应时间。 比如:测试脚本中有一个数据查询操作,为了衡量执行查询操作的性能,我们把这个操作定义为一个事务,这样,在运行测试脚本时,LoadRunner 运行到该事务的开始点时,会开始计时,运行到该事务的结束点,计时结束。这个事务的运行时间在结果分析时会反映出来。 插入事务操作可以在录制过程中进行,也可以在录制结束后进行;可以插入不限数量的事务。23插入事务插入事务24输入事务名称:最好要有意义,能够清楚的说明该事务完成的动作选择事务名称、事务状态:事务状态默认是L

10、R_AUTO,一般不需要修改插入事务插入事务对应代码: lr_start_transaction(“ProdOnOffer_Search”); /中间代码是具体事务的操作,如数据查询操作 lr_end_transaction(“ProdOnOffer_Search”,LR_AUTO);插入集合点插入集合点 集合点(Rendezvous) 为了衡量在加重负载情况下服务器的性能,实现大量虚拟用户同时执行某操作。 比如:系统要求能承受1000人同时提交数据,我们在提交数据操作前插入集合点,这样,当虚拟用户运行到该集合点时,如果虚拟用户少于1000人,LoadRunner命令已经到达该集合点的用户在此

11、等待,当达到1000人时,LoadRunner命令1000人同时去提交数据。 集合点只能插入到Action部分,vuser_init和vuser_end中不能插入集合点。插入集合点插入集合点对应代码: lr_rendezvous(“ProdSearch”);输入集合点名称:最好要有意义,能够清楚的说明该集合点完成的动作插入注释插入注释对应代码: /* * 这里输入注释的内容 */也可直接手写: /这里输入注释的内容 参数化输入 为了更加真实的模拟实际环境,使用不同的的输入数据。 比如:在录制脚本时,填写并提交了一些数据,比如要增加数据库记录,这些数据被记录在脚本中。当多个虚拟用户运行脚本时,会

12、提交相同的数据,这样不符合实际的运行情况,而且有可能引起冲突,这时,我们就可以对这些数据进行参数化处理。 优点:可以使脚本的长度变短,可以使用不同的数值来测试脚本。28参数化输入参数化输入Replace with a parameterProperties参数化输入参数化输入 参数的类型 Date/Time File Group Name Iteration Number Load Generator Name Random Number Table Unique Number User Defined Function Vuser ID XML30参数化输入参数化输入参数化输入参数化输入 S

13、elect next row(如何选择下一行)Sequential:每个虚拟用户按顺序循环取值。比如第一个用户第一次取第一个值,第二次取第二个值;其他虚拟用户也是第一次取第一个值,第二次取第二个值;依次类推。Random:随机取值。Unique:所有虚拟用户每次取值都是唯一的。Same line as 某参数:和某参数取同行的数据。比如某参数取第3行的值,则这里这个参数也取第3行的值。参数化输入参数化输入 Update value on(如何更新值)当Select next row设置为Sequential、Random、Unique时,还需要设置Update value on。Each it

14、eration:每一次新的迭代,就取一次新的值,同一个迭代过程中该参数的值不变。Each occurrence:每遇到一次该参数,就取一次新的值。Once:只取一次值。该参数一旦取值,就不再变化。参数化输入参数化输入 When out of values(当数据耗尽时如何处理)当Select next row设置为Unique时,还需要设置When out of values。Abort Vuser:终止虚拟用户。Continue in a cyclic manner:继续使用循环管理器循环使用。Continue with last value:用最后一个数据继续执行。 注意事项参数名称不要使

15、用con、pm、lpt*等系统装置名注意该参数在系统中的类型、长度、数据范围等。特别是使用Unique Number参数类型时要注意不能超界。比如某文本框能接受的最大数为99,则设置参数时不能超过99。要考虑运行时间、迭代次数等各种情况,设置足够多的数据。比如使用Unique Number参数类型,设置起始数为1,递增为5,那么第一个用户第一次循环取值1,第二次循环取值2;第二个用户第一次循环取值6,第二次为7;依次类推。所以在参数化前必须计算每一个虚拟用户可能使用的数据个数。34参数化输入参数化输入 查看参数化的数据如何取值 测试脚本中有一个参数username,可通过以下代码查看其具体取值

16、。ParameterTest()int i;for(i=0;iCompare with Script)协助找出两份脚本有差异的地方,再使用web_reg_save_param函数手动建立关联,最后用关联参数来替代脚本中用到的关联数据。 web_reg_save_param(clientid,LB=clientId:,RB=,Search=Body,LAST);38关联关联39配置配置Run-Time Settings项项40配置配置Run-Time Settings项项41配置配置Run-Time Settings项项42配置配置Run-Time Settings项项43配置配置Run-Tim

17、e Settings项项44配置配置Run-Time Settings项项45配置配置Run-Time Settings项项46配置配置Run-Time Settings项项47配置配置Run-Time Settings项项 编译、运行脚本 编译脚本,检查是否有语法等错误。如果有错误,VuGen将会提示错误。双击错误提示,VuGen 能够定位到出现错误的那一行。 如果编译通过,就可以运行脚本,显示运行结果。48单个运行测试脚本单个运行测试脚本使用使用Controller执行场景执行场景创建运行场景执行运行场景49 场景 描述在测试活动中发生的各种事件。包括一个运行虚拟用户活动的Load Gen

18、erator机器列表,一个测试脚本的列表以及大量的虚拟用户和虚拟用户组。 点击开始-HP LoadRunner-Applications - Controller或开始-HP LoadRunner-LoadRunner-Run Load Tests来启动Controller程序。50创建运行场景创建运行场景51创建运行场景创建运行场景52创建运行场景创建运行场景创建运行场景创建运行场景 如果脚本中设置了集合点,则需要在Controller中设置集合点策略创建运行场景创建运行场景 设置结果文件保存路径 结果文件建议保存在NTFS格式的硬盘下(FAT格式下文件大小限制一般在4G以下,当结果文件超过限制,压力测试将被停止),且该路径最好在每次场景运行前重新设置一下。创建运行场景创建运行场景 监控linux系统资源 配置rstatd守护程序,目标守护进程xinetd。 在controll

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论