jmeter使用入门(+influxdb+grafana)

目录

零、jmeter介绍

0.1、梳理下jmeter出现的概念与层级关系

0.2、取样器

0.3、监听器

0.4、逻辑控制器

0.4.1、 if控制器

0.4.2、 事务控制器

0.4.3、 循环控制器

0.4.4、 while控制器

0.4.5、 随机控制器

0.4.6、 随机顺序控制器

一、jmeter发送http请求

1、模拟一个前端请求

1.1、背景及诉求

1.2、具体步骤

2、http压测内网服务

注:mac下运行jmeter访问内网trpc-go服务是通的(至少内网下是通的)。

2.1、背景及诉求

2.2、具体步骤

3、jmeter发送wss(websocket)请求

三、jmeter其他各种功能

四、jmeter的可视化—— +influxdb+grafana

0、准备

1、安装influxdb

2、jmeter通过Backend Listener连接influxdb

2、安装grafana

3、查看执行效果

五、jmeter安装常用插件

1、安装插件管理器

2、配置udp请求

3、配置tcp请求

六、Linux下的非GUI模式压测

七、Jmeter分布式压测

八、常用工具收藏


官网: Apache JMeter - Download Apache JMeter

零、jmeter介绍

系列文章可以参考: jmeter常用配置元件介绍总结之逻辑控制器_jmeter if吞吐量控制器-优快云博客

0.1、梳理下jmeter出现的概念与层级关系

(1) 层级关系其实就如下图所示:

(1)测试计划:位于最外层,对应一个.jmx文件;

(2)线程组:理解为模拟多少个用户;测试计划→右键可以添加一个个线程组。

(3)取样器/逻辑控制器/监听器等:线程组 → 右键 添加。

注:取样器/逻辑控制器/监听器 都有很多花样后面介绍。

0.2、取样器

        理解对我们输入的数据进行取样,并构建对应协议的数据。这些既然要发送数据肯定要先采样获得想要发送的数据(取样用户数据),所以“sampler”还是很直观的。

        “sampler”:取样器、采样员。理解成取样器就很直观了。

0.3、定时器 

顾名思义:起到定时的作用。 

0.3.1、固定定时器

功能:设置固定时长,用来模拟用户的思考时间,设置后发出的请求会有间隔,即:间隔时间 = 取样器请求发送时间 + 定时器思考时间。

效果:监听器 → 以表格察看结果,确实可以看到对应间隔时间。

0.3.2、统一随机定时器

功能:取样器请求前做随机时间的延迟。

参数说明:

  • Random Delay Maximum:随机延迟的最大,会从0–设置的值这个范围来随机,随机出来的值不会大于设置的值,单位ms。
  • Constant Delay Offset:设置固定的延迟偏移值,单位ms。请求的总延迟时间是 = 随机延迟时间(Random Delay) + 固定偏移值(Constant Delay)。

0.4、逻辑控制器

(1)控制器可以控制sampler的执行顺序、执行逻辑。显然,控制器是用来控制取样器的否则没意义。

(2)也就是逻辑控制器会控制在其下一级的sampler的执行逻辑情况。就像是for循环会控制for循环内部的代码的执行次数那样。

0.4.1、 if控制器

功能:输入条件表达式,条件为真时,执行控制器里面的请求。我们可以提取上一个请求的相应数据,并根据其做逻辑。
参数说明:具体用到的时候再研究。

0.4.2、 事务控制器

功能:合并统计示例下的所有测试元素所花费的总时间。就是把若干个sampler当成一个整体统计的意思。

0.4.3、 循环控制器

功能:会将循环控制器里面的所有请求循环指定次数。

0.4.4、 while控制器

功能:输入表达式,来控制,控制器里面的请求循环多少次
参数说明
Condition (function or variable):输入表达式,控制循环的次数;推荐使用_jexl3或_groovy来执行表达式;内容为空白时会一直执行。

0.4.5、 随机控制器

功能:控制器中的请求元素随机取一个执行,勾选,忽略子控制器块,会忽略子控制器的功能。

0.4.6、 随机顺序控制器

功能:控制器中每个请求元素都会被执行一次,但执行的顺序是随机的。

 0.9、监听器

监听器是用来监听及显示jmeter取样器测试结果的,能够以树、表及图形等多种形式显示测试结果。

0.9.1、查看结果树

功能:用于调试测试时取样器的请求参数返回结果等,可以将结果写入到一个外部文件中。

0.9.2、聚合报告

功能:统计所有请求的,请求情况,,可以将结果写入到一个外部文件中。
 

0.9.3、以表格形式查看

功能:以表格的形式,展示请求。
 

0.9.4、响应结果图

功能:以图表的形式展示请求响应随时间变化的情况。

0.9.5、图形结果

功能:以图表的形式展示请求响应随时间变化的情况。

0.9.6、以表格察看结果

功能:以表格的形式罗列结果。

一、jmeter模拟发送请求

以后就可以用jmeter来压测接口了,而且是从前端http接口层面的压测。

1、模拟前端http请求

1.1、背景及诉求

背景很简单就是想用jmeter模拟一个实际业务中用到的http请求,对应功能点如下。

其对应的接口,请求时候所带的cookie、参数、payload等都可以通过开发者工具中看到。

注:网上请求百度的case很多了,没什么可说的。我们贴合实际业务场景,直接去请求saas软件的一个实际业务接口。这种情况需要考虑登录态(cookie)等问题也更贴合实际,为此有必要专门演示一把。

1.2、具体步骤

打开浏览器调试工具,打开jmeter。

(1)利用jmeter的 import from cURL进行导入。

①调试工具中选中目标接口→右键→copy→copy as cURL

 注:其copy下来的其实是如下一串结果。按理来说应该是包括所有的必要信息了才是。

curl 'https://testgateway.qidian.qq.com/v1/interface/inner/cloudcc_303213' \
  -H 'authority: testgateway.qidian.qq.com' \
  -H 'accept: application/json, text/plain, */*' \
  -H 'accept-language: zh-CN,zh;q=0.9' \
  -H 'content-type: application/json' \
  -H 'cookie: login_url=https%3A%2F%2Foaconsole.qidian.qq.com%2Flogin%2F%3Fshow_type%3Dqa%26source%3Dworkbench; d2=Tcxl6Jtcmi8MwUIZvsayrx7yxmoeO0z6CGTBYhD59zvH1JjuFqQBzAzSLoG50Z0W93RXa1giPvYP14sswnxOMGCYLgR0SygSguzlcjr14zu8pEnRkRQ3D3Cna19tOi0ooGy0RZeBvn3mrBjaKGF
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

焱齿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值