1

私は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 部分を削除しましたが、今は問題ありませんが、シンボルが 1 つしか生成されません。だからここのどこかに問題があります。

4

2 に答える 2

2

以下を使用して相関 ID を生成します。

${=java.util.UUID.randomUUID()}
于 2013-02-06T12:03:53.810 に答える
1

私は問題を解決しました。いくつかの理由で、ネストされた中括弧をそのまま処理したくありません。それらをUnicodeコードに置き換えました。この式をプロパティの値として格納するための最終的な解決策は次のとおりです。

${=new GroovyShell().evaluate("(0..20).collect\u007B[\u0027a\u0027..\u0027z\u0027,\u00270\u0027..\u00279\u0027].flatten()[new Random().nextInt([\u0027a\u0027..\u0027z\u0027,\u00270\u0027..\u00279\u0027].flatten().size())]\u007D.join()")}
于 2013-02-05T15:59:55.227 に答える