)
遇到的问题参数化后断言响应断言通过响应文本判断结果出现错误这种情况一般是编码冲突造成的在测试时JMeter内部存储或UI渲染时发生了字符编码错乱导致JMeter实际用来比对的模式字符串变成了乱码。根本原因在于参数化后文本带有中文与JMeter默认文本编码格式下中文是乱码在使用响应断言时JMeter使用参数化后的文本与响应信息文本进行对比没法找到响应信息中与预期对应的内容导致的异常现象。这种情况有三种解决方案1.手动输入中文取消使用参数化。3.改变JMeter默认编码格式。3.改变CSV参数化编码格式。参数化CSV配置元件使用前操作准备CSV数据文件 →使用CSV配置元件配置相关参数用于读取文件数据→脚本请求中引用${varialeName}其中nariableName是CSV配置元件定义的参数名称注意脚本运行前需要将线程组的循环次数设置为你提供的参数行数。创建csv配置元件跨线程组关联调试提取器Debug Sampler 调试取样器Debug Sampler 是 JMeter 内置的取样器用于在脚本执行过程中输出当前的变量、属性及系统信息帮助排查参数提取失败或数据传递问题。功能打印出当前作用域内所有的 JMeter 变量如 ${var}、JMeter 属性以及系统属性供你在“查看结果树”中检查。作用域仅作用于当前线程组的当前线程。它只能捕获并显示在该取样器执行之前同一线程内已生成或提取的变量。跨线程组作用无法直接传递普通变量变量是线程私有的。若需跨线程组调试必须先将变量通过 __setProperty 函数转为全局属性Props并在 Debug Sampler 中勾选“显示 JMeter 属性”才能查看——查看全局属性。后置处理器——BeanShell 后置处理程序BeanShell后置处理器是基于Java语法的脚本化组件用于在请求响应之后执行自定义逻辑。核心功能① 从响应中提取复杂数据 ② 对参数进行加解密、签名计算 ③ 动态生成并存储变量vars.put() ④ 执行条件判断或数据库操作。JMeter内置函数——setProperty、propertysetProperty写入全局属性功能用于创建或更新一个 JMeter 全局属性。属性一旦被设定整个测试计划中的所有线程组都能访问到它。property读取全局属性功能用于读取一个已存在的 JMeter 全局属性值。这两个函数通常配合使用是实现跨线程组数据传递的标准方法。在“线程组 A”中使用后置处理器如 BeanShell 或 JSR223提取数据并用 __setProperty 将其保存为全局属性。在“线程组 B”中通过 __property 函数读取该全局属性的值实现数据共享。可视化报告步骤1.打开命令行终端2.进入jmx文件所在目标3.使用以下命令来生成测试报告jmeter -n -t [jmx文件] -l [结果文件] -e -o [HTML报告文件夹]-n:表示以GUI模拟运行JMeter-t [jmx文件]: 指定要运行的JMX测试计划文件-l [结果文件]指定要将结果保存到的jtl文件-e:生成html报告-o:指定报告输出目录4.查看html报告