论坛社区基础版【项目测试报告】

文章目录

  • 一、项目背景
  • 二、项目功能
    • 用户注册/登录
    • 帖子列表页
    • 发布帖子
    • 个人中心
  • 三、测试工具和环境
  • 四、测试计划
    • 非功能测试用例
    • 功能测试用例
    • 部分人工手动测试截图
    • web自动化测试
      • 测试用例
      • 代码框架
    • 配置内容代码文件(Utils.py)
    • 注册页面代码文件(RegistrationPage.py)
    • 登录页面代码文件(LoginPage.py)
    • 发布帖子页面代码文件(PublishingPage.py)
    • 个人中心页面代码文件(PersonalCenterPage)
    • 测试论坛系统代码文件(RunTest.py)
  • 五、总结
    • 测试背景
    • 测试用例执行情况
      • 用户注册
      • 用户登录
      • 个人中心页面
      • 发布帖子页面
    • 不足和改进
      • 不足
      • 改进
    • 小结


一、项目背景

本系统延续前后端分离架构,使用MySQL关系型数据库存储结构化数据,部署于云服务器环境。
前端页面扩展为六大核心模块:用户注册/登录页、主版块索引页、帖子详情页(含评论互动)、内容发布页、个人中心页及消息通知页。
该论坛系统适用于中小型兴趣社区、企业知识共享平台等场景,通过模块化设计既可快速部署基础论坛,也可通过功能扩展演进为综合性社区平台。

二、项目功能

该论坛系统主要有以下几个功能:

  • 用户注册/登录;
  • 帖子列表展示;
  • 发布帖子
  • 个人中心。

用户注册/登录

  • 采用用户自主注册机制;
  • 登录成功跳转至版块列表页,失败时弹出错误提示窗口;
  • 登录态异常自动退回至登录页。

帖子列表页

  • 按发帖时间倒序排列主题帖;
  • 展示帖子标题、作者、发布时间、浏览数、点赞量和评论数;
  • 点击帖子跳转至详情页

发布帖子

  • 支持纯文本发帖;
  • 有版块选择;
  • 提交成功刷新当前页面数据。

个人中心

  • 可修改头像、昵称、邮箱地址和密码等;
  • 点击提交修改按钮返回登录页面。

三、测试工具和环境

操作系统:Windows 11 家庭中文版

处理器: 11th Gen Intel(R) Core(TM) i5-1155G7 @ 2.50GHz 2.50 GHz

浏览器:Chrome 版本 133.0.6943.142(正式版本) (64 位)

测试工具:Python,Selenium

自动化脚本运行环境: PyCharm 2024.2.1

四、测试计划

非功能测试用例

功能测试用例

部分人工手动测试截图

情景一:异常注册

未勾选 使用条款和隐私政策

密码和确认密码不一致

情景二:异常登录

用户名或密码错误

情景三:登录成功后的跳转页面

情景四:登录成功后的发布帖子页面

情景五:登录成功后的个人中心页面

web自动化测试

测试用例

见上面的功能测试用例

代码框架

配置内容代码文件(Utils.py)

# 导入所需的模块
import datetime  # 用于处理日期和时间
import os  # 用于文件和目录操作
import sys  # 用于获取调用栈信息# 导入Selenium相关模块
from selenium import webdriver  # Selenium 核心模块
from selenium.webdriver.chrome.service import Service  # Chrome 浏览器服务
from webdriver_manager.chrome import ChromeDriverManager  # 自动管理 ChromeDriver# 创建浏览器驱动类
class Driver:driver = ""  # 类属性,用于保存浏览器驱动实例def __init__(self):"""初始化浏览器驱动配置"""# 创建 Chrome 浏览器选项对象(可用于添加扩展、无头模式等配置)options = webdriver.ChromeOptions()# 指定 ChromeDriver 的路径driver_path = "D:/Downloads/chromedriver-win64/chromedriver-win64/chromedriver.exe"# 创建 Chrome 浏览器驱动实例self.driver = webdriver.Chrome(executable_path=driver_path,  # 指定驱动路径options=options  # 传入浏览器选项)# 设置隐式等待(作用于整个浏览器生命周期,查找元素时的默认等待时间)self.driver.implicitly_wait(2)  # 单位:秒def getScreeShot(self):"""屏幕截图方法"""# 生成日期格式的目录名(示例:2023-08-01)dirname = datetime.datetime.now().strftime("%Y-%m-%d")# 拼接截图保存路径(上级目录的 images 文件夹下)screenshot_dir = "../images/" + dirname# 如果目录不存在则创建if not os.path.exists(screenshot_dir):os.mkdir(screenshot_dir)# 生成文件名格式:# 调用当前方法的上层方法名 + 时间戳 + 后缀(示例:test_login_2023-08-01-143045.png)filename = (sys._getframe().f_back.f_code.co_name  # 获取调用该方法的函数名+ datetime.datetime.now().strftime("%Y-%m-%d-%H%M%S")+ ".png")# 保存截图到指定路径self.driver.save_screenshot(os.path.join(screenshot_dir, filename))# 创建全局浏览器驱动实例(可被其他模块导入使用)
ForumDriver = Driver()

注册页面代码文件(RegistrationPage.py)

# 测试论坛注册界面
# 本脚本使用 Selenium 库实现对论坛注册界面的自动化测试,包括成功注册和失败注册的测试用例。from selenium.webdriver.common.by import By  # 导入 Selenium 的 By 模块,用于指定元素的查找方式
from common.Utils import ForumDriver  # 导入自定义的 ForumDriver 类,用于获取 WebDriver 实例class ForumRegistration:url = ""  # 用于存储论坛注册页面的 URLdriver = ""  # 用于存储 WebDriver 实例def __init__(self):# 初始化方法,设置注册页面的 URL 并启动 WebDriverself.url = "http://127.0.0.1:9580/sign-up.html"  # 设置论坛注册页面的 URLself.driver = ForumDriver.driver  # 获取 WebDriver 实例self.driver.get(self.url)  # 打开注册页面# 成功注册的测试用例def RegistrationSucTest(self):"""测试正常注册流程:1. 清空所有输入框。2. 输入有效的用户名、昵称、密码和确认密码。3. 勾选用户协议。4. 点击注册按钮。5. 验证是否成功跳转到登录页面。6. 截图保存测试结果。"""# 若连续多次的 send_keys 则会出现关键词拼接,而不是替换。若要替换需要先 clearself.driver.find_element(By.CSS_SELECTOR, "#username").clear()  # 清空用户名输入框self.driver.find_element(By.CSS_SELECTOR, "#nickname").clear()  # 清空昵称输入框self.driver.find_element(By.CSS_SELECTOR, "#password").clear()  # 清空密码输入框self.driver.find_element(By.CSS_SELECTOR, "#passwordRepeat").clear()  # 清空确认密码输入框self.driver.find_element(By.CSS_SELECTOR, "#username").send_keys("z11")  # 输入有效的用户名self.driver.find_element(By.CSS_SELECTOR, "#nickname").send_keys("123")  # 输入有效的昵称self.driver.find_element(By.CSS_SELECTOR, "#password").send_keys("123")  # 输入有效的密码self.driver.find_element(By.CSS_SELECTOR, "#passwordRepeat").send_keys("123")  # 输入有效的确认密码self.driver.find_element(By.CSS_SELECTOR, "#policy").click()  # 勾选用户协议self.driver.find_element(By.CSS_SELECTOR, "#submit").click()  # 点击注册按钮# 查找注册成功跳转后的页面的元素:登录页面的 用户登录元素self.driver.find_element(By.CSS_SELECTOR, "body > div > div > div > div:nth-child(1) > div > div.card.card-md > div > h2")  # 验证是否成功跳转到登录页面# 添加屏幕截图ForumDriver.getScreeShot()  # 调用截图方法,保存测试结果# 失败注册的测试用例def RegistrationFailTest(self):"""测试异常注册流程:1. 清空所有输入框。2. 输入用户名、密码和确认密码(确认密码与密码不一致)。3. 勾选用户协议。4. 点击注册按钮。5. 验证是否出现注册失败提示。6. 截图保存测试结果。"""# 若连续多次的 send_keys 则会出现关键词拼接,而不是替换。若要替换需要先clearself.driver.find_element(By.CSS_SELECTOR, "#username").clear()  # 清空用户名输入框self.driver.find_element(By.CSS_SELECTOR, "#nickname").clear()  # 清空昵称输入框self.driver.find_element(By.CSS_SELECTOR, "#password").clear()  # 清空密码输入框self.driver.find_element(By.CSS_SELECTOR, "#passwordRepeat").clear()  # 清空确认密码输入框self.driver.find_element(By.CSS_SELECTOR, "#username").send_keys("z")  # 输入用户名self.driver.find_element(By.CSS_SELECTOR, "#nickname").send_keys("123")  # 输入昵称self.driver.find_element(By.CSS_SELECTOR, "#password").send_keys("12")  # 输入密码# 确认密码和密码输入不一致self.driver.find_element(By.CSS_SELECTOR, "#passwordRepeat").send_keys("123")  # 输入与密码不一致的确认密码self.driver.find_element(By.CSS_SELECTOR, "#policy").click()  # 勾选用户协议self.driver.find_element(By.CSS_SELECTOR, "#submit").click()  # 点击注册按钮# 查找注册失败页面的元素:注册页面的 提示检查确认密码self.driver.find_element(By.CSS_SELECTOR, "#signUpForm > div > div:nth-child(5) > div > div")  # 验证是否出现注册失败提示# 添加屏幕截图ForumDriver.getScreeShot()  # 调用截图方法,保存测试结果

登录页面代码文件(LoginPage.py)

# 测试论坛登录界面
# 本脚本使用 Selenium 库实现对论坛登录界面的自动化测试,包括成功登录和异常登录的测试用例。from selenium.webdriver.common.by import By  # 导入 Selenium 的 By 模块,用于指定元素的查找方式from common.Utils import ForumDriver  # 导入自定义的 ForumDriver 类,用于获取 WebDriver 实例class ForumLogin:url = ""  # 用于存储论坛登录页面的 URLdriver = ""  # 用于存储 WebDriver 实例def __init__(self):# 初始化方法,设置登录页面的 URL 并启动 WebDriverself.url = "http://127.0.0.1:9580/sign-in.html"  # 设置论坛登录页面的 URLself.driver = ForumDriver.driver  # 获取 WebDriver 实例self.driver.get(self.url)  # 打开登录页面# 成功登陆的测试用例def LoginSucTest(self):"""测试正常登录流程:1. 清空用户名和密码输入框。2. 输入正确的用户名和密码。3. 点击登录按钮。4. 验证是否成功登录到首页。5. 截图保存测试结果。"""# 若连续多次的 send_keys 则会出现关键词拼接,而不是替换。若要替换需要先 clearself.driver.find_element(By.CSS_SELECTOR, "#username").clear()  # 清空用户名输入框self.driver.find_element(By.CSS_SELECTOR, "#password").clear()  # 清空密码输入框self.driver.find_element(By.CSS_SELECTOR, "#username").send_keys("zhaoliu")  # 输入正确的用户名self.driver.find_element(By.CSS_SELECTOR, "#password").send_keys("123")  # 输入正确的密码self.driver.find_element(By.CSS_SELECTOR, "#submit").click()  # 点击登录按钮# 查找登录成功页面的元素:首页标题self.driver.find_element(By.CSS_SELECTOR, "#article_list_board_title")  # 验证是否成功登录到首页# 添加屏幕截图ForumDriver.getScreeShot()  # 调用截图方法,保存测试结果# 异常登陆的测试用例def LoginFailTest(self):"""测试异常登录流程:1. 清空用户名和密码输入框。2. 输入未注册的用户名和密码。3. 点击登录按钮。4. 验证是否出现登录失败提示。5. 截图保存测试结果。"""# 若连续多次的 send_keys 则会出现关键词拼接,而不是替换。若要替换需要先 clearself.driver.find_element(By.CSS_SELECTOR, "#username").clear()  # 清空用户名输入框self.driver.find_element(By.CSS_SELECTOR, "#password").clear()  # 清空密码输入框# 未注册的用户名self.driver.find_element(By.CSS_SELECTOR, "#username").send_keys("admin")  # 输入未注册的用户名self.driver.find_element(By.CSS_SELECTOR, "#password").send_keys("123")  # 输入密码self.driver.find_element(By.CSS_SELECTOR, "#submit").click()  # 点击登录按钮# 检查是否登录失败:看是否出现 提示登录失败元素self.driver.find_element(By.CSS_SELECTOR, "body > div.jq-toast-wrap.bottom-right > div")  # 验证是否出现登录失败提示# 添加屏幕截图ForumDriver.getScreeShot()  # 调用截图方法,保存测试结果

发布帖子页面代码文件(PublishingPage.py)

from selenium.webdriver.common.by import By  # 导入 Selenium 的 By 模块,用于指定元素的查找方式
from common.Utils import ForumDriver  # 导入自定义的 ForumDriver 类,用于获取 WebDriver 实例# 测试发布帖子页
class PublishingPage:url = ""  # 用于存储论坛主页的 URLdriver = ""  # 用于存储 WebDriver 实例def __init__(self):"""初始化方法,设置论坛主页的URL并启动WebDriver。"""self.url = "http://127.0.0.1:9580/index.html"  # 设置论坛主页的 URLself.driver = ForumDriver.driver  # 获取 WebDriver 实例self.driver.get(self.url)  # 打开论坛主页# 登录状态下发布帖子页的测试def PublishingPageDetail(self):"""测试在登录状态下进入发布帖子页面的流程:1. 点击发布帖子的按钮,进入发布帖子页面。2. 验证页面中是否存在“发新帖”元素,以确认页面加载成功。3. 添加屏幕截图以保存测试结果。"""# 点击发布帖子标签进入发布帖子主页self.driver.find_element(By.CSS_SELECTOR, "#bit-forum-content > div.page-header.d-print-none > div > div > div.col-auto.ms-auto.d-print-none > div > a.btn.btn-primary.d-none.d-sm-inline-block.article_post").click()# 查看发布帖子页面中 发新帖元素是否存在self.driver.find_element(By.CSS_SELECTOR, "#bit-forum-content > div.page-header.d-print-none > div > div > div > h2")# 添加屏幕截图ForumDriver.getScreeShot()  # 调用截图方法,保存测试结果

个人中心页面代码文件(PersonalCenterPage)

from selenium.webdriver.common.by import By  # 导入 Selenium 的 By 模块,用于指定元素的查找方式
from common.Utils import ForumDriver  # 导入自定义的 ForumDriver 类,用于获取 WebDriver 实例# 测试个人中心页
class PersonalCenterPage:url = ""  # 用于存储论坛主页的 URLdriver = ""  # 用于存储 WebDriver 实例def __init__(self):"""初始化方法,设置论坛主页的URL并启动WebDriver。"""self.url = "http://127.0.0.1:9580/index.html"  # 设置论坛主页的 URLself.driver = ForumDriver.driver  # 获取 WebDriver 实例self.driver.get(self.url)  # 打开论坛主页# 登录状态下个人中心页的测试def PersonalCenterPage(self):"""测试在登录状态下进入个人中心页面的流程:1. 点击头像,进入个人主页。2. 点击设置按钮,进入个人中心。3. 验证个人中心页面中是否存在“用户中心”元素。4. 添加屏幕截图以保存测试结果。"""# 点击头像进入个人主页self.driver.find_element(By.CSS_SELECTOR, "#index_nav_avatar").click()# 点击设置按钮进入个人中心self.driver.find_element(By.CSS_SELECTOR, "#index_user_settings").click()# 检查个人中心页中 用户中心元素是否存在:self.driver.find_element(By.CSS_SELECTOR, "#bit-forum-content > div.page-header.d-print-none > div > div > div > h2")# 添加屏幕截图ForumDriver.getScreeShot()  # 调用截图方法,保存测试结果

测试论坛系统代码文件(RunTest.py)

from tests import LoginPage  # 导入登录页面的测试模块
from tests import RegistrationPage  # 导入注册页面的测试模块
from tests import PersonalCenterPage  # 导入个人中心页面的测试模块
from common.Utils import ForumDriver  # 导入公用的 WebDriver 工具类
from tests import PublishingPage  # 导入发布帖子页面的测试模块if __name__ == '__main__':"""主程序入口,用于运行所有测试用例。"""# 注册页面print("开始测试:注册页面")# 注册失败print("测试用例:注册失败")RegistrationPage.ForumRegistration().RegistrationFailTest()  # 调用注册失败的测试用例# 注册成功print("测试用例:注册成功")RegistrationPage.ForumRegistration().RegistrationSucTest()  # 调用注册成功的测试用例# 登录页面print("开始测试:登录页面")# 登录失败print("测试用例:登录失败")LoginPage.ForumLogin().LoginFailTest()  # 调用登录失败的测试用例# 登录成功print("测试用例:登录成功")LoginPage.ForumLogin().LoginSucTest()  # 调用登录成功的测试用例# 个人中心页print("开始测试:个人中心页")PersonalCenterPage.PersonalCenterPage().PersonalCenterPage()  # 调用个人中心页的测试用例# 发布帖子页print("开始测试:发布帖子页")PublishingPage.PublishingPage().PublishingPageDetail()  # 调用发布帖子页的测试用例# 指定浏览器的退出print("关闭浏览器")ForumDriver.driver.quit()  # 关闭 WebDriver 实例,退出浏览器

五、总结

测试背景

本次测试的目标是一个基础版的论坛系统,主要功能包括用户注册、登录、个人中心页面访问以及帖子发布。
测试旨在验证这些功能的正确性、稳定性和用户体验。

测试用例执行情况

用户注册

测试过程测试结果
输入有效的用户名、昵称、密码及确认密码后,成功跳转至登录页面,验证通过。注册成功
输入无效的用户名或密码(如密码不匹配),页面提示注册失败,验证通过。注册失败

用户登录

测试过程测试结果
输入正确的用户名和密码后,成功跳转至首页,验证通过。登录成功
输入错误的用户名或密码后,页面提示登录失败,验证通过。登录失败

个人中心页面

测试过程测试结果
登录状态下点击头像进入个人中心,页面加载成功,验证通过。通过

发布帖子页面

测试过程测试结果
登录状态下点击发布帖子按钮,成功进入帖子发布页面,验证通过。通过

不足和改进

不足

用户体验问题:

  • 登录失败时,提示信息不够具体,无法明确告知用户是用户名还是密码错误。

功能问题:

  • 未对用户输入进行严格校验,例如允许注册用户名为单个字符,可能导致后续功能异常。

测试覆盖不足:

  • 未测试帖子发布功能的完整流程(如输入帖子内容、提交帖子等)。

改进

优化错误提示:

  • 在注册和登录页面,提供更详细的错误提示,帮助用户快速定位问题。

增强输入校验:

  • 对用户名、密码等输入进行严格校验,确保符合系统要求。

完善功能测试:

  • 完整测试帖子发布功能,包括输入帖子标题、内容、提交等流程。

小结

本次测试基本覆盖了论坛系统的核心功能,测试结果表明系统的主要功能正常运行。
然而,仍存在一些用户体验和功能上的问题需要改进。
后续测试应重点关注功能的完整性、用户体验的优化以及系统的安全性。

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

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

相关文章

物联网IoT系列之MQTT协议基础知识

文章目录 物联网IoT系列之MQTT协议基础知识物联网IoT是什么?什么是MQTT?为什么说MQTT是适用于物联网的协议?MQTT工作原理核心组件核心机制 MQTT工作流程1. 建立连接2. 发布和订阅3. 消息确认4. 断开连接 MQTT工作流程图MQTT在物联网中的应用 …

如何面向DeepSeek编程,打造游戏开发工具集,提升工作效率

最近我在思考: 如何基于DeepSeek,来提升工作效率,构建高效游戏开发工作流。 方向有两个: A: 基于DeepSeek私有代码框架,让它完成项目代码的续写; B: 基于DeepSeek来创作一些工具,使用工具来提升效率,如…

云原生机密计算:构建基于可信执行环境的数据安全堡垒

引言&#xff1a;数据计算的最后一道防线 蚂蚁集团金融级机密计算平台承载日均20亿次敏感交易&#xff0c;密钥泄露风险降低99.97%。微软Azure DCsv3系列虚拟机实现SGX全内存加密性能损耗<15%&#xff0c;Google Anthos Confidential将跨云数据传输成本压缩45%。Gartner预测…

通用文件模型

一、通用文件模型 通常一个完整的Linux系统有数千到数百万个文件组成&#xff0c;文件中存储了程序、数据和各种信息。层次化的目录结构用于对文件进行编排和分组。 1.ReiserFS(新型的文件系统) -->Reiser4 它通过一种与众不同的方式----完全平衡树来容纳数据&#xff0c;包…

产品管理过程-思维导图

产品管理过程 1. 市场调研 与用户交流与直接面对客户的一线同事如销售、客服、技术支持等交流市场研究报告分析竞争对手分析用户数据分析 2. 需求管理 需求来源管理 市场需求内部需求运营需求战略需求其它需求 需求版本管理 需求分配管理 需求跟踪管理 3. 产品规划 市…

EtherNet/IP转Modbus解析基于网关模块的罗克韦尔PLC与Modbus上位机协议转换通讯案例

在工业自动化控制系统中&#xff0c;常常会遇到不同品牌和通信协议的设备需要协同工作的情况。本案例中&#xff0c;客户现场采用了 AB PLC&#xff0c;但需要控制的变频器仅支持 Modbus 协议。为了实现 AB PLC 对变频器的有效控制与监控&#xff0c;引入了捷米特 JM-EIP-RTU 网…

【进程和线程】(面试高频考点)

【进程和线程】 前言 在计算机编程领域&#xff0c;并发编程是一项至关重要的技术&#xff0c;而进程和线程正是实现并发编程的核心概念。为了让大家更直观地理解并发编程的作用&#xff0c;我们先来看一个简单的生活例子。 想象一下&#xff0c;现在有一大份美味的饭菜&…

HTML 编辑器推荐与 VS Code 使用教程

在进行 HTML 编程时&#xff0c;选择一款合适的 HTML 编辑器能极大地提高开发效率。以下为大家推荐几款常用且功能强大的 HTML 编辑器&#xff0c;同时详细介绍如何使用 VS Code 创建和预览 HTML 文件。 一、HTML 编辑器推荐 VS Code&#xff1a;由微软开发&#xff0c;是一款…

Kubernetes开发环境minikube | 开发部署apache tomcat web集群应用

minikube是一个主要用于开发与测试Kubernetes应用的运行环境&#xff0c;本文主要描述在minikube运行环境中部署J2EE tomcat web应用。 单节点Node多Pod实例部署 如上所示&#xff0c;在minikube运行的Linux部署环境中启动单节点Node 如上所示&#xff0c;在minikube的容器环境…

STM32---FreeRTOS中断管理试验

一、实验 实验目的&#xff1a;学会使用FreeRTOS的中断管理 创建两个定时器&#xff0c;一个优先级为4&#xff0c;另一个优先级为6&#xff1b;注意&#xff1a;系统所管理的优先级范围 &#xff1a;5~15 现象&#xff1a;两个定时器每1s&#xff0c;打印一段字符串&#x…

永磁直驱式风力发电虚拟同步机仿真模型Matlab/Simulink模型

很久没有分享虚拟同步机控制相关的方向了&#xff0c;毕业后在电科院的项目又有所接触。这个课题方向其实作为硕士毕业课题还是够用的&#xff0c;相对来说也是比较容易毕业的&#xff0c;因为涉及的分支比较多。 后续对虚拟同步机的控制&#xff0c;我就延续我前面博客提到的方…

图像分类项目1:基于卷积神经网络的动物图像分类

1、选题背景及动机 在现代社会中&#xff0c;图像分类是计算机视觉领域的一个重要任务。动物图像分类具有广泛的应用&#xff0c;例如生态学研究、动物保护、农业监测等。通过对动物图像进行自动分类&#xff0c;可以帮助人们更好地了解动物种类、数量和分布情况&#xff0c;从…

Vue 3 整合 WangEditor 富文本编辑器:从基础到高级实践

本文将详细介绍如何在 Vue 3 项目中集成 WangEditor 富文本编辑器&#xff0c;实现图文混排、自定义扩展等高阶功能。 一、为什么选择 WangEditor&#xff1f; 作为国内流行的开源富文本编辑器&#xff0c;WangEditor 具有以下优势&#xff1a; 轻量高效&#xff1a;压缩后仅…

Ansys Zemax | 使用衍射光学器件模拟增强现实 (AR) 系统的出瞳扩展器 (EPE):第 4 部分

附件下载 联系工作人员获取附件 在 OpticStudio 中使用 RCWA 工具为增强现实&#xff08;AR&#xff09;系统设置出瞳扩展器&#xff08;EPE&#xff09;的示例中&#xff0c;首先解释了k空间中光栅的规划&#xff0c;并详细讨论了设置每个光栅的步骤。 介绍 本文是该四篇文…

CMake学习笔记(一):工程的新建和如何将源文件生成二进制文件

cmake是我们在工作过程中比较常见的一个工具&#xff0c;该系列文章是自己用来学习的笔记。目前只是记录下自己学习cmake的过程中的一些重要的知识点&#xff0c;其是以项目需求为导向并非完整的cmake的学习路线和系统&#xff0c;同样也并非适合所有的人。 1.生成一个可执行文…

libcoap在Ubuntu下的编译(基于CMake)

引言 libcoap 是一个开源的轻量级 C 语言库&#xff0c;用于实现 CoAP&#xff08;Constrained Application Protocol&#xff0c;受限应用协议&#xff09;。CoAP 是一种专为资源受限设备设计的轻量级通信协议&#xff0c;适用于物联网&#xff08;IoT&#xff09;和嵌入式系…

Docker新手入门(持续更新中)

一、定义 快速构建、运行、管理应用的工具。 Docker可以帮助我们下载应用镜像&#xff0c;创建并运行镜像的容器&#xff0c;从而快速部署应用。 所谓镜像&#xff0c;就是将应用所需的函数库、依赖、配置等应用一起打包得到的。 所谓容器&#xff0c;为每个镜像的应用进程创建…

蓝桥杯C组真题——巧克力

题目如下 思路 代码及解析如下 谢谢观看

SLAM评估工具安装及使用EVO(Ubuntu20.04安装evo)--缺少 onnx 库还有Pandas 版本不兼容解决

介绍一下我的是ubuntu20.04.机载电脑是orinnx&#xff0c;通过源码烧写的系统。 首先打开终端&#xff0c;输入 pip install evo --upgrade --no-binary evo 安装过程中出现如下问题 缺少 onnx 库还有Pandas 版本不兼容&#xff0c; ONNX&#xff08;Open Neural Network E…

在虚拟机上安装hadoop

在虚拟机上安装 Hadoop 是一个常见的实验环境搭建过程。以下是详细的步骤和注意事项&#xff1a; 前面的课程我们已经准备好了三台虚拟设备球供我们学习大数据技术&#xff0c;今天我们将使用其中的一台设备来运行第一个hadoop 程序。 运行第一个 hadoop程序 要运行 hadoop 程序…