本篇主要由乐搏软件学院(ID:lebo1768),为大家简单总结下性能测试工具的原理,以及如何选型。
性能测试与功能测试有很大的区别,性能测试的执行,是基本功能的重复和并发,需要模拟海量用户。
在性能测试执行时,需要监控指标参数。同时性能测试的结果,不是那么特别明显,需要我们对数据进行分析。
这些特点,决定了性能测试,更适合通过工具来完成。
01为什么需要性能测试工具
我们来看下工具的定义:它原指工作时所需用的器具,后引申为为达到、完成或促进某一事物的手段。(来自百度的解释)
从人类进化的角度来看,
会制造并使用工具,
是人和猿人最根本的区别,
因为工具可以帮助我们提高生产力和效率。
我们可以想象一下,
如果不用工具,进行性能测试会怎么样的场景?
我们先从性能测试的定义的角度来分析。性能测试,指通过自动化的测试工具,模拟多种正常、峰值和异常负载条件,来对系统的各项性能指标,进行测试。
如果不使用工具,仅靠人工执行性能测试,会存在很多的弊端,如:
a、测试需要投入大量的资源:
为了模拟多种负载、并发的场景需要多人协同工作,通常测试没有很多的资源,而且就算有资源人工的效果也会大打折扣,甚至于某些场景仅凭人工是无法完成的。
b、可重复性非常差:
性能测试经常需要反复调优和测试执行,如果没有工具的帮助,全靠人工实在不敢想象。
c、测试准确性较差:
由于需要模拟多种负载和并发场景,如果由人工来操作,难免会存在误差,而且相对工具或程序来说这种误差会更大,对测试结果影响也非常大。
d、结果的收集、整理和呈现形式差:
如果没有工具,全凭人工采集数据相对工具来说也会存在较大的误差。
02性能测试与性能测试工具之间的关系
1、如果从测试阶段来划分,性能测试属于系统测试。
和具体使用什么工具,并没有直接的关系。使用工具只是为了提高性能测试效率和准确性的一种方法和手段。
2、性能测试不等于Loadrunner。
Loadrunner只是众多性能测试工具中,其中的一种,而且它也不是万能的,在一些情况下,它也并不能派上用场。
3、性能测试工具与自动化测试工具的区别。
性能测试工具,一般是基于通信协议的,他可以不关注系统UI,而自动化使用的是对象识别技术,关注UI界面。自动化无法或很难造成负载,但是通过协议很容易。
03性能测试工具选型参考:
通常在工作过程中,选择使用任何工具时,都会做一些调研,目的就是为了选择适合公司或项目的工具。
那么性能测试在选择工具时,通常可以从以下几个方面进行考虑:
1、成本方面
a、工具成本:
工具通常分为:商业闭(shou)源(fei)、非商业开(mian)源(fei)两种。
商业工具通常功能比较强大,收费,由于收费所以可提供售后服务,如果出了问题有专业人士帮忙处理。
而开源工具通常是免费的,功能有限,维护工具的组织也是自发的,所以如果碰到问题需要自行解决,没有专人提供服务。
具体选择时,需要根据实际的综合情况等多方面考虑。一般来说,大公司通常可以承担工具的费用,会考虑购买商业工具,小公司由于资金压力,可能会选择开源的工具。
b、学习成本:
使用任何工具都需要进行学习,这样一来就会产生学习成本。因此在选择工具时,也要考虑到项目组成员的学习成本。
如果有两种工具A和B,都能满足项目组测试的需求。如果A工具大部分人都会使用,而B工具只有极少部分人会使用,那么建议优先考虑A工具。
通常,对于测试人员最好熟悉一款流程的商业(性能)工具,一款开源免费(性能)工具,还需要熟悉常见的(性能)脚本开发语言等,这是基本要求。
2、支持的协议
性能测试通常跟协议联系非常紧密,比如:
B/S的系统,通常使用http协议进行客户端,和服务器商的信息交换;
C/S的系统通常使用socket协议进行信息交换。
在选择工具时,需要考虑项目使用的协议。一个测试工具能否满足测试需求,能否达到令人满意的测试结果,是选择测试工具,要考虑的最基本的问题。
3、生命力
现在使用的性能测试工具非常多,
比如:Loadrunner,jmeter,这类较大众的工具,网上相关的资料非常多。但一些小众工具可能网上资料比较少。
在工具使用过程中,遇到了比较棘手的问题,在解决过程中时,大众工具相对来说会比较有很大优势,毕竟使用的人越多,资料越多。
4、跨平台
这一点自不必多说,看看JAVA为什么一直这流行就知道了。
04常见性能测试工具:
性能测试工具,从理论上来讲,在性能测试过程中,使用到的所有工具,都可以称其为性能测试工具,通常分为以下几类:
说明:
服务器端性能测试工具:
需要支持产生压力和负载,录制和生成脚本,设置和部署场景,产生并发用户和向系统施加持续的压力。
web前端性能测试工具:
需要关于心浏览器等客户端工具对具体需要展现的页面的处理过程。
移动端性能测试工具:
同web端性能测试工具也需要关心页面的处理过程,另外还要具体数据采集的功能,比如:手机CPU、内存、电量,启动时间等数据的记录。
资源监控工具:
这个主要是能够收集性能测试过程中的数据以及良好的结果展现方式。
PS:主要总结下,服务器端性能测试工具LR和Jmeter,后面也会对这两个工具,进行简单的对分。
05常见性能测试工具特点
JMeter:
采用的是多线程模型,扩展性很强,不过制造压力没有那么高。它很适合用来压一些Tomcat服务,或者一些后端接口。JMeter的缺点是压力值不能精确控制,难以适应高并发的情况,而且由于是JAVA编写的,本身比较消耗资源。
LoadRunner:
更像是一个模拟器,它比较适用于前端构造较复杂场景的情况,比如模拟100个用户登录的场景,LoadRunner对非技术人员提供了很好的支持。LoadRunner不适用后端接口。
下表为JMeter和LoadRunner对比表:
04性能测试工具学习教程
1、Loadrunner:
2、Jmeter:
3、Gatling:
更多性能测试资料,
关注乐搏软件学院(ID:lebo1768)
来源:乐搏软件测试
声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!