ST:(Lab2)Selenium 实验

一、        实验内容

  1. 安装SeleniumIDE插件
  2. 学会使用SeleniumIDE录制脚本和导出脚本
  3. 访问http://www.ncfxy.com使用学号登录系统(账户名为学号,密码为学号后6位),进入系统后可以看到该用户的邮箱。
  4. 编写Selenium Java WebDriver程序,测试info.csv表格中的学号和邮箱的对应关系是否正确。
  5. 将测试代码提交到github上。

二、        实验目的

  1. 了解并掌握SeleniumIDE的使用,利用SeleniumIDE进行网页的自动化测试。
  2. 利用maven来自动构建测试项目。
  3. 学会编写Selenium Java WebDriver程序,然后对数据进行测试。

三、        实验过程

  1. 安装SeleniumIDE插件

首先下载火狐浏览器,并且在工具栏中的Web开发者中下载并安装SeleniumIDE插件。

安装好插件后,浏览器的工具栏会多出一个工具,如下图所示:

 

  1. 学会使用SeleniumIDE录制脚本和导出脚本

1)      录制脚本:

a)      点击火狐浏览器工具栏中的Selenium IDE,点击右侧的红色按钮开始进行录制脚本。(默认在打开Selenium IDE后脚本就已经开始录制了,所以开始时一般不用点击红色按钮)

b)      在浏览器中输入http://www.ncfxy.com,访问该网址。

c)      在网页中输入正确的学号和密码信息,并且点击提交。

d)      之后点击,右侧的红色按钮停止录制。过程如下图所示:

 

2)      导出脚本:

a)      在SeleniumIDE的弹框中,点击 文件—>Export test case as….—> java /JUnit4/WebDriver进行.java文件的导出。如下图所示:

 

  1. 编写Selenium Java WebDriver程序,测试info.csv表格中的学号和邮箱的对应关系是否正确。

1)      在eclipse中新建一个Maven Project,如下图所示:

2)      在src下的test中建立测试类WebTest,并且将导出的测试脚本用记事本打开,粘贴到这个测试类中,并相应地修改包名和类名。

3)      在测试项目下引入如下几种.jar文件:

 

4)      在导出的测试脚本中进行相应的修改:

传入两个参数分别代表id和email,然后才@Test下循环读入info.csv文件中的每一行,读出到id和email中,然后在循环中单独测试对于每个id,在输入密码正确的情况下,进行测试info.csv表格中的学号和邮箱的对应关系是否正确。测试代码如下:

package com.example.tests;

 

import java.nio.charset.Charset;

import java.util.regex.Pattern;

import java.util.concurrent.TimeUnit;

 

import org.junit.*;

 

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;

 

public class WebTest {

  private WebDriver driver;

  private String baseUrl;

  private boolean acceptNextAlert = true;

  private StringBuffer verificationErrors = new StringBuffer();

  private String id = null;

  private String pwd = null;

  private String email = null;

 

  @Before

  public void setUp() throws Exception {

    driver = new FirefoxDriver();

    baseUrl = "http://www.ncfxy.com/";

    driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);

  }

 

  @Test

  public void testExp2() throws Exception {

       CsvReader cr =  new CsvReader("C:/Users/Administrator/Desktop/软件测试/第二次上机/info.csv", ',',Charset.forName("GBK"));

    while(cr.readRecord()){

         id = cr.get(0);

         email = cr.get(1);

         pwd = id.substring(4, 10);

         driver.get(baseUrl);

        driver.findElement(By.id("name")).clear();

        driver.findElement(By.id("name")).sendKeys(id);

        driver.findElement(By.id("pwd")).clear();

        driver.findElement(By.id("pwd")).sendKeys(pwd);

        new Select(driver.findElement(By.id("gender"))).selectByVisibleText("女");

        driver.findElement(By.id("submit")).click();

        String number = driver.findElement(By.xpath("//tbody[@id = 'table-main']/tr[2]/td[2]")).getText();

        String email1 = driver.findElement(By.xpath("//tbody[@id = 'table-main']/tr[1]/td[2]")).getText();

 

        if(id.equals(number)){

           assertEquals(email,email1);

        }

      

    }

      

  }

 

  @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;

    }

  }

}

四、        实验结果

通过使用SeleniumIDEMaven,以及编写Selenium Java WebDriver程序,成功的对网页进行了自动化的测试。

 

原文地址:https://www.cnblogs.com/superjn/p/5399005.html