希望这是JMeter测试的常见问题。
我通过JMeter设置代理服务器,以便在我们的开发环境中“记录”测试用例。这工作正常,我设置了一些“ HTTP请求默认值”来全局设置默认的“服务器名称或IP”和“协议”。
既然已经在DEV上完成了测试,我们已经将代码移到我们的QA服务器上进行更多测试 - 我想我只需要在默认值中更改“服务器名称”然后运行测试。
我注意到的一件事是,对于我的测试用例中的每个采样器,该特定采样器的“ HTTP标头管理器”中存在其他标头 - 如User-Agent,Cache-Control, Referer 标头是我唯一关心的标头,因为它仍然是“硬编码”的DEV服务器。
有没有办法动态设置它 - 这样我就可以在多个环境中运行这个记录的测试?这通常如何处理?
任何帮助表示赞赏!感谢。
JG
答案 0 :(得分:3)
server
的JMeter变量如果要将JMeter属性从命令行传递到非GUI JMeter运行
,也可以使用JMeter属性而不是变量答案 1 :(得分:1)
只有在HTTP请求中未提供任何值时,Jmeter才会读取HTTP请求默认值。如果您在请求中将域留空,它将从请求中读取;否则它使用本地值。
作为快速修复,请在文本编辑器中打开JMX文件,并使用空值替换所有域的实例。在Jmeter中重新打开文件后,将域值重新添加回HTTP Request Default配置元素。
要在将来避免这种情况,请在录制前填写“请求默认值”。 Jmeter将自动过滤掉与默认值匹配的值。
您也可以使用变量和user defined values
执行此操作。请注意您设置的默认值。例如,如果你说customerID = 123
,任何时候Jmeter在录制时都会检测到'123',它会用${customerID}
替换它。因此,如果值为'12345',Jmeter将记录${customerID}45
答案 2 :(得分:0)
我这样做了:
创建了名为SRVNAME和SRVPORT
将jmx文件中的http referrers值更改为:
<elementProp name="Referer" elementType="Header"> <stringProp name="Header.name">Referer</stringProp> <stringProp name="Header.value">http://${SRVNAME}:${SRVPORT}/SomePage.html?querystring=blah</stringProp> </elementProp>
${__P(srvname,www.defaultserver.org)} ${__P(srvport,80)}
希望这有帮助