网页五子棋测试报告

一、测试目的

本次测试旨在全面评估网页版对战五子棋系统的功能完整性、性能稳定性、用户体验以及安全性,确保该系统能够满足用户需求,提供流畅、公平、无bug的在线对战体验。

二、测试环境

  1. 硬件环境

    • 测试机型:联想ThinkPad T490,Intel Core i5处理器,8GB RAM,256GB SSD
    • 网络环境:有线网络,100Mbps带宽
    • 软件环境

      • 浏览器:Chrome(最新版本)、Firefox(最新版本)、Edge(最新版本)
      • 操作系统:Windows 10、MacOS Catalina

三、测试内容与方法

该项目主要主要实现了登录,注册,匹配和对战功能

用户模块主要负责⽤⼾的注册, 登录, 分数记录功能,使⽤ MySQL 数据库存储数据,客⼾端提供⼀个登录⻚⾯+注册⻚⾯,服务器端基于 Spring + MyBatis 来实现数据库的增删改查.

匹配模块
⽤⼾登录成功, 则进⼊游戏⼤厅⻚⾯.
游戏⼤厅中, 能够显⽰⽤⼾的名字, 天梯分数, ⽐赛场数和获胜场数.
同时显⽰⼀个 “匹配按钮”.
点击匹配按钮则⽤⼾进⼊匹配队列, 并且界⾯上显⽰为 “取消匹配” .
再次点击则把⽤⼾从匹配队列中删除.
如果匹配成功, 则跳转进⼊到游戏房间⻚⾯.
⻚⾯加载时和服务器建⽴ websocket 连接. 双⽅通过 websocket 来传输 “开始匹配”, “取消匹配”, “匹配
成功” 这样的信息.

对战模块
玩家匹配成功, 则进⼊游戏房间⻚⾯.
每两个玩家在同⼀个游戏房间中.
在游戏房间⻚⾯中, 能够显⽰五⼦棋棋盘. 玩家点击棋盘上的位置实现落⼦功能.
并且五⼦连珠则触发胜负判定, 显⽰ “你赢了” “你输了”.
⻚⾯加载时和服务器建⽴ websocket 连接. 双⽅通过 websocket 来传输 “准备就绪”, “落⼦位置”, “胜
负” 这样的信息.
• 准备就绪: 两个玩家均连上游戏房间的 websocket 时, 则认为双⽅准备就绪.
• 落⼦位置: 有⼀⽅玩家落⼦时, 会通过 websocket 给服务器发送落⼦的⽤⼾信息和落⼦位置, 同时服
务器再将这样的信息返回给房间内的双⽅客⼾端. 然后客⼾端根据服务器的响应来绘制棋⼦位置.
• 胜负: 服务器判定这⼀局游戏的胜负关系. 如果某⼀⽅玩家落⼦, 产⽣了五⼦连珠, 则判定胜负并返回
胜负信息. 或者如果某⼀⽅玩家掉线(⽐如关闭⻚⾯), 也会判定对⽅获胜

四、测试结果

  1. 功能测试:所有功能均按预期工作,未发现严重bug。注册登录流程顺畅,匹配系统快速且公平,棋盘操作准确无误,胜负判定准确无误,聊天功能正常。

  2. 性能测试:页面加载迅速,游戏操作流畅,无明显卡顿现象。在高并发情况下,系统响应速度略有下降,但仍保持在可接受范围内,资源占用率合理。

  3. 用户体验测试:界面设计简洁美观,操作便捷,用户反馈积极。快捷键和拖拽操作得到用户好评,错误提示和操作反馈清晰明了。

    import io.github.bonigarcia.wdm.WebDriverManager;
    import org.junit.jupiter.api.AfterAll;
    import org.junit.jupiter.api.BeforeAll;
    import org.openqa.selenium.WebDriver;
    import org.openqa.selenium.chrome.ChromeDriver;
    import org.openqa.selenium.chrome.ChromeOptions;
     
    import java.time.Duration;
     
    public class InitAndEndBrowser {
        static WebDriver webDriver;
     
        @BeforeAll
        static void openGobangSystem() {
            WebDriverManager.chromedriver().setup();
            ChromeOptions options = new ChromeOptions();
            options.addArguments("--remote-allow-origins=*");
            webDriver = new ChromeDriver(options);
            webDriver.manage().timeouts().implicitlyWait(Duration.ofSeconds(3));
        }
     
        @AfterAll
        static void closeGobangSystem() {
            webDriver.quit();
        }
    }
    

  4. 安全测试:用户数据在传输和存储过程中均经过加密处理,未发现数据泄露风险。系统具备基本的防作弊机制,能够有效防止常见作弊行为。漏洞扫描结果显示系统无已知安全漏洞。

    public class GobangTest extends InitAndEndBrowser {
     
        //登录成功测试
        @Order(2)
        @ParameterizedTest
        @CsvSource({"'zhangsan', '123'"})
        void loginSuccessful(String username, String password) {
            webDriver.get("http://47.121.113.16:9090/login.html");
            webDriver.findElement(By.cssSelector("#username")).sendKeys(username);
            webDriver.findElement(By.cssSelector("#password")).sendKeys(password);
            webDriver.findElement(By.cssSelector("#submit")).click();
            //登录后,应跳转到游戏大厅页面
            //检验是否有开始匹配这个按钮
            String text = webDriver.findElement(By.cssSelector("#match-button")).getText();
            if ("开始匹配".equals(text)) {
                System.out.println("测试通过");
            } else {
                System.out.println("测试不通过");
            }
        }
     
        //登录失败测试
        @Order(1)
        @ParameterizedTest
        @CsvFileSource(resources = "loginfalied.csv")
        void loginFailed(String username, String password) throws InterruptedException {
            webDriver.get("http://47.121.113.16:9090/login.html");
            webDriver.findElement(By.cssSelector("#username")).sendKeys(username);
            webDriver.findElement(By.cssSelector("#password")).sendKeys(password);
            webDriver.findElement(By.cssSelector("#submit")).click();
            sleep(2000);
            //登录失败,会出现一个alert弹窗
            Alert alert = webDriver.switchTo().alert();
            if (alert != null) {
                System.out.println("测试通过,弹框内容: " + alert.getText());
            } else {
                System.out.println("测试不通过");
            }
            assertNotNull(alert);
            alert.dismiss();  //关闭弹窗
        }
     
        //匹配按钮的显示功能测试(放在登录成功测试之后执行)
        @Order(3)
        @Test
        void matchButtonTest() throws InterruptedException {
    //        webDriver.get("http://47.121.113.16:9090/login.html");
    //        webDriver.findElement(By.cssSelector("#username")).sendKeys("zhangsasn");
    //        webDriver.findElement(By.cssSelector("#password")).sendKeys("123");
    //        webDriver.findElement(By.cssSelector("#submit")).click();
            sleep(2000);
            //此时按钮显示的是开始匹配,点击后看是否变成了匹配中
            webDriver.findElement(By.cssSelector("#match-button")).click();
            sleep(2000);
            String text = webDriver.findElement(By.cssSelector("#match-button")).getText();
            if (text.equals("匹配中...(点击停止)")) {
                System.out.println("测试通过");
            } else {
                System.out.println("测试不通过");
            }
        }
    }
    

五、结论与建议

本次测试结果表明,网页对战五子棋系统整体表现良好,功能完善、性能稳定、用户体验佳、安全性高。建议继续优化高并发场景下的性能表现,并加强对新型作弊行为的监控与防范。同时,可以考虑增加更多游戏模式和个性化设置,以进一步提升用户粘性和满意度。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

毕业我要开挖机

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值