MILY: 宋体; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">导读
如果你是正在学LoadRunner,或者已经精通LoadRunner,你也许会有这样的感觉:做性能测试我离不开LoadRunner了。是的,LR太棒了,不爱都不行。从现在开始,我们来走入LoadRunner的世界。
LoadRunner介绍
LoadRunner是原Mercury公司是产品,2006年Mercury公司被HP收购。LoadRunner(以下简称LR)是一种高规模适应性的自动负载测试工具,它能预测系统行为,优化性能。LR强调强调是的对整个企业应用架构进行测试,它通过模拟实际用户的操作行为和实行实时性能监控,来帮助客户更快的确认和查找问题。LR能支持广泛的协议的技术,为客户的特殊环境,提供特殊的解决方案。
LR的特点:
1, 能很轻松地创建虚拟用户
2, 能创建真实的负载
3, 定位性能问题
4, 分析结果精确定位问题所在
5, 完整的企业应用环境支持
LR的结构:
1, Virtual User Generator:虚拟用户生成器,简称VuGen,用来录制操作者的操作,建立虚拟用户脚本。
2, Controller:压力控制器,整个压力测试的控制中心,用来管理,设计,驱动及监控压力测试场景。
3, Load Generator:压力生成器,执行虚拟使用者脚本以产生虚拟用户,对被测系统发出请求和接收响应,模拟实际的负载。
4, Analysis:结果分析器,通过测试结果的数据,用来分析压力测试结果。
5, Launcher:提供一个集中的界面,启动LR所有模块。
LoadRunner的工作原理:
LR的工作原理是通过用户执行被测程序的客户端,在VuGen中录制被测系统的客户端和服务器的协议交互,生成脚本,然后在Controller中控制Load Generator,按照一定的配置(又称为场景),模拟一定数量的用户,对服务器产生压力,同时对被测系统涉及的操作系统,数据库,中间件笔资源进行监控,收集压力情况下的资源信息,测试结束后形成测试结果和监控数据,在结果分析器中进行分析,最后生成测试结果报告。在下一篇中我会以一个具体的测试案例来具体说明,敬请留意。
OK,按照上面的原理,我们来画一个图来说明,这样更容易理解了,如下图所示:
OK,这就是LR了,当然在实际的操作中可不象那么简单,RL的功能非常强大,在下一篇中会讲到,插入事务,参数化技术,精确搜索数据和筛选特定数据等等。
做软件性能测试前的准备
做测试的都知道,做性能测试比做功能测试难许多,主要是因为性能涉及的范围太广,所考虑的不仅仅是软件本身,还要考虑到硬件,操作系统,网络和各种用到的服务器等等。在做性能测试是都要对这些进行监控,收集数据,光是工作量就比做功能大很多。功能主要关注的是软件系统能做什么,而性能测试关注更多的则是在一定条件下软件系统能做得多好。
想要做软件性能测试,首先你得搞懂几个概念性的术语。
一,什么是软件性能
软件性能是软件的一种非功能特性,它关注的不是软件是否完成特定的功能,而是在完成该功能时展示出来的及时性。
二,软件性能的指标
1, 响应时间:是指系统对请求作出响应的时间。这里的响应时间只是一个很笼统的概念,其实响应时间是可以被进一步分解为系统响应时间和呈现时间。响应时间是衡量一个系统性能的重要指标,但需要说明的是,软件性能的高底实际上取决于用户对该响应时间的接受程度。
2, 吞吐量:是指系统在单位时间内处理请求的数量。对无并发的应用系统而言,吞吐量与响应时间成严格的反比关系,此时吞吐量就是响应时间的倒数。
3, 并发用户数:是指系统可以同时承载的正常使用系统功能的用户数量。与吞吐量相比,并发数量是一个更直观但也是更笼统的性能指标。
4, 资源利用率:资源利用率反映的是在一段时间只资源平均占用的情况,
5, 性能计数器:是描述服务器或操作系统性能的一些数据指标。例如,对Windows系统来说,使用内存数(Memory In Usage),进程时间(Total Process Time)等都是常见的计数器。
6, 思考时间(think time):也被称为“休眠时间”,从业务的角度来说,这个时间指的是用户在进行操作时,每个请求之间的间隔时间。从自动化测试实现的角度来说,要真实地模拟用户操作,就必须在测试脚本中让各个操作之间等待一段时间,体现在脚本中,具体而言,就是在操作之间放置一个lr_think_time()的函数,使得脚本在执行两个操作之间等待一段时间。但在实际测试中,设置多长的think time才算最合理,不影响迭代次数、并发用户数和吞吐量,是值得我们思考的问题。
三,软件性能测试的分类
根据测试目的不同,可以把软件性能测试以及性能有关的其它一些测试分为以下几类。
1, 性能测试 这里的性能测试是一个狭义的概念,是指测试软件的性能是否符合需求中规定的性能。
2, 并发测试
3, 压力测试
4, 可靠性测试
5, 负载测试
6, 配置测试
7, 失效恢复测试
其他方面的准备
OK,到这里,我们就可以做测试前的准备了。了解项目背景,制定测试计划,参于人员有人数用各自的任务,测试范围和目标,测试模型,测试数据,系统信息,搭建测试环境等等,所有这些都准备好了,在下一篇,我以一个自己写的博客网为例用LR来现实其性能测试。
今天到这里,谢谢大家,有不足之处,真诚希望各位多多指点。