当前位置: 首页 > wzjs >正文

可以接单做3d网站微信加精准客源软件

可以接单做3d网站,微信加精准客源软件,php做简单网站例子,做购物网站多少钱网页五子棋对战测试报告 项目背景项目测试功能测试部分界面截图自动化测试UtilsRegisterTestLoginTestHallTestRoomTest 项目背景 初学springboot的第一个项目,这是一款基于SSM框架结合WebSocket技术打造的网页版五子棋游戏,免下载安装,打开网页就能随时…

网页五子棋对战测试报告

  • 项目背景
  • 项目测试
    • 功能测试
    • 部分界面截图
    • 自动化测试
      • Utils
      • RegisterTest
      • LoginTest
      • HallTest
      • RoomTest

项目背景

初学springboot的第一个项目,这是一款基于SSM框架结合WebSocket技术打造的网页版五子棋游戏,免下载安装,打开网页就能随时享受下棋乐趣。它最核心的功能是双人在线对战,在匹配系统中随机与其他玩家开启棋局。WebSocket技术确保了下棋过程中,双方落子信息能实时同步,几乎没有延迟,让对弈流畅又丝滑。在界面设计上,它简洁美观,棋盘与棋子的绘制精致,操作也十分简单,新手玩家能快速上手。除了实时对弈,游戏还贴心地提供了复盘功能,方便玩家回顾棋局,总结经验,提升棋艺。不管是想在闲暇时光杀上几盘,还是和棋友交流切磋,这款网页版五子棋都能满足你。

项目测试

功能测试

在这里插入图片描述

部分界面截图

在这里插入图片描述
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/bf6be8fd6bdd499e8e594f3a3d512805.png
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

自动化测试

因为写的比较着急,可能代码并不美观,请见谅

Utils

@Data
public class Utils {public static EdgeDriver driver;public static EdgeDriver createDriver() {if(driver == null) {WebDriverManager.edgedriver().setup();EdgeOptions options = new EdgeOptions();//允许访问所有的链接options.addArguments("--remote-allow-origins=*");driver = new EdgeDriver(options);//隐式等待(全局情况,查找元素的时候都让它等待2秒)driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(2));}return driver;}public Utils(String url) {driver = createDriver();driver.get(url);}public List<String> getTime(){//文件能不能按照天的维度按文件夹进行保存//文件格式 20230212-123030毫秒SimpleDateFormat sim1 = new SimpleDateFormat("yyyyMMdd-HHmmssSS");SimpleDateFormat sim2 = new SimpleDateFormat("yyyyMMdd");String filename = sim1.format(System.currentTimeMillis());String dirname = sim2.format(System.currentTimeMillis());List<String> list = new ArrayList<>();list.add(dirname);list.add(filename);return list;}/*** 获取屏幕截图,把所有的用例执行的结果保存下来*/public void getScreenShot(String str) throws IOException, AWTException {driver.quit();List<String> timeParts = getTime();// 构建路径String dirPath = Paths.get("./src/test/java/com/blogWebAutoTest", timeParts.get(0)).toString();String filename = String.format("%s_%s.png", str, timeParts.get(1));File destFile = new File(dirPath, filename);// 自动创建目录if (!destFile.getParentFile().exists()) {destFile.getParentFile().mkdirs(); // 创建多级目录}// 截图并保存// 使用 Robot 类截屏Rectangle screenRect = new Rectangle(Toolkit.getDefaultToolkit().getScreenSize());BufferedImage screenFullImage = new Robot().createScreenCapture(screenRect);// 保存截图ImageIO.write(screenFullImage, "png", destFile);System.out.println("IDEA运行截图已保存至: " + destFile.getAbsolutePath());}}

RegisterTest

public class RegisterTest extends Utils {private static String url = "http://localhost:8080/register.html";public RegisterTest() {super(url);}public void registerFail() {WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(5));// 空账号空密码测试driver.findElement(By.xpath("//*[@id=\"username\"]")).clear();driver.findElement(By.xpath("//*[@id=\"password\"]")).clear();driver.findElement(By.xpath("//*[@id=\"username\"]")).sendKeys("");driver.findElement(By.xpath("//*[@id=\"password\"]")).sendKeys("");driver.findElement(By.xpath("//*[@id=\"submit\"]")).click();// 处理弹窗(确认)wait.until(ExpectedConditions.alertIsPresent());Alert alert = driver.switchTo().alert(); // 切换到弹窗alert.accept(); // 点击确认(相当于点击"OK")driver.findElement(By.xpath("//*[@id=\"username\"]")).sendKeys("laoliu1");driver.findElement(By.xpath("//*[@id=\"password\"]")).sendKeys("");driver.findElement(By.xpath("//*[@id=\"submit\"]")).click();wait.until(ExpectedConditions.alertIsPresent());alert = driver.switchTo().alert(); // 切换到弹窗alert.accept(); // 点击确认(相当于点击"OK")driver.findElement(By.xpath("//*[@id=\"username\"]")).sendKeys("");driver.findElement(By.xpath("//*[@id=\"password\"]")).sendKeys("123");driver.findElement(By.xpath("//*[@id=\"submit\"]")).click();wait.until(ExpectedConditions.alertIsPresent());alert = driver.switchTo().alert(); // 切换到弹窗alert.accept(); // 点击确认(相当于点击"OK")}public void registerSuccess() throws InterruptedException {// 等待页面加载完成// 第一次注册WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(5));
//        wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//*[@id=\"username\"]")));
//        driver.findElement(By.xpath("//*[@id=\"username\"]")).clear();
//        driver.findElement(By.xpath("//*[@id=\"password\"]")).clear();
//        driver.findElement(By.xpath("//*[@id=\"username\"]")).sendKeys("laoliu1");
//        driver.findElement(By.xpath("//*[@id=\"password\"]")).sendKeys("123");
//        driver.findElement(By.xpath("//*[@id=\"submit\"]")).click();
//
//        // 处理第一个弹窗
//        try {
//            wait.until(ExpectedConditions.alertIsPresent());
//            Alert alert = driver.switchTo().alert();
//            alert.accept();
//        } catch (Exception e) {
//            System.out.println("第一个弹窗处理失败: " + e.getMessage());
//        }
        driver.get(url);
//        // 等待页面元素重新加载// 第二次注册wait.until(ExpectedConditions.presenceOfElementLocated(By.xpath("//*[@id=\"username\"]")));driver.findElement(By.xpath("//*[@id=\"username\"]")).clear();driver.findElement(By.xpath("//*[@id=\"password\"]")).clear();driver.findElement(By.xpath("//*[@id=\"username\"]")).sendKeys("ceshi");driver.findElement(By.xpath("//*[@id=\"password\"]")).sendKeys("123");driver.findElement(By.xpath("//*[@id=\"submit\"]")).click();// 处理第二个弹窗try {wait.until(ExpectedConditions.alertIsPresent());Alert alert = driver.switchTo().alert();alert.accept();} catch (Exception e) {System.out.println("第二个弹窗处理失败: " + e.getMessage());}// 等待页面跳转wait.until(ExpectedConditions.urlToBe("http://localhost:8080/login.html"));// 验证跳转String currentUrl = driver.getCurrentUrl();assert currentUrl.equals("http://localhost:8080/login.html") : "Expected URL: http://localhost:8080/login.html, but got: " + currentUrl;}public void registerT() throws InterruptedException {// 等待页面加载完成// 创建显式等待对象WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(5));// 等待输入框元素可见wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//*[@id=\"username\"]")));// 输入注册信息driver.findElement(By.xpath("//*[@id=\"username\"]")).clear();driver.findElement(By.xpath("//*[@id=\"password\"]")).clear();driver.findElement(By.xpath("//*[@id=\"username\"]")).sendKeys("laoliu2");driver.findElement(By.xpath("//*[@id=\"password\"]")).sendKeys("123");// 点击提交按钮driver.findElement(By.xpath("//*[@id=\"submit\"]")).click();// 等待AJAX请求完成和弹窗出现try {wait.until(ExpectedConditions.alertIsPresent());Alert alert = driver.switchTo().alert();alert.accept();} catch (Exception e) {System.out.println("弹窗处理失败: " + e.getMessage());throw e;}driver.quit();}
}

LoginTest

public class LoginTest extends Utils {private static String url = "http://localhost:8080/login.html";public LoginTest() {super(url);}public void LoginFail() {WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(5));wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//*[@id=\"username\"]")));loginTest("", "");wait.until(ExpectedConditions.alertIsPresent());Alert alert = driver.switchTo().alert(); // 切换到弹窗alert.accept(); // 点击确认(相当于点击"OK")loginTest("laoliu1", "");wait.until(ExpectedConditions.alertIsPresent());alert = driver.switchTo().alert(); // 切换到弹窗alert.accept(); // 点击确认(相当于点击"OK")loginTest("", "123");wait.until(ExpectedConditions.alertIsPresent());alert = driver.switchTo().alert(); // 切换到弹窗alert.accept(); // 点击确认(相当于点击"OK")loginTest("laoliu123", "123");wait.until(ExpectedConditions.alertIsPresent());alert = driver.switchTo().alert(); // 切换到弹窗alert.accept(); // 点击确认(相当于点击"OK")}public void LoginSuccess() {WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(5));loginTest("ceshi", "123");wait.until(ExpectedConditions.alertIsPresent());Alert alert = driver.switchTo().alert(); // 切换到弹窗alert.accept(); // 点击确认(相当于点击"OK")assert driver.getCurrentUrl().equals("http://localhost:8080/game_hall.html");
//        driver.quit();}private static void loginTest(String username, String number) {driver.findElement(By.cssSelector("#username")).clear();driver.findElement(By.cssSelector("#password")).clear();driver.findElement(By.cssSelector("#username")).sendKeys(username);driver.findElement(By.cssSelector("#password")).sendKeys(number);driver.findElement(By.cssSelector("#submit")).click();}
}

HallTest

public class HallTest extends Utils {private static String url = "http://localhost:8080/game_hall.html";public HallTest() {super(url);}public void hallFail() {// 清理登录状态driver.manage().deleteAllCookies();driver.get(url);WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(5));WebElement screen = wait.until(d -> {WebElement el = d.findElement(By.id("screen"));return el.getText().contains("玩家:") ? el : null;});// 获取所有文本节点(需注意浏览器兼容性)List<WebElement> textNodes = driver.findElements(By.cssSelector("#screen > *"));//解析整个文本String fullText = screen.getText();String[] lines = fullText.split("\n");assertEquals("玩家: undefined", lines[0]);driver.findElement(By.cssSelector("#match-button")).click();assert driver.findElement(By.cssSelector("#match-button")).getText().equals("开始匹配") : "未登入状态进入游戏大厅匹配异常";}public void hallSuccess() {driver.get("http://localhost:8080/login.html");WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(20));wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//*[@id=\"username\"]")));driver.findElement(By.cssSelector("#username")).clear();driver.findElement(By.cssSelector("#password")).clear();driver.findElement(By.cssSelector("#username")).sendKeys("ceshi");driver.findElement(By.cssSelector("#password")).sendKeys("123");driver.findElement(By.cssSelector("#submit")).click();wait.until(ExpectedConditions.alertIsPresent());Alert alert = driver.switchTo().alert(); // 切换到弹窗alert.accept(); // 点击确认(相当于点击"OK")// 等待页面跳转wait.until(ExpectedConditions.urlToBe(url));// 验证跳转String currentUrl = driver.getCurrentUrl();assert currentUrl.equals(url) :"Expected URL: http://localhost:8080/game_hall.html, but got: " + currentUrl;//        wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//*[@id=\"screen\"]/text()[1]")));;WebElement screen = wait.until(d -> {WebElement el = d.findElement(By.id("screen"));return el.getText().contains("玩家:") ? el : null;});// 获取所有文本节点(需注意浏览器兼容性)List<WebElement> textNodes = driver.findElements(By.cssSelector("#screen > *"));String fullText = screen.getText();String[] lines = fullText.split("\n");assertEquals("玩家: ceshi", lines[0]);driver.findElement(By.cssSelector("#match-button")).click();System.out.println(driver.findElement(By.cssSelector("#match-button")).getText());assert driver.findElement(By.cssSelector("#match-button")).getText().equals("匹配中...(点击取消)") : "登入状态点击开始匹配异常";driver.findElement(By.cssSelector("#match-button")).click();assert driver.findElement(By.cssSelector("#match-button")).getText().equals("开始匹配") : "登入状态点击取消匹配异常";//        driver.quit();}
}

RoomTest

public class RoomTest extends Utils {private static String url = "http://localhost:8080/game_room.html";public RoomTest() {super(url);}public void roomFail() {driver.manage().deleteAllCookies();driver.get(url);WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(5));wait.until(driver -> ExpectedConditions.visibilityOfElementLocated(By.cssSelector("#screen")));assert driver.findElement(By.cssSelector("#screen")).getText().equals("等待玩家连接中...") : "无状态访问游戏房间异常";}//    public void roomSuccess() {
//
//    }
}
http://www.dtcms.com/wzjs/40943.html

相关文章:

  • 做ppt模版的网站商业公司的域名
  • 新网站怎么做权重媒体资源网官网
  • 网站运营与管理实训报告百度下载免费安装
  • 大连哪家网站公司好2022社会热点事件及看法
  • 写过太原的网站合肥seo外包平台
  • 机械厂做网站到底有没有效果永久免费的培训学校管理软件
  • wordpress 本地加速seo工作职位
  • 网站运营的工作内容百度推广官网入口
  • 邢台网红百度优化教程
  • 个人网站 前置审批公司运营策划方案
  • 梁山网站建设多少钱长沙谷歌优化
  • 做企业网站需要准备什么资料百度推广入口
  • ps和dw怎么做网站建网站专业
  • 装潢设计公司门头优化seo是什么
  • o2o网站建设最好公司排名网络营销岗位描述的内容
  • 做淘宝客淘宝网站被黑北京疫情最新数据
  • wordpress置顶文章 图标seo资源咨询
  • 成都信用建设网站优化大师免费安装下载
  • 肥城网站建设网络工程师
  • 网站名称和备案公司名称不一样百度竞价运营
  • 怎样建自己的网站赚钱网站免费优化
  • 专业做ea的网站中国女排联赛排名
  • 服装网站开发的需求分析百度联盟广告点击一次收益
  • 烟台企业宣传片制作公司郴州seo
  • 定制网站开发冬天里的白玫瑰中国培训网是国家公认的吗
  • No物流网站建设seo计费系统登录
  • 哪个网站可以做效果图赚钱百度广告电话号码
  • 可以免费建设网站吗搜索引擎营销方法有哪些
  • 织梦网站做seo优化google浏览器官方
  • 网站建设私单seo知识分享