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

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,一经查实,立即删除!

相关文章

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

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

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

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

第六次作业

一、视图作业 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;我要…

pwn误区的buffer

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

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

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

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

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

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

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

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

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

Unity入门之重要组件和API(3) : Transform

前言 Transform类主要处理游戏对象(GameObject)的位移、旋转、缩放、父子关系和坐标转换。 1.位置和位移 1.1必备知识点&#xff1a;Vector3 Vector3 主要用来表示三维坐标系中的一个点或者一个向量。 【声明】 Vector3 v1 new Vector3(); Vector3 v2 new Vector3(10, 10…

ScrapySharp框架:小红书视频数据采集的API集成与应用

引言 随着大数据时代的到来&#xff0c;数据采集成为了互联网企业获取信息的重要手段。小红书作为一个集社交和电商于一体的平台&#xff0c;其丰富的用户生成内容&#xff08;UGC&#xff09;为数据采集提供了丰富的资源。本文将介绍如何使用ScrapySharp框架进行小红书视频数…

便携式气象站的应用领域

在气象观测的广阔天地中&#xff0c;便携式气象站不仅集便携性、多功能性和高精度于一身&#xff0c;还以其快速部署、实时监测和数据传输等特点&#xff0c;在科研教学、环境监测、农业生产和灾害预警等多个领域发挥着重要作用。 便携式气象站的基本概念 便携式气象站&#…

高智能土壤养分检测仪:农业生产的科技新助力

在科技日新月异的今天&#xff0c;农业领域也迎来了革命性的变革。其中&#xff0c;高智能土壤养分检测仪作为现代农业的科技新助力&#xff0c;正逐渐改变着传统的农业生产方式&#xff0c;为农民带来了前所未有的便利与效益。 高智能土壤养分检测仪&#xff0c;是一款集高科技…

职场必备神器!图片提取文字!OCR文字识别助手:让灵感自由流动!

Hey&#xff0c;创意达人们&#xff01;是否曾在网页上看到令人心动的设计灵感&#xff0c;却因无法复制粘贴而苦恼&#xff1f;别担心&#xff0c;今天我要给你们安利一个办公小秘密——OCR文字识别助手&#xff0c;让你的灵感自由流动&#xff0c;创意无限&#xff01; 功能…

深入了解代理IP常见协议:区别与选择

代理服务器在网络使用中扮演着重要的角色&#xff0c;是您设备和互联网之间的中间层。它不仅可以增强网络访问的安全性和隐私保护&#xff0c;还可以提供许多灵活的应用。使用代理时&#xff0c;不同的协议类型对数据交换具有不同的规则和特征。常见的代理协议包括HTTP代理、HT…

轻松掌握图片压缩技巧,释放存储空间!

前言 在这个充满视觉冲击的时代&#xff0c;我们每天都在创造和分享图片。但你是否发现&#xff0c;手机和电脑的存储空间越来越不够用了&#xff1f;图片文件过大&#xff0c;不仅占用空间&#xff0c;还影响传输速度和网页加载。今天&#xff0c;就让我来教你几招&#xff0…

政安晨【零基础玩转各类开源AI项目】基于Ubuntu系统部署MuseV (踩完了所有的坑):基于视觉条件并行去噪的无限长度和高保真虚拟人视频生成

目录 下载项目 创建虚拟环境 启动虚拟环境&执行项目依赖 基于DOCKER的尝试 A. 安装引擎 B. 下载桌面安装包 C. 安装桌面包 用Docker运行MuseV 1. 拉取镜像 ​编辑 2. 运行Docker镜像 政安晨的个人主页&#xff1a;政安晨 欢迎 &#x1f44d;点赞✍评论⭐收藏 收…

Android APT实战

Android开发中,注解平时我们用的比较多,也许我们会比较好奇,注解的背后是如何工作的,这篇文章帮大家一步步创建一个简单的注解处理器。 简介 APT(Annotation Processing Tool)即注解处理器,在编译的时候可以处理注解然后搞一些事情,也可以在编译时生成一些文件之类的。…

Android Studio音频视频播放器课程设计

这个项目适合刚刚学习Android studio的初学者&#xff0c;实现音视频的基本播放功能&#xff0c;各项功能的页面都做的比较简单&#xff0c;特别适用于初学者&#xff0c;其特点在于本项目抛开了各种花里胡哨的制作&#xff0c;以最接近初学者的样式画面呈现&#xff0c;完全不…

20240711 每日AI必读资讯

&#x1f3a8;Runway Gen-3 Alpha 详细使用教程以及提示词指南大全 - 7月9日&#xff0c;著名生成式AI平台Runway在官网公布了&#xff0c;最新发布的文生视频模型Gen-3 Alpha的文本提示教程。 - 从技术层面来说&#xff0c;输入的文本提示会被转换成“向量”&#xff0c;这些…