博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Jmeter 压测 http(s)
阅读量:6303 次
发布时间:2019-06-22

本文共 2674 字,大约阅读时间需要 8 分钟。

  上一篇文章介绍了Jmeter入门相关的知识。本文是实战篇,讲讲如何使用Jmeter对Http(s)进行压力测试。

Http测试

测试一

  首先,添加 “线程组”,选择 “添加” -> "Sampler" -> "HTTP请求"。其次,分别添加 “查看结果树”,“聚合报告”,“图形结果”等,用于查看测试结果。

Jmeter测试1
Jmeter测试1

  配置 "HTTP请求",对应上图中的 “jmeter测试1”。这里配置Get请求,测试本地8080端口下的jmeter/test1接口地址,具体的Http配置及测试代码请参考如下。

Http配置1
Http配置1
@RequestMapping("jmeter")@RestControllerpublic class HttpController {    private AtomicInteger atomicInteger = new AtomicInteger(0);    @GetMapping("test1")    public Map
test1() { Map
map = new HashMap<>(1); int decrementAndGet = atomicInteger.incrementAndGet(); System.out.println("decrementAndGet = " + decrementAndGet); map.put("atomicInteger", decrementAndGet); return map; } }

  配置好后,点击绿色三角图标即可启动线程组,线程组的配置如下。

线程组配置
线程组配置

  启动测试请求后,响应结果如下,这是模拟1s内发起200次的请求。

察看结果树响应
察看结果树响应
聚合报告响应
聚合报告响应
图形结果响应
图形结果响应

测试二

  一般而言,测试都需要尽可能的模拟真实用户。因此,通过传递不同的请求参数,来模拟不同的用户进行请求是必不可少的。接下来使用 “函数助手的” 方式,告诉大家如何模拟不同的用户进行压力测试。

  案例场景:模拟10个用户发起POST请求,请求地址jmeter/test2,要求在Http请求头中自定义请求头 Authorization ,不同用户对应的自定义请求头参数值不同。

1. 使用函数助手添加请求头参数

CSV,即Comma Separate Values,这种文件格式经常用来作为不同程序之间的数据交互格式。具体文件格式:每条记录占一行,以逗号为分隔符,逗号前后的空格会被忽略。字段中包含有逗号,该字段必须用双引号括起来;字段中包含有换行符,该字段必须用双引号括起来;字段前后包含有空格,该字段必须用双引号括起来;字段中的双引号用两个双引号表示;字段中如果有双引号,该字段必须用双引号括起来。

  在本地创建test2.cvs(如:G:\TEST\test2.cvs),添加10个用户对应的Authorization值(假设是:1 ~ 10),使用函数助手进行添加。

函数助手配置
函数助手配置
2. 配置 “HTTP信息头管理器”
配置HTTP信息头管理器
配置HTTP信息头管理器

  如上图所示,分别设置 Content-Type:application/jsonAuthorization:${__CSVRead(G:\TEST\test2.cvs,0)}

3. 模拟用户请求进行测试
@RequestMapping("jmeter")@RestControllerpublic class HttpController {    @PostMapping("test2")    public Map
test2(HttpServletRequest request) { Map
map = new HashMap<>(1); String authorization = request.getHeader("Authorization"); map.put("authorization", authorization); return map; }}

  启动测试后,响应结果如下。

察看结果树响应
察看结果树响应
聚合报告响应
聚合报告响应

测试三

  案例场景:使用配置元件 “CSV数据文件” 的方式,模拟10个用户发起PUT请求,请求地址jmeter/test3,要求不同用户对应请求参数reqId的值不同。

1. 使用“CSV数据文件”添加请求参数

  在本地创建test2.cvs(如:G:\TEST\test2.cvs),添加10个用户对应的reqId值(假设是:1 ~ 10)。

CSV数据文件配置
CSV数据文件配置
2. 配置 “HTTP信息头管理器”
配置HTTP信息头管理器
配置HTTP信息头管理器

  如上图所示,通过在请求路径使用占位符${}来读取“CSV数据文件”中对应的配置参数和值。注意,占位符内的参数名称要保持与配置一致。

3. 模拟用户请求进行测试
@RequestMapping("jmeter")@RestControllerpublic class HttpController {    @PutMapping("test3")    public Map
test3(@RequestParam int reqId) { Map
map = new HashMap<>(1); System.out.println("id = [" + reqId + "]"); map.put("id", reqId); return map; }}

  启动测试后,响应结果如下。

察看结果树响应
察看结果树响应

Https测试

  为了方便,关于https的测试将选取网上站点进行,如,参考如下。

Https测试配置
Https测试配置

写在最后

  关于http(s)这块的测试到这就介绍完了,本文重点部分就是学习两种实现参数化的方式。JMeter作为一款压测工具,我们只需要熟悉之后再多加练习,便可以基本掌握。下来我将继续梳理如何使用JMeter进行ws(s)测试,欢迎关注。


Jmeter系列

转载地址:http://oubxa.baihongyu.com/

你可能感兴趣的文章
公司内部分享【富有成效的每日站会】总结
查看>>
打造一个上传图片到图床利器的插件(Mac版 开源)
查看>>
iOS横竖屏
查看>>
thinkphp判断更新是否成功
查看>>
Do While ... Loop 与 Do Until ... Loop 的区别
查看>>
【Linux】查询某个字符串出现次数
查看>>
高效使用jquery之一:请使用'On'函数
查看>>
冲刺第一周第三天
查看>>
ERP环境检测工具设计与实现 Environment Detection
查看>>
不要在构造中做太多事情,不然有时候会出现有意思的代码~
查看>>
IIS 发布网站遇到的问题
查看>>
NuGet学习笔记(2)——使用图形化界面打包自己的类库
查看>>
xcode中没有autoSizing的设置
查看>>
字符编码
查看>>
企业应用:应用层查询接口设计
查看>>
浅谈Excel开发:十 Excel 开发中与线程相关的若干问题
查看>>
nfd指令的详细说明
查看>>
安装VisualSvn Server时遇到的问题
查看>>
不用Visual Studio,5分钟轻松实现一张报表
查看>>
人脸识别 开放书籍 下载地址
查看>>