下面是一段代码,用于处理包含下拉列表的警报:
SoapUI项目设置脚本
import com.eviware.soapui.support.*
def alert = com.eviware.soapui.support.UISupport
def urls = []
project.properties.each
{
if (it.value.name.startsWith("BASE_URL_"))
{
urls.push(it.value.name.replace("BASE_URL_", ""))
}
}
def urlName = alert.prompt("Please select the environment URL", "Enter URL", urls)
我注意到当我选择x按钮关闭警报时,它仍会运行测试(由于我没有选择环境,因此会失败。我的问题是如何编写代码以便如果警报已关闭(单击x按钮),它没有运行测试?
谢谢
答案 0 :(得分:2)
通常,用户不会取消项目执行。
但是在项目执行之前,你在它上面写了一层,它实际上会在提示中选择域地址,然后取消,因为用户不希望运行项目。
现在,您编写的脚本没有进行任何条件检查。为了达到你想要的目的,有条件知道用户是否点击了Ok或者不执行测试套件。
以下是修改后的项目级别Setup Script
:
import static com.eviware.soapui.support.UISupport.prompt
def urls = []
def prefix = 'BASE_URL_'
project.properties.each {
if (it.value.name.startsWith(prefix)) {
urls.push(it.value.name.replace(prefix, ""))
}
}
def suffix = prompt("Please select the environment URL", "Enter URL", urls)
if (suffix) {
log.info 'received user input'
def propertyName = prefix+suffix
def domainAddress = project.getPropertyValue(propertyName)
log.info "Selected environment : ${propertyName} - ${domainAddress}"
} else {
log.warn 'haven\'t received user input'
log.warn 'No base URL is selected or cancelled, try again'
assert false
}