目前,我正在使用 HTTP请求采样器,并启用“关注重定向” ,并希望保持这种状态。作为除断言之外的二级检查我也想计算重定向的数量,但我不想实现this解决方案。
当我只能使用1个HTTP采样器和后处理器(现在是beanshell)并获取此信息时,有没有办法?我正在检查SamplerResult documentation,但无法找到任何可以为我提供此信息的方法。
答案 0 :(得分:2)
将以下Regular Expression Extractor添加为您的采样器的子项:
然后将BeanShell后处理器也添加为采样器的子项,并将以下内容添加到脚本区域:
int matchNr = Integer.parseInt(vars.get("MyVar_matchNr"));// MyVar is the name of the variable of the above regular expression extractor
int counter = 0;
for(i=1; i <= matchNr; i++){
String x = vars.get("MyVar_"+i);
if(x.equals("302")){
counter = counter + 1;
}}
log.info(Label + ": Number of redirects = " + String.valueOf(counter));// The output will be printed in the log like this(BeanShell PostProcessor: Number of redirects = 3 ) so you might want to change the name of the beanshell post processor to the same name of your sampler.
然后,您可以在日志中看到采样器的重定向次数。
答案 1 :(得分:2)
我听说Groovy is new black而且users are encouraged to use JSR223 Test Elements and __groovy() function since JMeter 3.1因为Beanshell表现不佳,所以你可以按如下方式计算重定向:
将以下代码放入&#34;脚本&#34;面积:
int redirects = 0;
def range = new IntRange(false, 299, 400)
prev.getSubResults().each {
if (range.contains(it.getResponseCode() as int)) {
redirects++;
}
}
log.info('Redirects: ' + redirects)
运行测试后,您将能够在 jmeter.log 文件中看到发生重定向的次数: