目录

  • 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文件

创建如下配件

  1. 线程组
    我是有7条数据,这么配置相当于一个用户请求7次
  2. .新建信息头管理器
    因为是POST请求,所以要加content-type:application/json
  3. 新建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 ?:文件读取完后是否停止线程

  1. 添加HTTP请求
    在请求中,基本上都是参数化了的,格式为“${参数}”
  2. 发起请求查看结果树即可

完~
家人们欢迎点赞、收藏、点评、提问呦

躬身自省,淳朴而谦逊否——文文的博客

JMeter的使用,同时发起多次请求的压测,POST请求使用scv参数化文件相关推荐

  1. jmeter constant timer 如何添加_阿里巴巴在开源压测工具 JMeter 上的实践和优化

    Apache JMeter 是 Apache 旗下的开源压测工具,创建于 1999 年初,迄今已有超过 20 年历史.JMeter 功能丰富,社区(用户群体)庞大,是主流开源压测工具之一. 性能测试通 ...

  2. JMETER性能测试从入门到精通高级篇 - 分布式压测部署之负载机的设置(详解教程)

    1.简介 千呼万唤始出来,这一篇感觉写了好久,总想写的清楚明白简洁,但是还是洋洋洒洒写了好多,希望大家喜欢吧!本来打算将这一篇文章是放在性能测试中讲解和分享的,但是有的童鞋或者小伙伴们私下问的太多了, ...

  3. JMeter实用案例讲解:生成Mockup/Dummy JSON压测REST API

    在实际工作中我们经常需要做一些性能测试,过去我基本上使用的都是JMeter,这么多年使用下来的一个感受是:JMeter并不太容易上手,但确实强大灵活,可以应对一些复杂的测试场景,一但掌握了,基本就不再 ...

  4. 软件测试 | Jmeter 性能测试工具的实战应用《接口性能压测》的操作步骤详解

    嘿.大家好,我是4U: 接口测试可以提前发现软件bug,有效地降低软件的开发成本,而接口性能压测也可以达到同样的效果.如果形容LR是大炮,那么JM则是一把狙击步枪. 那么今天我们来讲讲接口性能压测. ...

  5. wrk 使用lua脚本进行压测接口请求

    lua脚本是一种轻量小巧的脚本语言,用标准c语言编写,并以源代码形式开放,其设计目的是为了嵌入应用程序中,从而为程序提供灵活的扩展和定制功能.wrk工具嵌入了lua脚本语言,因此,在自定义压测场景时, ...

  6. wrk 压测post请求遍历循环动态参数

    一.post 请求,动态传参数,只有body参数不同: startpost.lua 脚本: loginmap = {} counter = 0 --初始化方法 function init(args) ...

  7. 云智慧压测实战分享之JMeter场景设置与监控

    随着IT技术的飞速发展和企业互联网+业务规模不断扩张,IT架构经历了以数据计算为核心的C/S架构.以聚焦业务功能及服务化构建应用的经典互联网架构和如今整合IT资源和按需使用的云计算架构三个阶段. 与之 ...

  8. Jmeter电商系统压测实战一

    目录 一.性能测试背景: 二.常规的被测系统架构模型 三.性能测试流程 一. 性能需求指标: 二. 性能模型: 三. 性能方案: 四. 性能监控: 五. 性能场景执行: 六. 性能结果/报告:略 四, ...

  9. 不会压测?没关系,手把手教你用jmeter做压力测试及结果分析

    1.准备 测试之前需要先准备相关的工具,JMeter是运行在jdk下的一款压测工具,所以,要运行JMeter首选要安装jdk并配置环境变量,具体请自行百度jdk环境变量安装: 2.JMeter 是什么 ...

  10. jdk自带压测工具_压测工具JMeter的使用

    最近接了压测的需求,顺带熟悉下压测工具的使用.这里推荐JMeter,安装快捷.请求方便,省了一大堆麻烦的事情.Apache JMeter是Apache组织开发的基于Java的压力测试工具.用于对软件做 ...

最新文章

  1. Didn't find class net.oschina.app.AppContext on
  2. 截图推荐:FastStone Capture使用教程
  3. 封装对MongoDB数据库的增删改查访问方法(基于MongoDB官方发布的C#驱动)
  4. 一个简单的shell实例
  5. MyBatisPlus条件构造器带条件排序方法orderBy、orderByDesc、orderByAsc使用
  6. rest api 可选参数_可选类型API
  7. Android 应用内更新 Support in-app updates [GP官方支持]
  8. npm包管理器小节一下
  9. C++ 直接插入排序
  10. ONAP如何将Open-O和ECOMP数百万行代码合并?
  11. Go Elasticsearch 删除快速入门
  12. 天锐绿盾加密软件支持什么操作系统?
  13. Diffusion扩散模型简述 + 代码demo
  14. 光环PMP 三模模拟题
  15. 使用Python的basemap模块绘制地图的局部放大图(主图及放大的子图)
  16. 同一个二维码支持多种支付的实现思路
  17. 通过Java实现恩尼格玛密码机
  18. 【BZOJ 3470】3470: Freda’s Walk 期望
  19. JS中的 || 与 运算符详解
  20. 开源免费的脑电/脑磁图数据分析软件汇总

热门文章

  1. 光猫修改rms服务器地址大全,光猫服务器dns怎么设置教程
  2. DevOps-2-从凤凰项目谈起
  3. 西门子atch指令详解_西门子PLC中断指令?
  4. 分享一个很好的dll查看器
  5. 矩阵分析(2)--正规矩阵、正交矩阵
  6. 微信红包系统设计 优化
  7. 最新四方支付平台源码(PHP版本,完全开源)提供第四方支付系统搭建服务。
  8. 在excel上画交换机面板_如何在Excel中创建面板图
  9. 模拟器:思科 创建Vlan,给2层交换机和3层交换机配置IP地址和子网掩码
  10. cas单点登录的时序图