软件测试实验6

1、某公司网站的后台管理有一个用户注册的功能需要测试,该测试为黑盒测试,请用表格的方式给出该功能的测试用例(参考课本P107页)。用户注册功能描述如下:

(1)       管理员必须先登录,方可进入网站后台管理,进入后台管理界面后可以进行用户注册(假设用户注册的URL地址为http://www.fengt.com/Admin/UserRegister.jsp)

(2)       用户注册要求输入用户名、密码、密码确认、邮箱,这4项内容均不能为空

(3)       用户名要求6-10个字符,由字母和数字构成,且只能以字母开头。用户名是唯一的。

(4)       密码至少6位,包含字母、数字和特殊符号(如: !  +  ~ 等)

(5)       邮箱必须符合邮箱规则

(6)       违法以上任何一个要求都应该有相应的提示

注册成功需提示“注册成功,请您记住密码”,并跳转到用户登录页面进行登录(假设用户登录页面为http://www.fengt.com/Admin/Login.jsp

用例ID

 

用例名称

用户注册

用例描述

管理员必须先登录,方可进入网站后台管理,进入后台管理界面后可以进行用户注册;用户名、密码、密码确认、邮箱均不能为空;用户名要求6-10个字符,由字母和数字构成,且只能以字母开头,用户名是唯一的;密码至少6位,包含字母、数字和特殊符号(如: !  +  ~ 等);邮箱必须符合邮箱规则;注册成功需提示“注册成功,请您记住密码”,并跳转到用户登录页面进行登录。

用例入口

打开IE,登录进入网站后台管理总页面,点击“注册用户”进入注册页

用例ID

场景

测试步骤

预期结果

备注

TC1

未登录不可进入系统

未登录就访问UserRegister.jsp页

提示用户登录,并跳转到Login.jsp页

 

TC2

注册页面显示

输入正确的用户名和密码,进入后台管理总页面,点击“注册用户”进入注册页

正常链接到注册页,注册页显示正常,与设计一致

 

TC3

用户名验证——唯一性

录入已有用户名后

提示该用户已存在

 

TC4~TC7

用户名验证——不合法

不足6个字符;

超出10个字符;

非字母开头;

除了字母和数字有其他字符;

提示用户名输入不合法

 

TC8

用户名验证——非空

未输入用户名,就提交

提示用户名不能为空

 

TC9

用户名验证——合法

输入符合要求的用户名

输入成功,不提示

 

TC10~T13

密码验证——不合法

输入少于6位;

密码中不包含字母;

密码中不包含数字;

密码中不包含特殊符号;

提示密码输入不合法

 

TC14

密码验证——为空

不输入密码

提示密码不能为空

 

TC15

密码验证——合法

输入符合要求的密码

输入成功,不提示

 

TC16

密码确认——不同

两次密码不一样

提示两次密码输入不一致

 

TC17

密码确认——相同

两次密码一样

输入成功,不提示

 

TC18

邮箱验证——为空

不输入邮箱

提示邮箱不可为空

 

TC19

邮箱验证——不合法

输入不符合邮箱规则的Email

提示邮箱格式不正确

 

TC20

邮箱验证——合法

输入符合规则的Email

输入成功,不提示

 

TC21

注册成功

输入所有符合要求的信息

提示“注册成功,请您记住密码”;

成功跳转到Login.jsp页

 

 2、利用Selenium2为Lab05项目中的登录功能实现功能自动化测试。

注意:

l         设计测试用例时需考虑登录成功和不成功两种情况;

Lab05项目为实验5用到的项目,在大家的班级QQ群中,数据库采用MySQL,数据库文件在项目根目录下CreateDataBase.txt

 

package com.chen.homework.jdbc;

import java.sql.*;

/**
 * 数据库连接类
package com.chen.homework.test;

import org.junit.Before;
import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.WebDriverWait;

/**
 * 用于用户登录自动化测试的类
 */
public class TestLogin {
    private WebDriver driver;
    private WebElement txtUserName;
    private WebElement txtPassword;
    private WebElement btnLogin;
    
    @Before
    public void setUp() throws Exception {
        //如果浏览器没有默认安装在C盘,需要指定其路径
        System.setProperty("webdriver.ie.driver", "C:\\Program Files\\Internet Explorer\\iexplore.exe"); 
        
        //打开IE浏览器
        WebDriver driver = new InternetExplorerDriver();
        
        //打开要测试的页面
        driver.get("http://localhost:8080/jsp_jdbc/login.jsp");

        //设置等待超出的时间(100秒)
        WebDriverWait wait = new WebDriverWait(driver, 100);
        
        //找到页面元素
        txtUserName = driver.findElement(By.name("username"));
        txtPassword = driver.findElement(By.name("password"));
        btnLogin = driver.findElement(By.cssSelector("input[type=\"submit\"]"));
    }
    @Test
    public void testHello() throws Exception {
        txtUserName.sendKeys("cs");
        txtPassword.sendKeys("cs");
        btnLogin.click();
    }
}
 
  

 

*/
public class MySQLConnBean {
    private Statement stmt=null;
    private Connection conn=null;
    private ResultSet rs=null;
    
    /**
     * 打开数据库连接
     * @throws Exception
     */
    public boolean openConn() throws Exception {
        try{
            Class.forName("com.mysql.jdbc.Driver");
            String url="jdbc:mysql://localhost:3306/test";
            String user="root";
            String password="root";
            conn=DriverManager.getConnection(url, user, password);
            return true;
        }catch(SQLException e){
            System.err.println("连接数据库出错:"+e.getMessage());
            return false;
        }
        
    }
    
    /**
     * 执行SQL语句并返回结果集
     * @param sql SQL语句
     * @return    返回ResultSet结果集
     */
    public ResultSet execQuery(String sql){
        rs=null;
        try{
            //createStatement对象封装SQL语句,并发给数据库执行
            //第一个参数:返回的结果集类型,TYPE_SCROLL_SENSITIVE表示可滚动结果集,当数据库发生变化,当前结果集同步改变
            //第二个参数:并发类型,CONCUR_READ_ONLY表示不可以用结果集更新数据库中的表
            stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);
            rs=stmt.executeQuery(sql);
        }catch (SQLException e) {
            System.err.println("Data.executeQuery:"+e.getMessage());
        }
        
        return rs;
    }
    
    /**
     * 关闭createStatement对象
     */
    public void closeStmt(){
        try{
            stmt.close();
        }catch(SQLException e){
            System.err.println("Data.executeQuery:"+e.getMessage());
        }
    }
    
    /**
     * 关闭连接
     */
    public void closeConn(){
        try{
            conn.close();
        }catch(SQLException e){
            System.err.println("Data.executeQuery:"+e.getMessage());
        }
    }
}

 

转载于:https://www.cnblogs.com/mjucs/p/5578812.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值