如何在groovy类中使用testrunner.fail for soapui

时间:2015-05-07 18:45:06

标签: groovy soapui

如果字符串值不相同,我试图使测试用例失败。我创建了一个类和一个比较字符串值的方法。

public class test1 {
public String onetwo(str1,str2) 
{

    def first = str1
    def second=str2
    if (first==second)
    {
        return "Strings are same"
    }
    else
    {
        testrunner.fail("String Values are not same")
    }
}

public String fail(reason)
{
     return "implementation of method1"+reason
 }
}

def objone =new test1()
def result = objone.onetwo('Soapui','Soapui')
def result1 = objone.onetwo('Soapui','SoapuiPro')

执行它时,我收到上面代码最后一行的消息 错误:groovy.lang.MissingPropertyException:没有这样的属性:类的testrunner:test1

如果字符串不相同,请建议如何使用testrunner.fail或任何其他方法使测试用例失败。

谢谢

2 个答案:

答案 0 :(得分:0)

找不到SoapUI的testrunner,因为你在自己的班级里访问它。 (请注意,错误消息正在尝试查找test1.testrunner,当然不存在。)如果从脚本的顶级(您定义变量的位置)访问testrunner,它应该可以工作。

如果你仍然想要一个可重用的类/方法,一个简单的解决方法是让它返回一个布尔值或错误消息,然后如果你的方法返回false / error就调用testrunner.fail。像这样的东西(虽然布尔返回可能会使代码更清晰):

public class test1 {
    public String onetwo(str1,str2) 
    {

        def first = str1
        def second=str2
        if (first==second)
        {
            return "Strings are same"
        }
        else
        {
            return "String Values are not same"
        }
    }
...
}

def objone =new test1()
def result = objone.onetwo('Soapui','Soapui')
def result1 = objone.onetwo('Soapui','SoapuiPro')

if (result != "Strings are same")
{
    testrunner.fail(result)
}
...
另一个站点的

This thread也描述了为SoapUI制作可重用的Groovy库的更复杂的解决方案。

答案 1 :(得分:0)

如果要在groovy script测试步骤中比较两个字符串,则不需要编写类,而是可以使用以下语句来实现。

匹配样本 - 请注意,成功断言没有任何结果

字符串比较,如果不相等则失败 assert 'Soapui' == 'Soapui', "Actual and expected does not match"

另一个例子 - 用boolen
def result = true;assert result, "Result is false"

非匹配示例 - 失败时测试失败

字符串不匹配,并显示错误消息
assert 'Soapui' == 'SoapuiPro', "Actual and expected does not match"

非零测试的另一个例子
def number=0;assert number, "Number is zero"

如果您只需要该类的示例并且喜欢访问testRunner对象,那么我们需要将其传递给class或需要testRunner的method。否则,其他类不知道groovy脚本可用的对象。

以下是有关各级测试用例层次结构中对象可用性的更多信息。

启动soapUI时,它会初始化某些变量,并可在项目,套件,测试用例,安装脚本,拆解脚本等处获得。如果打开脚本编辑器,您将看到可用的对象那里。

例如,groovy script测试步骤有log, context, testRunner, testCase个对象。但是,如果某人在Groovy Script测试步骤中创建了一个类,那么这些对象在该用户定义的类中不可用。