博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
软件测试实验6
阅读量:5311 次
发布时间:2019-06-14

本文共 4537 字,大约阅读时间需要 15 分钟。

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

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

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

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

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

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

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

注册成功需提示“注册成功,请您记住密码”,并跳转到用户登录页面进行登录(假设用户登录页面为)

用例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

你可能感兴趣的文章
云计算数据与信息安全防护
查看>>
全局设置导航栏
查看>>
RxJS & Angular
查看>>
面向对象(多异常的声明与处理)
查看>>
MTK笔记
查看>>
ERROR: duplicate key value violates unique constraint "xxx"
查看>>
激活office 365 的启动文件
查看>>
9款免费的Windows远程协助软件
查看>>
Maven(八) Maven项目和testng结合应用
查看>>
iOS 的 set.get.构造方法
查看>>
无法根据中文查找
查看>>
文件编码,文件或文件名编码格式转换(转)
查看>>
[简讯]phpMyAdmin项目已迁移至GitHub
查看>>
转载 python多重继承C3算法
查看>>
zabbix 2.2.20 安装详解(Centos6.9)
查看>>
【题解】 bzoj1597: [Usaco2008 Mar]土地购买 (动态规划+斜率优化)
查看>>
css文本溢出显示省略号
查看>>
git安装和简单配置
查看>>
C# FTP远程服务器返回错误:(550) 文件不可用(例如,未找到文件,无法访问文件)...
查看>>
面向对象:反射,双下方法
查看>>