使用jMeter构造大量并发HTTP请求进行微服务性能测试

比如我开发好了一个微服务,想测试其在大并发请求下的性能表现如何。

比较方便的一个做法是使用工具jMeter来构造这些请求。

创建一个新的工程:

创建一个新的Thread Group,下图意思是这个工程会使用3个线程同时发请求,每个请求执行一次。

在这个Thread Group里创建一个新的HTTP请求,维护如下属性。

  • Protocol: https
  • Server name:
  • Http request method: GET
  • Http path: /sap/c4c/odata/v1/c4codata/AccountCollection/
  • Use KeepAlive: 不选择

在参数标签页,维护参数名称$search, 值为‘Wang‘。这个请求的意思是使用Odata请求查询账号名称为‘Wang‘的实例。

创建一个新的HTTP Header Manager,维护执行这个请求的Authorization信息。这里我使用Basic认证方式,即HTTP header名称为Authorization,值为用户名:密码经过base64编码之后的值。

维护完毕之后点执行按钮,

会观察到3个线程同时发出HTTP请求,并能看到每个请求的响应时间。

也可以用命令行 jmeter -n -t 的方式执行测试,看到的结果和在jMeter GUI上执行的一致。

要获取更多Jerry的原创技术文章,请关注公众号"汪子熙"或者扫描下面二维码:

原文地址:https://www.cnblogs.com/sap-jerry/p/8969502.html

时间: 2024-10-26 05:59:29

使用jMeter构造大量并发HTTP请求进行微服务性能测试的相关文章

使用jMeter构造大量并发的随机HTTP请求

在前一篇文章使用jMeter构造大量并发HTTP请求进行微服务性能测试里,我介绍了如何用jMeter构造并发HTTP请求.但是通过文中介绍的方式构造的并发请求,其请求参数都是硬编码的'Wang'. 有没有办法让每个并发请求查询的参数都不一样呢?比如让jMeter构造一些从1到100的随机数,作为查询请求的一部分? JerryTestCustomer_<1~100> 解决方案 创建一个User Parameter: Parameter的Name为uuid,值为${__Random(1,100)}

JAVA项目实战,项目架构,高并发,分布式,微服务架构,微信支付,支付宝支付,理财系统,并发编程

Spring Cloud集成项目有很多,下面我们列举一下和Spring Cloud相关的优秀项目,我们的企业架构中用到了很多的优秀项目,说白了,也是站在巨人的肩膀上去整合的.在学习Spring Cloud之前大家必须了解一下相关项目,希望可以帮助到大家. Spring Cloud Config 配置管理工具包,让你可以把配置放到远程服务器,集中化管理集群配置,目前支持本地存储.Git以及Subversion. Spring Cloud Bus 事件.消息总线,用于在集群(例如,配置变化事件)中传

阿里技术三面:JVM+高并发性能+单点登录+微服务

就最近两周找工作的情况来看,市场对Java工程师的需求并没有因为经济发展受阻而大幅减少,只是市场对Java工程师的要求越来越高. 但我们要知道,寒冬之中,什么是最珍贵,就让鄙人告诉你:人才.只要有过硬的技术和装备,在逆风直下的情况下,咱们也能迎难而上,打他个戳手不及.不是"李云龙"大哥说:"过狭路相逢勇者胜." 一面 自我介绍谈一个你觉得你学到最多的项目,使用了什么技术,挑战在哪里Spring的bean的作用域?(比如:singleton,prototype等)Sp

Springcloud 微服务 高并发(实战1):第1版秒杀

疯狂创客圈 Java 高并发[ 亿级流量聊天室实战]实战系列之15 [博客园总入口 ] 前言 疯狂创客圈(笔者尼恩创建的高并发研习社群)秒杀系列文章,将为大家介绍三个版本的高并发秒杀: 版本1 :springcloud + zookeeper 秒杀 版本2 :springcloud + redis 分布式锁秒杀 版本3 :springcloud + Nginx + Lua 高性能版本秒杀 这是第一个版本实现,文章比较长,大家可以挑选感兴趣的部分,选择性阅读. 1 为何要以秒杀做为高并发实战案例?

使用Jmeter构造MySQL测试数据

前言: 当我们进行API测试.Web Service或者其他系统模块测试时,你可能需要从数据库获取并记录数据.这些测试的目的是检查数据库中指定的数据,或者向数据库添加指定的数据,这篇文章会展示使用JMeter如何检查.更新或者新建数据.你可以基于这些例子,实现更加复杂的数据库交互测试. 在本篇博客中,我们将使用下列软件: Jmeter 3.3 MySQL 5.7.18 Community Edition Java8,在写本篇博客时,Java 9已经发布,不过现在还不建议使用,——2018.3.1

Python使用grequests并发发送请求

目录 前言 grequests简单使用 grequests和requests性能对比 异常处理 前言 requests是Python发送接口请求非常好用的一个三方库,由K神编写,简单,方便上手快.但是requests发送请求是串行的,即阻塞的.发送完一条请求才能发送另一条请求. 为了提升测试效率,一般我们需要并行发送请求.这里可以使用多线程,或者协程,gevent或者aiohttp,然而使用起来,都相对麻烦. grequests是K神基于gevent+requests编写的一个并发发送请求的库,

使用dispatch_group实现并封装分组并发网络请求

在实际开发中我们通常会遇到这样一种需求:某个页面加载时通过网络请求获得相应的数据,再做某些操作.有时候加载的内容需要通过好几个请求的数据组合而成,比如有两个请求A和B,我们通常为了省事,会将B请求放在A请求成功的回调中发起,在B的成功回调中将数据组合起来,这样做有明显的问题: 1.请求如果多了,需要写许多嵌套的请求 2.如果在除了最后一个请求前的某个请求失败了,就不会执行后面的请求,数据无法加载 3.请求变成同步的,这是最大的问题,在网络差的情况下,如果有n个请求,意味着用户要等待n倍于并发请求

【转】关于“不同浏览器的并发异步请求”的简单研究

之前在开发过程中有发现在一个页面内同时对单个url发出多个Ajax请求最后完成回调的只有最后一个.具体是什么原因导致的呢?针对这个问题,本人做了进一步的测试. 对于单个页面内并发的异步请求分为以下几种情况: 并发多个相同url的请求 并发多个不同url的请求(参数不同,协议相同) 并发多个不同url的请求(参数和协议都不同) 测试方法: 客户端:同时发出N异步请求,并输出发出请求的时间:当服务器返回相应数据后将接受请求的时间输出,并输出之前所发送的请求的标识ID. 服务器:服务器接到请求后延时一

JMeter 如何把上一个请求的结果作为下一个请求的参数 —— 使用正则提取器

有这样一个压力测试环境,有一个上传页面,上传成功之后服务器会返回一些上传信息(比如文件的 id 或者保存路径之类的信息),然后压力机会继续下一个请求,比如调整 id 为 xx 的文件的一些信息等等.问题来了:JMeter 是不知道上传后文件的 id 的,第二个请求势必从第一个请求的返回结果中提取出文件 id,然后依此为参数发起第二次请求.那么 JMeter 如何把上一个请求的结果作为下一个请求的参数呢?本文将介绍如何使用正则提取器解决这个问题.        1. 提参采样器添加正则表达式提取器