1、某公司网站的后台管理有一个用户注册的功能需要测试,该测试为黑盒测试,请用表格的方式给出该功能的测试用例(参考课本P107页)。用户注册功能描述如下:
(1) 管理员必须先登录,方可进入网站后台管理,进入后台管理界面后可以进行用户注册(假设用户注册的URL地址为http://www.fengt.com/Admin/UserRegister.jsp)
(2) 用户注册要求输入用户名、密码、密码确认、邮箱,这4项内容均不能为空
(3) 用户名要求6-10个字符,由字母和数字构成,且只能以字母开头。用户名是唯一的。
(4) 密码至少6位,包含字母、数字和特殊符号(如: ! + ~ 等)
(5) 邮箱必须符合邮箱规则
(6) 违法以上任何一个要求都应该有相应的提示
(7) 注册成功需提示“注册成功,请您记住密码”,并跳转到用户登录页面进行登录(假设用户登录页面为http://www.fengt.com/Admin/Login.jsp)
后台管理用户注册功能测试用例
用例ID | 测试用例 | 用例名称 | 系统登录 |
用例描述 | 管理员必须先登录,进入网站后台管理,进入后台管理界面后可以进行用户注册;用户注册必须进行:输入用户名、密码、密码确认、邮箱,这4项内容均不能为空,且格式符合要求的情况下;注册成功后提示注册成功,并跳转到用户登录页面进行登录;最后输入注册用户进行登陆。 | ||
用例入口 | 打开火狐浏览器,在地址栏输入(http://www.fengt.com/Admin/UserRegister.jsp),进入到后台管理用户注册界面,进行用户注册;注册成功后,自动跳转到后台用户登录界面,进行登陆。 |
测试用例ID | 场景 | 测试步骤 | 预期结果 | 备注 |
TC1 |
管理员登录 | 进入用户登录界面 | 登录成功 | |
TC2 | 用户名注册输入——验证 | 在用户名输入框中输入新的用户名:比如xingxing123 | 成功进入用户注册页面,页面元素完整,显示与设计一致 | 用户名能注册 |
TC3 | 用户名输入格式错误——容错性验证 | 在用户名输入框中输入新的用户名:12356或123abc或123@asd或没有填写用户名等 | 跳出提示:用户名要求6-10个字符,由字母和数字构成,且只能以字母开头,自动跳转到步骤TC2 | 用户名格式错误 |
TC4 | 用户密码输入——验证 | 在密码输入框中输入新密码:1994asd!!! | 输入正确的密码格式,新密码能够使用 | |
TC5 | 密码输入格式错误——容错性验证 | 在密码输入框中输入新的密码:12345678或。。。或36asd |
跳出提示: 密码至少6位,包含字母、数字和特殊符号(如: ! + ~ 等);自动跳转到步骤TC4
|
密码格式错误 |
TC6 | 密码确认——验证 | 在密码确认框中再次输入密码:xingasd!!! | 显示密码正确 | |
TC7 | 密码确认错误——容错性验证 | 在密码确认框中再次输入密码:xingasd! | 密码不一致;自动跳转到步骤TC6 | |
TC8 | 邮箱输入——验证 | 在邮箱输入框中输入:1476101865@qq.com | 邮箱可以使用 | |
TC9 | 邮箱格式输入错误——容错性验证 | 在邮箱输入框中输入:98706547sas.com等 | 邮箱不一致;自动跳转到步骤TC8 | 用户没有正确是输入邮箱格式 |
TC10 | 用户填写结束,开始注册 | 点击注册按钮 | 跳出提示:“注册成功,请您记住密码”,并直接跳转到用户登陆界面 | 用户注册成功 |
TC11 | 用户跳过用户名、密码、密码确认、邮箱中的一个或几个,没有注册 | 直接确认提交 |
注册文本框不能为空;自动跳转到步骤TC2
|
2、利用Selenium2为Lab05项目中的登录功能实现功能自动化测试。
【注意】
l 设计测试用例时需考虑登录成功和不成功两种情况;
l Lab05项目为实验5用到的项目,在大家的班级QQ群中,数据库采用MySQL,数据库文件在项目根目录下CreateDataBase.txt
1、给登陆界面加上id=li属性
<html>
<head><title>用户登录</title></head>
<body>
<form action="validate.jsp" method="post">
<div align="center">
用户登录<br>
用户名:<input type="text" name="username"><br><br>
密 码:<input type="text" name="password"><br><br>
<input type="submit" value="登录" id="li">
</div>
</form>
</body>
</html>
2、在Mysql数据库中添加test表和测试用例
use test;
Create Table user
(
id int auto_increment not null,
username varchar(10) not null,
password varchar(10) not null,
primary key(id)
);
insert into user values(1,'xing','xing');
insert into user values(2,'admin','admin');
3、测试代码
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 Test{
/*
*描述:利用Selenium2为用例项目中的登录功能实现功能自动化测试
*/
@Test
public void Demo(){
System.setProperty("webdriver.firefox.bin", "E:\firefox\firefox.exe");
//打开火狐浏览器
WebDriver demo = new FirefoxDriver();
//打开要测试的页面
demo.get("http://localhost:8080/jsp_jdbc/login.jsp");
//设置等待超出的时间(100秒)
WebDriverWait wait = new WebDriverWait(driver, 100);
//找到用户名输入框,并自动输入用户名
WebElement txtSearchBox = demo.findElement(By.name("li")).sendKeys("xing");
//找到密码输入框,并自动输入密码
WebElement txtSearchBox = demo.findElement(By.name("pw")).sendKeys("xing");
//找到登录按钮,并自动点击它
WebElement btn = demo.findElement(By.id("li")).click();
//关闭浏览器
//demo.close();
}
}