Selenium怎样搭配TestNG:
前3篇我们都是在main方法里面写的代码,
从这一篇开始,我们使用TestNG+Selenium:
首先打开TestNG官网,在地址栏输入:http://testng.org/doc/
但是,如果你用Maven构建的话,没有这么麻烦,不用去官网:
<dependency> <groupId>org.testng</groupId> <artifactId>testng</artifactId> <version>6.11</version> </dependency>
用Gradle构建的话就更简单了:
compile 'org.testng:testng:6.9.6'
好了,TestNG依赖添加完成了,让我们愉快的开始写代码吧!
我们以登录软件测试论坛为例:
就这3步操作;
以下是完整代码:
import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; import org.testng.Assert; import org.testng.annotations.AfterMethod; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; import java.util.concurrent.TimeUnit; public class Login51Testing { public static WebDriver driver; @BeforeMethod //测试前的准备工作,我们这里还没有封装 public void beforeMethod() throws InterruptedException { System.setProperty("webdriver.firefox.marionette", "C:\\Program Files\\Mozilla Firefox\\firefox.exe"); String Url = "http://bbs.51testing.com/forum.php"; //软件测试论坛首页 driver = new FirefoxDriver(); driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); driver.get(Url); driver.manage().window().maximize(); Thread.sleep(2000); //等待页面渲染 } @AfterMethod //测试后退出 public void afterMethod() { driver.quit(); } @Test //登录软件测试论坛的用例 public void login() throws InterruptedException { driver.findElement(By.xpath(".//*[@id='ls_username']")).sendKeys("abcdef"); //输入用户名(随便写的) driver.findElement(By.xpath(".//*[@id='ls_password']")).sendKeys("123456"); //输入密码(也是随便写的) driver.findElement(By.xpath(".//*[@id='lsform']/div/div[1]/table/tbody/tr[2]/td[3]/button")).click(); //点击登录 Thread.sleep(2000); Assert.assertTrue(driver.getPageSource().contains("登录失败,您还可以尝试")); //添加断言:用户名和密码都是随便写的,那肯定登录失败了! } }
现在我们跑一把:
我们发现TestNG全部都是绿色的,说明这个测试用例是成功的: