0

我正在尝试为登录和注销运行测试脚本。登录和注销都是方法。我已经为数据驱动框架使用了带有登录方法的数据提供者,而注销方法取决于登录。但是当我执行时,带有所有数据和注销的登录方法最后只执行一次。对于数据驱动的框架工作,我如何一个接一个地执行登录-注销。感谢您的帮助。

 @Test(dataProvider = "DP")
       public void login(String Usrname, String Pwd)
       {
            driver = new FirefoxDriver();
                driver.get("***********");
                driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
                driver.findElement(By.id("username")).sendKeys(Usrname);
                driver.findElement(By.id("password")).sendKeys(Pwd);
                driver.findElement(By.id("login")).click();
       }

       @Test(dependsOnMethods = { "login" })
       public void logout(String Usrname, String Pwd)
       {
           driver.findElement(By.id("logout")).click();
           driver.close();
       }

我已将 XML 文件用作:

<suite name="Suite1" verbose="1" >

<test name="Factory" group-by-instances="true">
    <classes>
      <class name="test.AllMethod">
        <methods>
           <include name="login"/>
            <include name="logout"/>
        </methods>
      </class>
    </classes>
  </test>
</suite>

它执行如下:

login(1)
login(2)
login(3)
logout(1)
logout(2)
logout(3)

我该如何执行它:

login(1)
logout(1)
login(2)
logout(2)
login(3)
logout(3)
4

2 回答 2

0

@AfterMethod为您的方法使用注释logout(),而不是那个@Test(相应地更改您的套件文件)。

logout 方法不使用作为参数传递的凭据,顺便说一下,您可以跳过这些。

于 2013-07-16T09:57:19.033 回答
0

//不要在注销方法之前使用@Test(dependsOnMethods = { "login" }) ,而是使用@AfterMethod

@Test(dataProvider = "DP")
   public void login(String Usrname, String Pwd)
   {
        driver = new FirefoxDriver();
            driver.get("***********");
            driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
            driver.findElement(By.id("username")).sendKeys(Usrname);
            driver.findElement(By.id("password")).sendKeys(Pwd);
            driver.findElement(By.id("login")).click();
   }

   @AfterMethod
   public void logout(String Usrname, String Pwd)
   {
       driver.findElement(By.id("logout")).click();
       driver.close();
   }
于 2013-07-17T06:06:53.370 回答