在Selenium中,调用通过了新测试中的测试

在Selenium中,调用通过了新测试中的测试,selenium,selenium-chromedriver,Selenium,Selenium Chromedriver,让我们同意我有一个要登录的测试用例,并且这个测试通过了,所以我想做的是在另一个测试中调用这个通过的测试。。 更多说明: 让我们假设我有两个函数“login和logout”,我检查我的登录函数,我的测试通过了,然后我想测试我的注销函数,所以我试图做的是在注销测试中调用通过的登录测试,所以当我运行第二个测试时,很容易检查第一个测试是否通过,然后检查第二个测试 所以我让驱动程序打开了两次,然后第二次测试失败了。那么我该怎么做呢???这样,如果第一个函数失败或成功通过,您可以在第一个函数中返回值(布尔值

让我们同意我有一个要登录的测试用例,并且这个测试通过了,所以我想做的是在另一个测试中调用这个通过的测试。。 更多说明: 让我们假设我有两个函数“login和logout”,我检查我的登录函数,我的测试通过了,然后我想测试我的注销函数,所以我试图做的是在注销测试中调用通过的登录测试,所以当我运行第二个测试时,很容易检查第一个测试是否通过,然后检查第二个测试

所以我让驱动程序打开了两次,然后第二次测试失败了。那么我该怎么做呢???

这样,如果第一个函数失败或成功通过,您可以在第一个函数中返回值(布尔值),并且在第二个函数中必须使用此布尔值

最好的方法是使用@afterMethod并获得第一次测试的结果布尔值:

    public class paymentsPageDirectDebits{
    Boolean results = false;

    @AfterMethod
    public void GettingResultOfTheLastTestCase(ITestResult result){

        if (result.getStatus() == ITestResult.FAILURE)
        {
            results = false;  

        } else if (result.getStatus() == ITestResult.SKIP)
        {
            test.skip("Test Case Has Been Skipped");
        } else
        {
            results = true;
            test.pass("Test Case Passed");
        }

        closing.closeBrowserAndClearCookies();
    }

    @Test(alwaysRun=true)
    public boolean FirstsFunction()
    {
    

        //Your logic of first test case here!


    }

    @Test(alwaysRun=true)
    public voidSecondFunction()
    {
        if(results == true){
            System.out.println("There must be logic for second function is 
            first is successed")
        }
    
    }
因此,在afterMethod函数中,您正在检查最后一个测试用例的结果值,如果它为真(成功),您将继续在第二个测试用例中执行逻辑代码