性能测试

玩技站长 压力测试评论971字数 2007阅读6分41秒阅读模式
 

          总是听见很多测试的小伙伴在面试的过程中被面试官询问是否会使用过一些性能测试的方法或工具,其实性能测试入门不难,我们只需要搞定几个问题就可以,性能测试是什么?性能测试怎么去做?性能测试中我们需要关心什么?以及做性能测试的价值?文章源自玩技e族-https://www.playezu.com/11624.html

 文章源自玩技e族-https://www.playezu.com/11624.html

下面我们带着这几个问题,进入下面的文章,来为大家进行讲解!文章源自玩技e族-https://www.playezu.com/11624.html

 文章源自玩技e族-https://www.playezu.com/11624.html

性能测试是什么文章源自玩技e族-https://www.playezu.com/11624.html

很多小伙伴会把性能测试和压力测试混为一谈,认为这两者是一个意思,其实不严谨,我们可以认为压力测试属于性能测试中的一种,下面我们来了解下性能测试这个大类包含多少个子类型吧文章源自玩技e族-https://www.playezu.com/11624.html

 文章源自玩技e族-https://www.playezu.com/11624.html

性能测试包含(基准测试、压力测试、负载测试、并发测试、系统稳定性测试、破坏性测试、大数据处理测试),当然我们在这里只是列举了性能测试中最热门的几种测试方法,除了这些还有很多,但不过很冷门,我们就不过多介绍了。文章源自玩技e族-https://www.playezu.com/11624.html

 文章源自玩技e族-https://www.playezu.com/11624.html

性能测试概念文章源自玩技e族-https://www.playezu.com/11624.html

基准测试:是指通过设计科学的测试方法、测试工具和测试系统,实现对一类测试对象的某项性能指标进行定量的和可对比的测试。”我们怎么来理解这句话,其实理解最简单就是我们首先要使用基准测试来进行验证当前系统是否有做性能测试的资格,如果当前系统代码还有bug或者脚本都没有准备好,基准测试都跑不通,那就没必要做接下来的场景了。

压力测试:是指在当前系统下,满负荷运行给系统造成很大压力,从而来检查系统在满负荷的状态下进行常规操作是否受影响,来进行收集各环节性能指标,检验是否满足性能需求。

负载测试:是指在当前系统下,不断进行加压,找出系统各环节中薄弱点、瓶颈点所在,从而进行有针对性性能优化,加强系统性能力度。

并发测试:是指在同一时间点将大量用户请求,同时进行访问系统对应的服务端,可以说并发测试是当前性能测试的方法中最热门的一种方式,但记得一句话,没有集合点的并发测试其实就是压力测试。

系统稳定性测试:此方法一般指在大场景多组合场景下,对系统做长时间的压力测试,来检验系统在几天甚至几个月的高强度压力下,系统的容错率和兜底方案的设计是否合理。

破坏性测试:又称暴力测试方式,将系统中缓存等机制移除,使用极大的请求数将tomcat或者服务器进行压宕机,来检验线上突发事件中,运维管理的策略是否合理、及时。

大数据处理测试:当一个表或者查询sql要拉出上G或者上百G的数据时,类似定时任务或者处理方法调用的效率验证。

 

性能测试如何做

        网上可以去做性能测试的工具已经有很多了,类似:jmeter、winrunner、Loadrunner、TestDirect、apache ab等等。。。灰常多,也有的会自己去写性能测试的框架,这里我们就不全部都介绍了,只介绍个热门的工具。

 

Jmeter

        轻量级软件,最重要的一点他是开源的、开源的、开源的,重要的事情要说三遍,开源就意味着你可以对jmeter做二次开发来使得整个工具与当前系统更吻合,使用更方便,所以说这是近几年越来越火的工具,因为不光可以做性能测试,还可以进行接口自动化验证、自动方法监控,以及更多的使用方式,小伙伴如果感兴趣可以自行研究下这款大神之作,这里不多介绍,只来说说他的性能测试。

去官网下载安装包,解压进入根目录,点击jmeter.bat就可以启动软件了

启动jmeter

性能测试插图

在测试计划里添加一个线程组

性能测试插图1

在线程组内添加一个http请求

性能测试插图2在http请求页面有个点需要注意:

        协议:http/https

        服务器名称或IP:填写域名 

        端口号:如果有端口号需要填写在这里

        方法:用get还是post等

        路径:需要填写压测的url(刨除压测的域名)

        Parameters和body data:post请求中的body信息

性能测试插图3

项目举例

性能测试插图4

在进行添加结果树和聚合报告,这两个是比较关键的查看性能指标的菜单

性能测试插图5

都添加完毕,可以进行设置线程数了,看下图所示,我设置了10个线程数,5秒进行启动,永远进行循环发送请求,手动停止

性能测试插图6

这里就是jmter的一些简单实用,如果对这个软件感兴趣的话,可以多做尝试,但使用jmeter的同学要知道,jmeter是没有集合点的,所以在jmeter里不存在并发的概念,只有压力测试的方式,jmeter只有一种添加等待时长做成伪并发,线程数小的时候,没有区别,但并发数一旦达到1000以上,伪并发就没有用了。

 

性能测试指标

 

其实在入门的时候我们关心的东西就已经有很多了,大致可以分为几类:

1、  服务器硬件指标

2、  服务器软性指标

3、  压测指标

4、  代码层级

5、  DB层级

6、  缓存

服务器硬件指标:物理内存占用率、虚拟内存、CPU等;

服务器软性指标:连接数、吞吐量、响应时长、网络传输等;

压测指标:Uv、Pv、TPS、QPS、事物响应时长、事物错误率等;

代码层级:是否包含长事务、业务代码是否过于繁琐、是否有频繁查库操作、内存泄漏等;

DB层级:行锁表锁是否合理、表内数据是否过于庞大等;

缓存:频繁查询的数据是否添加在缓存内、是否有穿库的地方等;

 

以上这些都是我们在入门的时候可以轻松查询到的数据,以便于我们对性能测试做分析和性能优化等。具体指标细节可参考之前的文章。回复《目录》即可查找相关的文章。

 

性能测试价值

其实每一个行业产生的规律都来自于需求,当市场对系统的稳定性和可靠性作出的疑惑或者怀疑性的时候,那么我们必然需要一种手段来验证系统稳定性,所以性能测试出现了。那我们先来看看性能测试能做什么?

评估系统的健康度、能力、抗压力;

识别出系统中的薄弱点、瓶颈点;

验证系统稳定性;

系统各模块衔接耦合性;

性能调优;

 

既然性能测试能做这么多事情,之后我们的学习方向在哪里?

1、性能结果分析;

2、性能测试调优;

3、如何设计出有价值的性能测试报告;

4、初期性能测试用例如何编写才是最完美;

5、怎么界定性能测试的基准线和瓶颈线、阈值线;

 

其实性能测试还有很大的空间,互联网的时代,大数据的时代,一切都是以传输的手段在进行,以当前的市场,系统稳定性已变成了很重要的指

 

 最后更新:2018-5-2
匿名

发表评论

匿名网友
确定

拖动滑块以完成验证