在上一次的内容中,我们已经实现了在eclipse中搭建自己的自动化测试环境,并且通过一个简单测试用例对环境进行了测试。下面我们将通过一段代码,实现用户登录CSDN网站过程的测试。
过程步骤如下:
1、 打开火狐浏览器。
2、 输入CSDN网址:https://www.csdn.net/,并跳转到该页面。
3、 点击右上角的登录按钮,跳转到登录页面。
4、 在对应的文本框中输入用户名和密码并点击登录按钮。
5、 检测是否正常登录。
6、 退出登录。
虽说整个过程只有几步,但是却是一个完整的操作过程,下面我们将用代码实现。
1、 在myTestSel项目下面点击右键,New-->Other-->TestNG-->TestNG class,点击next。
2、 新建一个LoginTest类,如下图所示:
3、 LoginTest类代码实现如下:
package myTestSel;
import org.testng.annotations.Test;
import org.testng.annotations.BeforeTest;
import static org.testng.Assert.assertEquals;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.annotations.AfterTest;
/*
* 登录CSDN网站过程测试
*/
public class LoginTest {
private WebDriver driver;
private String baseUrl;
@BeforeTest
public void beforeTest() {
System.setProperty("webdriver.firefox.marionette","D:/selenium/geckodriver.exe");
System.setProperty("webdriver.firefox.bin","C:/Program Files/Mozilla Firefox/firefox.exe");
driver = new FirefoxDriver();
baseUrl="https://www.csdn.net/";//登录网址
}
@Test
public void testLogin() throws Exception{
driver.get(baseUrl);
Thread.sleep(3000);//等待打开首页
driver.findElement(By.linkText("登录")).click();
driver.findElement(By.id("username")).clear();
driver.findElement(By.id("username")).sendKeys("xxxxxxxx");//输入自己的账号
Thread.sleep(2000);//为了能看到输入账号和密码的过程,所以在输入账号和密码后都等一段时间
driver.findElement(By.id("password")).clear();
driver.findElement(By.id("password")).sendKeys("xxxxxxxx");//输入账号对应的密码
Thread.sleep(2000);
driver.findElement(By.xpath("//*[@id='fm1']/input[@value='登 录']")).click();//通过xpath定位“登录”按钮的位置
Thread.sleep(3000);
assertEquals("天龙哥", driver.findElement(By.xpath("//*[@id='showinfo']/a/em")).getText());//验证登录是否成功
driver.get(baseUrl+"usernew-loginout");//退出登录
}
@AfterTest
public void afterTest() {
driver.quit();//退出浏览器
}
}
4、右击LoginTest类,选择 “Run as”-->”TestNG test”,可以看到火狐浏览器自动打开,并执行上面所有的步骤,在控制台输出以下信息:
本文部分类容参考宋现锋老师的《TestNG测试用例分布解析》。
PS:之前在IE浏览器下觉得CSDN文件编辑器超级难用,今天在火狐浏览器下使用才知道是我选错浏览器了!