1. 安装 SeleniumIDE 并使用它进行录制和导出脚本
1) seleniumIDE是火狐的插件,所以要先要安装火狐;
2) 打开火狐,选择【开发者】,再选择【获取更多工具】,点击网页里的【附加组件标题】 或 直接登陆
https://addons.mozilla.org/zh-CN/firefox/collections/mozilla/webdeveloper/
3) 搜索seleniumIDE
添加到Firefox
4) 安装完成后,会在右上角有一个图标,点击打开它
5) 访问测试网站,这里使用 http://www.ncfxy.com,输入用户名和密码
6) 点击 提交
选中新网页中显示的邮箱,右键选择assertText…..
7) 导出脚本
2. 在eclipse中进行模拟测试:
1) 打开eclipse,新建一个普通的java工程,将上面生成的脚本(java文件)拖拽进来,修改包名。
2) 从官网下载selenium所需要的库
http://www.seleniumhq.org/download/
3) 将这个压缩包解压出来的所有jar导入工程
4)因为笔者使用的数据由csv文件中获取,所以还需要导入一个csv的解析包,使用的是javacsv.Jar
5)修改脚本进行测试,注意那个csv文件的路径要写自己的文件
package com.example.tests; import java.io.IOException; import java.nio.charset.Charset; import java.util.Arrays; import java.util.Collection; import java.util.regex.Pattern; import java.util.concurrent.TimeUnit; import org.junit.*; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; import org.junit.runners.Parameterized.Parameters; import static org.junit.Assert.*; import static org.hamcrest.CoreMatchers.*; import org.openqa.selenium.*; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.support.ui.Select; import com.csvreader.CsvReader; @RunWith(Parameterized.class) public class SeleniumIDETest { 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 = "http://www.ncfxy.com"; driver.manage().timeouts().implicitlyWait(2, TimeUnit.SECONDS); } @Test public void testSeleniumIDE() throws Exception { driver.get(baseUrl + "/"); driver.findElement(By.id("name")).clear(); driver.findElement(By.id("name")).sendKeys(name); driver.findElement(By.id("pwd")).clear(); driver.findElement(By.id("pwd")).sendKeys(name.substring(4)); driver.findElement(By.id("submit")).click(); assertTrue(email.equals(driver.findElement(By.xpath("//tbody[@id='table-main']/tr/td[2]")).getText())); //assertEquals(email, driver.findElement(By.xpath("//tbody[@id='table-main']/tr/td[2]")).getText()); } @Parameters public static Collection<Object[]> getData() throws IOException{ //使用参数化测试。每从csv文件中读取出一行创建一个object数组 Object[][] obj = new Object[109][]; CsvReader r= new CsvReader("E:\\课件\\大三下\\软件测试课件\\lab\\2\\info.csv",',',Charset.forName("GBK")); int count = 0; while(r.readRecord()){ obj[count] = new Object[]{r.get(0), r.get(1)}; count++; } return Arrays.asList(obj); } String name; String email; public SeleniumIDETest(String name, String email){ this.name = name; this.email = email; } @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; } } }
6)测试运行