更新时间:2020-12-04 来源:黑马程序员 浏览量:
性能测试是软件测试中一个很重要的分支,人们为了提高性能测试的效率,开发出了很多性能测试工具。一款好的测试工具可以极大地提高测试效率,为发现软件缺陷提供重要依据。目前,市面上的性能测试工具很多,有收费的也有免费的,下面将介绍两个比较常用的性能测试工具:LoadRunner和JMeter。
Loadrunner最初是由Mercury公司开发的一款性能测试工具,2006年被惠普(HP)公司收购,此后,LoadRunner就成为了HP公司重要的产品之一。LoadRunner是一款适用于各种体系架构的性能测试工具,它能预测系统行为并优化系统性能,其工作原理是通过模拟一个多用户(虚拟用户)并行工作的环境来对应用程序进行负载测试。在进行负载测试时,LoadRunner能够使用最少的硬件资源为模拟出来的虚拟用户提供一致的、可重复并可度量的负载,在测试过程中监控用户想要的数据和参数。测试完成,LoadRunner可以自动生成分析报告,给用户提供软件产品所需要的性能信息。
相比于其他性能测试工具, Loadrunner主要有以下特点。
(1)广泛支持业界标准协议。
(2)支持多种平台开发的脚本。
(3)可创建真实的系统负载。
(4)具有强大的实时监控与数据采集功能。
(5)可以精确分析结果,定位软件问题。
LoadRunner好用且功能强大,唯一美中不足的是它不是开源产品,使用 LoadRunner的用户需要向HP公司付费。
LoadRunner工具主要由3部分组成: Virtual User Generator(简写为 VuGen)、 Controller和Analysi。下面分别介绍这3个组成部分的作用。
1. VuGen( Virtual User Generator)
LoadRunner是通过多个虚拟用户在系统中同时工作或访问系统的环境来进行性能测试的,虚拟用户进行的操作通常被记录在虚拟用户脚本中,而VuGen就是用于创建虚拟用户脚本的工具,因此它也被称为虚拟用户脚本生成器。
在创建脚本时,VuGen会生成多个函数用于记录虚拟用户所执行的操作,并将这级插入到VuGen编辑器中生成基本的虚拟用户脚本,这个创建脚本的过程也叫作录制脚本。例如,有一款软件产品基于数据库服务器,所有用户的信息都保存在数据库中,当用户查询信息时,整个查询过程可分为以下几个操作。
(1)登录软件。
(2)连接到数据库服务器。
(3)提交SQL查询。
(4)检索并处理服务器响应。
(5)与服务器断开连接。
VuGen会监控上述操作,并以代码的形式将这几个操作记录下来,生成一个VBScript 脚本文件。当执行该脚本文件时,可以自动执行上述操作,即自动执行查询操作。在录制期间,VuGen会监控虚拟用户的行为,并跟踪用户发送到服务器的所有请求以及从服务器接收到的所有应答。
2. Controller
Controller用于创建和控制LoadRunner场景,场景负责定义每次测试中发生的事件,包括模拟的用户数、用户执行的操作以及测试要监控的性能指标等。
以VuGen中所举的软件产品为例,用户可以登录软件查询个人信息,如果全国各地的用户都要查询信息,那么软件可以承受多大的负载?这就需要进行负载测试,例如使用100个用户同时执行查询操作并观察软件的运行情况,这就是一个场景,这个场景可以使用Controller定义。设置100个虚拟用户,让这100个虚拟用户同时执行VuGen录制的查询操作脚本,这就相当于让100个用户同时执行查询操作,在场景运行期间添加响应时间、并发用户数等性能指标,监控这些指标的变化,检查服务器的可靠性及负载能力。
3.Analysis
Analysis是LoadRunnerI的数据分析工具,它可以收集性能测试中的各种数据,对其进行分析并生成图表和报告供测试人员查看。
关于LoadRunner的安装以及这3个工具的使用,后面会进行详细讲解,在这里读者对duNner以及这3个工具有一个整体的认识即可。
JMeter是由 Apache公司开发和维护的一款开源免费的性能测试工具。JMeter以Java作为底层支撑环境,它最初是为测试Web应用程序而设计的,但后来随着发展逐步扩展到了其他领域。现在JMeter可用于静态资源和动态资源的测试,例如,它可用于模拟服务器、服务器组,网络或对象上的重负载以测试其强度、分析不同负载类型下的整体性能。
JMeter的工作原理与LoadRunner类似,它也是通过模拟出多个虚拟用户向服务器发送请求,检测响应返回情况,如并发用户数、响应时间、资源占用情况等,以此检测系统的性能。与 LoadRunner不同的是, JMeter工具通过线程组创建虚拟用户,一个线程组可以设置多个线程,每个线程就是一个虚拟用户,这些线程相互独立,互不影响。虚拟用户向服务器发送一个请求,JMeter称之为一次采样,这个操作有采样器来完成。
JMet工具主要由以下几个核心组件构成。
(1)逻辑控制器( Logic Controller):逻辑控制器确定采样器的执行顺序。
(2)配置元件( Config Element):配置元件可用于设置默认属性和变量等数据,供采样器获取所需要的各种配置信息。
(3)前置处理器( Per processors):在实际的请求发出的请求进行特殊的处理。例如, Http Url重写修饰符可以实现URL重写,当发送的请求中有SessionID信息时,可以通过该前置处理器填充发出请求的实际SessionID。
(4)定时器( Timer):用于在操作之间设置等待时间。
(5)采样器( Sampler):采样器是JMer主要执行组件,它用于向服务器发送一个请求并记录响应信息,包括成功/失败、响应时间、数据大小等。 JMeter支持多种不同的采样器可根据设置的不同参数向服务器发送不同类型的请求(HTTP、FTP、TCP等)
(6)后置处理器( Post processors):后置处理器一般放在采样器之后,用来处理服务器的返回结果。
(8)监听器( Listener):用于监听测试结果。此外,监听器还具备查看、保存和读取测试结果的功能。
使用JMeter进行性能测试时,在线程组中设置好相关参数,并通过配置元件、前置处理器、定时器、断言等组件设置其他的参数信息,然后使用采样器发送请求,通过后置处理器断言、监听器等组件分析查看测试结果。
与 LoadRunner相比, JMeter是一款开源免费的轻量级工具,安装简单,并且支持二次开发,但是在性能测试过程中,JMer的录制功能、环境调试功能与 LoadRunner都存在一定差距,而且JMeter的报表较少,结果分析也没有LoadRunner详细。总之, MEeter和 LoadRunner各有优势与不足,大家在测试时可以根据自己的需要进行选择。
猜你喜欢: