Groovy 构建变量名

Groovy build variable name

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

例如:

  1. 开始循环 'order-management'
  2. 将'order-management'更改为'order_management'
  3. 检查变量 'order_management' 是否包含变量 'ppp'
  4. 的值
  5. 写入:"Success!"

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

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!")
    }
}
def order_management = [1,3,5]

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

你可以把所有*-管理数据放到一个地图中:

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")
    }
}