Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Jmeter 压测 http(s)

Jmeter 压测 http(s)

作者头像
happyJared
发布于 2018-09-20 02:08:45
发布于 2018-09-20 02:08:45
1.9K05
代码可运行
举报
文章被收录于专栏:happyJaredhappyJared
运行总次数:5
代码可运行

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

Http测试

测试一

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

Jmeter测试1

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

Http配置1

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@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信息头管理器”

配置HTTP信息头管理器

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

3. 模拟用户请求进行测试
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@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)。

CSV数据文件配置

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

配置HTTP信息头管理器

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

3. 模拟用户请求进行测试
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@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的测试将选取网上站点进行,如我的简书主页,参考如下。

Https测试配置

写在最后

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


Jmeter系列

关于Jmeter Jmeter 压测 http(s) Jmeter压测 ws(s)

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018.04.29 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Jmeter 压测 HTTP
  上一篇文章[关于Jmeter]介绍了Jmeter入门相关的知识。本文是实战篇,讲讲如何使用Jmeter对 Http 进行压力测试。
happyJared
2020/02/18
1.3K0
Jmeter测试工具使用
启动Jmeter: 路径:\apache-jmeter-2.13\bin\jmeter.bat
JQ实验室
2022/02/09
2210
Jmeter测试工具使用
Jmeter 压测 ws(s)
  上一篇Jmeter压测http(s)介绍了如何使用Jmeter压测常规的web服务接口。本文将继续演示如何使用Jmeter对ws(s)进行压力测试。
happyJared
2018/09/20
3.7K0
Jmeter 压测 ws(s)
用Jmeter实现对接口的压力测试
1)第一种:让开发帮忙生成多个token(多个用户账户生成的token),导出为csv格式的文件(以下步骤均以该方法为基础)
顾翔
2020/09/23
2.1K0
用Jmeter实现对接口的压力测试
Jmeter(八) - 从入门到精通 - JMeter配置元件(详解教程)
JMeter配置元件可以用来初始化默认值和变量,读取文件数据,设置公共请求参数,赋予变量值等,以便后续采样器使用。将在其作用域的初始化阶段处理。配置元件(Config Element)提供对静态数据配置的支持,可以为取样器设置默认值和变量。
北京-宏哥
2020/06/11
4.4K0
Jmeter(八) - 从入门到精通 - JMeter配置元件(详解教程)
jmeter使用个人总结(很细很全)
Apache JMeter 是 Apache 组织开发的基于 Java 的压力测试工具。用于对软件做压力测试,它最初被设计用于 Web 应用测试,但后来扩展到其他测试领域。 它可以用于测试静态和动态资源,例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库、FTP 服务器, 等等。JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。另外,JMeter 能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。为了最大限度的灵活性,JMeter 允许使用正则表达式创建断言。
魔都虫师
2020/05/21
5K0
jmeter使用个人总结(很细很全)
jmeter并发接口测试教程_jmeter高并发测试
3.添加配置元件-CSV 数据文件设置,将测试数据存在csv文件中,配置路径和需要读取的参数
全栈程序员站长
2022/11/11
3.6K0
基于jmeter完成压测
jmeter 算是我们日常比较常用的压测工具,这篇文章笔者就介绍一下基于 win10 完成 jmeter 的安装及使用。
程序员Leo
2023/08/07
3990
基于jmeter完成压测
使用Jmeter进行http接口性能测试
在进行网页或应用程序后台接口开发时,一般要及时测试开发的接口能否正确接收和返回数据,对于单次测试,Postman插件是个不错的Http请求模拟工具。
lyb-geek
2018/07/26
1.9K0
使用Jmeter进行http接口性能测试
Jmeter(十九) - 从入门到精通 - JMeter监听器 -上篇(详解教程)
  监听器用来监听及显示JMeter取样器测试结果,能够以树、表及图形形式显示测试结果,也可以以文件方式保存测试结果,JMeter测试结果文件格式多样,比如XML格式、CSV格式。默认情况下,测试结果将被存储为xml格式的文件,文件的后缀: ".jtl"。另外一种存储格式为CSV文件,该格式的好处就是效率更高,但存储的信息不如xml格式详细。
北京-宏哥
2020/08/11
4.7K0
Jmeter(十九) - 从入门到精通 - JMeter监听器 -上篇(详解教程)
Jmeter(五十五) - 从入门到精通高级篇 - 如何在linux系统下运行jmeter脚本 - 下篇(详解教程)
 上一篇宏哥已经介绍了如何在Linux系统下运行Jmeter脚本以及宏哥在运行过程中遇到的问题和解决方案,想必各位小伙伴都已经在Linux服务器或者虚拟机上已经实践并且都已经成功运行了,上一篇宏哥讲解和分享的是运行的没有调用外部文件的jmeter脚本。但是在实际工作中往往需要我们调用外部文件(包括CSV参数化文件、java需要用的架包等)进行参数传递,那么如果我们遇到这样的jmeter脚本如何在Linux系统下运行呢???那么今天宏哥就来介绍一下如何在Linux系统下运行带有外部文件的Jmeter脚本。以供各位小伙伴或者童鞋们参考,希望对你有所帮助。
北京-宏哥
2022/06/30
2.5K0
Jmeter(五十五) - 从入门到精通高级篇 - 如何在linux系统下运行jmeter脚本 - 下篇(详解教程)
Jmeter压测快速体验
前言 最近在看neo4j相关的官网文档以及一些调优参数,同时也学了下Jmeter,为了测试下neo4j服务的性能,虽然不是专业搞测试的,但是我觉得每个优秀的开发者都应该学会主动压测自己服务和代码的性能,并非写完代码之后直接扔给测试就完事了,兵法云:知彼知己,才能百胜不殆嘛。 jmeter是什么 jmeter是一款开源的测试工具,源码100%基于Java并开源,最初的设计目的是用来测试Web应用的,由于其非常轻量级和免费,后来又扩展到其他测试领域。 jmeter的一些特点: 1.能够对HTTP,FTP,TCP
我是攻城师
2018/05/14
1.7K0
使用Jmeter进行功能和性能测试
Jmeter 的工作原理是仿真用户向服务器发送请求,并收集服务器应答信息并计算统计信息。
鱼找水需要时间
2023/04/09
2K0
使用Jmeter进行功能和性能测试
【JMeter-3】JMeter参数化4种实现方式
什么是参数化?从字面上去理解的话,就是事先准备好数据(广义上来说,可以是具体的数据值,也可以是数据生成规则),而非在脚本中写死,脚本执行时从准备好的数据中取值。
云深i不知处
2020/09/16
4.3K0
如何正确使用JMeter性能测试?紧扣面试实际要求
前段时间专门挑了一段时间在准备面试。经过两次面试后,有一些比较深刻的认识。对于企业要求来说,除了对专业理论知识考究之外,对测试工具这块也是看重的。
憨憨默默成神
2021/10/12
1.7K0
如何正确使用JMeter性能测试?紧扣面试实际要求
apache-jmeter-3.3的简单压力测试使用方法
Jmeter是一款优秀的开源测试工具, 是每个资深测试工程师,必须掌握的测试工具,熟练使用Jmeter能大大提高工作效率。熟练使用Jmeter后, 能用Jmeter搞定的事情,你就不会使用LoadRunner了。
Java编程指南
2019/08/02
1.1K0
apache-jmeter-3.3的简单压力测试使用方法
Jmeter压测工具入门篇
背景:本文档主要内容是jmeter脚本入门配置以及调试方法,借助已有的jmeter脚本模板,快速理解并写出一个成功的jmeter脚本用例。
魏景维
2021/12/10
3.3K1
jmeter做接口压力测试_jmeter接口性能测试
  jmeter是apache公司基于java开发的一款开源压力测试工具,体积小,功能全,使用方便,是一个比较轻量级的测试工具,使用起来非常简单。因为jmeter是java开发的,所以运行的时候必须先要安装jdk才可以。jmeter是免安装的,拿到安装包之后直接解压就可以使用,同时它在linux/windows/macos上都可以使用。   jmeter可以做接口测试和压力测试。其中接口测试的简单操作包括做http脚本(发get/post请求、加cookie、加header、加权限认证、上传文件)、做webservice脚本、参数化、断言、关联(正则表达式提取器和处理json-json path extractor)和jmeter操作数据库等等。
全栈程序员站长
2022/11/09
5.8K0
jmeter做接口压力测试_jmeter接口性能测试
干货 | Jmeter 如何保证抢购、秒杀活动正常运行?
平常为了保证运营促销、抽奖活动能正常运行,我们一般都需要使用 Jmeter、LoadRunner 对接口进行压力测试
AirPython
2021/01/05
1.4K0
干货 | Jmeter 如何保证抢购、秒杀活动正常运行?
Mac下Jmeter快速安装与入门-模拟测试Post请求及设置Http头
观察后返现是请求头中的Content-Type的格式不对,我们的请求格式是Json,而Jmeter默认的是x-www-form-urlencoded
翎野君
2023/05/12
7960
Mac下Jmeter快速安装与入门-模拟测试Post请求及设置Http头
相关推荐
Jmeter 压测 HTTP
更多 >
LV.1
这个人很懒,什么都没有留下~
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验