gpt4 book ai didi

xml - 从soapui groovy脚本中的xml获取文本值

转载 作者:数据小太阳 更新时间:2023-10-29 02:04:49 24 4
gpt4 key购买 nike

我的任务是从 soapui 中的 xml 获取值以创建序列中的下一个测试。

我使用 groovy 脚本

我的目标是获取标签内的文本。很容易识别,因为它是 base64 编码的字符串。

def project = testRunner.testCase.testSuite.project ;
def tcase = project.testSuites["ChangeRetentionByCopyDemoSuite"].testCases["Milestone2"] ;
def tstep = tcase.getTestStepByName("getDocuments - GetContentURLRequest");

def responseTestSuite1 = tstep.getPropertyValue("response");

log.info(responseTestSuite1.toString());

def gutils = new com.eviware.soapui.support.GroovyUtils( context );
def holder = gutils.getXmlHolder("$responseTestSuite1");

def byteResponse = holder.getNodeValue("/S:Envelope/S:Body/g:getDocumentsResponse/text()");

日志信息(byteResponse);

getDocuments - GetContentURLRequest 中的 xml 响应

    <S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Header>
<Security xmlns="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<Timestamp xmlns="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<Created>2015-09-15T13:57:50.844Z</Created>
<Expires>2015-09-16T13:57:50.844Z</Expires>
</Timestamp>
</Security>
</S:Header>
<S:Body>
<getDocumentsResponse xmlns="http://asg.com/2009/03/schemas/tciadapters/getdocument">
<result>
<operationStatus>
<severity>INFO</severity>
<reasonCode>A300</reasonCode>
<messageText>All requests completed without errors.</messageText>
</operationStatus>
<documents>
<DocumentData>
<docId>
<NameValuePair>
<keyName>cmis:objectId</keyName>
<keyValue>idd_48716F01-F5F7-4702-AC80-4EC70C949121</keyValue>
</NameValuePair>
</docId>
<status xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
<content>
<ContentSegment>
<data>aHR0cHM6Ly91c3J5ZTh0Y2k0bTAyLmFzZy5jb206NzQ0My9jbWlzYWRhcHRlci9nZXRjb250ZW50P3VzZXJpZD1kZXY2ZGV2aWQmcGFzc3dvcmQ9ZGV2ZWxvcCUyMzEmY21pc19pbnN0YW5jZT1GaWxlTmV0UDgrLStBdG9tUHViJnJlcG9zaXRvcnk9ZmlsZW5ldG9iamVjdHN0b3JlMSZjbWlzOm9iamVjdElkPWlkZF80ODcxNkYwMS1GNUY3LTQ3MDItQUM4MC00RUM3MEM5NDkxMjE=</data>
</ContentSegment>
</content>
<metadata/>
<properties>
<subrange xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
<format xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
<supportedFormats/>
</properties>
<retention/>
</DocumentData>
</documents>
</result>
</getDocumentsResponse>
</S:Body>
</S:Envelope>

不幸的是我在运行最后一行代码时出现异常

最佳答案

如果你想提取标签“messageText”中的文本,那么你可以指定父节点和子节点,即将最后一行修改为

def byteResponse = holder.getNodeValue("//*:operationStatus//*:messageText")

// since there is only one tag named "messageText" in the entire response, you could use this also

def byteResponse = holder.getNodeValue("//*:messageText")

关于xml - 从soapui groovy脚本中的xml获取文本值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32588131/

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