jmeter - 如何从Jmeter中的请求中提取值

标签 jmeter

您好,我正在传递一封电子邮件,它是一个时间函数,如下所示

email = ${__time(MMddyy)}_${__time(HMS)}@yopmail.com

每次我调用变量 email 时,该函数的值都会发生变化。 我想将从该函数生成的值存储到一个变量中,并在其他请求中使用它。

因此,目前我在两个不同的 http 请求中收到两封不同的电子邮件,因为我的两个 http 请求之间存在一些时间延迟。

我想做的是..通过从请求中提取值并将其传递到第二个http请求中来存储在第一个http请求中发送的电子邮件。

POST data:
email=062915_160738%40yopmail.com

我知道从html响应中提取的方法..但是有什么方法可以从jmeter中的请求中提取吗?

如果是这样,有人可以告诉我如何实现这一目标吗?

谢谢

最佳答案

  1. 添加 Beanshell PostProcessor 作为发送 POST 请求的请求的子级
  2. 将以下代码放入后处理器的“脚本”区域

    import org.apache.jmeter.config.Argument;
    import org.apache.jmeter.config.Arguments;
    
    Arguments argz = ctx.getCurrentSampler().getArguments();
    for (int i = 0; i < argz.getArgumentCount(); i++) {
        Argument arg = argz.getArgument(i);
        if (arg.getName().equals("email")) {
            vars.put("EMAIL", arg.getValue());
            break;
        }
    }
    
  3. 根据需要将生成的值引用为 ${EMAIL}

澄清:

  • 以上代码将提取email请求参数的值(如果有)并将其存储到EMAIL JMeter变量
  • ctx - JMeterContext 的简写类实例
  • vars = JMeterVariables 的简写类实例
  • ArgumentsArgument - 您可以从 JMeterContext JavaDoc 中找出这一点

参见How to use BeanShell: JMeter's favorite built-in component有关 JMeter 中 Beanshell 脚本编写的更多信息的指南。

关于jmeter - 如何从Jmeter中的请求中提取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31127129/

相关文章:

variables - 在 Groovy 代码中使用 JMeter 变量

centos - 在 Vm Centos 中使用 jmeter 运行分布测试

ssl - 切换到 SSL 时,JMeter 停止发送 JSESSIONID cookie

testing - 线程组循环计数,当组中的所有线程都完成时它是否有效?

maven - 从Maven执行时的JMeter插件

SSL 在 jmeter 中不起作用

java - 当 HTTP 请求采样器失败时运行的 JMeter Beanshell 采样器

java - 如何将文本文件发送到显示错误 "request was rejected because no multipart boundary as found"的 http 请求

timeout - JMeter: "java.net.ConnectException: Connection timed out: connect"响应数据错误

Jmeter:IP 欺骗不起作用