使用 groovy 修改 Soap UI 请求

2023-12-30

我们需要查找当前国家/地区的经销商数量。在下面的 xml 请求中,每个请求的键值对都会有所不同。 Soap 请求的输入将在 .txt 文件中给出。根据 .txt 文件中的输入数量,我需要动态生成键值对 xml 标签。

  **Format of Input.txt**

   1.key1=Fruit,value1=Carrot,Key2=Vegetable,value2=Carrot
   2.key1=Vegetable,value1=Potato
   3.key1=Fruit,value1=Apple,key2=Fruit,value2=Orange,key3=Fruit,value3=Mango

SoapUI 请求

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://www.webserviceX.NET">
           <soapenv:Header/>
           <soapenv:Body>
              <web:GetCitiesByCountry>
                 <web:CountryName>Ind</web:CountryName>
                 <web:queryParameters>
                    <web:key>Fruits</web:key>
                    <web:value>Mango</web:value>
                </web:queryParameters>
                <web:queryParameters>
                    <web:key>Vegetables</web:key>
                    <web:value>Carrot</web:value>
                </web:queryParameters>
              </web:GetCitiesByCountry>
           </soapenv:Body>
        </soapenv:Envelope>

您说您已对输入记录的读取进行了排序,因此我只是将一些记录放入地图中以用于演示目的。然后,如果您的请求有效负载开始看起来像:

<soap:Envelope xmlns:soap="w3.org/2003/05/soap-envelope">
    <soap:Header/>
    <soap:Body>
        <web:GetCitiesByCountry xmlns:web="webserviceX.NET">
            <web:CountryName>hello</web:CountryName>
        </web:GetCitiesByCountry>

    </soap:Body>
</soap:Envelope>

您可以循环遍历输入记录并将它们附加到请求中:

import groovy.xml.XmlUtil

// Assuming the input document has been read into a HashMap
def map = ['Fruits': 'Banana',
           'Vegetable': 'Potato'        
          ]

// Get testStep by it's name
def testStep = context.testCase.getTestStepByName('soapRequest')

// Parse the request
def xml = new XmlSlurper().parseText(testStep.getPropertyValue('request'))

// Loop through the map and append the key/value pairs
xml.Body.appendNode {
   map.each {k, v ->
      Parameters {      
        Key(k)
        Value(v)
     }
   }
}

// Check the output
log.info(XmlUtil.serialize( xml ))

// Update the request
testStep.setPropertyValue('request',groovy.xml.XmlUtil.serialize( xml ))

之后,您的请求将如下所示:

<soap:Envelope xmlns:soap="w3.org/2003/05/soap-envelope">
    <soap:Header/>
    <soap:Body>
        <web:GetCitiesByCountry xmlns:web="webserviceX.NET">
            <web:CountryName>hello</web:CountryName>
        </web:GetCitiesByCountry>
        <Parameters>
            <Key>Fruits</Key>
            <Value>Banana</Value>
        </Parameters>
        <Parameters>
            <Key>Vegetable</Key>
            <Value>Potato</Value>
        </Parameters>
    </soap:Body>
</soap:Envelope>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 groovy 修改 Soap UI 请求 的相关文章

  • 如何在 WebStorm 中安装 Groovy 插件?

    我正在使用 WebStorm 进行开发 我想要为 Jenkins Groovy 管道提供语法突出显示 使用IntelliJ IDEA来编辑Jenkinsfile是可以的 但是在IDE之间来回切换显然很不方便 我可以安装吗Groovy 插件
  • Jenkins 共享库 - 从 /vars 中的 /src 文件夹导入类

    我正在尝试为我的 CI 流程编写一个 Jenkins 共享库 我想引用一个类 src定义在全局函数内的文件夹 vars文件夹 因为它允许我将大部分逻辑放在类中而不是全局函数中 我遵循 Jenkins 官方文档中记录的存储库结构 Jenkin
  • 将 SoapUI 与 JUnit 集成

    我正在尝试将 SoapUI 集成到我预先存在的 JUnit 测试中 我在 SoapUI 3 6 1 中创建了一个测试 有用 我的下一步是将其应用到我的开发环境中 在我的 Eclipse 项目中 我已将 jar 添加到我的类路径中 我还创建了
  • 文本在指定长度后分割,但不要使用 grails 打断单词

    我有一个长字符串 需要将其解析为长度不超过 50 个字符的字符串数组 对我来说 棘手的部分是确保正则表达式找到 50 个字符之前的最后一个空格 以便在字符串之间进行彻底的分隔 因为我不希望单词被切断 public List
  • 我怎样才能拦截从 Java 到 Groovy 的调用——或者轻松地模拟它

    我本来希望使用 groovy 的 invokeMethod 来做到这一点 但事实证明 当您从 Java 调用 Groovy 时 不会调用 invokeMethod 但否则它会完美地工作 我有一个案例 我将 Groovy 类提交给 Java
  • Groovy HttpBuilder - 获取失败响应的正文

    我正在尝试使用 Groovy HTTPBuilder 编写一个集成测试 该测试将验证正文中是否返回正确的错误消息以及 HTTP 409 状态消息 但是 我无法弄清楚如何在失败情况下实际访问 HTTP 响应的正文 http request E
  • 如何检测 URL 映射中的片段标识符?

    In a Grails http www grails org 项目我正在尝试根据是否存在来映射 Url片段标识符 http en wikipedia org wiki Fragment identifier 片段标识符不是 URL 的一部
  • Jenkins 管道阶段 - 传递整个文件

    运行包含多个节点的阶段的 Jenkins 管道 基于 Groovy 我需要将 stageA 上的 NodeA 上的某个文件的列表传递到 StageB 上的 NodeB 在 stageA NodeA 我运行 DEVenv readFile s
  • 升级eclipse后Groovy失败

    最近升级到 Eclipse 2020 12 4 18 0 从那以后 Groovy 就不再工作了 升级了 Groovy 没有任何改进 现在正在运行 展开所有 已安装的内容 树 Eclipse Groovy 开发工具 org codehaus
  • 需要正则表达式帮助

    我正在尝试替换两次或多次出现的 br like br br br 标签与两个一起 br br 具有以下模式 Pattern brTagPattern Pattern compile lt s br s s gt s 2 Pattern CA
  • SoapUI 5.3.0 Mac 安装后任何使用都会挂起

    SoapUI 5 3 0 最新开源版本 Mac 在 MacOS 10 12 3 上进行全新安装时挂起 使用安装程序建议的所有预设 我尝试重新启动并再次安装 每次加载应用程序时 它只是一个永恒的沙滩球 没有可点击的菜单 并且需要强制退出 即使
  • 如何在 Gradle 中使用 if else 条件

    有人可以告诉我如何在 gradle 脚本中编写 if else 条件吗 我的意思是我有两种不同类型的 zip 文件 一种是 LiceseGenerator 4 0 0 58 另一种是 CLI 4 0 0 60 我的部署脚本工作正常 但我使用
  • Groovy:为什么我需要双转义方括号?

    为什么这不起作用 hello world split 这会 hello world split 这实际上是不同上下文中的两次转义 因为参数是表示为字符串的正则表达式 The 必须进行转义 否则它将在正则表达式中具有特殊含义 正则表达式的转义
  • Groovy GDK 相当于 Apache Commons StringUtils.capitalize(str) 或 Perl 的 ucfirst(str)

    是 否问题 是否有 Groovy GDK 函数可以将字符串的第一个字符大写 我正在寻找 Perl 的 ucfirst 或 Apache Commons StringUtils capitalize str 的 Groovy 等效项 后者将输
  • 从 XML 对象中获取值

    我正在尝试使用 java 获取 XML 对象的值 我的 XML 源
  • 如何在 Eclipse RCP 项目中使用 groovy?

    我有一个 Eclipse RCP 项目 我想在其中使用 Groovy 我尝试做的是 1 添加 Groovy Nature 2 在 src 文件夹下创建Groovy文件3 从 View 的createPartControl 方法调用groov
  • Gradle 任务语法:从 Groovy 角度如何解释?

    我很难理解 Gradle 的 Groovy DSL 的工作原理 不幸的是 Gradle 是我在日常工作中遇到的 Groovy 的主要用例 而且我注意到对于许多开发人员来说 他们接触 Groovy 的方式完全是通过 Gradle 因此 大多数
  • 1) Java 和 2) Groovy 自动导入哪些包?

    在 Groovy 中进行过相当多的编程后 我知道某些包中的类会自动导入 1 Java 和 2 Groovy 的独家新闻是什么 是否有一个明确的列表 列出了您不需要为每种语言指定导入的语言 在Java中 默认导入的唯一包是 java lang
  • 如何从詹金斯管道获取所有参数(参数化构建)?

    我正在较新版本的 jenkins 中构建一个参数化管道作业 在较旧版本的 jenkins 中 我使用 getbinding getVariables 来检索所有参数 但较新的版本它返回空值 如何在新版本的詹金斯中检索参数 全部 您可以使用
  • 无法在 Intellij 上创建 Groove 脚本 - @NotNull 参数的参数

    我正在尝试开始学习 Groovy 以便在 JIRA 上使用 ScriptRunner 执行 API 调用 所以我从基础开始 我的问题是我什至无法使用 Intellij 创建 Groovy 脚本 在项目创建时它选择Groovy并选择项目SDK

随机推荐

  • PyQt5:如何安装/运行 Qt Designer

    现在感觉真的很愚蠢 但标题说明了一切 How你启动QtDesigner了吗 我已经安装了PyQt5 via pip我相信已将其安装目录确定为 C Users username AppData Local Programs Python Py
  • “数据位”容量与“开销位”大小?

    我有点困惑 因为我找不到任何涵盖缓存 数据 部分的内容 我在 google 上搜索到的所有内容 99 9 都与缓存寻址有关 我被问到的问题是这样表述的 Contrast the difference between data bit cap
  • DbSet<>.Local 使用时需要特别小心吗?

    几天来 我一直在努力从存储库中检索我的实体 DbContext 我试图在原子操作中保存所有实体 因此 不同的实体在一起对我来说代表着有价值的东西 如果所有实体都是 有效 那么我可以将它们全部保存到数据库中 实体 a 已存储在我的存储库中 需
  • 多个物体之间的碰撞

    我正在编写一个简单的物理系统来娱乐 但我遇到了一个让我陷入困境的问题 现在的基本算法是 移动物体 检查是否有碰撞 If there was a collision 将对象移动最小距离以解决碰撞 根据法线 质量等调整速度 我有一个移动的物体朝
  • 情感分析中的否定处理

    我在这里需要一点帮助 我需要识别 不好 不错 等负面词语 然后识别情绪的极性 消极或积极 除了处理否定之外 我做了所有事情 我只是想知道如何将否定包含在其中 我该怎么办 否定处理是一个相当广泛的领域 有许多不同的潜在实现 在这里 我可以提供
  • 无法确定存储版本 - 实体框架

    我正在当前解决方案的一个单独的项目中实现代码优先模式 因为我这样做了 所以我初始化了我的连接字符串DbContext我收到这个奇怪的错误 无法确定存储版本 有效的存储连接或 需要版本提示 我正在使用 Entity Framework 5 0
  • 从对象验证消息中删除字段名称

    我在表单中使用它对对象进行了简单的活动记录验证 form error messages message gt header message gt 这又会输出类似 FieldName My Custom message 的内容 我需要做的是从
  • JavaFX BooleanProperty 和 Hibernate

    我正在尝试将 JavaFX BooleanPropety 添加到由 Hibernate 保留的模型中 但出现以下错误 Caused by org hibernate MappingException Could not determine
  • 避免在释放控件时调用 Invoke

    我的工作线程中有以下代码 ImageListView下面是源自Control if mImageListView null mImageListView IsHandleCreated mImageListView IsDisposed i
  • RSpec:如何存根继承的方法 current_user (无需设计)?

    我有一个基于 MHartl 的控制器RoR4 教程 http www railstutorial org book single page 就像 MHartl 一样 我没有使用设计 I 推出了我自己的身份验证系统 http www rail
  • UIImagePickerController 快门

    I have bug with UIImagePickerController which source type is camera Sometimes after controller appeared shutter is not o
  • 实现 π (pi) 的 Spigot 算法

    我很难理解插口算法找到 pi here http www cut the knot org Curriculum Algorithms SpigotForPi shtml在页面底部 我在第 2 部分 将 A 放入常规形式 的底部迷失了方向
  • 如何在 C# 中的随机端口上创建 HttpListener 类?

    我想创建一个在内部提供网页服务的应用程序 并且可以在同一台计算机上的多个实例中运行 为此 我想创建一个HttpListener监听的端口是 随机选择 目前未使用 本质上 我想要的是这样的 mListener new HttpListener
  • 如何设置新创建的 emacsclient 的样式和位置?

    我最近改用 emacsclient 进行大部分文本编辑 我正在尝试将一些设置迁移到新的 略有不同的 环境 特别是 在我的 emacs 文件中 我有一个设置窗口大小并准备一些主题的函数 但是 emacs 文件中的代码不会在每次调用 emacs
  • 如何在 AppEngine Standard 和 Nodejs 中提供静态文件

    The 文档 https cloud google com appengine docs standard nodejs serving static files表示您只需更新您的 app yaml 就像 AppEngine 中的任何语言一
  • MongoDB:将多个集合中的数据合并为一个......如何?

    我如何 在 MongoDB 中 将多个集合中的数据合并到一个集合中 我可以使用map reduce吗 如果可以的话怎么办 因为我是新手 所以我非常感谢一些例子 MongoDB 3 2 现在允许人们通过以下方式将多个集合中的数据合并为一个集合
  • 测试 SQL Server 连接

    我构建了一个基于 Excel 的工具 它使用 ODBC 连接和查询表从 SQL Server 2014 提取数据 该工具必须与 Mac Office 2016 兼容 因此需要 ODBC 和查询表 我正在努力测试用户是否可以连接到 SQL S
  • 将两个多边形区域合并为R中的单个多边形区域

    我是 R 中处理空间数据和多边形的新手 我有两个独立的形状文件 包含从 Google 地球中提取的两个多边形 因此 基本上第一个形状文件是一个位置 例如购物中心等 第二个形状文件是第一个位置周围三公里的半径 我将两个形状文件作为 Spati
  • Glade:如何在 GtkAssistant 中编辑页面

    我想将内容添加到 Glade 中的助手窗口 GtkAssistant 的页面中 当我添加新助手时 GtkAssistant 下没有出现任何子项 此外 我无法选择 或删除或更改 Glade 生成的 3 个默认页面的内容 我只能选择助手本身 因
  • 使用 groovy 修改 Soap UI 请求

    我们需要查找当前国家 地区的经销商数量 在下面的 xml 请求中 每个请求的键值对都会有所不同 Soap 请求的输入将在 txt 文件中给出 根据 txt 文件中的输入数量 我需要动态生成键值对 xml 标签 Format of Input