使用jmeter做压力测试

使用jmeter做压力测试

1,打开jmeter

2,在测试计划右键添加一个线程组

它的作用其实是为了模拟用户,所以也叫Users。一个线程组模块可以包含多个线程,每个线程代表一个用户,这样可以模拟高并发下的请求,并根据网站的响应信息来判断网站的相关性能。

线程组包含很多属性,目前我们只关注线程属性那一块。

线程组属性的介绍:

2.1 线程数代表访问的并发数,默认是1。

2.2 Ramp-Up Period 表示多长时间内容启动所有线程,如果时间很短,会造成网站的瞬间高并发,默认值是1秒。

2.3 循环次数是表示执行多少次,默认值为1,表示执行一次结束,这里可以勾选永远,让其一直运行下去。

这些属性暂时不用动,因为还没有将工程配置好,测试工程配置的时候使用单次测试容易排查问题,以后压力测试直接修改该面板的值即可。

3,在线程组右键创建一个http请求

HTTP请求面板主要的目的是设置测试时候HTTP请求的相关信息,模拟浏览器访问或者其他程序访问后台的相关配置。

对basic相关的参数进行说明;

3.1 服务器IP

3.2 端口

3.3 方法,get还是post,还是其他

3.4 协议,http协议

3.5 路径,不要包含ip

3.6 参数,请求的时候要携带什么参数

4,在线程组添加监听器---添加结果树

现在基本配置已经OK,但是这样执行后返回的结果却没有地方查看。为了方便查看结果,这里添加View Results Tree面板,有很多其它的结果查看面板,大家可以自己尝试一下。

结果树主要是观察服务器响应信息,并支持将结果写入文件。

5,在线程组添加断言--响应断言

断言的种类非常丰富,这里使用最简单常用的响应断言。断言面板支持很多匹配规则,甚至支持正则表达式。这里只是简单的使用包括来进行校验。

6,在线程组添加监听器---添加聚合报告

就剩下最后一个问题了,如何查看所有请求的综合情况。最常用的就是聚合报告模块。

该模块可以详细的展示所有请求的综合水平。包括请求个数,平均响应时间,最大响应时间、吞吐量等等。

有很多的请求是需要登陆的,怎么处理这种情况?

测试场景:确认平台登录后首页的并发能力

问题:每次都登录的话会对响应时间造成一定影响:

解决方案:登录平台后通过chrome插件获取cookie,通过jmeter的cookie管理器跳过登录步骤

压测方案:本机项服务器发起不同并发数量,持续压测5分钟,根据聚合报告确认系统的qps,响应时间,对服务器内存及CPU的影响(如何通过插件监控服务器CPU后续会介绍)

7,在线程组添加配置元件----http cookie管理器

 添加一个cookie管理器,什么都不用填

把需要用到的请求放到登录后面。后面的请求就会跟上cookie

把cookie管理器放到线程组里,可以单个线程共享。

怎么跨线程共享cookie呢?

也可以直接手动添加cookie到http cookie管理器

8,在线程组添加配置元件--添加计数器

另外,由于POST请求方式,如果不设置Headers的content-type,基本默认会以 application/x-www-form-urlencoded 方式提交数据。为了Post请求确保传的是json格式,还需要在请求头中声明一下请求参数的格式为json,具体操作如下:

Thread Group右键Add》Config Element》HTTP Header Manager,打开HTTP信息头管理器,Add一个Name为Content-Type,Value为application/json,如下图,一个json格式的post请求完成了

####

原文地址:https://www.cnblogs.com/andy0816/p/13590467.html