zoukankan      html  css  js  c++  java
  • 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程序,成功的对网页进行了自动化的测试。

     

  • 相关阅读:
    Python ---chart
    python ---Pandas时间序列:生成指定范围的日期
    python 生成图表
    top 学习
    linux awk命令详解
    /proc 目录详细说明
    ps 和 top 的cpu的区别
    linux 监控性能学习笔记(1)
    转如何用九条命令在一分钟内检查Linux服务器性能?
    Linux系统排查——CPU负载篇
  • 原文地址:https://www.cnblogs.com/superjn/p/5399005.html
Copyright © 2011-2022 走看看