本节摘要:本节深入 HTTP 采样器、定时器、断言、提取器等核心元件的配置——搭脚本最常用的几个元件怎么用。
阅读完本节,你应当能够:
最常用的采样器,发 HTTP 请求:

<ConstantTimer> <stringProp name="delay">1000</stringProp> <!-- 1000ms --> </ConstantTimer>
<ResponseAssertion> <stringProp name="Assertion.test_field">Assertion.response_code</stringProp> <stringProp name="Assertion.test_type">2</stringProp> <!-- 包含 --> <stringProp>200</stringProp> </ResponseAssertion>
后置处理器,从响应提取数据存变量,供后续请求用(关联):
<JsonPostProcessor> <stringProp name="JsonPathExpressions">$.data.token</stringProp> <stringProp name="refNames">TOKEN</stringProp> </JsonPostProcessor> <!-- 后续请求用 ${TOKEN} -->
⚠️ 常见坑:断言只校验状态码 200——接口返回 200 但业务失败(如返回
{"code":500})。要加响应文本断言校验业务字段。
💡 关键直觉:HTTP 采样器发请求,定时器控间隔,断言校验响应(别只看状态码),提取器取数据供后续用(关联)。共享配置用 HTTP 默认值。
第 3 章结束。下一章讲高级功能——参数化、关联、分布式、扩展。
线程组(Thread Group):并发模型的基础,参数含线程数、Ramp-Up、循环与调度器。HTTP 请求(HTTP Request):支持 GET/POST/PUT/DELETE,可配置参数、文件上传与超时。HTTP 头管理器(HTTP Header Manager):统一设置 Content-Type、Authorization 等公共头。断言(Assertion):响应断言校验状态码、响应文本;JSON 断言校验 JSON 字段。
| 元件 | 关键配置 | 常见误区 |
|---|---|---|
| HTTP Request | 协议、服务器、路径、方法 | 忘记设置超时导致卡死 |
| 响应断言 | 状态码/文本/JSON 路径 | 断言过宽漏掉错误 |
| CSV Data Set | 文件路径、变量名、分隔符 | 路径使用绝对路径难移植 |
| 用户定义变量 | 键值对 | 作用域理解错误 |
| 随机变量 | 数值范围 | 未设种子导致重复 |
搭建脚本时遵循"最小可行"原则:先跑通一个采样器,再加断言、加参数化、加控制器,逐步完善;每步用单线程调试(1 线程 1 循环),确认无误后再加压。这样能快速定位脚本本身的问题,避免与系统问题混淆。
响应断言的典型配置:状态码断言(期望 200)、响应文本断言(包含"success"或关键业务字段)、JSON 断言(按路径校验字段值)。注意区分硬断言与软断言:关键业务链路用硬断言(失败即算错误),辅助请求可用软断言(记录但不中断)。错误率统计依赖断言准确性,断言过宽会掩盖真实错误。
脚本调试三板斧:查看结果树(View Results Tree)查看每个请求的请求/响应明细,快速定位参数或断言问题;调试采样器(Debug Sampler)输出当前变量值,排查参数化与关联问题;简易数据写入器观察部分结果。调试时用 1 线程 1 循环,减少噪音,确认无误后再加压。
元件配置的进阶技巧:HTTP 请求默认值 + 头管理器配合,一处修改全局生效;断言中用变量引用动态预期值(如预期价格来自参数化);定时器用泊松分布模拟真实思考时间而非固定间隔。进阶配置让脚本更贴近真实用户行为,压测结果更有参考价值。
不同元件的性能开销:响应断言(文本匹配)开销小;正则提取器(复杂表达式)开销大;JSON 提取器(大响应)中等;每采样器独立监听器开销大。性能敏感场景优先用轻量元件,把开销留给真正需要的校验。