JMeter:使用java类为自定义头生成值

JMeter:使用java类为自定义头生成值,java,header,jmeter,Java,Header,Jmeter,我尝试测试我们的api的性能,它有一个请求限制器(100秒内有100个请求,否则ip会被阻塞)。 您可以使用自定义标题来避免这种情况。此标头的值由java类生成 有了jruby,我也可以使用“require”和“import”来使用这个类 如何为JMeter执行此操作 其他信息: 对于必须生成的每个请求,标题值都是动态->的。 要调用HttpPwd.genPwd(),JMeter项目中需要两个*.jar文件,请导航到线程组HTTP请求。您可以在此处设置请求参数。以下是如何继续: 将这2个jar

我尝试测试我们的api的性能,它有一个请求限制器(100秒内有100个请求,否则ip会被阻塞)。 您可以使用自定义标题来避免这种情况。此标头的值由java类生成

有了jruby,我也可以使用“require”和“import”来使用这个类

如何为JMeter执行此操作

其他信息: 对于必须生成的每个请求,标题值都是动态->的。
要调用HttpPwd.genPwd(),JMeter项目中需要两个*.jar文件

,请导航到
线程组
HTTP请求
。您可以在此处设置请求参数。

以下是如何继续:

  • 将这2个jar放在jmeter/lib文件夹中

  • 将groovy-all.jar放入jmeter/lib中

  • 使用JSR223预处理器+Groovy

  • 将以下代码放入预处理器:

导入xxxxxx;//其中xxxx是HttpPwd类的全名

变量put(“header”,HttpPwd.genPwd())

  • 根据您的请求,将HeaderManager添加为子项,并在其内容中放入:
HeaderName(我不知道它是什么):${header}


下面是通过

假设您有以下生成自定义标头的逻辑:

package custom.header;

public class HttpPwd {

public static String getPwd() {
    return String.valueOf(System.currentTimeMillis());
}
}
可以从名为“customheader.jar”的jar中访问

您想在请求中添加一个名为“MyHeader”的头

  • 将customheader.jat放入jmeter安装的lib/ext文件夹。(或者,如果已在user.properties文件中重写这些属性,则指向搜索路径或user.classpath下的位置)
  • 创建一个线程组
  • 将HTTP请求添加到线程组
  • 在HTTP请求中,将服务器名称或IP设置为“google.com”,路径-/,并添加一个值为“test”的参数“q”。其实没关系
  • 将HTTP头管理器添加为HTTP请求的子级
  • 将名称添加为MyHeader和值-“${uu BeanShell(导入custom.header.*;HttpPwd.getPwd();)}”
  • 在HTTP请求后添加视图结果树侦听器
  • 保存并运行
  • 您应该看到如下内容:

    GET http://www.google.com/?q=test
    
    [no cookies]
    
    Request Headers:
    Connection: keep-alive
    MyHeader: 1382360571781
    Host: www.google.com
    User-Agent: Apache-HttpClient/4.2.3 (java 1.5)
    
    提及MyHeader的存在和价值