我尝试测试我们的 api 的性能,它有一个请求限制器(100 秒内 100 个请求,否则 ip 被阻止)。您可以使用自定义标题来避免这种情况。此标头的值由 java 类生成。
使用 jruby,我也可以使用“require”和“import”来使用该类。
我怎样才能为 JMeter 做到这一点?
附加信息:标头值是动态的 -> 对于必须生成的每个请求。要调用 HttpPwd.genPwd() 需要两个 *.jar 文件
这是如何进行的:
将 2 个罐子放在 jmeter/lib 文件夹中
将 groovy-all.jar 放入 jmeter/lib
使用 JSR223 预处理器 + Groovy
将以下代码放入预处理器:
进口xxxxxx;// 其中 xxxx 是 HttpPwd 类的全名
vars.put("标题", HttpPwd.genPwd());
HeaderName(我不知道它是什么):${header}
在您的 JMeter 项目中导航到Thread Group
> HTTP Request
。您可以在那里设置您的请求参数。
这是通过JMeter __Beanshell 函数实现的方法
假设您具有以下生成自定义标头的逻辑:
package custom.header;
public class HttpPwd {
public static String getPwd() {
return String.valueOf(System.currentTimeMillis());
}
}
可以从一些名为“customheader.jar”的 jar 中访问它
并且您想在您的请求中添加一个名为“MyHeader”的标头
您应该会看到如下内容:
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 的存在和价值