Jmeter 只记录带有 JSR223 侦听器的 HTTPSampler
Jmeter log only HTTPSampler with JSR223 Listener
正在尝试在测试计划级别设置 JSR223 侦听器,以便它侦听所有线程组。我想实现的是它只记录每个 HTTP 请求的方法(GET、POST、HEAD、OPTIONS、PUT、DELETE 和 TRACE)并打印每个方法、URL、响应代码、值和响应数据.
环顾四周,发现了左右两边的一些片段,并想出了这个:
try{
if (sampler.getUrl().toString().contains("http")){
log.warn('Method: ' + sampler.getMethod() + ' URL: ' + sampler.getUrl().toString());
sampler.getArguments().each {arg ->
log.warn('CODE: ' + prev.getResponseCode() + ' Value: ' + arg.getStringValue())
}
log.warn('CODE: ' + prev.getResponseCode() + ' ResponseData: ' + prev.getResponseDataAsString());
}else{
log.warn('Not a HTTPRequest')
}
}
catch (Throwable ex)
{
log.warn('Something went wrong', ex);
throw ex;
}
然后我根据需要在日志查看器中获得了结果。
我面临的挑战是如果任何其他采样器类型处于活动状态,它会记录错误,因为该采样器不是 HTTP 请求而是虚拟采样器,因此它不能 return 请求的值。
groovy.lang.MissingMethodException: 没有方法签名: kg.apc.jmeter.samplers.DummySampler.getUrl()
现在我的例子只显示线程组中的两个采样器,但想象一下 100 个不同的采样器
考虑到我需要更改我的 'if' 语句以不检查采样器参数,而是检查采样器类型 (HTTPRequest),但是好旧的 google return 没什么好继续的。那么,是否有可能使用 if 语句来检查采样器类型,该语法是什么?
if (sampler==HTTPRequest)
???
您可以使用 sampler.getClass()
并比较它以检查是否 HTTP 请求:
if("HTTPSamplerProxy".equals(sampler.getClass().getSimpleName())) {
您可以使用日志检查 class 名称:
log.info(sampler.getClass().getSimpleName());
正在尝试在测试计划级别设置 JSR223 侦听器,以便它侦听所有线程组。我想实现的是它只记录每个 HTTP 请求的方法(GET、POST、HEAD、OPTIONS、PUT、DELETE 和 TRACE)并打印每个方法、URL、响应代码、值和响应数据.
环顾四周,发现了左右两边的一些片段,并想出了这个:
try{
if (sampler.getUrl().toString().contains("http")){
log.warn('Method: ' + sampler.getMethod() + ' URL: ' + sampler.getUrl().toString());
sampler.getArguments().each {arg ->
log.warn('CODE: ' + prev.getResponseCode() + ' Value: ' + arg.getStringValue())
}
log.warn('CODE: ' + prev.getResponseCode() + ' ResponseData: ' + prev.getResponseDataAsString());
}else{
log.warn('Not a HTTPRequest')
}
}
catch (Throwable ex)
{
log.warn('Something went wrong', ex);
throw ex;
}
然后我根据需要在日志查看器中获得了结果。
我面临的挑战是如果任何其他采样器类型处于活动状态,它会记录错误,因为该采样器不是 HTTP 请求而是虚拟采样器,因此它不能 return 请求的值。
groovy.lang.MissingMethodException: 没有方法签名: kg.apc.jmeter.samplers.DummySampler.getUrl()
现在我的例子只显示线程组中的两个采样器,但想象一下 100 个不同的采样器 考虑到我需要更改我的 'if' 语句以不检查采样器参数,而是检查采样器类型 (HTTPRequest),但是好旧的 google return 没什么好继续的。那么,是否有可能使用 if 语句来检查采样器类型,该语法是什么?
if (sampler==HTTPRequest)
???
您可以使用 sampler.getClass()
并比较它以检查是否 HTTP 请求:
if("HTTPSamplerProxy".equals(sampler.getClass().getSimpleName())) {
您可以使用日志检查 class 名称:
log.info(sampler.getClass().getSimpleName());