JMeter自定义soap采样器以使用变量
我在JMeter中使用自定义SOAP采样器发送SOAP请求JMeter自定义soap采样器以使用变量,soap,groovy,jmeter,Soap,Groovy,Jmeter,我在JMeter中使用自定义SOAP采样器发送SOAP请求 <soapenv:Envelope> <soapenv:Header/> <soapenv:Body> <ser:${myvar}Upload> ... </ser:${myvar}Upload> </soapenv:Body> </soapenv:Envelope> 添加JSR223预处理器并使用 对于xml
<soapenv:Envelope>
<soapenv:Header/>
<soapenv:Body>
<ser:${myvar}Upload>
...
</ser:${myvar}Upload>
</soapenv:Body>
</soapenv:Envelope>
添加JSR223预处理器并使用 对于xml,脚本将具有以下形式:
import groovy.xml.*
def builder = new StreamingMarkupBuilder()
builder.encoding = 'UTF-8'
def yourCustomElement = vars.get("myvar") + "Upload" // myvar is a saved variable in previous step
def Envelope = builder.bind {
mkp.xmlDeclaration()
namespaces << [soapenv:'http://schemas.xmlsoap.org/soap/envelope/'] // Or mkp.declareNamespace('soapenv':'http://schemas.xmlsoap.org/soap/envelope/')
soapenv.Envelope() {
soapenv.Header(){}
soapenv."${yourCustomElement}"() {
}
}
}
vars.put("myXML", XmlUtil.serialize(Envelope));
log.info("\n" + vars.get("myXML"))
输出:
2019/02/25 17:13:51 INFO - jmeter.modifiers.JSR223PreProcessor:
<?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header/>
<soapenv:TestUpload/>
</soapenv:Envelope>
试用
2019/02/25 17:13:51 INFO - jmeter.modifiers.JSR223PreProcessor:
<?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header/>
<soapenv:TestUpload/>
</soapenv:Envelope>