groovy - 将 groovy 中的 xml 标签插入到 SOAPUI 中的 SOAP 请求中

标签 groovy soapui

我正在使用 SOAPUI 进行 Web 服务测试。我想通过 groovy 脚本测试步骤进行 xml 解析。对于一个测试用例,我必须插入 xml 标签 [如 <Email><a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="9ee6e7e4def9f3fff7f2b0fdf1f3" rel="noreferrer noopener nofollow">[email protected]</a></Email> ] 在 SOAP 请求中。

我可以使用 holder.setNodeValue(Xpath, Value) 将值设置为 xml 标记,使用相同的函数,我尝试在 SOAP 请求中插入 xml 标记,如 holder.setNodeValue(Xpath, "<Email><a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="077f7e7d47606a666e6b2964686a" rel="noreferrer noopener nofollow">[email protected]</a></Email>") 。但在 SOAP 请求 xml 标记中设置为

"&ltEmail><a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="38404142785f55595154165b5755" rel="noreferrer noopener nofollow">[email protected]</a>&lt/Email>"  

由于这个问题,SOAP 请求无法识别该 xml 标记,因此该值无法在响应中反射(reflect)/更新。

如果我错误地使用了这个功能,请纠正我。等待任何人的回复..

最佳答案

发生这种情况是因为您正在调用 setNodeValue 方法。该方法将设置节点的值(可以是XML节点格式)。

理想情况下,您应该做的是如果节点已经存在(),则只需使用holder获取该节点并设置值。 或者

xpath = "//level1/level2/email"
holder.setNodeValue(xpath, "<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="a5dddcdfe5c2c8c4ccc98bc6cac8" rel="noreferrer noopener nofollow">[email protected]</a>")

或者最简单的是,在节点之间添加一个空属性值。

<Name>Test</Name>
 ${Property#TestValue}
<Phone>123123</Phone>

现在假设您想在姓名和电话之间添加电子邮件,请为该属性变量分配一些值。 如果没有,则将其留空。

关于groovy - 将 groovy 中的 xml 标签插入到 SOAPUI 中的 SOAP 请求中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11429654/

相关文章:

jquery - 卡塔隆 : Unable to click on object: Web element with id not found

java - SoapUI query 多条件匹配

java - Groovy Shell 沙箱最佳实践

Grails 3.x 和 Jenkins : Save BUILD_NUMBER and date when deploying

file-io - run-app 和 test-app 之间的 Griffon 资源加载差异

web-services - 使用soapui进行WSDL/SOAP测试

web-services - Xpath 验证在使用 maven/soap-ui 插件进行自动化测试时失败

java - 带有字符 ^ 的 SOAP MalformedURLException

soapui - 打开 SOAPUI 转储文件的正确方法是什么?

groovy - 如何使用 Elasticsearch 脚本尽快部分更新 5 亿个文档