前言
JMeter 三个重要组件:线程组、HTTP 请求、查看结果树,是 JMeter 进行性能测试最基础的组件。
若没有 JMeter 基础,请点击前往:零基础测开学习 19——JMeter 基础
JMeter 三个重要组件
线程组
作用
线程组就是控制 JMeter 用于执行测试的第一组用户
位置
右键点击 “测试计划” ——> 添加 ——>线程(用户)——> 线程组
特点
- 模拟多人操作
- 线程组可以添加多个,多个线程组可以并行或者串行
- 取样器(请求)和逻辑控制器必须依赖线程组才能使用
- 线程组下可以添加其他元件下组件
线程组分类
- 线程组:普通的、常用的线程组
- setUp 线程组:一种特殊类型的线程组,可用于执行预测试操作
- tearDown 线程组:一种特殊类型的线程组,可用于执行测试后工作
参数

线程属性
- 线程数:虚拟用户数
- Ramp-Up 时间:全部虚拟用户数启动需要的时间
- 循环次数:指定运行次数,选中 “永久” 后一直运行
- 延迟创建线程直到需要:默认启动即创建所有线程;勾选则运行对应线程时才创建(对外无体现)
- 调度器:勾选后才能配置 “持续时间” 和 “启动延迟”。循环次数设置为 “永远” 时调度器才能生效
- 持续时间:设置脚本持续运行时间
- 启动延迟:脚本启动延迟等待时间
HTTP 请求
作用
向服务器发送 http 及 https 请求
位置
选中进程组——>右键——>添加——>取样器——>HTTP 请求
参数

- 协议:HTTP(默认)/HTTPS
- 服务器名称或 IP:服务器域名或者服务器 IP 地址
- 端口号:服务端口号
- HTTP 请求:方法
- 路径:path,即 URL 端口后面的部分
- 内容编码:utf-8
-
参数:
- get(URL 路径中传参数):
1.在 Path 路径后添加参数。
2.在参数列表添加参数
- post(请求体中传参数):
1.直接在消息体数据中添加请求体(任意格式:form、json)
2.如果请求体为 form 表单格式,可以在参数列表中添加
查看结果树
案例 1:查看结果树中的 HTTP 请求,有多个子的 HTTP 请求
原因分析:
- 第一个 HTTP 请求,URL 错误,导致服务器发生了重定向,提供了新的 URL 路径
- JMeter 会自动发送第二个 HTTP 请求(使用第一个 HTTP 请求中返回的 URL 路径)
- 点击最外层的 HTTP 请求时,显示的内容与最后一个 HTTP 请求的请求和响应数据一致
案例 2:HTTP 响应数据中存在乱码,需要修改取样器结果的编码格式

JMeter 参数化
基本概念
本质
使用参数的方式来代替脚本中的固定测试数据
实现方式
- 定义变量
- 文件定义的方式(所有测试数据都是固定的情况下)
- 数据库的方式
- 函数的方式
参数化测试
把测试数据组织起来,用不同的测试数据调用相同的测试方法
JMeter 中常见的参数化方式
- 用户定义的变量
- 用户参数
- CSV Data Set Config
- 函数
用户定义的变量
作用
定义全局变量
位置
测试计划——>线程组——>配置元件——>用户定义的变量
参数

用户参数
作用
针对同一组参数,当不同的用户来访问时,可以获取到不同的值
位置
测试计划——>线程组——>前置处理器——>用户参数
参数

CSV 数据位置
作用
让不同用户在多次循环时,可以取到不同的值
位置
测试计划——>线程组——>配置元件——>CSV 数据文件设置
参数

函数(__counter)
作用
计数函数,一般做执行次数统计使用
位置
在菜单中选择——>选项——>函数助手对话框



后记
久违啦,各位。
之所以断更了有 1 个月,是因为这段时间我一直在忙碌的寻找日常实习,精力投入到了简历投递、面试。功夫不负有人!我如愿以偿地成为了一名测试开发实习生。
而现在,我在新的公司稳定下来了,精力也充裕起来了,我呢也会继续积极地更新此系列,之后的文章中我也会积极地分享我真正地进入到企业的心得体会,继续与各位一起进步!
↙↙↙阅读原文可查看相关链接,并与作者交流