如果警报关闭,如何不运行测试

时间:2017-04-21 08:51:53

标签: groovy soapui

下面是一段代码,用于处理包含下拉列表的警报:

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按钮),它没有运行测试?

谢谢

1 个答案:

答案 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
}