【问题标题】:Run junit test with on different browsers在不同的浏览器上运行 junit 测试
【发布时间】:2015-07-13 13:46:43
【问题描述】:

我想在不同的浏览器上运行测试,使用 junit、selenium,我有这个代码:

        @Test   //Test1
        public  void logInFaildTest() {
            GridTest gridTest = new GridTest();
            WebDriver webDriver = gridTest.getWebDriver();//get driver 
            LoginPage logIn = new LoginPage(webDriver, url);
            String userName = "user";
            String pass="pass";
             ......................................
            webDriver.close();
        }
        @Test   //Test2 change
        public  void logInFaildTest(WebDriver webDriver ) {
            LoginPage logIn = new LoginPage(webDriver, url);
            String userName = "user";
            String pass="pass";
             ......................................
            webDriver.close();
        }

        @Test //Test3
        public void loginSucsecc(WebDriver webDriver )
        {
            WebDriver webDriver = gridTest.getWebDriver();
            LoginPage logIn = new LoginPage(webDriver, url);
             ......................................
            webDriver.quit();
            assertEquals(expected, actual);
        }

在测试 1 中,我在测试方法中创建了一个 webdriver 实例,在测试 2 和 3 中,我想获取测试驱动程序作为参数并使用特定的 webdriver 执行测试,我如何运行可以运行每个测试用例使用不同的网络驱动程序运行(一个在 Firefox 上,另一个在 chrome 上......)。

【问题讨论】:

    标签: java selenium-webdriver junit


    【解决方案1】:

    解决方案要发送测试函数参数,必须将类设置为@RunWith(Parameterized.class)。 另一种解决方法是在每个测试方法中读取属性文件,并将测试作为属性运行。

    【讨论】:

      【解决方案2】:

      最好的方法是将要运行特定浏览器的测试分组。

      从 testNg 发送浏览器参数以在特定浏览器中运行。

      测试类:

          @Parameters({ "browser" })
          @Test(groups="IE")
          public  void logInFaildTest(String browser) {
              GridTest gridTest = new GridTest();
              WebDriver webDriver = gridTest.getWebDriver();//get driver 
              LoginPage logIn = new LoginPage(webDriver, url);
              String userName = "user";
              String pass="pass";
               ......................................
              webDriver.close();
          }
          @Parameters({ "browser" })
          @Test(groups="IE")
          public  void logInFaildTest(String browser ) {
              LoginPage logIn = new LoginPage(webDriver, url);
              String userName = "user";
              String pass="pass";
               ......................................
              webDriver.close();
          }
      
          @Parameters({ "browser" })
          @Test(groups="Chrome")
          public void loginSucsecc(String browser )
          {
              WebDriver webDriver = gridTest.getWebDriver();
              LoginPage logIn = new LoginPage(webDriver, url);
               ......................................
              webDriver.quit();
              assertEquals(expected, actual);
          }
      

      测试:

      <test name="Testing Parameterization">
      <parameter name="browser" value="IE"/>
      <parameter name="username" value="testuser"/>
      <parameter name="password" value="testpassword"/>
          <groups>
              <run>
              <include name="IE"/>
              </run>  
          </groups>
          <classes>
              <class name="com.parameterization.TestParameters" />
          </classes>
      </test>
      
      <test name="Testing Parameterization">
      <parameter name="browser" value="Firefox"/>
      <parameter name="username" value="testuser"/>
      <parameter name="password" value="testpassword"/>
          <groups>
              <run>
              <include name="chrome"/>
              </run>  
          </groups>
          <classes>
              <class name="com.parameterization.TestParameters" />
          </classes>
      </test>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-11-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-03-22
        • 2019-02-23
        • 1970-01-01
        • 2014-06-17
        相关资源
        最近更新 更多