HTTP Header Manager是配置元件,会作用到范围内的所有取样器。这里有2个HTTP Header Manager,都位于同一层级,它们会一起执行。在JMeter同一执行单元中,如果相同类型的元件有多个,那么它们会被当做一个一起执行!
测试一下,把最后一个HTTP Header Manager的authorization重命名为authorization2,查看考场接口的Headers:
两个HTTP Header Manager都作用上了。
为了避免混乱,在实际使用时建议:
根据先后顺序,从上往下合理的放置元件的顺序。
对于配置元件、前置处理器、定时器、后置处理器、断言这六类元件,它们都是为取样器服务的,如果只想作用于单个取样器,那么最好放在这个取样器的下级。
按照建议调整后的测试脚本如下:
User Defined Variables和CSV Data Set Config,是配置元件,且跟取样器同级,会同时作用到这 3 个取样器上面。
小结本文开头引入了我在实际工作中碰到的问题,为了解决,先搞懂了JMeter元件运行顺序,然后参考了实践指南,发现了同一层级作用域相同这个原理,总结出了使用建议,配置元件、前置处理器、定时器、后置处理器、断言这六类元件,最好放在取样器的下级,调整后脚本如期运行。