A 不熟悉soapUI 和groovy,所以也许有人可以帮助我。我尝试使用此属性定义来生成唯一 ID
${=((0..<20).collect{['a'..'z','0'..'9'].flatten()[new Random().nextInt(['a'..'z','0'..'9'].flatten().size())]}.join())}
但我得到一个错误,因为这个表达式包含嵌套的花括号,我找不到逃避它们的方法。也许有人知道路?
提前致谢。
更新。我更改了脚本,现在它在 SoapUI 的脚本窗口中运行良好。
new GroovyShell().evaluate("(0..<20).collect {[\u0027a\u0027..\u0027z\u0027,\u00270\u0027..\u00279\u0027].flatten()[new Random().nextInt ([\u0027a\u0027..\u0027z\u0027,\u00270\u0027..\u00279\u0027].flatten().size())]}.join()"
由于 xml 验证失败,我用他们的 unicode 代码替换了单引号。
但是当我尝试将它用作属性的值时,它会抛出错误。
${=new GroovyShell().evaluate("(0..<20).collect {[\u0027a\u0027..\u0027z\u0027,\u00270\u0027..\u00279\u0027].flatten()[new Random().nextInt ([\u0027a\u0027..\u0027z\u0027,\u00270\u0027..\u00279\u0027].flatten().size())]}.join()"}
startup failed: Script183.groovy: 1: unexpected char: 0xFFFF @ line 1, column 136. .flatten()[new Random().nextInt([\u0027a
我认为我的脚本中有语法错误,但只有当我像属性一样使用它时才会引发错误。有人知道如何解决这个问题吗?如果我可以将它用作属性,我可以让很多人感到高兴;)因为他们只需要使用属性的名称而不是调用任何脚本。
更新。我删除了 (0..<20).collect 部分,现在可以了,但它只生成一个符号。所以问题就在这里。