jmeter-压力和性能测试
jemter 简介
jmeter 可以做接口测试和压力测试。其中接口测试的简单操作包括做 http 脚本(发 get/post 请求、加 cookie、加 header、加权 限认证、上传文件)、做 webservice 脚本、参数化、断言、关联(正则表达式提取器和处理 json-json path extractor)和 jmeter 操作数据库等等。
jmeter 安装
- 安装jdk(略)
- 下载Jmeter(下载二进制直接可以运行,不需要安装)
- windows中运行
jmeter.bat
即可打开可视化界面
jmter 的用法
相关名词解释
测试计划
:一个测试项目的开始,一切都在测试计划之下, 一个脚本就是一个测试计划, 也可以叫管理单元。线程组
:可以叫用户组,进行性能测试时的用户资源池。是任务测试计划的起点,所有的逻辑控制器和采样器都必须放在线程组之下。取样器
:用来模拟用户操作,向服务器(被测系统)发出HTTP请求,Webservice请求或者Java请求等,并接受服务器响应数据。逻辑控制器
:逻辑控制器可以通过请求逻辑
配置元件
:可以用来初始化默认值和变量
,以便后续采样器使用。将在其作用域的初始化阶段处理。监听器
:收集取样器记录的数据并以可视化
的方式来呈现。定时器
:可以根据实际场景设置思考时间用于等待或是集合点同时并发。定时器是在每个sampler(采样器)之前执行的,而不是之后前置处理器
:在测试脚本开发过程中,我们在请求发送前可能会做一些环境或者参数的准备工作,可以在前置处理器中完成这个工作。后置处理器
:在取样器
运行后执行。常常用来处理响应的数据。断言
:用于检查测试中得到的响应数据等是否符合预期,用以保证性能测试过程中的数据交互与预期一致。测试片段
:是控制器上一个种特殊的线程组,它在测试树上与线程组处于一个层级。但使用时需要和include Controller或者Module Controller配合。它的主要作用是模块化测试过程,类似于编程语言中的函数
。即,将测试过程封装成测试片段,就可以在其他地方直接引用了。
注意: 一个测试计划, 至少有一个线程组, 至少有一个取样器
创建测试计划和线程组
线程数
表示模拟一个用户占用一个线程
循环次数
表示每个线程循环次数, 也可以设置永久运行
Ramp-Up
表示是否平滑启动, 表示花费多次时间启动全部线程
添加取样器->HTTP请求
在添加http请求之前, 最好先添加测试计划->配置元件->HTTP信息头管理器
, HTTP请求默认值
等默认值. 这样在添加HTTP请求时就只需输入请求的特有信息即可.
在有默认值的情况下, 只需要输入请求方式
,路径
,消息体
即可
jmeter 指标说明
选择线程组:右键-->添加-->监听器-->查看结果树
查看结果树
:仅用于功能测试或调试验证时使用, 不得在负载测试中使用, 会消耗大量CPU和内存资源汇总报告
:生成报告聚合报告
:生成报告
汇总报告和聚合报告内容基本相同, 除了聚合报告会给出中位数(90%,95%...), 另外聚合报告会消耗更多内存.
样本
:请求的次数,计算公式是线程数
*循环次数
,如果线程组配置勾选了永远,那么就是你停止测试时实际发送的请求数平均值
:响应时间的平均用时,单位是毫秒。比如这里的平均响应时间是38毫秒中位数
:响应时间的中位数,单位是毫秒。90%百分位
:90%的响应时间小于该数值,单位是毫秒。这里有90%的响应时间小于37毫秒95%百分位
:含义和90%类似99%百分位
:含义和90%类似最小值
:本轮测试最小响应时间,单位是毫秒。最大值
:本轮测试最大响应时间,单位是毫秒。异常%
:本轮测试出现异常的请求比例。吞吐量
:可以理解为QPS,即是我们测试的接口处理请求的能力。比如这里是平均每秒可以处理2.2次请求接收KB/Sec
:响应数据的接收速率发送KB/Sec
:请求数据的发送速率
jmeter 高级使用
开启日志/设置日志级别
菜单->选项->打开"日志查看"功能/设置"日志级别"
参数化
CSV——选择测试计划,右键-->添加-->元件-->CSV data Sat config
使用csv导入全局变量列表, 使用参数化变量:${变量名}访问
后置处理器->提取器/前置处理器
如果一个请求需要使用上一个请求返回的数据就需要使用此功能
这里需要注意同线程下与跨线程下如何调用
最后更新于 2023-07-14 15:42:20 并被添加「」标签,已有 490 位童鞋阅读过。
本站使用「署名 4.0 国际」创作共享协议,可自由转载、引用,但需署名作者且注明文章出处
此处评论已关闭