使用Selenium进行Web测试
1、安装Selenium插件
首先我们需要下载firefox浏览器,然后,在工具栏的“附加组件”中搜索“Selenium IDE”,之后点击安装即可。
2、学习使用SeleniumIDE插件进行脚本录制和导出
首先,打开安装好的selenium插件,如下图:
之后,红色按钮按下表示正在录制,这时候只用将界面切换到Firefox,网址中输入www.baidu.com,然后再搜索框中输入文字,点击搜索,所有的控件的访问都会被记录下来,然后切换回seleniumIDE就可以看到已经录制完毕
之后就可以选择脚本执行的速度,以及开始运行脚本。然后可以点击“文件->save test case” 或者“文件->export test case”就可以保存或者导出脚本。
3、访问http://www.ncfxy.com,使用学号登录,之后就可以看到该用户的邮箱和学号两项信息。(由于含有个人信息,截图略)
4、编写Selenium Java WebDriver程序,测试info.csv表格中的学号和邮箱的对应关系是否正确。
具体代码见Github:
https://github.com/George950220/Selenium-TestGroupWork/
主要代码如下:
package mumu.st.selenium.test;
import static org.junit.Assert.assertEquals;
import java.io.File;
import java.io.IOException;
import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.concurrent.TimeUnit;
import org.junit.*;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import com.csvreader.CsvReader;
public class TestClass {
private ArrayList<String[]> csvList;
WebDriver driver;
@Before
public void readCSV() throws IOException{
String chDriver = new File(new File(".").getCanonicalPath()+"\"
+ "driver/chromedriver.exe").getCanonicalPath();
System.setProperty("webdriver.chrome.driver", chDriver);
System.setProperty("webdriver.chrome.bin", "C:\Program Files (x86)"
+ "\Google\Chrome\Application\chrome.exe");
driver = new ChromeDriver();
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
try {
csvList = new ArrayList<String[]>(); //存csv中的信息
String csvFilePath = "C:\Users\lenovo\Desktop\info.csv";
CsvReader reader = new CsvReader(csvFilePath,',',Charset.forName("SJIS"));
reader.readHeaders(); // 去标题
while(reader.readRecord()){ //读信息
csvList.add(reader.getValues());
}
reader.close();
} catch (Exception ex) {
System.out.println(ex);
}
}
@Test
public void testSelenium() throws InterruptedException{
for(int row=0;row<csvList.size();row++) {
driver.get("http://www.ncfxy.com");
//取出csv文件中的信息
String name = csvList.get(row)[0];
String mail = csvList.get(row)[1];
//获取登录页面的元素
WebElement username = driver.findElement(By.name("name"));
WebElement pwd = driver.findElement(By.name("pwd"));
WebElement sumit = driver.findElement(By.id("submit"));
//填信息
username.clear();
username.sendKeys(name);
System.out.println("setName");
pwd.clear();
pwd.sendKeys(name.substring(4));
System.out.println("setPass");
sumit.click();
//获取信息页面的邮箱值
WebElement tableEle = driver.findElement(By.id("table-main"));
String tableEleTextStr = tableEle.getText();
String mailEle = tableEleTextStr.substring(tableEleTextStr.indexOf("箱") + 2, tableEleTextStr.indexOf("学") - 1);
String id = tableEleTextStr.substring( tableEleTextStr.indexOf("号") + 2);
System.out.print(id);
boolean match = name.equals(id) && mail.equals(mail);
assertEquals(true, match);
Thread.sleep(1500);
}
}
@After
public void close(){
driver.close();
}
}