测试:JMeter如何获取非json格式的响应参数

JMeter如何获取非json格式的响应参数

在 JMeter 中获取非 JSON 格式的响应参数通常涉及使用后置处理器来提取这些参数。以下是一些常见的方法来获取不同类型的响应数据:

  1. 正则表达式提取器
    • 适用于提取文本、HTML、XML 等格式中的特定文本。
    • 使用正则表达式来定义要提取的数据的模式。
    • 可以提取响应中的动态数据,如会话ID、token等。
  2. CSS/JQuery 提取器
    • 适用于提取 HTML 响应中的数据。
    • 使用 CSS 选择器或 JQuery 选择器来定位要提取的元素。
    • 可以提取文本、属性值等。
  3. XPath 提取器
    • 适用于提取 XML 响应中的数据。
    • 使用 XPath 表达式来定位要提取的节点。
    • 可以提取节点文本、属性值等。
  4. beanshell 提取器
    • 适用于需要使用脚本进行复杂提取的情况。
    • 使用 beanshell 脚本来处理响应数据。
    • 可以执行任何 Java 代码,具有很高的灵活性。
  5. JSR223 提取器
    • 与 beanshell 提取器类似,但可以使用其他脚本语言,如 Groovy、Python 等。
  6. JSON 提取器(虽然问题中提到非 JSON 格式,但有时响应可能包含 JSON 数据):
    • 适用于提取 JSON 响应中的数据。
    • 使用 JSON Path 表达式来定位要提取的值。
      以下是如何使用正则表达式提取器来获取非 JSON 格式响应参数的示例步骤:
  7. 在 JMeter 中添加一个 HTTP 请求或其他的取样器。
  8. 在该取样器下添加一个后置处理器,选择“正则表达式提取器”。
  9. 在“正则表达式提取器”中配置以下参数:
    • 引用名称:为提取的数据设置一个引用名称。
    • 正则表达式:输入用于匹配响应数据的正则表达式。
    • 模板:通常设置为 1 1 1,表示正则表达式中第一个捕获组的内容。
    • 匹配数字:设置为 1,表示使用第一个匹配的结果。
    • 缺省值:如果正则表达式没有匹配到任何内容,则使用这个默认值。
  10. 在需要使用提取的参数的请求中,可以通过 ${引用名称} 的方式引用这些参数。
  11. 运行测试计划,并检查“查看结果树”监听器中的响应数据,验证是否正确提取了参数。
    请注意,提取参数的具体方法取决于响应数据的格式和结构。您需要根据实际情况选择合适的提取器和配置参数。

beanshell 提取器 如何获取所有响应信息

在 JMeter 中,如果您想使用 BeanShell 提取器来获取所有响应信息,您可以利用 BeanShell 脚本访问 JMeter 的内置变量来获取响应数据。以下是获取整个响应体的步骤:

  1. 在您的测试计划中,添加一个 HTTP 请求或其他类型的请求器。
  2. 在该请求器下添加一个后置处理器,选择“BeanShell PostProcessor”。
  3. 在 BeanShell PostProcessor 的脚本区域中,编写如下脚本:
// 获取响应数据
String response = prev.getResponseDataAsString();
// 输出响应数据到 JMeter 日志
log.info("Response Data: " + response);
// 如果需要将响应数据存储为 JMeter 变量,可以这样做:
// 注意:变量名应该是唯一的,避免与其他变量冲突
String varName = "allResponseData";
vars.put(varName, response);
// 输出信息到 JMeter 日志,确认数据已存储
log.info("Stored response data in variable: " + varName);
  1. 如果您想在后续的请求中使用这个响应数据,可以通过 ${allResponseData}(或您在脚本中定义的任何变量名)来引用它。
  2. 运行测试计划,并检查 JMeter 日志以确认响应数据已被正确获取和存储。
    请注意,BeanShell 脚本中的 prev 对象代表前一个采样器的结果,getResponseDataAsString() 方法用于获取响应数据作为字符串。log 对象用于记录日志,vars 对象是 JMeter 的内置变量容器,用于存储和访问变量。
    使用 BeanShell 提取器时,请确保您的脚本符合 JMeter 的 BeanShell 脚本语法,并且已经正确配置了 JMeter 以支持 BeanShell。此外,由于 BeanShell 脚本执行可能会影响测试性能,因此在生产环境中进行大规模测试时,应谨慎使用。

log在哪里看?

在 JMeter 中,日志信息通常会输出到两个主要位置:

  1. JMeter GUI 的控制台
    • 当您通过 JMeter 的图形用户界面 (GUI) 运行测试时,日志信息会显示在底部的一个控制台窗口中。
    • 您可以通过查看 GUI 中的“日志”部分来获取日志信息。
  2. JMeter 日志文件
    • 当您以非 GUI 模式运行 JMeter(例如,从命令行或使用 JMeter 测试计划 (jmx) 文件)时,日志信息会被写入到日志文件中。
    • 日志文件的默认位置通常是在 JMeter 的 bin 目录下的 jmeter.log 文件。
    • 您可以直接打开这个文件来查看日志信息,或者使用文本编辑器或日志查看工具来查看。
      要查看日志文件,您可以按照以下步骤操作:
  3. 找到 JMeter 安装目录。
  4. 进入 bin 目录。
  5. 打开 jmeter.log 文件。
    如果您正在使用 JMeter GUI,只需在 GUI 中查看底部的“日志”部分即可。如果您正在使用命令行运行 JMeter,并且想要实时查看日志输出,可以在命令行窗口中查看。
    此外,您可以通过修改 JMeter 的日志配置文件(bin/log4j2.xml)来调整日志级别和输出格式,以便更好地满足您的日志记录需求。

你可能感兴趣的:(测试,jmeter,json)