1

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

但是,有一个挑战,对于某些测试用例,我不想为几个标签提供数据。当我将其保留为空时,我的服务器会引发错误。这意味着标签应该有一个值,或者标签被排除在外,因为标签本身是可选的。

如果没有其他兄弟姐妹有任何价值,有没有办法排除标签,它的所有孩子甚至它的父母。

换句话说,我只想启用具有价值或强制性的标签。所有其他标签都应该被注释掉。

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

例子:

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

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

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

如何实现这一点?

4

1 回答 1

1

您可以使用 context.expand 函数。

在您的请求中,您需要添加您的行 ${=context.expand("variable#1")!=''?'What to add':''}

示例:DataSource#J1 和 DataSource#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>':''} 

如果您的变量为空 !=' ' 值 ?'example' 将不会被添加

于 2013-06-27T20:39:42.620 回答