如果警报关闭

问题描述:

下面如何不运行测试是有一段代码,处理包含一个下拉警报:如果警报关闭

了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

什么,当你点击'cancel'会怎么样? – Rao

+0

所以这段代码是在一个项目设置脚本中。您选择项目文件夹并选择TestSuites并单击运行。如果按下取消按钮或x按钮,则会显示错误提示,说明存在缺失的内容。在警报上单击确定,第一个测试套件将运行一个失败的测试套件,然后再次出现相同的错误,关闭后或单击确定,第二个套件将失败并继续,直到所有套件都失败 – BruceyBandit

+0

不确定何时要取消?显然它会失败,因为没有终点。如果你能控制的话,我很害怕。 – Rao

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

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

现在你写的脚本没有做任何状态检查。为了实现你正在寻找的是有条件知道用户是否点击了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 
}