Java 我想检查,只有当优先级为1的第一个测试失败时,优先级为3的测试用例才应该运行

Java 我想检查,只有当优先级为1的第一个测试失败时,优先级为3的测试用例才应该运行,java,eclipse,selenium,testng,Java,Eclipse,Selenium,Testng,目前,对于我的这段代码,我想检查一下,只有当优先级为1的第一个测试失败时,优先级为3的测试用例才应该运行。。我该怎么办 // login in to BIO @Test (priority=1) public void Login() throws Exception{ browser.findElement(By.name("name")).sendKeys("johnmartin11"); browser.findElement(By.name("password")).se

目前,对于我的这段代码,我想检查一下,只有当优先级为1的第一个测试失败时,优先级为3的测试用例才应该运行。。我该怎么办

 // login in to BIO

 @Test (priority=1)
 public void Login() throws Exception{
  browser.findElement(By.name("name")).sendKeys("johnmartin11");
  browser.findElement(By.name("password")).sendKeys("johnmartin1111");
  browser.findElement(By.cssSelector("input.signup-btn")).click();
  Thread.sleep(20000);
  try{
       Thread.sleep(20000);
       WebElement element = browser.findElement(By.xpath("/html/body/div[3]/div/div[1]/div/div[2]/div/div[1]/a/div[1]"));
       String trb = element.getText();
       Assert.assertEquals("Blood", trb);
       System.out.println("Login as Buyer successful");
         }

          catch(Exception e){
           System.out.println("Login failed as Buyer");
          }




     }
     // Company Account page here
     @Test (priority=2) 
     public void CompanyAccount() throws Exception{
         browser.findElement(Companyac).click();
         Thread.sleep(20000);
         try{

               WebElement element = browser.findElement(Companyac);
               String cac = element.getText();
               Assert.assertEquals("Company Account", cac);
               System.out.println("in Company Account page Successfully");
              }
              catch(Exception e){
               System.out.println("Company Account failed");
              }
     }

         // Create Stock link check
//      @Test (priority=3) 
//          public void membertopartner() throws Exception{
//          Thread.sleep(20000);
//               browser.findElement(memberlink).click();
//               browser.findElement(By.linkText("Partner")).click();
//               Thread.sleep(20000);
//       try{
//             WebElement element = browser.findElement (By.linkText("Manage Product Stocks"));
//             String stocklink = element.getText();
//             Assert.assertEquals("Manage Product Stocks", stocklink);
//             System.out.println("stock link found");
//            }
//            catch(Exception e){
//             System.out.println("Stock link failed");
//            }
//       }

您可以在第二个方法中使用dependsOnMethods注释,这样,若第一个方法通过,则只执行第二个方法。现在,根据您的要求,您希望在第一次失败时执行第二次,然后您必须以这种方式调整断言,所以我将Assert.assertEquals更改为Assert.assertNotEquals

 @Test (priority=1)
     public void Login() throws Exception{
      browser.findElement(By.name("name")).sendKeys("johnmartin11");
      browser.findElement(By.name("password")).sendKeys("johnmartin1111");
      browser.findElement(By.cssSelector("input.signup-btn")).click();
      Thread.sleep(20000);
      try{
           Thread.sleep(20000);
           WebElement element = browser.findElement(By.xpath("/html/body/div[3]/div/div[1]/div/div[2]/div/div[1]/a/div[1]"));
           String trb = element.getText();
           Assert.assertNotEquals("Blood", trb);
           System.out.println("Login as Buyer successful");
             }

              catch(Exception e){
               System.out.println("Login failed as Buyer");
              }

         }
         // Company Account page here -- Now this method will be executed   only when Login is successful.
         @Test (dependsOnMethods = { "Login" })
         public void CompanyAccount() throws Exception{
             browser.findElement(Companyac).click();
             Thread.sleep(20000);
             try{
                   WebElement element = browser.findElement(Companyac);
                   String cac = element.getText();
                   Assert.assertEquals("Company Account", cac);
                   System.out.println("in Company Account page Successfully");
                  }
                  catch(Exception e){
                   System.out.println("Company Account failed");
                  }
         }

您可以在第二个方法中使用dependsOnMethods注释,这样,若第一个方法通过,则只执行第二个方法。现在,根据您的要求,您希望在第一次失败时执行第二次,然后您必须以这种方式调整断言,所以我将Assert.assertEquals更改为Assert.assertNotEquals

 @Test (priority=1)
     public void Login() throws Exception{
      browser.findElement(By.name("name")).sendKeys("johnmartin11");
      browser.findElement(By.name("password")).sendKeys("johnmartin1111");
      browser.findElement(By.cssSelector("input.signup-btn")).click();
      Thread.sleep(20000);
      try{
           Thread.sleep(20000);
           WebElement element = browser.findElement(By.xpath("/html/body/div[3]/div/div[1]/div/div[2]/div/div[1]/a/div[1]"));
           String trb = element.getText();
           Assert.assertNotEquals("Blood", trb);
           System.out.println("Login as Buyer successful");
             }

              catch(Exception e){
               System.out.println("Login failed as Buyer");
              }

         }
         // Company Account page here -- Now this method will be executed   only when Login is successful.
         @Test (dependsOnMethods = { "Login" })
         public void CompanyAccount() throws Exception{
             browser.findElement(Companyac).click();
             Thread.sleep(20000);
             try{
                   WebElement element = browser.findElement(Companyac);
                   String cac = element.getText();
                   Assert.assertEquals("Company Account", cac);
                   System.out.println("in Company Account page Successfully");
                  }
                  catch(Exception e){
                   System.out.println("Company Account failed");
                  }
         }