JMeter接口&性能测试

时间:2021-05-23 10:30:28

JMeter接口测试

目前最新版本发展到5.0版本,需要Java7以上版本环境,下载解压目录后,进入\apache-jmeter-5.0\bin\,双击ApacheJMeter.jar文件启动JMemter。

1、创建测试任务

添加线程组,右击测试计划,在快捷菜单单击添加-》线程(用户)-》线程组。设置线程组主要包含三个参数:线程数、Ramp-Up、循环次数。

JMeter接口&性能测试

线程数:设置虚拟用户数。一个虚拟用户占用一个进程或线程。线程数就相当于虚拟用户数。

Ramp-Up:设置的线程数启动时长,单位为秒。如果线程数为100,准备时长为20秒,那么需要20秒启动100个线程,平均每秒启动5个线程。

循环次数:每个线程发送请求的个数。如果线程数为100,循环次数为2,那么每个线程发送2次请求,总请求数为100*2=200次。如果勾选了“永远”复选框,那么所有线程会循环发送请求,直到手动单工具栏停止按钮,或者设置的线程运行时间结束才会停止运行。

这次针对接口测试,默认都为1就行。

2、添加get的HTTP请求

右击线路组,在快捷菜单单击添加-》取样器-》HTTP请求。

JMeter接口&性能测试

协议:向目标服务器发送HTTP请求时的协议,可以是HTTP或HTTPS,默认不填为HTTP。

服务器IP和端口:输入目标服务器地址和端口号。

内容编码:默认值为iso8859

方法:针对请求方法选择

路径:输入请求目标地址

参数:录入查询的参数数值

3、添加post的HTTP请求

方法同上,只是请求方法不同,这次改用POST传递参数向服务器及POST请求的URL地址。

JMeter接口&性能测试

根据开发提供的接口文档,参考传入参数选项,录入进去。

4、添加断言

分别右击发布会查询信息和添加发布会信息,添加-》断言-》响应断言

这次选择响应文,然后录入需要匹配的数据。

JMeter接口&性能测试

5、添加察看结果树

右击发布系统项目,单击添加-》监听器-》察看结果树,运行后:

JMeter接口&性能测试

成功显示绿色标志,失败显示红色标示,可以查看到每个用例返回的数据。

6、添加用表格察看结果

JMeter接口&性能测试

可以更详细查看到耗时及字节大小,结果状态,用例信息。

JMeter性能测试

由于JMeter支持录制不够好,现在常用的方法是使用Badboy录制,生成JMeter脚本,然后用JMeter打开,添加监听器来查看结果。

双击软件图标开启badboy即可看到以下界面:

JMeter接口&性能测试

1、开始录制

在地址栏(图中用红色框住部分)中输入你需要录制的Web应用的URL,并点击红圆点按钮开始录制。开始录制后,你可以直接在Badboy内嵌的浏览器(主界面的右侧)中对被测Web应用进行操作,所有的操作都会被记录在主界面左侧的编辑窗口中:如下图所示

JMeter接口&性能测试

将脚本导出为jmeter

JMeter接口&性能测试

线程数代表发送请求的用户数目,Ramp-up period(inseconds)代表每个请求发生的总时间间隔,单位是秒。假如我的请求数目是5,而Ramp-up period(inseconds)参数是10,那么每个请求之间的间隔就是 10/5,也就是2秒。如果Ramp-up period(inseconds)设置为0就代表并发请求。

最后,清除循环次数的复选项“永远”,然后输入1。这个值是告诉JMeter你的测试重复多少次。如果你输入1,那么JMeter只会运行一次测试。要不停的运行你的测试计划,选中“永远”复选框。

如下图摸拟1000个并发用户数量运行一次登录测试。

JMeter接口&性能测试

2、添加监控

这个主要是用来查看测试结果用的,可以以不同形式展现,这里举例说明添加监听器:用表格查看结果、聚合报告和图形报告thread Group->添加->监听器->聚合报告(图形报告、用表格查看结果)如下图所示:

JMeter接口&性能测试

程序运行完成以后,就可以查看相应的测试结果这里以1000个线程组瞬时并发为例得到如下报告:

JMeter接口&性能测试

上图表参数含义如下:

1、样本数目是总共发送到服务器的请求数。
  2、最新样本是代表时间的数字,是服务器响应最后一个请求的时间。
    3、吞吐量是服务器每分钟处理的请求数。
    4、平均值是总运行时间除以发送到服务器的请求数。
    5、中间值是代表时间的数字,有一半的服务器响应时间低于该值,而另一半高于该值。

    6、偏离表示服务器响应时间变化、离散程度测量值的大小,或者,换句话说,就是数据的分布。

可以看出当1000人瞬时并发时平均响应时间为1630ms,吞吐量为3,940.887/分钟,平均响应中值为230ms。

JMeter接口&性能测试

图表含义说明如下:

Label:说明是请求类型,如Http,FTP等请求。

#Samples:也就是图形报表中的样本数目,总共发送到服务器的样本数目。

Average:也就是图形报表中的平均响应时间,是总运行时间除以发送到服务器的请求数。

Median:也就是图形报表中的中间值50%用户响应时间,有一半的服务器响应时间低于该值而另一半高于该值。

90%line:是指90%请求的响应时间比所得数值还要小,也就是90%用户的响应时间。

Min:是代表时间的数字,是服务器响应的最小时间。

Max: 是代表时间的数字,是服务器响应的最大时间。

Error%:请求的错误百分比。本次测试中出现错误的请求的数量/请求的总数。

Throughput:也就是图形报表中的吞吐量,这里是服务器每单位时间处理的请求数,注意查看是秒或是分钟。默认情况下表示每秒完成的请求数。

KB/sec:每秒从服务器端接收到的数据量。

要所得的数据为正确,聚合报告error%必须为0.00%,否则说明用户没有全部通过测试,这里得到平均响应时间1630ms,平均响应中中值为230ms

上图Error出现错误,所得的数据不是准确,从日志和表格来看中间过程发生连接请求超时,在响应时间内,接收请求数响应时间为0。如下图所示:

JMeter接口&性能测试

JMeter接口&性能测试

在测试过程中,平均响应时间、吞吐量、并发连接数是我们性能测试的一个重要衡量指标,但是在测试中,特别是在聚合报告中,得出的90%Line等同于该用户提出的90%响应时间,这个数值对我们性能测试分析也很有参考价值。90%响应时间是说在发送的请求中,90%的用户响应时间都比得到的数值上要短,同时说明,一个系统在应用时,90%的用户响应时间都能达到这个数值,那么就为系统性能分析提供了很好的参考价值。

如果把线程数改为500并发连接请求,结果Error不会出现错误,所得到性能测试数据准确。

JMeter接口&性能测试

总之,需要不断的调优对比数据,接近最佳状态,确定负载达到多少并发数量。

JMeter接口&性能测试的更多相关文章

  1. 接口性能测试--JMeter

    1.JMeter Java Sampler介绍 setupTest做些初始化的工作,每个线程只执行一次 teardownTest做些清理工作,每个线程只执行一次 1.JMeter Java Sampl ...

  2. 【原创】相对完整的一套以Jmeter作为工具的性能测试教程(接口性能测试,数据库性能测试以及服务器端性能监测)

    准备工作 jmeter3.1,为什么是3.1,因为它是要配合使用的serveragent所支持的最高版本,下载链接 https://pan.baidu.com/s/1dWu5Ym JMeterPlug ...

  3. JMeter之Http协议接口性能测试

    一.不同角色眼中的接口 1.1,开发人员眼中的接口    1.2,测试人员眼中的接口 二.Http协议基本介绍 2.1,常见的接口协议 1.:2. :3. :4.:5.: 6. 2.2,Http协议栈 ...

  4. jmeter简单的接口性能测试

    原文转自:https://blog.csdn.net/lovesoo/article/details/78579547 Apache JMeter是一款纯java编写负载功能测试和性能测试开源工具软件 ...

  5. 一个使用Jmeter做接口性能测试的实战案例

    1 安装并配置Jmeter Jmeter的安装不在这里阐述,安装步骤非常简单. 直接进入主题 1.1 数据库连接配置 由于测试过程需要调用数据库获取响应部署数据,因此需要先建立与数据库的连接. 如果不 ...

  6. Jmeter Http接口性能测试

    Jmeter Http接口性能测试 1.      启动Jmeter Jmeter下载解压即可使用,Jmeter启动,点击D:\ProgramFiles\jmeter\apache-jmeter-2. ...

  7. JMeter之Http协议接口性能测试--基础

    一.不同角色眼中的接口 1.1,开发人员眼中的接口    1.2,测试人员眼中的接口 二.Http协议基本介绍 2.1,常见的接口协议 1.:2. :3. :4.:5.: 6. 2.2,Http协议栈 ...

  8. 【技术博客】 利用Postman和Jmeter进行接口性能测试

    利用Postman和Jmeter进行接口性能测试 作者:ZBW 版本:v1.1 在Phylab的开发过程中,对于生成报告接口的性能考量十分重要.原有的Latex接口虽然生成的报告美观,但编译Latex ...

  9. jmeter实现服务器端后台接口性能测试

    实现目的 在进行服务器端后台接口性能测试时,需要连接到Linux服务器端,然后通过命令调用socket接口,这个过程就需要用到jmeter的SSH Command取样器实现了. 脚本实现 设置CSV ...

随机推荐

  1. Drupal 8.2.4安装简体中文步骤

    安装的时候发现很多情况下会出现各种问题,现在写下自己安装成功的步骤: 1.首先官网下载zip安装包drupal-8.2.4.zip 2.下载官方提供的8.2.4简体中文语言包drupal-8.2.4. ...

  2. MySQL Dll语句

    标签:MYSQL数据库/DBA/删除数据库表 概述 因为遇到一些事情,从发表上一篇文章到现在中间间隔了好几个月时间:在接下来的时间里会陆续发表关于mysql的一些文章,从基础到优化最后到管理,欢迎关注 ...

  3. hibernate(三)基本配置,log4j、JUnit配置

    一.基本配置 1.<property name="hbm2ddl.auto">update</property> 改项配置有4个选项: validate:当 ...

  4. UVa 580 &lpar;递推&rpar; Critical Mass

    题意: 有两种盒子分别装有铀(U)和铅(L),现在把n个盒子排成一列(两种盒子均足够多),而且要求至少有3个铀放在一起,问有多少种排放方法. 分析: n个盒子排成一列,共有2n中方案,设其中符合要求的 ...

  5. IOS AVAUDIOPLAYER 播放器使用

    1. 导入 AVFoundation.framework 2.导入头文件  #import <AVFoundation/AVFoundation.h> 3. player = [[AVAu ...

  6. 批量ping主机脚本

    #! /bin/bash for i in `cat test.list`do   host=`echo $i|awk -F"," '{print $1}'`   app_IP=` ...

  7. 【Linux驱动器】Linux-2&period;6&period;20&period;4内核移植

    最近一段时间以来一直学习TQ2440内核开发板移植.嫁接驱动器. 真诚地相信这方面的知识有很大的困难,.但有一种观点认为,从看,难度越大,的提升空间的能力更大! ! 1.解压源代码 从Internet ...

  8. JAVA课程设计 学生成绩管理

    学生成绩管理 可实现功能: 添加学生功能:姓名.学号.性别.出生年月日.(学号自动生成且唯一) 添加学生成绩功能:每个人都有数学.Java与体育四门课,可分课程输入成绩. 根据学生学号查找学生成绩功能 ...

  9. ACM山东工商 栈和队列算法练习

    #include <stdio.h>#include <stdlib.h> #define SIZE   20 typedef struct hold{ char sign[S ...

  10. flask&plus;redis实现抢购(秒杀)功能

    今天面试了 一家非常高大上的公司,问了我关于redis的实用性问题,但是答的不是很好,所以下午通过再次学习 redis,实现相关实用性功能的一种. 对于抢购功能,难点在于 抢购时 由于高并发请求,导致 ...