深林人不知 - 技术笔记
type: channel
link: https://www.leeoya.com/category/technology_note/
items: jmeter之浏览器缓存
items: jmeter对接口测试入参进行MD5加密

jmeter之浏览器缓存
type: item
date: 2025-05-14T16:09:00+08:00
description: 为了达到真正意义的并发，让每个线程模拟一个全新的用户，就要清除JMeter中的缓存或确保请求不被缓存，就需要添加配置元件来禁用缓存在 JMeter 中，HTTP 缓存管理器（HTTP Cache Manager）是一个非常实用的配置元件，用于模拟浏览器的缓存行为。当进行性能测试时，理解和管理资源的缓存行为对于评估应用程序性能至关重要。HTTP 缓存管理器允许你控制 JMeter 如何处理 HTTP 请求的缓存效果，从而更真实地模拟用户的行为。HTTP 缓存管理器的作用模拟浏览器缓存：帮助 JMeter 模拟不同用户的浏览器缓存行为，包括对静态资源（如图片、CSS、JavaScript 文件等）的缓存管理。减少对服务器的请求：通过缓存已经请求过的资源，可以减少发送到服务器的请求数量，从而降低服务器的负载，并提高测试效率。帮助性能测试：在负载测试和性能测试中更真实地模拟用户行为，评估应用的性能和响应时间的变化。HTTP 缓存管理器的使用添加HTTP缓存管理器右键点击线程组，选择 添加 -> 配置元件加粗文字 -> HTTP 缓存管理器。如下图：配置HTTP缓存管理器Clear Cache each Iteration：每次迭代后，清空缓存Use Thread Group configuration to control cache clearing：如果选择该项，使用线程组配置去控制缓存清空Use Cache-Control/Expires header when processing GET requests：如果选择了该选项，Jmeter将根据当前时间检查Cache-Control/Expires值。如果时间戳是将来的，并且请求是Get，那么Sampler会立即返回，而不需要从Server请求URL。Maximum Number of Elements in cache：Jmeter保存所有缓存资源在RAM。默认情况下，缓存管理器在每个虚拟用户的缓存中最多存储5000个条目。如果增加这个值，Jmeter将相应地消耗更多的内存。它会导致“OutOfMemory”异常。为了避免这种行为，可以在jmeter.bat\sh中调整JVM-Xmx选项。设置 HTTP 头部来禁止缓存除了以上方法，还可以在线程组中设置HTTP信息头管理器来设置一些参数：在每个 HTTP 请求采样器中添加HTTP信息头管理器（HTTP Header Manager）。添加以下头部字段：Cache-Control: no-cache 或 Cache-Control: no-storePragma: no-cache实际效果通过使用以上方式，可以更真实地模拟用户在浏览网页时的行为。例如，在同一线程组中执行两次加载页面的请求，第一次请求会请求所有静态资源，第二次请求将减少静态资源的请求数量，因为它们将从缓存中获取。

jmeter对接口测试入参进行MD5加密
type: item
date: 2024-11-05T13:06:00+08:00
description: 前端时间在做jmeter接口测试的时候，想要进行入参参数化，但登录接口是MD5加密的方式，总不能在参数那里直接写死，也违背了我想进行参数化的初衷，网上搜了半天，学习记录一下，就以登录请求密码需要MD5加密。因为是最简单的加密，所以我就用了最简单的加密方式，使用的是jmeter自带的函数进行加密的。新版本的jmeter中，已经没有md5函数了，取而代之的是digest，digest函数返回指定哈希算法中的摘要值。官网的解释如下所示：jmeter中函数助手是这样的，需要自己选择digest参数含义：算法摘要：MD2、MD5、SHA-1、SHA-224、SHA-256、SHA-384、SHA-512 String to be hashed：要计算的字符串； Salt to be used for hashing (optional)：用于计算散列的盐（可选项）； Upper case result, defaults to false (optional)：结果大写，默认为false（可选），即默认摘要值为小写 存储结果的变量名（可选）就以MD5为例，因为项目中的MD5是大写的所以要设置三个参数：因为默认是小写的，所以要设置成true，就因为大小写这个踩了不少坑。然后复制字符串到参数值：可以看到，请求的密码加密的数据与上面函数助手的一致，同时也请求成功。