【项目】畅聊互动空间测试报告

1. 项目介绍

        本项目是一个基于 SSM 和 WebSocket 实现的畅聊互动空间。它为用户提供了一个便捷、实时的交流平台。通过 SSM 框架确保系统的稳定性和高效性,WebSokcet 技术实现了消息的实时推送,让用户之间的互动更加流畅。用户可以在这个空间中自由交流、分享想法。同时,简洁美观的界面设计也提升了用户体验,为用户打造一个充满活力的畅聊互动新天地。

2. 测试环境

  • 操作系统:Windows 11
  • 浏览器:Chrome 版本 128.0.6613.138
  • 开发工具:IntelliJ IDEA Community Edition 2022.3.3
  • 数据库:MySQL 5.7

3. 测试

3.1 功能测试

3.1.1 登录功能

测试编号测试步骤预期结果
1输入正确的账号、密码和验证码,点击 “登录” 按钮成功登录,跳转到相应页面
2输入错误的账号、正确的密码和验证码,点击 “登录” 按钮提示账号不存在
3输入正确的账号、错误的密码和验证码,点击 “登录” 按钮提示密码错误
4输入正确的账号、密码和错误的验证码,点击 “登录” 按钮提示验证码错误

部分测试用例效果图:

图1   输入正确的账号、密码和验证码,点击 “登录” 按钮,登录成功

3.1.2 注册功能

测试编号测试步骤预期结果
1不输入邮箱、密码、确认密码和邮箱验证码,点击注册按钮。提示 “ 请输入邮箱 ”。
2输入邮箱,不输入密码、确认密码和邮箱验证码,点击注册按钮。提示 “ 请输入验证码 ”。
3输入邮箱和密码,不输入确认密码和邮箱验证码,点击注册按钮。提示 “请输入验证码 ”。
4输入邮箱、密码和确认密码,不输入邮箱验证码,点击注册按钮。提示 “ 请输入验证码 ”。
5输入邮箱、密码、确认密码和邮箱验证码,密码和确认密码不一致,点击注册按钮。提示 “ 两次密码长度不一致,请重新输入~”。
6输入已存在的邮箱,输入密码、确认密码和邮箱验证码,点击注册按钮。提示 “ 该邮箱不可以同时绑定多个账号,请换个邮箱再来注册~”。
7输入符合要求的邮箱、密码、确认密码和邮箱验证码,点击注册按钮。注册成功,提示 “注册成功”。

部分测试用例效果图:

图2   输入符合要求的邮箱、密码、确认密码和邮箱验证码,点击注册按钮,注册成功图3  输入已存在的邮箱,输入密码、确认密码和邮箱验证码,点击注册按钮,注册失败

3.1.3 消息发送功能

测试编号测试步骤预期结果
1在输入框输入正常文本内容,如 “你好”,点击发送按钮消息成功发送,在聊天界面显示发送的文本内容 “你好”
2输入包含特殊字符的内容,如 “@#¥%”,点击发送按钮消息成功发送,特殊字符正常显示在聊天界面
3在输入框输入大量重复的文本内容,点击发送按钮消息成功发送,重复的文本内容正常显示在聊天界面
4输入过长的文本内容,超出系统规定的最大长度,点击发送按钮提示输入内容过长,无法发送消息
5输入空格,点击发送按钮无法发送消息
6不输入任何内容,直接点击发送按钮无法发送消息

部分测试用例效果图:

图4  在输入框输入文本内容,发送成功

3.1.4 消息接收功能

测试编号测试步骤预期结果
1发送纯文本消息接收方准确显示文本内容和发送人信息。
2发送包含特殊字符的消息接收方正确显示特殊字符,无乱码或错误显示。
3连续发送多条不同类型消息接收方按照发送时间顺序准确显示所有消息,无错序、遗漏或错误显示。
4在网络不稳定时发送消息消息在网络恢复后自动重发并成功被接收方接收
5多个发送方同时发送消息接收方准确接收并按时间顺序显示来自不同发送方的消息。

图5  接收方按照发送时间顺序准确显示所有消息

3.2 自动化测试

3.2.1 登录页面

        1. 设计测试用例

        2. 部分代码实现

    // 登录页面测试
    @Test
    public void LoginPage() throws InterruptedException {
        webDriver.get(loginURL);
        sleep(2000);
        // 检查页面标题
        String pageTitle = webDriver.getTitle();
        Assertions.assertEquals("畅聊互动空间登录页面", pageTitle);

        // 检查输入框是否存在、显示正常且可输入
        WebElement acc_Input = webDriver.findElement(By.cssSelector("#userId"));
        WebElement pwd_Input = webDriver.findElement(By.cssSelector("#password"));
        WebElement ver_Input = webDriver.findElement(By.cssSelector("#verifyCode"));
        Assertions.assertTrue(acc_Input.isDisplayed() && acc_Input.isEnabled(),"测试不通过:账号输入框出错!");
        Assertions.assertTrue(pwd_Input.isDisplayed() && pwd_Input.isEnabled(),"测试不通过:密码输入框出错!");
        Assertions.assertTrue(ver_Input.isDisplayed() && ver_Input.isEnabled(),"测试不通过:验证码输入框出错!");

        // 检查输入框的默认提示文本
        String acc_Ph = acc_Input.getAttribute("placeholder");
        String pwd_Ph = pwd_Input.getAttribute("placeholder");
        String ver_Ph = ver_Input.getAttribute("placeholder");
        Assertions.assertEquals("请输入账户邮箱或账号", acc_Ph,"测试不通过:账号输入框提示文本出错!");
        Assertions.assertEquals("请输入密码", pwd_Ph,"测试不通过:密码输入框提示文本出错!");
        Assertions.assertEquals("请输入验证码", ver_Ph,"测试不通过:验证码输入框提示文本出错!");

        // 检查登录按钮
        WebElement loginButton = webDriver.findElement(By.cssSelector("#submit"));
        Assertions.assertTrue(loginButton.isDisplayed() && loginButton.isEnabled(),"测试不通过:登录按钮出错!");
        Assertions.assertEquals("登 录", loginButton.getAttribute("value"),"测试不通过:登录按钮显示文本出错!");

        // 检查注册链接
        WebElement reg_Link = webDriver.findElement(By.cssSelector("body > div.login-container > div > div:nth-child(6) > a"));
        Assertions.assertTrue(reg_Link.isDisplayed(),"测试不通过:注册链接未显示!");
        Assertions.assertEquals("还没有账号?点击注册", reg_Link.getText(),"测试不通过:注册链接提示文本出错!");
    }

3.2.2 注册页面

        1. 设计测试用例

        2. 部分代码实现

     // 注册页面测试
    @Test
    public void RegistrationPage() throws InterruptedException {
        webDriver.get(registerURL);
        sleep(2000);
        // 检查页面标题
        String pageTitle = webDriver.getTitle();
        Assertions.assertEquals("畅聊互动空间注册页面", pageTitle);

        // 检查输入框是否存在、显示正常且可输入
        WebElement email_Input = webDriver.findElement(By.cssSelector("#EmailNumber"));
        WebElement pwd_Input = webDriver.findElement(By.cssSelector("#password"));
        WebElement sure_Input = webDriver.findElement(By.cssSelector("#SurePassword"));
        WebElement send_Button = webDriver.findElement(By.cssSelector("#sendCode"));
        WebElement ver_Input = webDriver.findElement(By.cssSelector("#EmailCode"));
        Assertions.assertTrue(email_Input.isDisplayed() && email_Input.isEnabled(),"测试不通过:邮箱输入框出错!");
        Assertions.assertTrue(pwd_Input.isDisplayed() && pwd_Input.isEnabled(),"测试不通过:设置密码输入框出错!");
        Assertions.assertTrue(sure_Input.isDisplayed() && sure_Input.isEnabled(),"测试不通过:确认密码输入框出错!");
        Assertions.assertTrue(send_Button.isDisplayed(),"测试不通过:发送验证码按钮出错!");
        Assertions.assertTrue(ver_Input.isDisplayed() && ver_Input.isEnabled(),"测试不通过:验证码输入框出错!");

        // 检查输入框的默认提示文本
        String email_Ph = email_Input.getAttribute("placeholder");
        String pwd_Ph = pwd_Input.getAttribute("placeholder");
        String sure_Ph = sure_Input.getAttribute("placeholder");
        String ver_Ph = ver_Input.getAttribute("placeholder");
        Assertions.assertEquals("请输入8-24位邮箱账号", email_Ph,"测试不通过:邮箱输入框提示文本出错!");
        Assertions.assertEquals("请设置8-16位登录密码", pwd_Ph,"测试不通过:密码输入框提示文本出错!");
        Assertions.assertEquals("请确认登录密码", sure_Ph,"测试不通过:确认密码输入框提示文本出错!");
        Assertions.assertEquals("请输入邮箱验证码", ver_Ph,"测试不通过:邮箱验证码输入框提示文本出错!");

        // 检查密码输入框和确认密码输入框的输入类型
        Assertions.assertEquals("password", pwd_Input.getAttribute("type"),"测试不通过:密码输入框输入类型出错!");
        Assertions.assertEquals("password", sure_Input.getAttribute("type"),"测试不通过:确认密码输入框输入类型出错!");

        // 检查发送验证码按钮
        Assertions.assertEquals("发送验证码", send_Button.getAttribute("value"),"测试不通过:发送验证码按钮显示文本出错!");

        // 检查提交按钮
        WebElement submitButton = webDriver.findElement(By.cssSelector("#submit"));
        Assertions.assertTrue(submitButton.isDisplayed() && submitButton.isEnabled(),"测试不通过:提交按钮出错!");
        Assertions.assertEquals("提交", submitButton.getAttribute("value"),"测试不通过:提交按钮显示文本出错!");

        // 检查已有账号登录链接
        WebElement loginLink = webDriver.findElement(By.cssSelector("body > div.Register-container > div > div:nth-child(6) > a"));
        Assertions.assertTrue(loginLink.isDisplayed() && loginLink.isEnabled(),"测试不通过:登录链接出错!");
        Assertions.assertEquals("已有账号?去登录", loginLink.getText(),"测试不通过:登录链接提示文本出错!");
    }

3.2.3 聊天页面

        1. 设计测试用例

        2. 部分代码实现

    // 聊天页面测试
    @Test
    public void ChatPage() throws InterruptedException, IOException {
        LoginSuccess();
        sleep(1000);
        // 检查页面标题
        String pageTitle = webDriver.getTitle();
        Assertions.assertTrue(pageTitle.contains("畅聊互动空间"));

        //检查登录的用户名
        WebElement UserName = webDriver.findElement(By.cssSelector("body > div.client-container > div > div.left > div.user"));
        Assertions.assertEquals("黑米粥", UserName.getText(),"测试不通过:用户名出错!");

        //检查搜索栏及搜索按钮
        WebElement searchInput = webDriver.findElement(By.cssSelector("body > div.client-container > div > div.left > div.search > input[type=text]"));
        WebElement searchButton = webDriver.findElement(By.cssSelector("body > div.client-container > div > div.left > div.search > input[type=text]"));
        Assertions.assertTrue(searchInput.isDisplayed() && searchInput.isEnabled(),"测试不通过:搜索输入框出错!");
        Assertions.assertTrue(searchButton.isDisplayed() && searchButton.isEnabled(),"测试不通过:搜索按钮出错!");

        //检查好友列表显示区域
        WebElement chatFriend = webDriver.findElement(By.cssSelector("body > div.client-container > div > div.left > div.tab > div.tab-friend"));
        Assertions.assertTrue(chatFriend.isDisplayed(),"测试不通过:消息列表出错!");

        //检查消息列表显示区域
        WebElement chatMessage = webDriver.findElement(By.cssSelector("#session-list > li"));
        Assertions.assertTrue(chatMessage.isDisplayed(),"测试不通过:消息列表出错!");

        //选择第一个对话,检查聊天列表和聊天对话框上的名字是否一致
        chatMessage.click();
        WebElement listName = webDriver.findElement(By.cssSelector("#session-list > li > h3"));
        WebElement titleName = webDriver.findElement(By.cssSelector("body > div.client-container > div > div.right > div.title"));
        Assertions.assertEquals(listName.getText(), titleName.getText(),"测试不通过:聊天对象文本出错!");

        // 检查聊天消息显示区域
        WebElement chatArea = webDriver.findElement(By.cssSelector("body > div.client-container > div > div.right > div.message-show"));
        Assertions.assertTrue(chatArea.isDisplayed(),"测试不通过:消息记录显示出错!");

        // 检查输入框
        WebElement inputBox = webDriver.findElement(By.cssSelector("body > div.client-container > div > div.right > textarea"));
        Assertions.assertTrue(inputBox.isDisplayed() && inputBox.isEnabled(),"测试不通过:消息输入框出错!");

        // 检查发送按钮
        WebElement sendButton = webDriver.findElement(By.cssSelector("body > div.client-container > div > div.right > div.ctrl_container > div.ctrl > button"));
        Assertions.assertTrue(sendButton.isDisplayed() && sendButton.isEnabled(),"测试不通过:发送按钮出错!");
        Assertions.assertEquals("发送", sendButton.getText(),"测试不通过:发送按钮提示文本出错!");
    }

3.2.4 代码测试情况

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值