当前位置: 首页 > 知识库问答 >
问题:

SOAPUI:如何将列表设置为属性

冯霖
2023-03-14
    null
    null

我用一个单独的脚本编写了整个测试用例,并首先在groovy控制台上测试了它。当我开始将它转换为soapUI,并使用该属性将数据从步骤2“传输”到步骤5时,我出现了问题,因为我似乎无法将Arraylist放入属性(请参见下面的错误消息)。

现在我感到困惑的是,这是不可能的,因为我可以很容易地将SQL实例放在属性中:

def contextSqlInstanz = Sql.newInstance(urlH2, userH2, passwordH2, driverH2)
context.setProperty( "contextSqlInstanz", contextSqlInstanz )

sql = context.getProperty("contextSqlInstanz");

因此,我如何将我的数组(填充了对象)从步骤2传输到步骤5,以便与我的webservice响应进行比较。我不想将两者转换为字符串并比较字符串是否相等,但我想手工比较bean-class的每个属性。

class myBean {

    String value1;
    String value2;
    ...
}
function getdata() {  
  def liste = []

  // sql-statements
  sql.eachRow(...) {

   def myBean = new myBean();

   myBean.value1 = it.value1.toString();
   myBean.value2 =  it.value2.toString();
   ...

   liste.add(Schluesselwert)

  }

  return liste   
}
sollListeH2 = getdata()

def props = testRunner.testCase.getTestStepByName("P_testcase")
props.setPropertyValue( "sollListe", sollListeH2)

结果:

groovy.lang.missingMethodException:方法:com.eviware.soapui.impl.wsdl.teststeps.wsdlpropertieststep.setPropertyValue()的签名不适用于参数类型:(java.lang.String,java.util.ArrayList)值:[sollListe,[value1@15d4334,value2@1e739c8,...]]可能的解决方案:setPropertyValue(java.lang.String,java.lang.String),getPropertyValue

共有1个答案

周瀚
2023-03-14

因为我没有找到另一种方法,我做了丑陋的方式,把每一个价值作为自己的财产放入动脉

设置步骤2中的道具:

def convertVectorToProps(vector) {  
  def size = vector.size();

  def props = testRunner.testCase.getTestStepByName("P_testcase")

  props.setPropertyValue("sollSize", size.toString())

  for(int i=0; i < size; i++) { 

     props.setPropertyValue("myBean.value1" + i, vector.value1[i]);
     props.setPropertyValue("myBean.value2" + i, vector.value2[i]);

     ...
  }
} 

阅读第5步中的道具并建立新的向量:

def convertPropsToVector() {

  def props = testRunner.testCase.getTestStepByName("P_testcase")

  def sollSize = props.getPropertyValue("sollSize").toInteger() 

  SollListe = [];


  for(int i=0; i < sollSize; i++) { 

    def myBean = new myBean();

     myBean.value1 = props.getPropertyValue("myBean.value1" + i);
     myBean.value2 = props.getPropertyValue("myBean.value2" + i);  

     SollListe << myBean
  }

  return SollListe
}
 类似资料:
  • 我正在尝试在jython中使用SoapUIAPI(为Robot Framework修改SoapUILibrary),但不知为何,我无法找到任何方法来设置property TestStep的属性。 设置项目、全局和系统属性很容易使用 SoapUITestCaseRunner.setProjectProperties() SoapUITestCaseRunner类不包含任何访问testSteps的方法

  • 我正在用css设计一个下拉列表,这里是我的html代码: 我已经将每个属性border-right设置为;我想删除上一个元素属性 下面是css代码: 我想删除最后一个列表的右边框,所以我尝试使用类。但不能给出任何解决办法,请有谁能让我知道,谢谢提前

  • 问题内容: 如何将String [](数组)转换为Collection,例如ArrayList或HashSet? 问题答案: Arrays.asList()可以在这里解决问题。 要转换为Set,您可以执行以下操作

  • 问题内容: 我想在单行中呈现此列表。 清单项目1 清单项目2 应该显示为 列出项目2 列出项目2 使用什么CSS样式? 问题答案: ul li{ display: inline; } 有关更多信息,请参见listamatic 的基本列表选项和基本水平列表提供的链接)。 另外,正如评论中指出的那样,您可能希望对ul进行样式设置,并在li和li自身内部添加任何元素,以使外观看起来更好。

  • 问题内容: 嘿,用Class值设置bean属性的最佳方法是什么?关于XML配置。对于这样的豆: 问题答案: 只需注入类名,Spring就会为您将其转换为对象,例如

  • 我正在尝试在Java中的SOAPUI项目中设置SOAPUI TestStep的属性,如下面的屏幕截图所示。 当我调试下面的代码时,当我得到属性或值时,我总是空值。我的观点是我想从我无法做到的 java 函数中设置属性变量。当我用谷歌搜索问题时,我在 Groovy 中得到了帮助。有人可以帮助我如何在 Java 中做到这一点吗 我想在执行程序时动态设置城市的值。请帮助我解决这个问题。