zoukankan      html  css  js  c++  java
  • 《软件测试》实验四 黑盒测试

    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;

        }

      }

    }

  • 相关阅读:
    spring FactoryBean配置Bean
    注意使用 BTREE 复合索引各字段的 ASC/DESC 以优化 order by 查询效率
    Mysql经常使用基本命令汇总及默认账户权限与改动
    图像边缘检測--OpenCV之cvCanny函数
    HDU 1556 Color the ball 树状数组 题解
    JMeter使用记录2 -- Web測试
    C++编程
    矩阵树定理速证
    DM816x算法具体解释--之OSD
    哥尼斯堡的“七桥问题”(25分)(欧拉回路,并查集)
  • 原文地址:https://www.cnblogs.com/bushi2b/p/5536885.html
Copyright © 2011-2022 走看看