JMeter的使用,同时发起多次请求的压测,POST请求使用scv参数化文件
目录
- 0.安装
- 1.发起一次请求,例子贯穿使用
- 1.1新建一个线程组
- 1.2新建一个测试
- 1.3填写请求
- 1.4添加请求头
- 1.5添加Cookie
- 1.6建立观察树
- 1.7发起请求
- 1.8查看请求结果
- 1.9断言
- 1.10响应乱码问题
- 1.11 JSON格式美化
- 2.压力测试
- 2.1并发请求
- 2.2连续请求
- 3.动态参数
- 3.1用户自定义变量
- 3.2关联
- 3.3前置/后置处理器
- 3.4 POST请求使用scv参数化文件
- 3.4.1编辑scv文件
- 3.4.2编辑JMeter文件
0.安装
地址:https://jmeter.apache.org/download_jmeter.cgi
解压后, 运行 “bin/jmeter.bat”
Jmeter 是支持中文的, 启动Jmeter 后, 点击 Options -> Choose Language 来选择语言
1.发起一次请求,例子贯穿使用
调用后端一个POST的请求,需要带请求头、Cookie、请求体
1.1新建一个线程组
1.2新建一个测试
要在线程组里右键
1.3填写请求
此处遇到过问题,就是参数传到后端参数显示问号
解决方法:在上图内容编码栏目里填写UTF-8,针对不同后端不同的编码,我使用的UTF-8所以填写UTF-8后就生效了
1.4添加请求头
先新建一个配置元件,类型为信息头的管理器
点开,填写支持JSON、UTF-8格式的请求头
1.5添加Cookie
先新建一个配置元件,类型为Cookie管理器
填写要添加的请求头,我是使用的导入,太多了,少的话直接使用添加就行
载入有格式要求,首先.txt文档
按照这个格式书写
格式如下
# JMeter generated Cookie file,中间使用Tab隔开TRUE 接口URI FALSE 0 cookie名 cookie值
1.6建立观察树
完成上述已经可以进行请求了,他会把请求结果保存成文件,但为了方便查看结果,我们建立观察树直接在软件中进行查看。
1.7发起请求
1.8查看请求结果
我前几次请求Cookie输入错误导致前几次请求失败
1.9断言
这里使用JSON断言,其余同理
执行效果还是在“观看结果树”里
1.10响应乱码问题
产生原因:响应页面没有做编码处理,jmeter默认按照ISO-8859-1编码格式进行解析
解决方法一:修改默认配置文件
bin目录下找到jmeter.properties文件,文件里找到sampleresult.default.encoding这个参数,此行默认是注释的可以看到说明,默认值是ISO-8859-1。将ISO-8859-1修改成utf-8,去掉注释符号,重启Jmeter
解决方法二:
通过后置处理器BeanShell PostProcessor
输入prev.setDataEncoding(“utf-8”); 目的是修改响应数据编码格式为utf-8,保存
乱码解决
1.11 JSON格式美化
可以看见上面的数据非常乱,但他是个JSON格式,我们点击这里修改他的响应格式
2.压力测试
压力测试,就是 被测试的系统,在一定的访问压力下,看程序运行是否稳定/服务器运行是否稳定(资源占用情况)
比如: 2000个用户同时到一个购物网站购物,这些用户打开页面的速度是否会变慢,或者网站是否会奔溃
2.1并发请求
为什么使用JMeter,原来的Postman他不香吗?Postman里有runner但是几经测试发现都是线式请求,就是请求完一次再发起另一次请求。我需要的是1ms甚至是不到1ms就发起多次请求,创造并发的情况,Postman并不能实现我的需求。
还是上述第一章的请求,在点击线程组进行设置
创建汇总报告看结果
点击运行看结果
汇总报告这里面的参数都什么意思:
最小值:最小响应时间;
最大值:最大响应时间;
异常%:本次测试中出现的错误率,即 错误的请求的数量/请求的总数;
吞吐量——默认情况下表示每秒完成的请求数(Request per Second),当使用了 Transaction
接收:每秒从服务器端接收到的数据量;
发送:每秒从客户端发送的请求的数量。
服务器效果:
2.2连续请求
根据上面线程属性的组合设置实现
就一个用户不断执行一个请求,但中间要间隔5秒,如何实现?
创建一个固定定时器就好啦。见下截图
3.动态参数
3.1用户自定义变量
创建字段
使用字段,如果是GET在URI处同理使用
3.2关联
是第二个Request, 使用第一个Request中的数据
使用后置处理器取到响应体中的数据
填写引用名称、如何获取
新建第二个Http Request,使用${引用名称}即可使用
3.3前置/后置处理器
Postman中是在这里编写,Postman给提供很多模板在右侧
JMeter在这编写,语法也不复杂
3.4 POST请求使用scv参数化文件
3.4.1编辑scv文件
创建一个Excel文件编辑需要的字段,我这里使用了2个一个URI、一个POST请求内容,示例如下
直接用.xlsx格式,出来一堆乱码
写完后另存为.csv格式
变量名不要用中文
3.4.2编辑JMeter文件
创建如下配件
- 线程组
我是有7条数据,这么配置相当于一个用户请求7次
- .新建信息头管理器
因为是POST请求,所以要加content-type:application/json
- 新建CSV Data Set Config
参数说明:
Filename: 文件的完整路径,包括文件名和类型
File encoding:文件编码,好像不写也可以,开始写了utf-8报错了
Variable Names(comma-delimited):储存参数的变量名,如果在.csv文件中有写变量名就不需要写了,在这里写的话需要将每个变量名用“,”隔开
Delimiter(use ‘\t’ for tab): 分隔多个参数的分隔符
Allow quoted data?:是否有引用数据,ps:如果参数中有逗号或双引号,要选为“true”
Recycle on EOF ?:文件读取完后是否继续读取
Stop thread on EOF ?:文件读取完后是否停止线程
- 添加HTTP请求
在请求中,基本上都是参数化了的,格式为“${参数}”
- 发起请求查看结果树即可
完~
家人们欢迎点赞、收藏、点评、提问呦
躬身自省,淳朴而谦逊否——文文的博客
JMeter的使用,同时发起多次请求的压测,POST请求使用scv参数化文件相关推荐
- jmeter constant timer 如何添加_阿里巴巴在开源压测工具 JMeter 上的实践和优化
Apache JMeter 是 Apache 旗下的开源压测工具,创建于 1999 年初,迄今已有超过 20 年历史.JMeter 功能丰富,社区(用户群体)庞大,是主流开源压测工具之一. 性能测试通 ...
- JMETER性能测试从入门到精通高级篇 - 分布式压测部署之负载机的设置(详解教程)
1.简介 千呼万唤始出来,这一篇感觉写了好久,总想写的清楚明白简洁,但是还是洋洋洒洒写了好多,希望大家喜欢吧!本来打算将这一篇文章是放在性能测试中讲解和分享的,但是有的童鞋或者小伙伴们私下问的太多了, ...
- JMeter实用案例讲解:生成Mockup/Dummy JSON压测REST API
在实际工作中我们经常需要做一些性能测试,过去我基本上使用的都是JMeter,这么多年使用下来的一个感受是:JMeter并不太容易上手,但确实强大灵活,可以应对一些复杂的测试场景,一但掌握了,基本就不再 ...
- 软件测试 | Jmeter 性能测试工具的实战应用《接口性能压测》的操作步骤详解
嘿.大家好,我是4U: 接口测试可以提前发现软件bug,有效地降低软件的开发成本,而接口性能压测也可以达到同样的效果.如果形容LR是大炮,那么JM则是一把狙击步枪. 那么今天我们来讲讲接口性能压测. ...
- wrk 使用lua脚本进行压测接口请求
lua脚本是一种轻量小巧的脚本语言,用标准c语言编写,并以源代码形式开放,其设计目的是为了嵌入应用程序中,从而为程序提供灵活的扩展和定制功能.wrk工具嵌入了lua脚本语言,因此,在自定义压测场景时, ...
- wrk 压测post请求遍历循环动态参数
一.post 请求,动态传参数,只有body参数不同: startpost.lua 脚本: loginmap = {} counter = 0 --初始化方法 function init(args) ...
- 云智慧压测实战分享之JMeter场景设置与监控
随着IT技术的飞速发展和企业互联网+业务规模不断扩张,IT架构经历了以数据计算为核心的C/S架构.以聚焦业务功能及服务化构建应用的经典互联网架构和如今整合IT资源和按需使用的云计算架构三个阶段. 与之 ...
- Jmeter电商系统压测实战一
目录 一.性能测试背景: 二.常规的被测系统架构模型 三.性能测试流程 一. 性能需求指标: 二. 性能模型: 三. 性能方案: 四. 性能监控: 五. 性能场景执行: 六. 性能结果/报告:略 四, ...
- 不会压测?没关系,手把手教你用jmeter做压力测试及结果分析
1.准备 测试之前需要先准备相关的工具,JMeter是运行在jdk下的一款压测工具,所以,要运行JMeter首选要安装jdk并配置环境变量,具体请自行百度jdk环境变量安装: 2.JMeter 是什么 ...
- jdk自带压测工具_压测工具JMeter的使用
最近接了压测的需求,顺带熟悉下压测工具的使用.这里推荐JMeter,安装快捷.请求方便,省了一大堆麻烦的事情.Apache JMeter是Apache组织开发的基于Java的压力测试工具.用于对软件做 ...
最新文章
- Didn't find class net.oschina.app.AppContext on
- 截图推荐:FastStone Capture使用教程
- 封装对MongoDB数据库的增删改查访问方法(基于MongoDB官方发布的C#驱动)
- 一个简单的shell实例
- MyBatisPlus条件构造器带条件排序方法orderBy、orderByDesc、orderByAsc使用
- rest api 可选参数_可选类型API
- Android 应用内更新 Support in-app updates [GP官方支持]
- npm包管理器小节一下
- C++ 直接插入排序
- ONAP如何将Open-O和ECOMP数百万行代码合并?
- Go Elasticsearch 删除快速入门
- 天锐绿盾加密软件支持什么操作系统?
- Diffusion扩散模型简述 + 代码demo
- 光环PMP 三模模拟题
- 使用Python的basemap模块绘制地图的局部放大图(主图及放大的子图)
- 同一个二维码支持多种支付的实现思路
- 通过Java实现恩尼格玛密码机
- 【BZOJ 3470】3470: Freda’s Walk 期望
- JS中的 || 与 运算符详解
- 开源免费的脑电/脑磁图数据分析软件汇总