即时通讯平台项目测试(主页面)

news2024/11/14 7:00:04

http://8.130.98.211:8080/login.html项目访问地址:即时通讯平台icon-default.png?t=N7T8http://8.130.98.211:8080/login.html

本篇文章进行项目主页面的测试。

在测试前需要先对待测内容进行分类,按照功能进行分类可以分为:个人信息设置、发送/接收消息、添加好友、创建群聊、好友搜索。

个人信息设置

UI测试

测试环境:Win11;IntelliJ IDEA 2023.2;Microsoft Edge版本 125.0.2535.51 (正式版本) (64 位)

测试方法:自动化测试

测试脚本:

public class MainPage {
    private static WebDriver webDriver;

    @BeforeAll
    public static void init() {
        System.setProperty("webdriver.edge.driver","C:\\Program Files (x86)\\Microsoft\\Edge\\Application\\msedgedriver.exe");
        webDriver = new EdgeDriver();
        webDriver.manage().window().maximize();
    }

    @AfterAll
    public static void delete() {
        webDriver.close();
    }

    //进入主界面
    @BeforeEach
    public void intoPage() {
        webDriver.get("http://8.130.98.211:8080/login.html");
        webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
        webDriver.findElement(By.cssSelector("#userName")).sendKeys("zhangsan");
        webDriver.findElement(By.cssSelector("#password")).sendKeys("zhangsan");
        webDriver.findElement(By.cssSelector("#submit")).click();
    }

    @Test
    public void test() throws InterruptedException, IOException {
        webDriver.findElement(By.cssSelector("body > div.client-container > div > div.left > div.user")).click();
        //等待页面跳转
        sleep(500);
        webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
        //截图
        File file = ((TakesScreenshot) webDriver).getScreenshotAs(OutputType.FILE);
        FileUtils.copyFile(file, new File("D://个人主页.png"));
    }
}

预期结果:

实际结果:

 实际结果与预期结果不符图片未展示成功。

BUG描述

BUG出现的环境:Win11;IntelliJ IDEA 2023.2;Microsoft Edge版本 125.0.2535.51 (正式版本) (64 位)

BUG出现的操作步骤:

  1. 打开Edge浏览器输入网址http://8.130.98.211:8080/login.html
  2. 在登陆页面输入账号:zhangsan,密码:zhangsan进行登录
  3. 点击用户头像进入用户信息设置页面

预期结果:头像模块会展示用户头像图片

实际结果:头像图片展示异常

功能测试

用户名修改

根据测试需求文档(用户名要求长度为2~16位,只能由英文字母或数字组成)先编写测试点:

当欲修改的用户名不存在:

如果欲修改的用户名存在则修改失败。

有了这些测试点之后在进行测试用例的编写: 

测试环境:Win11;IntelliJ IDEA 2023.2;Microsoft Edge版本 125.0.2535.51 (正式版本) (64 位)

测试方法:自动化测试

测试脚本:

public class MainPage {
    private static WebDriver webDriver;

    @BeforeAll
    public static void init() {
        System.setProperty("webdriver.edge.driver","C:\\Program Files (x86)\\Microsoft\\Edge\\Application\\msedgedriver.exe");
        webDriver = new EdgeDriver();
        webDriver.manage().window().maximize();
    }

    @AfterAll
    public static void delete() {
        webDriver.close();
    }

    //进入主界面
    @BeforeEach
    public void intoPage() {
        webDriver.get("http://8.130.98.211:8080/login.html");
        webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
        webDriver.findElement(By.cssSelector("#userName")).sendKeys("zhangsan");
        webDriver.findElement(By.cssSelector("#password")).sendKeys("zhangsan");
        webDriver.findElement(By.cssSelector("#submit")).click();
    }

    @Test
    //测试前已存在用户lisi
    //预期结果:第一个是false紧接着十二个是true,后面除最后一个是true其余都是false;
    public void setUserNameTest() throws InterruptedException {
        String[] values = {
            "lisi","aaa","123","12asd","as","12","a2","qwertyuiopasdfgh","1234567890123456","123456789012345w",
            "zhangsande","1234567890","qwe1234567",
            "a","1","qweqwwwwwwwqqqqwee","12132234534363623464",
            "qweqwe7dhf7y76647yruh","@uhas()","asds asds","13213  32",
            "@12312334","asd12 ","asd12@","","@(){}","     ","a@",
            "w ","2 ","2@","@#","  ","qwertyuiopasdfg@","qwertyuiopasdfg@","qwertyuiopasdfg ",
            "123456789012345 ", "123456789012345@","12345678901234 w",
            "12 456789012345w","12345678901234$w","*&^%$#@!@#$%^&*&",
            "                ","12345678901234562","oqwertyuiopasdfgh","oqwertyuiopasdfg4",
            "qwe@werewq","qwertyuiop ","123456789 ","123456789@","12345678d ","q12345678@",
            "!@#$%^&*()","          ","zhangsan"
        };
        boolean[] result = new boolean[values.length];
        for (int i = 0; i < values.length; i++) {
            //进入用户信息修改页面
            webDriver.findElement(By.cssSelector("body > div.client-container > div > div.left > div.user")).click();
            //等待页面跳转
            sleep(500);
            webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
            //修改用户名
            webDriver.findElement(By.cssSelector("#userName")).clear();
            webDriver.findElement(By.cssSelector("#userName")).sendKeys(values[i]);
            webDriver.findElement(By.cssSelector("#upload")).click();
            sleep(1000);
            //获取弹窗信息
            Alert alert = webDriver.switchTo().alert();
            String text = alert.getText();
            alert.accept();
            //等待页面跳转
            sleep(500);
            result[i] = "信息修改成功".equals(text);
        }
        System.out.println(Arrays.toString(result));
    }
}

测试数据:

"lisi","aaa","123","12asd","as","12","a2","qwertyuiopasdfgh","1234567890123456","123456789012345w",
"zhangsande","1234567890","qwe1234567",
"a","1","qweqwwwwwwwqqqqwee","12132234534363623464",
"qweqwe7dhf7y76647yruh","@uhas()","asds asds","13213  32",
"@12312334","asd12 ","asd12@","","@(){}","     ","a@",
"w ","2 ","2@","@#","  ","qwertyuiopasdfg@","qwertyuiopasdfg@","qwertyuiopasdfg ",
"123456789012345 ", "123456789012345@","12345678901234 w",
"12 456789012345w","12345678901234$w","*&^%$#@!@#$%^&*&",
"                ","12345678901234562","oqwertyuiopasdfgh","oqwertyuiopasdfg4",
"qwe@werewq","qwertyuiop ","123456789 ","123456789@","12345678d ","q12345678@",
"!@#$%^&*()","          ","zhangsan"

预期结果:第一个是false紧接着十二个是true,后面都是false;

实际结果:与预期结果相同

修改密码

测试环境:Win11;IntelliJ IDEA 2023.2;Microsoft Edge版本 125.0.2535.51 (正式版本) (64 位)

测试方法:自动化测试

测试脚本:

public class MainPage {
    private static WebDriver webDriver;

    @BeforeAll
    public static void init() {
        System.setProperty("webdriver.edge.driver","C:\\Program Files (x86)\\Microsoft\\Edge\\Application\\msedgedriver.exe");
        webDriver = new EdgeDriver();
        webDriver.manage().window().maximize();
    }

    @AfterAll
    public static void delete() {
        webDriver.close();
    }

    //进入主界面
    @BeforeEach
    public void intoPage() {
        webDriver.get("http://8.130.98.211:8080/login.html");
        webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
        webDriver.findElement(By.cssSelector("#userName")).sendKeys("zhangsan");
        webDriver.findElement(By.cssSelector("#password")).sendKeys("123456");
        webDriver.findElement(By.cssSelector("#submit")).click();
    }

    @ParameterizedTest
    @CsvSource({"zhangsan, zhangsan"})
    //测试修改用户密码
    //预期结果:true
    public void setPasswordTest(String userName, String password) throws InterruptedException {
        //进入用户信息修改页面
        webDriver.findElement(By.cssSelector("body > div.client-container > div > div.left > div.user")).click();
        //等待页面跳转
        sleep(500);
        webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
        //设置密码
        webDriver.findElement(By.cssSelector("#password")).sendKeys(password);
        webDriver.findElement(By.cssSelector("#upload")).click();
        sleep(300);
        //关闭弹窗提示
        webDriver.switchTo().alert().accept();
        //重新登录
        webDriver.get("http://8.130.98.211:8080/login.html");
        webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
        webDriver.findElement(By.cssSelector("#userName")).sendKeys(userName);
        webDriver.findElement(By.cssSelector("#password")).sendKeys(password);
        webDriver.findElement(By.cssSelector("#submit")).click();
        sleep(500);
        webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
        //获取页面url
        System.out.println("http://8.130.98.211:8080/client.html".equals(webDriver.getCurrentUrl()));
    }
}

预期结果:打印 true

实际结果:与预期结果一致

修改图片

测试环境:Win11;IntelliJ IDEA 2023.2;Microsoft Edge版本 125.0.2535.51 (正式版本) (64 位)

测试方法:自动化测试

测试脚本:

public class MainPage {
    private static WebDriver webDriver;

    @BeforeAll
    public static void init() {
        System.setProperty("webdriver.edge.driver","C:\\Program Files (x86)\\Microsoft\\Edge\\Application\\msedgedriver.exe");
        webDriver = new EdgeDriver();
        webDriver.manage().window().maximize();
    }

    @AfterAll
    public static void delete() {
        webDriver.close();
    }

    //进入主界面
    @BeforeEach
    public void intoPage() throws InterruptedException {
        webDriver.get("http://8.130.98.211:8080/login.html");
        webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
        webDriver.findElement(By.cssSelector("#userName")).sendKeys("zhangsan");
        webDriver.findElement(By.cssSelector("#password")).sendKeys("zhangsan");
        webDriver.findElement(By.cssSelector("#submit")).click();
        //等待页面跳转
        sleep(200);
        webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
    }
    //测试修改用户头像
    //预期结果:用户头像变为修改后的图片
    @ParameterizedTest
    @ValueSource(strings = {"C:\\Users\\13900\\Pictures\\头像.png"})
    public void setUserPhotoTest(String photoPath) throws IOException, InterruptedException {
        //截图保存当前的头像
        File old = ((TakesScreenshot) webDriver).getScreenshotAs(OutputType.FILE);
        FileUtils.copyFile(old, new File("D:\\修改前.png"));
        //进行修改操作
        webDriver.findElement(By.cssSelector("body > div.client-container > div > div.left > div.user")).click();
        //等待页面跳转
        sleep(500);
        webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
        //上传文件
        webDriver.findElement(By.cssSelector("#fileUpdate")).sendKeys(photoPath);
        webDriver.findElement(By.cssSelector("#upload")).click();
        sleep(1000);
        webDriver.switchTo().alert().accept();
        sleep(500);
        webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
        //截图保存修改后的头像
        File newFile = ((TakesScreenshot) webDriver).getScreenshotAs(OutputType.FILE);
        FileUtils.copyFile(newFile, new File("D:\\修改后.png"));
    }
}

测试数据:

预期结果:用户头像变为修改后的图片

实际结果:与预期结果一致


发送/接收消息

UI测试

测试环境:Win11;IntelliJ IDEA 2023.2;Microsoft Edge版本 125.0.2535.51 (正式版本) (64 位)

测试方法:人工测试

测试步骤:

  1. 打开Edge浏览器输入网址http://8.130.98.211:8080/login.html
  2. 在登陆页面输入账号:zhangsan,密码:zhangsan进行登录
  3. 点击左下方 lisi 的信息提示框。

预期结果:

实际结果:与预期结果相符 

功能测试

测试环境:Win11;IntelliJ IDEA 2023.2;Microsoft Edge版本 125.0.2535.51 (正式版本) (64 位)

测试方法:自动化测试

测试脚本:

public class MainPage {
    private static WebDriver webDriver;

    @BeforeAll
    public static void init() {
        System.setProperty("webdriver.edge.driver","C:\\Program Files (x86)\\Microsoft\\Edge\\Application\\msedgedriver.exe");
        webDriver = new EdgeDriver();
        webDriver.manage().window().maximize();
    }

    @AfterAll
    public static void delete() {
        webDriver.close();
    }

    //进入主界面
    @BeforeEach
    public void intoPage() throws InterruptedException {
        webDriver.get("http://8.130.98.211:8080/login.html");
        webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
        webDriver.findElement(By.cssSelector("#userName")).sendKeys("zhangsan");
        webDriver.findElement(By.cssSelector("#password")).sendKeys("zhangsan");
        webDriver.findElement(By.cssSelector("#submit")).click();
        //等待页面跳转
        sleep(200);
        webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
    }

    //测试收发消息
    @ParameterizedTest
    @CsvSource({"在干嘛?"})
    public void setMessageTest(String message) throws InterruptedException, IOException {
        webDriver.findElement(By.cssSelector("#session-list > li:nth-child(2)")).click();
        sleep(1000);
        webDriver.findElement(By.cssSelector("body > div.client-container > div > div.right > textarea")).sendKeys(message);
        webDriver.findElement(By.cssSelector("body > div.client-container > div > div.right > div.ctrl > button")).click();
        //截图保存结果
        File screenshotAs = ((TakesScreenshot) webDriver).getScreenshotAs(OutputType.FILE);
        FileUtils.copyFile(screenshotAs, new File("D:\\发送方.png"));
        //登录李四的账号查看消息是否收到
        webDriver.get("http://8.130.98.211:8080/login.html");
        webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
        webDriver.findElement(By.cssSelector("#userName")).sendKeys("lisi");
        webDriver.findElement(By.cssSelector("#password")).sendKeys("lisi");
        webDriver.findElement(By.cssSelector("#submit")).click();
        //等待页面跳转
        sleep(1000);
        webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
        webDriver.findElement(By.cssSelector("#session-list > li:nth-child(1)")).click();
        sleep(1000);
        //截图保存结果
        File screenshotAs1 = ((TakesScreenshot) webDriver).getScreenshotAs(OutputType.FILE);
        FileUtils.copyFile(screenshotAs1, new File("D:\\接收方.png"));
    }
}

测试数据:zhangsan给lisi发信息:在干嘛?

预期结果:zhangsan消息成功发出,lisi顺利收到消息,且双发的消息提示框中都显示该条消息。

实际测试:与预期结果相符。


用户搜索

UI测试

测试环境:Win11;IntelliJ IDEA 2023.2;Microsoft Edge版本 125.0.2535.51 (正式版本) (64 位)

测试方法:人工测试

测试步骤:

  1. 打开Edge浏览器输入网址http://8.130.98.211:8080/login.html
  2. 在登陆页面输入账号:zhangsan,密码:zhangsan进行登录
  3. 在搜索框中输入‘l’点击搜索

预期结果:

实际结果:与预期结果不符,右侧添加好友按钮过小

BUG描述 

BUG出现的环境:Win11;IntelliJ IDEA 2023.2;Microsoft Edge版本 125.0.2535.51 (正式版本) (64 位)

BUG出现的操作步骤:

  1. 打开Edge浏览器输入网址http://8.130.98.211:8080/login.html
  2. 在登陆页面输入账号:zhangsan,密码:zhangsan进行登录
  3. 在搜索框中输入‘l’点击搜索

预期结果:界面右侧会展示搜索到的用户,如果不是好友关系会显示添加好友按钮

实际结果:添加好友按钮较小,不美观

功能测试

测试环境:Win11;IntelliJ IDEA 2023.2;Microsoft Edge版本 125.0.2535.51 (正式版本) (64 位)

测试方法:自动化测试

测试脚本:

public class MainPage {
    private static WebDriver webDriver;

    @BeforeAll
    public static void init() {……}

    @AfterAll
    public static void delete() {
        webDriver.close();
    }

    //进入主界面
    @BeforeEach
    public void intoPage() throws InterruptedException {……}

    //测试用户搜索
    @ParameterizedTest
    @CsvSource({"lyq"})
    public void sourceTest(String name) throws InterruptedException, IOException {
        webDriver.findElement(By.cssSelector("#search-input")).sendKeys(name);
        webDriver.findElement(By.cssSelector("body > div.client-container > div > div.left > div.search > button")).click();
        sleep(1500);
        //截图
        File screenshotAs = ((TakesScreenshot) webDriver).getScreenshotAs(OutputType.FILE);
        FileUtils.copyFile(screenshotAs, new File("D:\\搜索.png"));
    }
}

测试数据:lyq

预期结果:界面右侧会展示搜索到的用户,如果不是好友关系会显示添加好友按钮

实际结果:与预期结果一致


添加好友

功能测试

测试环境:Win11;IntelliJ IDEA 2023.2;Microsoft Edge版本 125.0.2535.51 (正式版本) (64 位)

测试方法:自动化测试

测试脚本:


@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
public class MainPage {
    private static WebDriver webDriver;

    @BeforeAll
    public static void init() {……}

    @AfterAll
    public static void delete() {……}

    //进入主界面
    @BeforeEach
    public void intoPage() throws InterruptedException {……}

    //测试添加好友
    @Order(1)
    @ParameterizedTest
    @CsvSource({"lyq, 你好!", "zzz, 你好!"})
    public void addFriendTest1(String name, String message) throws InterruptedException {
        webDriver.findElement(By.cssSelector("#search-input")).clear();
        webDriver.findElement(By.cssSelector("#search-input")).sendKeys(name);
        webDriver.findElement(By.cssSelector("body > div.client-container > div > div.left > div.search > button")).click();
        sleep(1500);
        webDriver.findElement(By.cssSelector("#add-user")).sendKeys(message);
        webDriver.findElement(By.cssSelector("body > div.client-container > div > div.right > div.message-show > div > button")).click();
        sleep(500);
        webDriver.switchTo().alert().accept();
    }
    @Order(2)
    @ParameterizedTest
    @CsvSource({"lyq, lyq, true", "zzz, zzz, false"})
    public void addFriendTest2(String name, String password, boolean is) throws InterruptedException, IOException {
        webDriver.get("http://8.130.98.211:8080/login.html");
        webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
        webDriver.findElement(By.cssSelector("#userName")).sendKeys(name);
        webDriver.findElement(By.cssSelector("#password")).sendKeys(password);
        webDriver.findElement(By.cssSelector("#submit")).click();
        //等待页面跳转
        sleep(200);
        webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
        if (is) {
            webDriver.findElement(By.cssSelector("body > div.client-container > div > div.right > div.message-show > div > button.true")).click();
            sleep(500);
            webDriver.switchTo().alert().accept();
            sleep(500);
            webDriver.findElement(By.cssSelector("body > div.client-container > div > div.left > div.tab > div.tab-friend")).click();
            File screenshotAs = ((TakesScreenshot) webDriver).getScreenshotAs(OutputType.FILE);
            FileUtils.copyFile(screenshotAs, new File("D:\\"+name+".png"));
        } else {
            webDriver.findElement(By.cssSelector("body > div.client-container > div > div.right > div.message-show > div > button.false")).click();
            sleep(500);
            webDriver.switchTo().alert().accept();
            sleep(500);
            webDriver.findElement(By.cssSelector("body > div.client-container > div > div.left > div.tab > div.tab-friend")).click();
            File screenshotAs = ((TakesScreenshot) webDriver).getScreenshotAs(OutputType.FILE);
            FileUtils.copyFile(screenshotAs, new File("D:\\"+name+".png"));
        }
    }
}

测试数据:用户zhangsan发起两个好友请求(lyq、你好!、true;zzz、你好、false)

预期结果:用户lyq成功收到请求并同意好友请求;用户zzz成功收到请求并拒绝好友请求

实际结果:与预期结果一致


创建群聊

UI测试

测试环境:Win11;IntelliJ IDEA 2023.2;Microsoft Edge版本 125.0.2535.51 (正式版本) (64 位)

测试方法:人工测试

测试步骤:

  1. 打开Edge浏览器输入网址http://8.130.98.211:8080/login.html
  2. 在登陆页面输入账号:zhangsan,密码:zhangsan进行登录
  3. 在搜索框下方点击右侧好友图标
  4. 点击下方建群按钮

预期结果:当点击左侧建群按钮右侧会显示好友

实际结果:与预期结果相同

功能测试

测试环境:Win11;IntelliJ IDEA 2023.2;Microsoft Edge版本 125.0.2535.51 (正式版本) (64 位)

测试方法:自动化测试

测试脚本:

@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
public class MainPage {
    private static WebDriver webDriver;

    @BeforeAll
    public static void init() {……}

    @AfterAll
    public static void delete() {……}

    //进入主界面
    @BeforeEach
    public void intoPage() throws InterruptedException {……}

    //测试建群
    @Order(1)
    @Test
    public void addGroupTest1() throws InterruptedException, IOException {
        webDriver.findElement(By.cssSelector("body > div.client-container > div > div.left > div.tab > div.tab-friend")).click();
        sleep(200);
        webDriver.findElement(By.cssSelector("#friend-list > button")).click();
        sleep(500);
        webDriver.findElement(By.cssSelector("#\\31 ")).click();
        webDriver.findElement(By.cssSelector("#\\33 ")).click();
        webDriver.findElement(By.cssSelector("#\\34 ")).click();
        webDriver.findElement(By.cssSelector("body > div.client-container > div > div.right > div.message-show > button")).click();
        sleep(500);
        File screenshotAs = ((TakesScreenshot) webDriver).getScreenshotAs(OutputType.FILE);
        FileUtils.copyFile(screenshotAs, new File("D:\\三人群.png"));
    }

    @Order(2)
    @Test
    public void addGroupTest2() throws InterruptedException, IOException {
        webDriver.findElement(By.cssSelector("body > div.client-container > div > div.left > div.tab > div.tab-friend")).click();
        sleep(200);
        webDriver.findElement(By.cssSelector("#friend-list > button")).click();
        sleep(500);
        webDriver.findElement(By.cssSelector("body > div.client-container > div > div.right > div.message-show > button")).click();
        sleep(500);
        File screenshotAs = ((TakesScreenshot) webDriver).getScreenshotAs(OutputType.FILE);
        FileUtils.copyFile(screenshotAs, new File("D:\\无人.png"));
    }
}

预期结果:如果不选择好友建群操作将会失败;否则建群成功并显示在消息提示区

实际结果:与预期结果相同,当没有选择好友时点击创建群聊系统没有反应

选择三个好友:

没有选择好友: 

 


本篇文章中自动化脚本所配置的依赖如下:

<dependencies>
    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-java</artifactId>
        <version>3.141.59</version>
    </dependency>
    <!--截图-->
    <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>2.11.0</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-api -->
    <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter-api</artifactId>
        <version>5.9.1</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-params -->
    <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter-params</artifactId>
        <version>5.9.1</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.junit.platform/junit-platform-suite -->
    <dependency>
        <groupId>org.junit.platform</groupId>
        <artifactId>junit-platform-suite</artifactId>
        <version>1.9.1</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-engine -->
    <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter-engine</artifactId>
        <version>5.9.1</version>
        <scope>test</scope>
    </dependency>
</dependencies>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1914994.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

YOLO V8-Pose 【批量图片推理】 推理详解及部署实现

前言 在实际处理过程中&#xff0c;我们使用YOLO V8进行推理时&#xff0c;通常会针对一张图片进行推理。如果需要对多张图片进行推理&#xff0c;则可以通过一个循环来实现对图片逐张进行推理。 单张图片推理时&#xff0c;需要注意图片的尺寸必须是32的倍数&#xff0c;否则…

游戏AI的创造思路-技术基础-情感计算(1)

游戏中的AI也是可以和你打情感牌的哦&#xff0c;不要以为NPC是没有感情的&#xff0c;不过&#xff0c;不要和NPC打过多的情感牌&#xff0c;你会深陷其中无法自拔的~~~~~~ 目录 1. 情感计算算法定义 2. 发展历史 3. 公式和函数 3.1. 特征提取阶段 TF-IDF&#xff08;词频…

算法学习笔记(8.1)-动态规划入门

目录 问题特性&#xff1a; 最优子结构&#xff1a; 代码示例&#xff1a;&#xff08;动态规划最优子结构&#xff09; 上述最小代价爬楼梯的运行过程&#xff1a; 代码示例&#xff1a; 无后效性&#xff1a; 解析&#xff1a; 具体过程图示如下&#xff1a; 具体的…

算法的复杂度

文章目录 一、算法的效率1、复杂度的概念2、复杂度的重要性 二、时间复杂度三、空间复杂度四、大O的渐进表示发五、计算复杂度案例1、计算Func1函数的复杂度2、计算Fun2的时间复杂度3、计算Func3的时间复杂度4、计算Func4的时间复杂度5、计算strchr的时间复杂度6、计算Func5的时…

解决Invalid or unsupported by client SCRAM mechanisms(dbeaver)

在用工具&#xff08;dbeaver&#xff09;链接Opengauss数据库的时候&#xff0c;报出标题的错误。原因为驱动不正确。 驱动下载地址&#xff1a;https://opengauss.org/zh/download/ 下载完的包 &#xff0c;解压后&#xff0c;里面应该有两个jar 包,使用postgresql.jar dbe…

MT3056 交换序列

思路&#xff1a; 与题目 MT3055 交换排列 类似 代码&#xff1a; #include <bits/stdc.h> using namespace std; const int N 1e4 10; int n, fa[N], b[N], d[N]; void init(int n) {for (int i 1; i < n; i)fa[i] i; } int find(int x) {return x fa[x] ?…

WebRTC批量发送消息API接口的特性有哪些?

WebRTC批量发送消息api接口怎么样&#xff1f;接口性能怎么用&#xff1f; WebRTC技术允许浏览器和移动应用进行实时通信。通过WebRTC&#xff0c;开发者可以构建视频、语音、数据共享等应用。AokSend将重点探讨WebRTC批量发送消息API接口的特性。 WebRTC批量发送消息API接口…

Qt/QML学习-PathView

QML学习 PathView例程视频讲解代码 main.qml import QtQuick 2.15 import QtQuick.Window 2.15Window {width: 640height: 480visible: truetitle: qsTr("Hello World")color: "black"PathView {id: pathViewanchors.fill: parentmodel: ListModel {List…

[Spring] SpringBoot基本配置与快速上手

&#x1f338;个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 &#x1f3f5;️热门专栏: &#x1f9ca; Java基本语法(97平均质量分)https://blog.csdn.net/2301_80050796/category_12615970.html?spm1001.2014.3001.5482 &#x1f355; Collection与…

AJAX-个人版2.0

AJAX&#xff08;Asynchronous Javascript And Xml&#xff09; 传统请求及缺点 传统的请求都有哪些&#xff1f; 直接在浏览器地址栏上输入URL。点击超链接提交form表单使用JS代码发送请求 window.open(url)document.location.href urlwindow.location.href url… 传统请…

面试总结-基础js

一、变量提升&#xff08;函数里面先形参赋值&#xff0c;再变量提升&#xff0c;最后执行代码&#xff09; 1、概念&#xff1a;当浏览器开辟出供代码执行的栈内存后&#xff0c;代码并没有自上而下立即执行&#xff0c;而是继续做了一些事情&#xff0c;把当前作用域所有带v…

C++基础编程100题-021 OpenJudge-1.4-01 判断数正负

更多资源请关注纽扣编程微信公众号 http://noi.openjudge.cn/ch0104/01/ 描述 给定一个整数N&#xff0c;判断其正负。 输入 一个整数N(-109 < N < 109) 输出 如果N > 0, 输出positive; 如果N 0, 输出zero; 如果N < 0, 输出negative 样例输入 1样例输出…

【Linux】命令执行的判断依据:;,,||

在某些情况下&#xff0c;很多命令我想要一次输入去执行&#xff0c;而不想要分次执行时&#xff0c;该如何是好&#xff1f; 基本上有两个选择&#xff0c; 一个是通过shell脚本脚本去执行&#xff0c;一种则是通过下面的介绍来一次入多个命令。 1.cmd&#xff1a;cmd&#…

SAP EWM display message对话框长度限制

1.问题 使用标准方法/scwm/cl_rf_dynpro_srvc=>display_message显示消息文本,由于消息文本过长而被截取,影响显示效果 2.解决 通过调试跟踪当前标准方法,发现屏幕显示长度为40,最多显示4行,且iv_msg_text把每一行显示字段用空格拼接起来,故以下代码需要把显示消息…

Unity 打包的安卓APK在模拟器运行一会卡死

Unity 安卓APK模拟器运行一会卡死 如题&#xff0c;unity在模拟器上运行安卓apk挂机一会就卡死&#xff0c;在真机上没问题。因为打包时勾选了这个帧率优化选项&#xff0c;2019.2之后的功能&#xff0c;最坑的时打包时默认勾选&#xff0c;所以使用这个版本打包时&#xff0c…

如何写好品牌宣传稿提升品牌曝光?看这篇文章就够了

在这个信息爆炸的时代&#xff0c;一句精炼而富有力量的宣传语&#xff0c;足以让品牌在万千竞争者中脱颖而出。撰写一篇成功的品牌宣传稿&#xff0c;不仅是对文字艺术的驾驭&#xff0c;也是对品牌灵魂的深刻洞察与精准传达&#xff0c;更是连接品牌与消费者情感与认知的桥梁…

和鲸101计划夏令营火热进行中!北中医助阵医学数据探索

上周&#xff0c;和鲸社区 2024 夏令营已经正式开营&#xff01; 从 2021 年开始&#xff0c;和鲸社区在每年暑假期间都会为大家提供集中化、系统化的数据科学相关的技能实践和培训&#xff0c;每年都有几千名同学借此机会积累宝贵的实战经验&#xff0c;丰富个人简历作品&…

Apache功能配置:访问控制、日志分割; 部署AWStats日志分析工具

目录 保持连接 访问控制 只允许指定ip访问 拒绝指定主机其他正常访问 用户授权 日志格式 日志分割 操作步骤 使用第三方工具cronolog分割日志 AWStats日志分析 操作步骤 访问AwStats分析系统 保持连接 Apache通过设置配置文件httpd-default.conf中相关的连接保持参…

Docker安装HomeAssistant

检查Docker服务是否正常运行&#xff0c;确保Docker正常运行。 systemctl status docker#输出---------------------- docker.service - Docker Application Container EngineLoaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)Activ…

mount卡住(失败)解决方案

mount -a卡主 第一步确保两边都打开了NFS服务&#xff01;&#xff01;&#xff01;&#xff01; 客户端执行mount -av 查看信息是拒绝服务 查看服务端&#xff1a;showmount -e 192.168.25.168 看提示信息处理&#xff0c;关闭两端的防火钱 遇到这个错误就是服务端不让客户端…