Jemeter性能测试

1.1.1.                       添加线程组

l  右键“测试计划”->“添加”->“Threads(Users)”->“线程组”

1.1.2.                       添加“HTTP请求”

l  右键“线程组”->“添加”->“Sampler”->“HTTP请求”

l  打开之后,填入访问该接口所需要的参数,效果如下图

Tips:

  1. 服务器名或IP:这里填写服务IP地址(不带端口),有域名的直接填写域名
  2. 端口号:这里填写端口号,有域名的这里为空就好。
  3. Timeouts(milliseconds):超时时间,单位是毫秒;Connect:连接超时;Response:响应超时。二者都可以不填
  4. Implementa:采用什么实例来运行这次HTTP请求(HttpClient4/HttpClient3.1/Java),这里我们不用选择,直接默认就好。

协议:该接口采用什么协议(http/https),这里不填默认是http,根据情况填写

方法:请求该接口的方法(GET/POST等),根据接口请求类型选择。

Content encoding:这里是返回报文的编码格式(如‘utf-8’),采用默认值就好

  1. 同请求一起发送参数:接口的参数,可以通过下方“添加”按钮,添加参数,左边为“key”,右边填“value”,如上图。(这里只适用于传参数的接口,传Json和文件等接口使用这种方式不支持,暂不做介绍)

1.1.3.                       添加监听器

完成上述3.2.1和3.2.2步,一个接口的简单脚本已经编写完成了;但是此时我们还不知道在哪里查看脚本运行的结果,这里我们需要添加一个监听器。

l  右键“线程组”->“添加”->“监听器”,选择“察看结果树”

Tips:Jmeter提供了需要监听器,有兴趣的可以去一一添加,察看效果。

1.1.4.                       运行脚本

l  点击按钮,运行脚本,察看结果

在“响应数据”下,我们看到了与使用浏览器一样的返回结果(报文中headers有差异,这部分可以忽略,想知道为什么不一样的可以去学学http协议,在这里不影响结果)。

到这里,一个http接口测试的Jmeter脚本已经完成。“Ctrl+S”保存一下吧,下次就可以直接拿来使用了(Jmeter脚本默认保存在bin目录下)

1.2. 压力测试

在上面脚本配置上线程数,即可对该接口进行压力测试啦。

l  点击“线程组”

  1. 线程数:需要采用多少个并发。
  2. Ramp-Up Period(in seconds):设置到达最大并发所需时间(如上图,从0增加到5个并发,花费1秒钟)
  3. 循环次数:每个并发执行几遍脚本(如上图,每个线程执行100遍)。勾选永远,则脚本会被无限循环执行下去。
  4. 调度器:勾选则启用调度器

持续时间(秒):设置脚本跑多久(如需要让脚本跑一分钟,则填入60)

启动延迟(秒):延迟多少秒才开始执行脚本

l  添加“聚合报告”

聚合报告是一个监听器,作用是,为本次压力测试整理出一份“报表”

l  点击按钮让我们来看看5并发循环100次的结果

l  点击按钮,清除上次测试结果,然后来看看10并发循环100次结果

可以看到5并发时,Throughput为13.0/sec;10并发时:Throughput为22.6/sec。

理论上,并发数与吞吐量成正比,并发越多,吞吐量越大。

实际上,服务器的处理能力和网络带宽是有限的,当并发数达到一定数量之后,吞吐量不随并发数增加而增长,出现响应时间变长,甚至服务器宕机等状况,称之为服务器的性能“瓶颈”。

简单来说,性能测试就是根据服务器的“瓶颈”,来评估服务的性能是否能够达到期望。

附:表头说明

Label - 如图,在不勾选"Include group name in label?"复选框的情况下,为请求取样器的名称,否则为请求取样器所在线程组:请求取样器名称

# Samples - 用同一个请求取样器,发送请求的数量(注意:该值是不断累计的)。比如,10个线程数设置为10,迭代10次,那么每运行一次测试,该值就增加10*10=100

Average - 默认情况下是单个Request的平均响应时间,当使用了Transaction Controller 时,也可以以Transaction为单位显示平均响应时间

Median - 中位数。表示响应时间本不大于该时间值的请求样本数占总数的50%

90% Line - 表示响应时间不大于该时间值的请求样本数占总数的90%

Min - 针对同一请求取样器,请求样本的最小响应时间

Max - 针对同一请求取样器,请求样本的最大响应时间

Error % - 出现错误的请求样本的百分比

Throughput - 吞吐量以“requests/secondrequests /minuterequests /hour”来衡量。 时间单位已经被选取为second,所以,显示速率至少是1.0,即每秒1个请求。 当吞吐量被保存到CVS文件时,采用的是requests/second,所以30.0 requests/second CVS中被保存为0.5Kb/sec - Kilobytes/seond来衡量的吞吐量

猜你喜欢

转载自www.cnblogs.com/jeffery-pan/p/9975779.html