今天的实验是使用Selenium进行Web的测试。首先需要在Firefox中安装相关插件Selenium。安装好后,在Firefox右上角会出现一个标志:。出现这个标志就代表安装好了。
接下来点击这个按钮,就会出现Selenium IDE的界面:
单击右侧红色的录制按钮开始录制。录制的步骤即为测试一个用例要进行的所有步骤,包括填入网址,输入学号密码等。最后选中结果界面中的邮箱,邮件选择assertText.
之后在Selenium IDE中输出相应的结果,注意在输出钱要在option中勾选Enable experimental features选项。
输出后倒入Selenium和csv文件读取的相关jar包,编写程序如下:
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 SeleniumTest { private WebDriver driver; private String baseUrl; private boolean acceptNextAlert = true; private StringBuffer verificationErrors = new StringBuffer(); private String id, pwd,email; public SeleniumTest(String id, String email) { this.id = id; this.pwd = id.substring(4); this.email = email; } @Before public void setUp() throws Exception { System.setProperty("webdriver.firefox.bin", "C:/Program Files/Mozilla Firefox/firefox.exe"); driver = new FirefoxDriver(); baseUrl = "http://www.ncfxy.com/"; driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS); } @Parameters public static Collection<Object[]> getData() throws IOException { Object[][] obj = new Object[109][]; CsvReader r = new CsvReader("C:/Users/畅/Downloads/info.csv", ‘,‘, Charset.forName("GBK")); int count = 0; r.readHeaders(); while(r.readRecord()){ obj[count] = new Object[]{r.get("id"), r.get("email")}; count++; } return Arrays.asList(obj); } @Test public void testUntitled() throws Exception { driver.get(baseUrl); driver.findElement(By.id("name")).clear(); driver.findElement(By.id("name")).sendKeys(this.id); driver.findElement(By.id("pwd")).clear(); driver.findElement(By.id("pwd")).sendKeys(this.pwd); driver.findElement(By.id("submit")).click(); assertEquals(this.email, driver.findElement(By.xpath("//tbody[@id=‘table-main‘]/tr/td[2]")).getText()); } @After public void tearDown() throws Exception { driver.close(); String verificationErrorString = verificationErrors.toString(); if (!"".equals(verificationErrorString)) { fail(verificationErrorString); } } }
但是在我尝试运行时,总是出现如下错误:
上午查询后发现是因为Firefox的版本较高的原因,之后到其他同学电脑上运行问题就解决了。得到结果如下:
时间: 2024-09-30 19:40:17