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

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://xiahunao.cn/news/3226819.html

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

相关文章

领夹麦克风哪个品牌好,哪个麦克风好,热门无线麦克风品牌推荐

​无线领夹麦克风是现代沟通的重要工具&#xff0c;它不仅提高了语音交流的清晰度&#xff0c;还展现了使用者的专业形象。随着技术发展&#xff0c;这些麦克风已经变得更加轻便、时尚&#xff0c;易于使用。在各种场合&#xff0c;如演讲、教育和网络直播中&#xff0c;当然&a…

请跳至打印机属性的“Adobe PDF设置”页面,取消选择“仅停靠系统字体;不使用文档字体”

场景&#xff1a; 当使用adobe pdf打印时&#xff0c;出现如下提示“请跳至打印机属性的“Adobe PDF设置”页面&#xff0c;取消选择“仅停靠系统字体&#xff1b;不使用文档字体””&#xff0c;该如何解决。 描述 □“仅停靠系统字体&#xff1b;不使用文档字体” 复选本框…

Git常见命令和用法

Git 文件状态 Git 文件 2 种状态: 未跟踪:新文件&#xff0c;从未被 Git 管理过已跟踪:Git 已经知道和管理的文件 常用命令 命令作用注意git -v查看 git 版本git init初始化 git 仓库初始化之后有工作区、暂存区(本地库)、版本库git add 文件标识暂存某个文件文件标识以终…

如何分析软件测试中发现的Bug!

假如你是一名软件测试工程师&#xff0c;每天面对的就是那些“刁钻”的Bug&#xff0c;它们像是隐藏在黑暗中的敌人&#xff0c;时不时跳出来给你一个“惊喜”。那么&#xff0c;如何才能有效地分析和处理这些Bug&#xff0c;让你的测试工作变得高效且有趣呢&#xff1f;今天我…

Python的语言特性

1&#xff0c;python是动态语言 在编译期间就确定变量类型的语言是静态语言 在运行期间才知道变量类型的是动态语言 2&#xff0c;python是强类型语言 不同类型的变量是否允许隐式转换

院内导航:如何用科技破解就医找路难题

自2019年开始“院内导航”被纳入医院智慧服务评估体系以来&#xff0c;到2023年改善就医服务升级的部署&#xff0c;每一步都见证了我国医疗卫生体系向智能化、人性化迈进的坚实步伐。 面对庞大复杂的医院环境与日益增长的就诊需求&#xff0c;如何让患者在茫茫人海中迅速找到就…

Tita的OKR:公司和CEO的OKR案例

为什么为您的组织选择OKR OKR或目标和关键结果是一种协作性的目标设定工具&#xff0c;被团队和组织用来设定具有挑战性的、雄心勃勃的目标和可衡量的结果&#xff0c;OKR是你跟踪进展、创造一致、鼓励参与可衡量的目标的方式。 OKR可以成为创造一个员工能够有目的的工作环境的…

Nifi内置处理器Processor的开发

Nifi-Processor自定义开发的流程 之前说过&#xff0c;大部分的数据处理&#xff0c;我们可以基于ExcuseGroovyScript处理器&#xff0c;编写Groovy脚本去完成&#xff08;或者Jpython&#xff0c;Js脚本等对应的组件&#xff09;&#xff0c;只能说这是基于Nifi平台的使用层面…

迅为3A5000LoongArch架构核心主板支持国产麒麟、统信、以及实时系统翼辉SylixOS

性能强 采用全国产龙芯3A5000处理器&#xff0c;基于龙芯自主指令系统 (LoongArch)的LA464微结构&#xff0c;并进一步提升频率&#xff0c;降低功耗&#xff0c;优化性能。 桥片 采用龙芯 7A2000&#xff0c;支持PCIE 3.0、USB 3.0和 SATA 3.0.显示接口2 路、HDMI 和1路 VGA&a…

MATLAB数据统计描述和分析

描述性统计就是搜集、整理、加工和分析统计数据&#xff0c; 使之系统化、条理化&#xff0c;以显示出数据资料的趋势、特征和数量关系。它是统计推断的基础&#xff0c;实用性较强&#xff0c;在数学建模的数据描述部分经常使用。 目录 1.频数表和直方图 2 .统计量 3.统计…

基坑安全:自动化监测系统的革新力量

在日新月异的基坑工程领域&#xff0c;基坑安全自动化监测系统犹如一位守护者&#xff0c;以其独特的优势&#xff0c;为工程的安全与质量保驾护航。该系统集先进的测量仪器、计算机技术与现代传感技术于一体&#xff0c;对基坑的围护结构及周边环境进行全方位、高精度的实时监…

00:HAL库的认识

一&#xff1a;HAL库 开发现状&#xff1a; 1&#xff1a;下载 网站&#xff1a; https://www.st.com/zh/embedded-software/stm32cube-mcu-mpu-packages.html 去选择我们的系列 我们使用的是STM32F103C8t6的这个 继续一直向下拉点击这个&#xff1b;之后傻瓜步骤直接可以…

桌面悬浮备忘录哪个好?能在桌面悬浮使用的备忘app

备忘录是我们日常工作和生活中的常用工具&#xff0c;它帮助我们记录重要信息&#xff0c;提醒我们完成各项任务。而将备忘录悬浮在桌面上使用&#xff0c;无疑能进一步提高我们的工作效率。想象一下&#xff0c;在处理复杂的工作任务时&#xff0c;你能够随时在桌面上查看提醒…

30. 梯度下降法及其应用

1. 引言 在深度学习中&#xff0c;损失函数的求解是一个关键步骤。损失函数通常没有解析解&#xff0c;因此需要通过最优化算法来逼近求解。其中&#xff0c;梯度下降法是最常用的优化算法之一。本文将详细介绍梯度下降法的基本概念、理论基础、及其在深度学习中的应用。 2. …

SpringMVC(2)——controller方法参数与html表单对应(请求参数的绑定)

controller方法参数与html表单对应 规则 1. 绑定机制 表单提交的数据都是kv格式的 usernamehaha&password123SpringMVC的参数绑定过程是把表单提交的请求参数&#xff0c;作为控制器中方法的参数进行绑定的&#xff0c;要求&#xff1a;提交表单的name和参数的名称是相同…

Apache Hadoop之历史服务器日志聚集配置

上篇介绍了Apache Hadoop的分布式集群环境搭建&#xff0c;并测试了MapReduce分布式计算案例。但集群历史做了哪些任务&#xff0c;任务执行日志等信息还需要配置历史服务器和日志聚集才能更好的查看。 配置历史服务器 在Yarn中运行的任务产生的日志数据不能查看&#xff0c;…

浅说平面dp(下)

上文链接 最大加权矩形 我们言归正传&#xff0c;首先我们可以想到&#xff0c;这道题其实是要求一个和&#xff0c;那么我们不难想到可以用前缀和来解决&#xff0c;但是这样的时间复杂度过于高了&#xff0c;那么我们怎么办呢&#xff1f;其实我们这里可以用一点最大字段和…

SPI通信协议和W25Q64

前言&#xff1a; STM32中的通信接口&#xff1a; UART 单总线 IIC SPI CAN 1. SPI FLASH W25Q64的关系 SPI:一种通信接口&#xff0c;可以用于和搭载SPI接口的设备通信 FLASH:是一种掉电不丢失的存储 -- 手机8256G的256 单片机 64K512K的512 芯片内部flash&…

c语言数据结构--顺序栈

实验内容&#xff1a; 用顺序存储结构&#xff0c;实现教材定义的栈的基本操作&#xff0c;提供数制转换功能&#xff0c;将输入的十进制整数转换成二进制。 实验步骤&#xff1a; &#xff08;1&#xff09;按照实验要求编写代码&#xff0c;构造顺序栈。 &#xff08;2&am…

【密码学】公钥密码的基本概念

在先前我写的密码学体制文章中谈到&#xff0c;现代密码学分为两大体制&#xff0c;介绍了一些有关对称密码体制诸如流密码和分组密码的内容。本文的主要内容则切换到公钥密码体制&#xff08;又称非对称密码体制&#xff09;&#xff0c;简述了公钥密码体制的基本思想和应用方…