Groovy SOAPUI注释请求中不需要的标记

Groovy SOAPUI注释请求中不需要的标记,groovy,soapui,Groovy,Soapui,我想在SOAPUI中进行数据驱动测试。因此,我试图将数据从excel文件输入到脚本中。在某种程度上,我是成功的。我使用groovy脚本更新了所有测试脚本 然而,有一个挑战,对于一些测试用例,我不想给出一些标签的数据。当我将其保留为空时,服务器抛出错误。这意味着标记应该有一个值,或者标记应该被排除,因为标记本身是可选的 如果没有其他同级具有任何值,是否有方法排除标记、其所有子项甚至其父项 换句话说,我希望只启用具有值或是必需的标记。所有其他标签都应该注释 如何使用groovy脚本实现这一点 例如:

我想在SOAPUI中进行数据驱动测试。因此,我试图将数据从excel文件输入到脚本中。在某种程度上,我是成功的。我使用groovy脚本更新了所有测试脚本

然而,有一个挑战,对于一些测试用例,我不想给出一些标签的数据。当我将其保留为空时,服务器抛出错误。这意味着标记应该有一个值,或者标记应该被排除,因为标记本身是可选的

如果没有其他同级具有任何值,是否有方法排除标记、其所有子项甚至其父项

换句话说,我希望只启用具有值或是必需的标记。所有其他标签都应该注释

如何使用groovy脚本实现这一点

例如:

<Record>
   <Employee>
      <Name>Alfa</Name>
      <Age>28</Age>
   </Employee>
   <Location>
      <LocName></LocName>
      <State></State>
   </Location>
</Record>

阿尔法
28
在此代码中,Employee标记包含信息。但位置标签不是。 如果我为标记LocName和State传递空白值,我的服务器将抛出错误。但是,标记位置本身是可选的。 所以我希望我的要求是这样的

<Record>
   <Employee>
      <Name>Alfa</Name>
      <Age>28</Age>
   </Employee>
      <!--Location>
      <LocName></LocName>
      <State></State>
   </Location-->
</Record>

阿尔法
28

如何做到这一点?

您可以使用context.expand函数

在您的请求中,您需要使用${=context.expand(“变量#1”)!=''添加行:'''}

例如: 数据源J1和数据源J2来自我的数据源测试步骤

    ${=context.expand("${DataSource#J1}")!=''?'<rxas:OpeningHour>':''}
    ${=context.expand("${DataSource#J1}")!=''?'<rxas:HourFrom>'+context.expand("${DataSource#J1}")+'</rxas:HourFrom>':''}
    ${=context.expand("${DataSource#J2}")!=''?'<rxas:HourTo>'+context.expand("${DataSource#J2}")+'</rxas:HourTo>':''}
    ${=context.expand("${DataSource#J1}")!=''?'</rxas:OpeningHour>':''} 
${=context.expand(“${DataSource#J1}”)!=”?“”
${=context.expand(“${DataSource#J1}”)!=“”?“”+context.expand(${DataSource#J1}”)+“”“”“”
${=context.expand(“${DataSource#J2}”)!=''?''+context.expand(${DataSource#J2}”)+'':''
${=context.expand(“${DataSource#J1}”)!=''?'''''''''''}

如果变量为空!=''不会添加值“example”

您可以使用context.expand函数

在您的请求中,您需要使用${=context.expand(“变量#1”)!=''添加行:'''}

例如: 数据源J1和数据源J2来自我的数据源测试步骤

    ${=context.expand("${DataSource#J1}")!=''?'<rxas:OpeningHour>':''}
    ${=context.expand("${DataSource#J1}")!=''?'<rxas:HourFrom>'+context.expand("${DataSource#J1}")+'</rxas:HourFrom>':''}
    ${=context.expand("${DataSource#J2}")!=''?'<rxas:HourTo>'+context.expand("${DataSource#J2}")+'</rxas:HourTo>':''}
    ${=context.expand("${DataSource#J1}")!=''?'</rxas:OpeningHour>':''} 
${=context.expand(“${DataSource#J1}”)!=”?“”
${=context.expand(“${DataSource#J1}”)!=“”?“”+context.expand(${DataSource#J1}”)+“”“”“”
${=context.expand(“${DataSource#J2}”)!=''?''+context.expand(${DataSource#J2}”)+'':''
${=context.expand(“${DataSource#J1}”)!=''?'''''''''''}

如果变量为空!=''当英语可能是第二语言时,“示例”值不会被添加

否决投票是不公平的。Ramyaa,你所说的标签是指XML元素还是URL参数?它真的必须解决这里的问题。。。一些示例代码可能会对Tim有所帮助,我已经编辑了我的帖子,以便更清楚地了解需要什么。谢谢马丁,我指的是XML元素。当英语可能是第二语言时,否决投票是不公平的。拉米娅,你说的标签是指XML元素还是URL参数?它真的必须解决这里的问题。。。一些示例代码可能会对Tim有所帮助,我已经编辑了我的帖子,以便更清楚地了解需要什么。谢谢Martin,我指的是XML元素。