首页 > 解决方案 > Groovy 构建变量名

问题描述

我有带有循环的 SoapUI groovy 测试步骤。在每个循环中,我想检查变量是否包含数字,例如 1。

例如:

  1. “订单管理”的启动循环
  2. 将“订单管理”更改为“订单管理”
  3. 检查变量“order_management”是否包含来自变量“ppp”的值
  4. 写:“成功!”

我试图制作这个脚本,但它不起作用:

def order_management = [1,3,5]
def customer_management = [2,6,3]
def document_management = [1,3,2]

def list = ['order-management', 'customer-management', 'document-management']
list.each {

def ppp = 1

if (("${it}".replace("-","_")).contains(ppp)) {
        log.info ("Success!")
    }
}

标签: groovysoapui

解决方案


def order_management = [1,3,5]

只是脚本中局部变量的声明,您不能按名称将局部变量作为属性访问。

您可以将所有 *-management 数据放入地图中:

def data=[
    'order-management'    : [1,3,5],
    'customer-management' : [2,6,3],
    'document-management' : [1,3,2],
]

并避免使用replace("-","_")保持键的-标志

最后,您的代码可能如下所示:

def data=[
    'order-management'    : [1,3,5],
    'customer-management' : [2,6,3],
    'document-management' : [1,3,2],
]
def ppp = 1

data.each{k,v->
    if ( v.contains(ppp)) {
        println ("found $ppp in $k")
    }
}

推荐阅读