《软件测试》实验四 黑盒测试

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

用户名容错性验证

输入不规范的用户名:如111111111

2、a    b

3、3333aas

1、提示输入长度不在规定范围

2、提示用户名只能由字符,字母和数字构成

3、提示用户名只能以字母开头

 

TC5

密码验证

输入规范的用户名,输入不符合规范的密码:123456

 

提示输入的密码不符合规范,请重新检查后输入。

 

TC6

密码确认验证

输入和上面的密码不一样的字符

提示再次输入的密码和原密码不匹配,请确认后重新输入

 

TC7

邮箱输入验证

输入不符合规范的邮箱格式:123456@.com

提示输入邮箱格式有误,请重新输入

 

TC8

正确输入

输入正确的用户名:lalala密码:zxf520确认密码:zxf520邮箱:1234567@qq.com,点击提交

提示输入正确,注册成功,并提示注册成功,请记住密码

 

TC9

注册成功

页面跳转

跳转进入登陆页面

 

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

【注意】

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;

 

    }

 

  }

 

}

 

posted @ 2016-05-28 10:08  小新在午睡  阅读(455)  评论(0编辑  收藏  举报