gpt4 book ai didi

SoapUI - 自动将自定义 SOAP header 添加到传出请求中

转载 作者:行者123 更新时间:2023-12-02 03:58:24 24 4
gpt4 key购买 nike

所以我想要做的是自动将 SOAP header 添加到 SoapUI 中生成的每个请求中,因为我有数百个请求,手动执行此操作很烦人。

假设这是我从 WSDL 生成的示例请求,如下所示:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:pol="http://something">
<soapenv:Header>
</soapenv:Header>
<soapenv:Body>
<pol:GetSomething>
<tag1>3504</tag1>
<tag2>ALL</tag2>
</pol:GetSomething>
</soapenv:Body>
</soapenv:Envelope>

当我发出请求时,我希望 SoapUI 将其修改为如下所示:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:pol="http://something">
<soapenv:Header>
<token xmlns="ns1">${TOKEN}</token>
<user xmlns="ns2">user</user>
<system xmlns="ns3">system</system>
</soapenv:Header>
<soapenv:Body>
<pol:GetSomething>
<tag1>3504</tag1>
<tag2>ALL</tag2>
</pol:GetSomething>
</soapenv:Body>
</soapenv:Envelope>

在 SoapUI 中可以吗?

最佳答案

在您的测试用例中,您可以添加 Groovy 脚本类型的第一步,在此脚本中您可以操作每个请求以在 <soap:Header> 上添加必要的元素。 ,我给你一个对我有用的例子:

def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context );
def tcase = testRunner.testCase ;
// get total number of testSteps
def countTestSteps = tcase.getTestStepList().size();
// start with 1 to avoid groovy script testStep
for(i=1;i<countTestSteps;i++){

// get testStep
def testStep = tcase.getTestStepAt(i);
// get request
def request = testStep.getProperty('Request').getValue();
// get XML
def xmlReq = groovyUtils.getXmlHolder(request);
// get SOAPHEADER
def soapHeader = xmlReq.getDomNode("declare namespace soap='http://schemas.xmlsoap.org/soap/envelope/'; //soap:Header")
// document to create new elements
def requestDoc = soapHeader.getOwnerDocument()
// create new element
def newElem = requestDoc.createElementNS(null, "element");
// insert in header
soapHeader.insertBefore(newElem, soapHeader.getFirstChild());
// now put your new request in testStep
log.info xmlReq.getXml();
testStep.setPropertyValue('Request', xmlReq.getXml());
}

此示例代码仅在 <soap:header> 上添加一个新元素,但您可以修改它以添加属性、文本内容和更多节点。您还可以查看:

dynamically create elements in a SoapUI request | SiKing

关于SoapUI - 自动将自定义 SOAP header 添加到传出请求中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21277999/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com