我想在多个jmx文件中使用同一组标题。因此,我想对其进行一次初始化,并且必须在我的jmx文件中使用它。
谁能帮助我满足我的要求?预先感谢。
答案 0 :(得分:1)
那是不可能的。 为了能够将Header Manager应用于所有计划,它应该具有最大的范围,但是使用Include或Module控制器意味着范围缩小了。
由于作用域stil,您可以将Header Manager设置为测试计划的子项,它将应用于整个请求。
您可以使用属性和__P函数使它们在user.properties中可配置
答案 1 :(得分:0)
您可以执行以下操作:
创建一个名为headers.csv
的CSV文件来保存标题,例如:
header-1-name,header-1-value
header-2-name,header-2-value
并将其存储在JMeter安装的“ bin”文件夹中
在测试计划的顶层添加空HTTP Header Manager
将以下代码放入“脚本”区域:
import org.apache.jmeter.protocol.http.control.Header
import org.apache.jmeter.protocol.http.control.HeaderManager
import org.apache.jmeter.threads.JMeterContext
import org.apache.jmeter.threads.JMeterContextService
import org.apache.jorphan.collections.SearchByClass
SampleResult.setIgnore()
def engine = ctx.getEngine()
def testPlanTree = org.apache.commons.lang3.reflect.FieldUtils.readDeclaredField(engine, "test", true)
def headerManagerSearch = new SearchByClass<>(HeaderManager.class)
testPlanTree.traverse(headerManagerSearch)
def headerManagers = headerManagerSearch.getSearchResults()
headerManagers.any { headerManager ->
new File('headers.csv').readLines().each { line ->
def values = line.split(',')
headerManager.add(new Header(values[0], values[1]))
}
}