Jmeter 压测 HTTP

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

Http测试

测试一

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

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

@RequestMapping("jmeter")
@RestController
public class HttpController {

    private AtomicInteger atomicInteger = new AtomicInteger(0);

    @GetMapping("test1")
    public Map<String, Object> test1() {
        Map<String, Object> 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信息头管理器”

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

3. 模拟用户请求进行测试
@RequestMapping("jmeter")
@RestController
public class HttpController {

    @PostMapping("test2")
    public Map<String, Object> test2(HttpServletRequest request) {
        Map<String, Object> 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)。

2. 配置 “HTTP信息头管理器”

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

3. 模拟用户请求进行测试
@RequestMapping("jmeter")
@RestController
public class HttpController {

    @PutMapping("test3")
    public Map<String, Object> test3(@RequestParam int reqId) {
        Map<String, Object> map = new HashMap<>(1);
        System.out.println("id = [" + reqId + "]");
        map.put("id", reqId);
        return map;
    }

}

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

Https测试

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

写在最后

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

文章已授权转载,原文链接:Jmeter 压测 http(s)

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,088评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,715评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,361评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,099评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 60,987评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,063评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,486评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,175评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,440评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,518评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,305评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,190评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,550评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,880评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,152评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,451评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,637评论 2 335

推荐阅读更多精彩内容

  •   上一篇文章关于Jmeter介绍了Jmeter入门相关的知识。本文是实战篇,讲讲如何使用Jmeter对Http(...
    happyJared阅读 4,481评论 0 18
  • 公司最近需要测试后台性能,所以学习使用了Jmeter,在此做记录,也分享给更多需要的人。 这篇文章是 JMeter...
    顾顾314阅读 4,231评论 0 10
  • 1. JMeter 测试计划 测试计划 使用JMeter进行测试的起点,是其它JMeter测试元件的容器。 线程组...
    alamZheng阅读 3,317评论 0 7
  • jmeter入门1.1. jmeter简介1.2. jmeter安装 jmeter基本使用2.1. jmeter基...
    笨笨翔阅读 1,298评论 0 3
  • 这篇文章接上一篇(即 JMeter 第2篇) 文章里的每一句话都是我斟酌过的,我认为需要有注释或者插图的地方都会有...
    顾顾314阅读 1,281评论 0 1