Liam的软件测试学习历程(五):Selenium测试

  今天的实验是使用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

Liam的软件测试学习历程(五):Selenium测试的相关文章

Liam的软件测试学习历程(三):JUint使用

今天的上机课上,我尝试了使用JUint和EclEmma对项目进行测试. 首先是这两个工具的安装,JUint比较容易,只需将需要的jar包引入到项目中即可,而EclEmma则需要在Eclipse中选择安装新软件来进行安装. 安装好后,是完成对待测项目的编程,这次的测试代码是一个检测三角形形状的方法.我的代码如下: package com.triangleProblem; import junit.framework.Test; public class Triangle { public Tria

Liam的软件测试学习历程(二):查找错误的两道例题

观察两段代码并回答下列问题: (1) 发现错误代码: (2) 试着编写测试用例,不执行fault部分: (3) 执行fault部分,但不出现error情况: (4) 出现error情况,但不发生failure. 代码一: public int findLast (int[] x, int y) { //Effects: If x==null throw NullPointerException // else return the index of the last element // in

软件测试学习笔记week 3 --- 测试框架初体验

测试框架初体验 在这周的软件测试课上,第一次了解了软件测试框架的概念.软件测试框架包含的范围非常广,从自动化测试框架到单元测试框架以及性能测试框架.在上个寒假中,在学习Coursera的在线课程时发现普林斯顿的单元测试做得非常强大,从程序正确性到Time consuming甚至Memory consuming,几乎能发现程序中的每一处错误或者缺陷.因此,在上完了这周的课程后,我查阅了一些资料,做了这篇随笔记录了解到的单元测试的知识. 一.什么是测试框架 要认识测试框架,首先要对所谓框架有概念.框

【金阳光测试】Android自动化 -- 学习历程:Selenium原理初步

章节:自动化基础篇——Selenium原理初步(第五讲) 网易云课堂: http://study.163.com/course/courseLearn.htm?courseId=712011#/learn/video?lessonId=878101&courseId=712011 注:其实所有的东西都是应该先去用,但是工具基本都一样,底层都是用的最基础的内容实现的,测试应该做的是: (1)熟练使用工具,了解各个工具的利弊,达到工具优选.因时因地制宜的目的 (2)读源码,理解原理,能够对开源的源码

Liam的C# 学习历程(五):正则表达式(Regular Expressions)

在这周的C#课堂上,我们学习了一些关于正则表达式的知识,结合老师上课所讲的,我又在网上搜索了一些相关的知识,接下来就让我们来实验一下. 首先我们先来复习一些在Linux课堂上学习过的简单的正则表达式的符号: “ . ” :通配一个单个字符,例如“a."可以在“ab.ac.cd.a1.abc”中通配出:“ab.ac和a1”: “.. ” :  与上一个类似,通配两个任意的字符. “ * ”:通配前一个字符的多次出现,  例如“a*”可以通配出:空.a.aa.aaa等: “{}”:可以通配出前一个字

《软件测试》实验五:测试技术

一.找出函数中存在的问题. 1. 请给MySQLConnBean.java中的类和每个方法都加上注释 package org.easybooks.bookstore.jdbc; import java.sql.*; public class MySQLConnBean { private Statement stmt=null; private Connection conn=null; private ResultSet rs=null; //通过驱动.MySQL的用户名密码打开数据库连接 p

软件测试学习笔记:主路径测试

(a) (b)当将MAXPRIMES设置2到5直接时.t2=(n=5)会出现越界错误而t1=(n=3)不会 (c)当n=0或1时,程序不会经过while循环. (d) 节点覆盖 TR= {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16} 边覆盖 TR= {(1,2),(2,3),(3,4),(4,5),(5,6),(6,7),(7,5),(6,8),(8,9),(5,9),  (9,10),(9,11),(10,11),(11,12),(2,12),(12,13),

Liam的C# 学习历程(六):LINQ(Language-INtegrated Query)

在这一周的C#课程中,我们学习了一些在C#编程中需要用到的对数据库或XML文件进行处理的操作,这就是LINQ,它使得一种类似与我们在数据库中常用的SQL语言的查询语言成为了C#语言的一部分,方便了我们搜索数据库等方面的操作.下面我们就来一起复习一下. (一)创建LINQ(Creating the Query): 1.From字句(The from clause):指定范围变量和数据源 from customer in customers //customer:range variable fro

Liam的C# 学习历程(七):WPF(Windows Presentation Foundation)、Windows Form Applications

在今天的课堂中,老师向我们讲述了关于一些WPF(Windows Presentation Foundation)和Windows Form Applications的内容,接下来就让我们一起来复习一下: (一).WPF(Windows Presentation Foundation): WPF是一个重要运用于desktop手机开发方面.它使用到了一种XML的变形语言——XAML的语言(eXtensible Application Markup Language). 使用XAML开发人员可以对WP