我正在运行apache / nginx webservers的暂存群集,其中域具有基本身份验证受限访问权限。我的目标是用jmeter测试集群的性能。
为了通过身份验证,我添加了jmeter的HTTP身份验证控制器。这是有效的,但每个请求都显示apache的两个logentries。一个200和一个401.这是正常行为,因为第一次请求必须对用户进行身份验证。不幸的是,jmeter会在每次请求时执行此操作。
如何确保每个线程/用户仅请求访问一次。或者更好的是,如果没有每个用户需要进行身份验证,我怎么能授予jmeter访问权限。我相信这会影响测试结果。
感谢您对此提出任何暗示。
答案 0 :(得分:0)
这听起来像是一个JMeter bug,因为它具有适当的权限#34;授权"提供标题不应该是WWW-Authenticate挑战。如果您可以通过JMeter Bugzilla提交,或通过JMeter Users Mailing List标记,那就太棒了
与此同时,您可以使用以下方法之一来解决这个问题:
直接将凭据注入URL - 如果JMeter进入" Path"输入字段如:
http://username:password@host.domain/path
使用Beanshell Scripting构建适当的"授权"标题即时。为此:
将以下代码放入预处理器"脚本"区域
import org.apache.jmeter.protocol.http.util.Base64Encoder;
import org.apache.jmeter.protocol.http.control.Header;
String encodedCredentials = Base64Encoder.encode(bsh.args[0] + ":" + bsh.args[1]);
sampler.getHeaderManager().add(new Header("Authorization", "Basic " + encodedCredentials));
你不应该再在任何地方收到任何401代码了。