希望这是JMeter测试的常见问题 .
我通过JMeter将代理服务器设置为'record'在我们的开发环境中的测试用例 . 这工作正常,我设置了一些' HTTP Request Defaults ' to globally set the default '服务器名称或IP ' and '协议' .
既然已经在DEV上完成了测试,我们已经将代码移到我们的QA服务器上进行更多测试 - 我想我只需要在默认值中更改“服务器名称”然后运行测试 .
我注意到的一件事是,对于我的测试用例中的每个采样器,该特定采样器的' HTTP Header Manager '中存在其他标头 - 如User-Agent,Cache-Control等. Referer 标头是唯一关注我的标头因为它仍然是DEV服务器'hard coded' .
有没有办法动态设置它 - 这样我就可以在多个环境中运行这个记录的测试?这通常如何处理?
任何帮助表示赞赏!谢谢 .
JG
3 回答
只有在HTTP请求中未提供任何值时,Jmeter才会读取HTTP请求默认值 . 如果您在请求中将域留空,它将从请求中读取;否则它使用本地值 .
作为快速修复,在文本编辑器中打开JMX文件,并用空值替换所有域的实例 . 在Jmeter中打开文件后,将域值重新添加回HTTP Request Default配置元素 .
为避免将来出现这种情况,请在录制前填写“请求默认值” . Jmeter将自动过滤掉与默认值匹配的值 .
您也可以使用变量和
user defined values
执行此操作 . 请注意您设置的默认值 . 例如,如果您说customerID = 123
,任何时候Jmeter在录制时检测到'123',它将用${customerID}
替换它 . 所以,如果有值'12345',Jmeter会记录${customerID}45
在测试计划的根目录中设置名为
server
的JMeter变量在HTTP请求中使用该变量默认为“服务器名称”字段
在HTTP标头管理器引用程序字段设置中使用该变量
如果要将其从命令行传递到非GUI JMeter运行,也可以使用JMeter属性而不是变量
我这样做了:
创建了名为SRVNAME和SRVPORT的用户定义变量
更改了jmx文件中的http referrers值,如下所示:
希望这可以帮助