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 |
XXXX-XX-XX |
用例名称 |
系统登录 |
用例描述 |
管理员必须先登录,进入网站后台管理,进入后台管理界面后可以进行用户注册;注册页面信息包含页面背景显示,登录用户名、密码、确认密码、邮箱录入接口,输入数据后,点击注册,若注册成功则跳出提示“注册成功,请你记住密码”,并跳转到用户登录页面 |
||
用例入口 |
打开IE,在地址栏输入(http://www.fengt.com/Admin/UserRegister.jsp),进入到后台管理用户注册界面,进行用户注册;注册成功后,自动跳转到后台用户登录界面,进行登陆。 |
测试用例ID |
场景 |
测试步骤 |
预期结果 |
备注 |
TC1 |
管理员登录 |
进入登录页面,输入用户名,密码进行登录 |
显示登录成功 |
|
TC2 |
进入后台管理界面,进行用户注册 |
进入URL地址http://www.fengt.com/Admin/UserRegister.jsp选择用户注册模块进行用户注册, |
成功进入注册模块 |
|
TC3 |
用户名是否唯一进行验证 |
输入一个已经存在的用户名 |
提示该用户名已存在,请重新输入 |
|
TC4 |
用户名容错性验证 |
输入不规范的用户名:如1、11111111 2、a b 3、3333aas |
1、提示输入长度不在规定范围 2、提示用户名只能由字符,字母和数字构成 3、提示用户名只能以字母开头 |
|
TC5 |
密码验证 |
输入规范的用户名,输入不符合规范的密码:123456 |
提示输入的密码不符合规范,请重新检查后输入。 |
|
TC6 |
密码确认验证 |
输入和上面的密码不一样的字符 |
提示再次输入的密码和原密码不匹配,请确认后重新输入 |
|
TC7 |
邮箱输入验证 |
输入不符合规范的邮箱格式:123456@.com |
提示输入邮箱格式有误,请重新输入 |
|
TC8 |
正确输入 |
输入正确的用户名:lalala密码:zxf520确认密码:zxf520邮箱:1234567@qq.com,点击提交 |
提示输入正确,注册成功,并提示“注册成功,请记住密码” |
|
TC9 |
注册成功 |
页面跳转 |
跳转进入登陆页面 |
2、利用Selenium2为Lab05项目中的登录功能实现功能自动化测试。
【注意】
l 设计测试用例时需考虑登录成功和不成功两种情况;
l Lab05项目为实验5用到的项目,在大家的班级QQ群中,数据库采用MySQL,数据库文件在项目根目录下CreateDataBase.txt
第一步 在login.jsp登陆页面加上id属性值
<%@ page contentType="text/html; charset=utf-8"%>
<html>
<head><title>用户登录</title></head>
<body>
<form action="validate.jsp" method="post">
<div align="center">
用户登录<br><br>
用户名:<input type="text" name="username"><br><br>
密 码:<input type="text" name="password"><br><br>
<input type="submit" value="登录" id="la">
</div>
</form>
</body>
</html>
2、在Mysql数据库中添加test表和测试用例
第二步:往数据库添加自己的账户数据
Create Table user
(
id int auto_increment not null,
username varchar(8) not null,
password varchar(6) not null,
primary key(id)
);
insert into user values(1,'lala','123456');
3、测试代码
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.ie.InternetExplorerDriver;
import org.openqa.selenium.support.ui.WebDriverWait;
public class cc {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.setProperty("webdriver.firefox.bin", "E:\Program Files\Mozilla Firefox\firefox.exe");
//打开火狐浏览器
WebDriver driver = new FirefoxDriver();
//打开要测试的页面
demo.get("http://localhost:8080/jsp_jdbc/login.jsp");
//设置等待超出的时间(100秒)
WebDriverWait wait = new WebDriverWait(driver, 100);
//找到用户名输入框,并自动输入用户名
WebElement txtSearchBox =demo.findElement(By.name("un")).sendKeys("ccj");
//找到密码输入框,并自动输入密码
WebElement txtSearchBox =demo.findElement(By.name("pw")).sendKeys("ccj");
//找到登陆按钮,并点击它
WebElement btn = demo.findElement(By.id("la")).click();
//关闭浏览器
//driver.close();
}
}
在火狐浏览器上安装SeleniumIDE,并录制,回放录制的步骤,将脚本转换成Java代码
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;
public class bb {
private WebDriver driver;
private String baseUrl;
private boolean acceptNextAlert = true;
private StringBuffer verificationErrors = new StringBuffer();
@Before
public void setUp() throws Exception {
System.setProperty("webdriver.firefox.bin", "E:\Program Files\Mozilla Firefox\firefox.exe");
driver = new FirefoxDriver();
baseUrl = "http://localhost:8080/";
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
}
@Test
public void testUntitled() throws Exception {
driver.get(baseUrl + "/jsp_jdbc/login.jsp");
driver.findElement(By.id("user")).clear();
driver.findElement(By.id("user")).sendKeys("lala");
driver.findElement(By.id("pwd")).clear();
driver.findElement(By.id("pwd")).sendKeys("123456");
driver.findElement(By.id("la")).click();
}
@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;
}
}
}