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

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;@BeforeAllpublic static void init() {System.setProperty("webdriver.edge.driver","C:\\Program Files (x86)\\Microsoft\\Edge\\Application\\msedgedriver.exe");webDriver = new EdgeDriver();webDriver.manage().window().maximize();}@AfterAllpublic static void delete() {webDriver.close();}//进入主界面@BeforeEachpublic 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();}@Testpublic 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;@BeforeAllpublic static void init() {System.setProperty("webdriver.edge.driver","C:\\Program Files (x86)\\Microsoft\\Edge\\Application\\msedgedriver.exe");webDriver = new EdgeDriver();webDriver.manage().window().maximize();}@AfterAllpublic static void delete() {webDriver.close();}//进入主界面@BeforeEachpublic 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;@BeforeAllpublic static void init() {System.setProperty("webdriver.edge.driver","C:\\Program Files (x86)\\Microsoft\\Edge\\Application\\msedgedriver.exe");webDriver = new EdgeDriver();webDriver.manage().window().maximize();}@AfterAllpublic static void delete() {webDriver.close();}//进入主界面@BeforeEachpublic 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"})//测试修改用户密码//预期结果:truepublic 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);//获取页面urlSystem.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;@BeforeAllpublic static void init() {System.setProperty("webdriver.edge.driver","C:\\Program Files (x86)\\Microsoft\\Edge\\Application\\msedgedriver.exe");webDriver = new EdgeDriver();webDriver.manage().window().maximize();}@AfterAllpublic static void delete() {webDriver.close();}//进入主界面@BeforeEachpublic 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;@BeforeAllpublic static void init() {System.setProperty("webdriver.edge.driver","C:\\Program Files (x86)\\Microsoft\\Edge\\Application\\msedgedriver.exe");webDriver = new EdgeDriver();webDriver.manage().window().maximize();}@AfterAllpublic static void delete() {webDriver.close();}//进入主界面@BeforeEachpublic 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;@BeforeAllpublic static void init() {……}@AfterAllpublic static void delete() {webDriver.close();}//进入主界面@BeforeEachpublic 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;@BeforeAllpublic static void init() {……}@AfterAllpublic static void delete() {……}//进入主界面@BeforeEachpublic 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;@BeforeAllpublic static void init() {……}@AfterAllpublic static void delete() {……}//进入主界面@BeforeEachpublic void intoPage() throws InterruptedException {……}//测试建群@Order(1)@Testpublic 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)@Testpublic 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.mzph.cn/bicheng/44309.shtml

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

相关文章

TypeScript的类型谓词与控制流分析

目录 ts封装类型判断的问题类型谓词TypeScript的“控制流分析” ts封装类型判断的问题 在union.d.ts 中 全局声明一个 DataType declare type DataType | "RegExp"| "Object"| "Array"| "Function"| "String"| "Bool…

Shell:一行命令如何实现采集某一进程一段时间内CPU使用率

首先&#xff0c;能想到使用top查看进程的CPU使用率&#xff0c;以java进程编号251346为例进行介绍 top -d 1 -p 251346 -d 表示每秒采集一次 CPU使用率是显示出来了&#xff0c;但这样只能在屏幕上原地刷新&#xff0c;我们希望能把数据每时每刻的数据都保存下来&#xff0c;…

vscode连接unbuntu失败,显示Downloading vs code server...

问题&#xff1a; vscode连接unbuntu失败&#xff0c;右下角显示&#xff1a;Downloading vs code server... 且当再次输入密码时&#xff0c;仍然出现&#xff1a;Downloading vs code server... 重复多次&#xff0c;无法解决。 解决办法&#xff1a; 这是因为服务器端的…

华为OD机试(C卷,200分)- 字符串拼接、田忌赛马

(C卷,200分)- 字符串拼接 题目描述 给定 M&#xff08;0 < M ≤ 30&#xff09;个字符&#xff08;a-z&#xff09;&#xff0c;从中取出任意字符&#xff08;每个字符只能用一次&#xff09;拼接成长度为 N&#xff08;0 < N ≤ 5&#xff09;的字符串&#xff0c; 要求…

凌风云 - 十大网盘资源搜索 Ver 6.0 版正式上线

《凌风云》作为网盘资源专业搜索领域的佼佼者&#xff0c;汇聚了国内十大网盘的丰富资源&#xff0c;凌风云搜索弥补其他搜索引擎可能无法搜索到相关资源的缺陷&#xff0c;作为专业的搜索引擎服务网络平台&#xff0c;您只需输入关键词&#xff0c;通过智能算法精准匹配&#…

C语言2D游戏

目录 开头程序程序的流程图这个游戏的效果结尾 开头 大家好&#xff0c;我叫这是我58。在今天&#xff0c;我用C语言编译出了我的第一个2D游戏。如果你想就看这个2D游戏或者与之相关的内容话&#xff0c;就看下下面的内容吧。 程序 #define _CRT_SECURE_NO_WARNINGS 1 #defi…

第六次作业

一、视图作业 1、创建视图v_emp_dept_id_1&#xff0c;查询销售部门的员工姓名和家庭住址 2、创建视图v_emp_dept&#xff0c;查询销售部门员工姓名和家庭住址及部门名称。 3、创建视图v_dept_emp_count(dept_name,emp_count,avg_salay)&#xff0c;统计每个部门人数并计算平均…

Pandas基础03:数据排序与增删

上一节我们介绍了通过按行索引和按列索引找出相关数据的方法。本章节将进一步介绍如何筛选数据&#xff0c;并对数据进行排序、增删的方法。 示例表格和上一节相同。 1.数据筛选 Python中可以通过区域筛选&#xff0c;即获取某几行某几列的方法得到数据。例如&#xff0c;我要…

数据分表和分库原理

数据分表和分库是数据库设计中常见的扩展和优化手段&#xff0c;用于解决大数据量下的性能瓶颈问题。以下是数据分表和分库的原理&#xff1a; 一、数据分表&#xff08;Sharding&#xff09; 原理&#xff1a; 数据分表是将一个大的数据库表按照一定的规则拆分成多个较小的…

pwn误区的buffer

注意栈顶是闭合的&#xff0c;栈底才是打开的 栈图&#xff1a; |--------------------------| | | | | buffer溢出的时候&#xff0c;是从栈底到栈顶方向

vue3的常用 Composition API有哪些?

Vue.js 3.0 引入了 Composition API&#xff0c;作为一种新的组织组件逻辑的方式&#xff0c;相比于传统的 Options API&#xff0c;Composition API 提供了更灵活、更可复用的代码组织方式。 以下是 Vue 3.0 中常用的 Composition API&#xff1a;setup() 函数&#xff1a; s…

Llama-factory源码详细解读

微调 采用逐行调试的方法&#xff0c;细节来看SFT代码 #mermaid-svg-ygujiVh1wygmSv74 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-ygujiVh1wygmSv74 .error-icon{fill:#552222;}#mermaid-svg-ygujiVh1wygmSv74…

实施团队人员配备计划

实施团队人员 &#xff08;一&#xff09;项目经理职责 全面负责项目的规划、执行和监控&#xff0c;确保项目按时、按质量要求完成。与客户沟通&#xff0c;明确项目需求和目标&#xff0c;协调各方资源&#xff0c;解决项目中的重大问题。制定项目计划和预算&#xff0c;监…

LINUX命令行curl指令与python内置urllib模块

urllib是python御用的易用的轻便模块&#xff0c;curl是Linux功能强大的命令行工具&#xff0c;都是参与Web的利器。 (笔记模板由python脚本于2024年07月10日 18:41:12创建&#xff0c;本篇笔记适合喜欢Python和Linux的coder翻阅) 【学习的细节是欢悦的历程】 Python 官网&…

【嵌入式DIY实例-ESP8266篇】-LCD1602显示DS1631传感器数据

LCD1602显示DS1631传感器数据 文章目录 LCD1602显示DS1631传感器数据1、DS1631介绍2、硬件准备与接线3、代码实现本文介绍了如何将 ESP8266 NodeMCU 板 (ESP-12E) 与 DS1631 数字温度传感器连接,其中温度值(摄氏度和华氏度)打印在 1602 LCD 屏幕上。 本项目中使用的 1602 LC…

最佳 iPhone 解锁软件工具,可免费下载用于电脑操作的

业内专业人士表示&#xff0c;如果您拥有 iPhone&#xff0c;您一定知道忘记锁屏密码会多么令人沮丧。由于 Apple 的安全功能强大&#xff0c;几乎不可能在没有密码或 Apple ID 的情况下访问锁定的 iPhone。 “当我忘记密码时&#xff0c;如何在没有密码的情况下解锁iPhone&am…

【Cesium开发实战】地下模型功能的实现,可设置透明度及显示隐藏

Cesium有很多很强大的功能&#xff0c;可以在地球上实现很多炫酷的3D效果。今天给大家分享一个可自定义高度的电子围栏。 1.话不多说&#xff0c;先展示 地下模型 2.设计思路 按项目需求&#xff0c;需要对加载在地下部分的模型控制显示隐藏&#xff0c;以及透明度的设置。增…

仕考网:公务员考试的录取流程

公务员考试的录取流程分很多个阶段&#xff0c;以下是流程介绍&#xff1a; 1. 报名阶段&#xff1a;考生需根据公布的招聘信息和岗位要求进行报名。 2. 笔试阶段&#xff1a;公务员笔试&#xff0c;包括申论和行测两部分。 3. 成绩公布与面试资格&#xff1a;笔试合格者将获…

编译原理:词法分析器 Flex工具的使用(简单易懂)

目录 词法分析器 & Flex工具的使用背景&#xff1a;编译器和解释器概念区别编译器的实现 词法分析器(Lexer)工具(Flex)安装Flex目标程序&#xff1a;verilog代码Flex程序格式DeclarationsDefinitionsRulesUser subroutines如何通过flex读入文件&#xff1f; 完整程序编译&a…

最小生成树(算法篇)

算法之最小生成树 最小生成树 概念&#xff1a; 最小生成树是一颗连接图G所有顶点的边构成的一颗权最小的树&#xff0c;最小生成树一般是在无向图中寻找。最小生成树共有N-1条边(N为顶点数)。 算法&#xff1a; Prim算法 概念&#xff1a; Prim(普里姆)算法是生成最小生…