Eclipse中开发测试脚本

 我们已经从前面几篇的文章中基本了解了自动化测试的原理了,那么开始开发我们的第一条自动化测试脚本吧。开发环境配置好了以后,打开集成开发环境Eclipse,新建一个Maven项目:


新建Maven项目以后,把之前录制的那一段Java类放进来,作为maven项目的第一个自动化测试脚本
 

导入这个脚本后,编译会有很多错误,主要是因为缺少依赖的第三方jar,这里Maven的优势就出来了,打开项目的pom.xml文件,在文件中加入下面这一段:

<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-remote-driver</artifactId>
<version>2.47.1</version>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>2.47.1</version>
</dependency>
</dependencies>

 然后更新一下项目,就会自动下载依赖的第三方jar了,下载完成后,编译通过。下面是完整的代码:

package learn;

import static org.junit.Assert.fail;

import java.util.concurrent.TimeUnit;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.openqa.selenium.Alert;
import org.openqa.selenium.By;
import org.openqa.selenium.NoAlertPresentException;
import org.openqa.selenium.NoSuchElementException;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;

public class firstScript {

private WebDriver driver;
private String baseUrl;
private boolean acceptNextAlert = true;
private StringBuffer verificationErrors = new StringBuffer();

@Before
public void setUp() throws Exception {

driver = new FirefoxDriver();
baseUrl = "https://www.baidu.com/";
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
}

@Test
public void test1() throws Exception {

driver.get(baseUrl + "/");
driver.findElement(By.id("kw")).click();
driver.findElement(By.id("kw")).clear();
driver.findElement(By.id("kw")).sendKeys("test");
driver.findElement(By.id("su")).click();
}

@After
public void tearDown() throws Exception {

driver.quit();
String verificationErrorString = verificationErrors.toString();
if (!"".equals(verificationErrorString)) {
fail(verificationErrorString);
}
}

private boolean isElementPresent(By by) {

try {
driver.findElement(by);
return true;
} catch (NoSuchElementException e) {
return false;
}
}

private boolean isAlertPresent() {

try {
driver.switchTo().alert();
return true;
} catch (NoAlertPresentException e) {
return false;
}
}

private String closeAlertAndGetItsText() {

try {
Alert alert = driver.switchTo().alert();
String alertText = alert.getText();
if (acceptNextAlert) {
alert.accept();
} else {
alert.dismiss();
}
return alertText;
} finally {
acceptNextAlert = true;
}
}
}

上面这段脚本是IDE录制下来的,有一些不必要的方法可以删掉,
isElementPresent是查看元素是否显示,isAlertPresent是判断页面上是否有alert窗口弹出,closeAlertAndGetItsText是关闭alert窗口,并获取alert的文本信息。处理后的脚本实际上只有下面一段是有用的:

private WebDriver driver;
private String baseUrl;

@Before
public void setUp() throws Exception {

driver = new FirefoxDriver();
baseUrl = "https://www.baidu.com/";
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
}

@Test
public void test1() throws Exception {

driver.get(baseUrl + "/");
driver.findElement(By.id("kw")).click();
driver.findElement(By.id("kw")).clear();
driver.findElement(By.id("kw")).sendKeys("test");
driver.findElement(By.id("su")).click();
}

@After
public void tearDown() throws Exception {

driver.quit();
}  
 
针对这条脚本,下面逐行解释一下 

@Before  //这个注解是JUnit测试框架提供的一个方法,表示在运行该测试类之前,不管方法放在测试类什么地方, 它是最先执行的
driver = new FirefoxDriver();  //这里的实例化使driver对象指向FirefoxDriver,启动Firefox浏览器。
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);  //这是一个隐性的等待方法,等待浏览器在30秒内启动。

@Test  //也是JUnit的注解方法,表示这是测试的方法对象

driver.get(baseUrl + "/");          //get方法,打开指定的URL地址
driver.findElement(By.id("kw")).click();  //涉及到三个方法,1.findElement是最常用的查找元素的方法,2.By.id通过元素的id来定位需要操作的 元素,所支持的很多,后面再详细说明,3.click点击元素
driver.findElement(By.id("kw")).clear();  //clear清空元素内的所有文本内容
driver.findElement(By.id("kw")).sendKeys("test");  //sendKeys输入指定文本内容到指定元素
driver.findElement(By.id("su")).click();

@After  //这个注解也是JUnit测试框架提供的一个方法,表示在运行该测试类后,不管方法放在测试类什么地方, 它是最后执行的
driver.quit(); 关闭浏览器。

每个测试类中只能有一个before和after注解,但是可以有多给@Test注解。

       了解了整个脚本的意义以后,我们就可以开始运行脚本,运行之前确保安装了Firefox浏览器。 右键点击测试类 - Run As - JUnit Test,运行完以后会出现JUnit报告,下面这个报告表示测试通过。
 

       上面是一条完整的脚本运行过程,从测试的角度看,这条自动化脚本的用例只有测试步骤,并不是一条完整的用例,就需要对脚本进行处理,加上前提条件,实际结果跟期望结果对比等逻辑。这就需要用到WebDriver的其它方法,也就是需要熟悉Selenium的API了,我们以后再讲。
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值