【JAVA】网页聊天项目--->测试报告
·
目录
1. 项目概述
网页聊天项目是一个基于 Spring Boot 的实时网页聊天应用程序,支持用户注册登录、好友聊天、会话管理等功能,项目采用前后端分离架构完成
2. 项目技术栈
2.1 后端技术
| 框架 | Spring Boot |
| Web 层 | Spring Web, Spring WebSocket |
| 持久层 | MyBatis 3.0.5, MySQL Connector |
| 工具 | Lombok |
| 构建工具 | Maven |
| JDK 版本 | Java 17 |
2.2 前端技术
- HTML5, CSS3, JavaScript
- jQuery 2.0.0
- WebSocket API
3. 测试用例

4. 功能测试
4.1 手动测试
测试场景:用户名和密码都为空
预期结果:弹窗提示:“当前输入的用户名或者密码为空!”

测试场景:用户名为空
预期结果:弹窗提示:“当前输入的用户名或者密码为空!”

测试场景:密码为空
预期结果:弹窗提示:“当前输入的用户名或者密码为空!”

测试场景:密码错误
预期结果:弹窗提示:“当前输入的用户名或者密码为空!”

测试场景:用户名和密码都为正确
预期结果:弹窗提示:“当前输入的用户名或者密码为空!”


测试场景:点击首个好友,查看历史信息
预期结果:查看信息列表

测试场景:点击通讯录,查看好友列表
预期结果:查看好友列表

测试场景:点击对话框,输入:晚上吃啥?并发送
预期结果:如图


测试场景:上下切换好友,查看历史信息
预期结果:如图


4.2自动测试
4.2.1 创建驱动
package com.commom;
import io.github.bonigarcia.wdm.WebDriverManager;
import org.apache.commons.io.FileUtils;
import org.openqa.selenium.OutputType;
import org.openqa.selenium.TakesScreenshot;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.edge.EdgeDriver;
import org.openqa.selenium.edge.EdgeOptions;
import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
public class Utils {
public static EdgeDriver driver;
public static EdgeDriver createDriver() {
if (driver == null) {
//下载浏览器驱动
System.setProperty("wdm.edgeDriverUrl", "https://msedgedriver.microsoft.com/");
WebDriverManager.edgedriver().setup();
//添加配置
EdgeOptions options = new EdgeOptions();
options.addArguments("--remote-allow-origins=*");
//创建驱动对象
driver = new EdgeDriver(options);
}
return driver;
}
public Utils(String url) {
driver = createDriver();
driver.get(url);
Set<String> windowHandles = driver.getWindowHandles();
List<String> handleList = new ArrayList<>(windowHandles);
if (handleList.size() >= 2) {
driver.switchTo().window(handleList.get(0));
driver.close();
driver.switchTo().window(handleList.get(1));
// driver.manage().window().maximize();
}
}
//屏幕截取
public void screenShot(String str) throws IOException {
//格式
//年月日
SimpleDateFormat sim1 = new SimpleDateFormat("yyyy-MM-dd");
//时分秒
SimpleDateFormat sim2 = new SimpleDateFormat("HHmmss");
//目录
String dirTime = sim1.format(System.currentTimeMillis());
//文件
String fileTime = sim2.format(System.currentTimeMillis());
String filename = "./src/main/java/com/images/" + dirTime + "/" + str + "-" + fileTime + ".png";
File srcFile = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);
FileUtils.copyFile(srcFile, new File(filename));
}
public void quit() {
driver.quit();
}
}
4.2.2 登录功能测试
package com.tests;
import com.commom.Utils;
import org.openqa.selenium.Alert;
import org.openqa.selenium.By;
import java.io.IOException;
public class LoginPage extends Utils {
public static String url = "http://47.97.84.56:8888/login.html";
public LoginPage(String url) {
super(url);
}
public void checkUserName() throws IOException, InterruptedException {
//用户名正确
UserNameRight();
//用户名错误
//UserNameError();
//用户名空
//UserNameNull();
}
private void UserNameNull() throws IOException, InterruptedException {
driver.findElement(By.xpath("//*[@id=\"username\"]")).sendKeys("");
driver.findElement(By.xpath("//*[@id=\"password\"]")).sendKeys("123456");
driver.findElement(By.xpath("//*[@id=\"submit\"]")).click();
Thread.sleep(2000);
Alert alert = driver.switchTo().alert();
alert.accept();
screenShot(Thread.currentThread().getStackTrace()[1].getMethodName());
}
private void UserNameError() throws IOException, InterruptedException {
driver.findElement(By.xpath("//*[@id=\"username\"]")).sendKeys("12");
driver.findElement(By.xpath("//*[@id=\"password\"]")).sendKeys("123456");
driver.findElement(By.xpath("//*[@id=\"submit\"]")).click();
Thread.sleep(2000);
Alert alert = driver.switchTo().alert();
alert.accept();
screenShot(Thread.currentThread().getStackTrace()[1].getMethodName());
}
private void UserNameRight() throws IOException, InterruptedException {
driver.findElement(By.xpath("//*[@id=\"username\"]")).sendKeys("张三");
driver.findElement(By.xpath("//*[@id=\"password\"]")).sendKeys("123456");
driver.findElement(By.xpath("//*[@id=\"submit\"]")).click();
Thread.sleep(2000);
Alert alert = driver.switchTo().alert();
alert.accept();
screenShot(Thread.currentThread().getStackTrace()[1].getMethodName());
}
}
4.2.3 聊天功能测试
package com.tests;
import com.commom.Utils;
import org.openqa.selenium.By;
public class ChatroomPage extends Utils {
public static String url = "http://47.97.84.56:8888/client.html";
public ChatroomPage(String url) {
super(url);
}
public static void sendMessage() throws InterruptedException {
driver.findElement(By.xpath("//*[@id=\"session-list\"]/li[1]")).click();
driver.findElement(By.xpath("/html/body/div[2]/div/div[2]/textarea")).sendKeys("你好!");
Thread.sleep(2000);
driver.findElement(By.xpath("/html/body/div[2]/div/div[2]/div[3]/button")).click();
}
}
4.2.4 测试启动类
package com;
import com.tests.ChatroomPage;
import com.tests.LoginPage;
import java.io.IOException;
public class RunTest {
public static void main(String[] args) throws IOException, InterruptedException {
LoginPage loginPage = new LoginPage(LoginPage.url);
//检查用户名
loginPage.checkUserName();
ChatroomPage chatroomPage = new ChatroomPage(ChatroomPage.url);
//发送信息
ChatroomPage.sendMessage();
}
}
5. 性能测试
5.1 接口测试
5.1.1 登录接口测试

5.1.2 信息查看接口测试

5.1.3 好友列表测试

6. 兼容性测试
6.1 谷歌浏览器测试




6.2 联想浏览器测试




7.安全性测试
7.1 拦截器拦截未登录

8. 易用性测试
8.1 操作简单,提示易懂




9. 界面测试
9.1 界面简单,布局流畅




10. 测试总结
10.1 存在缺陷
功能实现单一,功能有待改善
10.2
该测试总体良好,无严重BUG ,有少许缺陷
更多推荐




所有评论(0)