SOAPUI Groovy UI支持与数组的映射

SOAPUI Groovy UI支持与数组的映射,groovy,soapui,Groovy,Soapui,我试图返回数组的键,但在UI提示符中没有附加值。然而,利用我现在拥有的,我得到了关键和价值 当使用log.info时,控制台只显示我想要的键。但是,我不完全清楚为什么我会在UI对话框中同时看到这两个选项 最终目标是在下拉列表中显示多个用户名,这些用户名具有与其关联的电子邮件地址,并从下拉列表中获取所选键的相应值 这就是我到目前为止所做的: def map2 = new HashMap<String,String>() map2.put("SP", "XXX@.co.uk") map

我试图返回数组的
,但在
UI提示符
中没有附加值。然而,利用我现在拥有的,我得到了关键和价值

当使用
log.info
时,控制台只显示我想要的
键。但是,我不完全清楚为什么我会在
UI对话框中同时看到这两个选项

最终目标是在下拉列表中显示多个用户名,这些用户名具有与其关联的电子邮件地址,并从下拉列表中获取所选键的相应值

这就是我到目前为止所做的:

def map2  = new HashMap<String,String>()
map2.put("SP", "XXX@.co.uk")
map2.each{ k, v -> log.info "${k}"}

email = UISupport.prompt("Select User ","Select User", map2.each{ k, v    ->  "${k}"})
defmap2=newhashmap()
map2.put(“SP”XXX@.co.uk")
map2.each{k,v->log.info“${k}”
email=UISupport.prompt(“选择用户”,“选择用户”,map2.each{k,v->“${k}”)
这是UI当前显示的内容:


以下是您需要做的事情:

将键转换为一个列表,并将该列表传递给
prompt()
方法,以便它可以显示下拉列表

更改的脚本: 根据询问者的评论进行更新-将投递溺水选择值的结果作为地图键传递,以便检索电子邮件

import com.eviware.soapui.support.UISupport
def map=[“SP”:XXX@.co.uk,“TP”:abc@abc.com"]
def list=map.keySet()作为列表
assert list instanceof list
email=map[UISupport.prompt(“选择用户”、“选择用户”、列表)]
log.info电子邮件
如下所示:


现在,当用户在上面的屏幕中选择下拉值时,您可以看到电子邮件已被选中。

感谢您的回复。它在返回名称方面做得很好,但是我在为名称赋值时遇到了困难。脚本工作正常,并显示两条记录,但如果选择SP,则希望将电子邮件的值设置为XXX@co.uk-如果可能的话?您不需要键,而是值,对吗?电子邮件应该有它的值,对吗?这是正确的,因此只有名称应该出现在对话框中供用户选择,但电子邮件变量应该包含keyYes的值,更新了答案,请查看。谢谢你的澄清。