美文网首页
Web自动化Selenium+TestNG实践(一)

Web自动化Selenium+TestNG实践(一)

作者: 测试老杨 | 来源:发表于2018-08-02 23:03 被阅读63次

    登录测试

    登录成功的测试代码如下:

    package com.yzc.mysystem.test;
    
    import static org.testng.Assert.assertEquals;
    
    import java.util.concurrent.TimeUnit;
    
    import org.openqa.selenium.By;
    import org.openqa.selenium.WebDriver;
    import org.openqa.selenium.WebElement;
    import org.openqa.selenium.firefox.FirefoxDriver;
    import org.testng.annotations.Parameters;
    import org.testng.annotations.Test;
    
    public class MyLoginSuccessTest {
      @Test
      @Parameters({"user","passwd","expected"})
      public void loginTest (String user,String passwd,String expected) throws InterruptedException {
          System.setProperty("webdriver.firefox.bin","C:\\Program Files\\Mozilla Firefox\\firefox.exe");    
          WebDriver driver = new FirefoxDriver();
          driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS);
          driver.manage().window().maximize();
          driver.get("http://192.168.0.153:8080/myweb");
          WebElement accountBox = driver.findElement(By.className("inputgri"));
          accountBox.sendKeys(user);
          WebElement passwdBox = driver.findElement(By.xpath("//*[@id=\"content\"]/form/table/tbody/tr[2]/td[2]/input"));
          passwdBox.sendKeys(passwd);
          WebElement submitbutton = driver.findElement(By.xpath("//*[@id=\"content\"]/form/p/input"));
          submitbutton.click();
          String message = driver.findElement(By.xpath("//*[@id='rightheader']/p/font")).getText();  
          assertEquals(message.contains(expected),true);
          Thread.sleep(3000);
          driver.quit();
      }
    }
    

    登录失败的测试代码如下:

    package com.yzc.mysystem.test;
    
    import static org.testng.Assert.assertEquals;
    
    import java.util.concurrent.TimeUnit;
    
    import org.openqa.selenium.By;
    import org.openqa.selenium.WebDriver;
    import org.openqa.selenium.WebElement;
    import org.openqa.selenium.firefox.FirefoxDriver;
    import org.testng.annotations.DataProvider;
    import org.testng.annotations.Parameters;
    import org.testng.annotations.Test;
    
    public class MyLoginFailTest {
      @Test
      @Parameters({"user","passwd","expected"})
      public void loginTest (String user,String passwd,String expected) throws InterruptedException {
          System.setProperty("webdriver.firefox.bin", "C:\\Program Files\\Mozilla Firefox\\firefox.exe");   
          WebDriver driver = new FirefoxDriver();
          driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS);
          driver.manage().window().maximize();
          driver.get("http://192.168.0.153:8080/myweb");
          WebElement accountBox = driver.findElement(By.className("inputgri"));
          accountBox.sendKeys(user);
          WebElement passwdBox = driver.findElement(By.xpath("//*[@id=\"content\"]/form/table/tbody/tr[2]/td[2]/input"));
          passwdBox.sendKeys(passwd);
          WebElement submitbutton = driver.findElement(By.xpath("//*[@id=\"content\"]/form/p/input"));
          submitbutton.click();
          String message = driver.findElement(By.xpath("//*[@id='content']/form/table/tbody/tr[1]/td[2]")).getText();  
          assertEquals(message.contains(expected),true);
          Thread.sleep(3000);
          driver.quit();
      }
    }
    

    testng.xml配置文件内容如下:

    <?xml version="1.0" encoding="UTF-8"?>
    <suite name="Suite" parallel="tests" thread-count="3">
      <test name="test1">
        <parameter name="user" value="admin" />
        <parameter name="passwd" value="123456" />    
        <parameter name="expected" value="您好" />
        <classes>       
          <class name="com.yzc.mysystem.test.MyLoginSuccessTest"/>
        </classes>
      </test>
      <test name="test2">
        <parameter name="user" value="admin" />
        <parameter name="passwd" value="" />    
        <parameter name="expected" value="用户名或密码不正确" />
        <classes>       
          <class name="com.yzc.mysystem.test.MyLoginFailTest"/>                    
        </classes>
      </test>   
      <test name="test3">
        <parameter name="user" value="admin" />
        <parameter name="passwd" value="12345" />    
        <parameter name="expected" value="用户名或密码不正确" />
        <classes>       
          <class name="com.yzc.mysystem.test.MyLoginFailTest"/>                    
        </classes>
      </test>     
    </suite> 
    

    查看测试报告

    image.png

    相关文章

      网友评论

          本文标题:Web自动化Selenium+TestNG实践(一)

          本文链接:https://www.haomeiwen.com/subject/zwdevftx.html