[易聊]软件项目测试报告

一、项目背景

  1. 随着互联网发展,各种各样的软件,比如游戏、短视频、购物软件中都有好友聊天功能,这是一个可在浏览器中与好友进行实时聊天的网页程序。“ 易聊 ”相对于一般的聊天软件,可以让用户免安装、随时随地的通过浏览器网页实现与朋友在线聊天。
  2. 项目整体采用前后端分离的方式实现,同时使用数据库进行数据的持久化存储,前端主要由登录界、注册界面,聊天主界面构成,后端使用Java流行的SpringBoot框架来进行服务器搭建。
  3. 该项目实现了简单的表情发送,图片发送,具有一定的可扩展性,如视频通话,发送语音等。

二、项目介绍

  1. 开发环境:IDEA版本2023.2、Win10 、JDK17、MySQL5.7
  2. 通信协议:项目整体通信基于HTTP通信协议、在线消息发送升级成Websocket协议。
  3. 功能介绍:
  • 用户登录:在输入正确的用户名、密码后跳转到主界面;未登陆状态访问聊天界面跳转到登录界面;禁止用户重复登录。
  • 用户注册:前后端数据通信采用通信,用户注册时存储采用密码加密存储
  • 好友管理:可以通过查询用户名,实时发送好友申请,也可以删除好友。
  • 聊天信息管理:当对方在线时,实时收到消息(文本、图片),对方不在现时,信息存储到数据库中,用户上线可查看;用户可单向删除聊天记录。
    4.项目代码链接

三、测试计划

(一)功能测试

  1. 测试用例
    在这里插入图片描述

  2. 执行测试的部分操作/截图
    (1)查询好友

  • 空输入查询
    在这里插入图片描述

  • 部分用户名查询
    在这里插入图片描述

  • 完整用户名查询
    在这里插入图片描述

(2)添加好友

  • 好友申请发送
    在这里插入图片描述
    在这里插入图片描述

  • 好友申请接收
    在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

(3)删除好友
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

(二)部分自动化测试

  1. 自动化测试步骤(消息发送功能)
    (1) 两名测试用户账号分别通过打开无痕模式下浏览器,进行用户登录;
    (2) 分别打开对方的聊天框;
    (3) 用户1向用户2发送测试消息;
    (4) 后端拿到最新消息进行比对;
    (5) 得到测试结果;
  2. 测试代码
public class Main {
    public static void main(String[] args) throws InterruptedException {
        FirstTest firstTest = new FirstTest();
        firstTest.test01();
    }
}
public class FirstTest {
    void test01() throws InterruptedException {
        //1.创建驱动,打开浏览器
        WebDriverManager.chromedriver().setup();
        ChromeOptions options = new ChromeOptions();
        options.addArguments("--remote-allow-origins=*");
        options.addArguments("--incognito");
        WebDriver driver = new ChromeDriver(options);
        //2.打开登录网址
        driver.get("http://127.0.0.1:8080/login.html");
        //3.找到账号密码框
        WebElement id = driver.findElement(By.cssSelector("#text"));
        WebElement password = driver.findElement(By.cssSelector("#myInput"));
        WebElement login = driver.findElement(By.cssSelector("body > section > div.content-w3ls.text-center > div:nth-child(4) > button"));
        //4.输入正确的账号密码
        id.sendKeys("李佳俊");
        password.sendKeys("123456");
        //5.点击登录
        login.click();
        Thread.sleep(1000);
        driver.switchTo().alert().accept();
        Thread.sleep(1000);
        String s = driver.findElement(By.cssSelector("body > div.client-container > div.main > div.left > div.user")).getText();
        if(s.equals("李佳俊")){
            System.out.println("测试用户李佳俊登陆成功");
        }else {
            System.out.println(s);
            System.out.println("登陆失败");
        }
        SecondTest secondTest = new SecondTest();
        Thread thread2 = new Thread(()->{
            try {
                secondTest.test01();
            } catch (InterruptedException e) {
                throw new RuntimeException(e);
            }
        });
        thread2.start();
        Thread.sleep(5000);
        driver.findElement(By.cssSelector("#session-list > li")).click();
        Thread.sleep(1000);
        driver.findElement(By.cssSelector("#messageInput")).sendKeys(Constant.TEST_MESSAGE);
        Thread.sleep(1000);
        driver.findElement(By.cssSelector("#send")).click();
        Thread.sleep(1000);
        List<WebElement> elements = driver.findElements(By.cssSelector("body > div.client-container > div.main > div:nth-child(2) > div.message-show > div > div > p"));
        WebElement element = elements.get(elements.size()-1);
        if(element.getText().equals(Constant.TEST_MESSAGE)){
            System.out.println("消息发送成功");
        }else {
            System.out.println("消息发送失败"+element.getText());
        }
        driver.quit();
    }
}
public class SecondTest {
    void test01() throws InterruptedException {
        //1.创建驱动,打开浏览器
        WebDriverManager.chromedriver().setup();
        ChromeOptions options = new ChromeOptions();
        options.addArguments("--remote-allow-origins=*");
        //无痕模式
        options.addArguments("--incognito");
        WebDriver driver = new ChromeDriver(options);
        //2.打开登录网址
        driver.get("http://127.0.0.1:8080/login.html");
        //3.找到账号密码框
        WebElement id = driver.findElement(By.cssSelector("#text"));
        WebElement password = driver.findElement(By.cssSelector("#myInput"));
        WebElement login = driver.findElement(By.cssSelector("body > section > div.content-w3ls.text-center > div:nth-child(4) > button"));
        //4.输入正确的账号密码
        id.sendKeys("苏宣");
        password.sendKeys("123456");
        //5.点击登录
        login.click();
        Thread.sleep(1000);
        driver.switchTo().alert().accept();
        Thread.sleep(1000);
        String s = driver.findElement(By.cssSelector("body > div.client-container > div.main > div.left > div.user")).getText();
        if(s.equals("苏宣")){
            System.out.println("测试苏宣用户登陆成功");
        }else {
            System.out.println(s);
            System.out.println("登陆失败");
        }
        Thread.sleep(1000);
        driver.findElement(By.cssSelector("#session-list > li")).click();
        Thread.sleep(5000);
        List<WebElement> elements = driver.findElements(By.cssSelector("body > div.client-container > div.main > div:nth-child(2) > div.message-show > div > div > p"));
        WebElement element = elements.get(elements.size()-1);
        if(element.getText().equals(Constant.TEST_MESSAGE)){
            System.out.println("消息接收成功");
        }else {
            System.out.println("消息接收失败"+element.getText());
        }
        driver.quit();
    }
}

3.测试结果截屏

在这里插入图片描述

(三)性能测试

持续更新…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值