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

How to not run a test if the alert is closed

下面有一段代码可以处理包含下拉列表的警报:

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)

我注意到,当我 select x 按钮关闭警报时,它仍然是 运行 测试(这将失败,因为我没有 selected一个环境。我的问题是,如果关闭警报(单击 x 按钮),我该如何编写代码,它不会 运行 测试?

谢谢

通常,用户不会取消项目执行。

但是在执行项目之前,您在上面写了一层,它实际上会在提示中选择域地址,然后取消,因为用户不希望 运行 该项目。

现在,您编写的脚本没有进行任何条件检查。为了实现您正在寻找的是有条件知道用户是否单击了确定或者不执行测试套件。

这是修改后的项目级别 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
}