论坛系统测试报告

目录

  • 一、项目背景
  • 二、论坛系统测试用例思维导图
  • 三、论坛系统测试
    • 3.1界面测试
    • 3.2登陆测试
    • 3.3主页测试
    • 3.4个人中心测试
  • 四、自动化测试脚本
    • 4.1配置驱动
    • 4.2创建浏览器类
    • 4.3功能测试
      • 4.3.1登陆测试
      • 4.3.2注册测试
      • 4.3.3主页测试
      • 4.3.4帖子编辑
      • 4.3.5运行主代码
  • 五、BUG分析
    • 六、测试总结

一、项目背景

论坛系统致力于打造一个多元交流社区,吸引各领域专业人士、爱好者及普通用户汇聚一堂。用户可在开放的环境中充分交流。伴随互联网用户群体持续壮大,尤其是年轻一代网民对在线交流和知识获取的需求不断攀升,论坛作为经典且有效的互动平台,蕴藏着巨大发展潜力。通过论坛系统建设,期望满足不同用户的多样化需求,提升信息交流效率与质量,为用户创造更多价值,助力互联网内容生态的健康、持续发展。

二、论坛系统测试用例思维导图

对于论坛系统简单可以分为六类方面进行测试:界面测试、安全测试、易用性测试、兼容性测试、功能测试
在这里插入图片描述

三、论坛系统测试

3.1界面测试

在这里插入图片描述

  • 用户登陆框虽然没有在屏幕正中央,好在用白色和背景板颜色区分更加显眼,并标有黑体“用户登陆”。
  • 用户名及密码输入框大小合适,让用户容易输入。
  • 登陆按钮用蓝色框格包围使得用户能加轻松登陆。
  • “点击注册”字样用蓝色标识,时用户容易找到。
  • 密码框内“小眼睛”有显示密码功能。

3.2登陆测试

  • 用户名及密码为空时输入框下显示红色“用户名不能为空”或“密码不能为空”字样。
    (用户名:zhangsan 密码:12345 为例)
    在这里插入图片描述
  • 输入正确用户名及错误密码,提示用户名或密码错误.
    在这里插入图片描述
  • 输入错误用户名及正确密码.
    在这里插入图片描述
  • 输入正确用户名及正确密码
    进入论坛主页
    在这里插入图片描述

3.3主页测试

  • 1.点击发帖子

在这里插入图片描述

  • 2.选择板块

在这里插入图片描述

  • 3.输入标题及内容

在这里插入图片描述

  • 4.点击发布

在这里插入图片描述

  • 5.发布成功!!!

在这里插入图片描述

  • 6.点击输入框输入论坛测试

在这里插入图片描述
测试发现点击搜索框内的放大镜无法搜索。

  • 7.点击帖子标题

在这里插入图片描述
显示进入帖子

  • 8.点击发私信

在这里插入图片描述

  • 9.发布成功

在这里插入图片描述
测试显示没有查找私信功能

  • 10.点击回复

在这里插入图片描述
回复成功!!!

3.4个人中心测试

  1. 点击主页头像

在这里插入图片描述

  1. 进入个人中心

在这里插入图片描述

  1. 点击修改昵称/邮箱地址/电话号码

在这里插入图片描述
测试结果发现无法修改

  1. 点击修改密码

在这里插入图片描述

  1. 修改成功

在这里插入图片描述

四、自动化测试脚本

4.1配置驱动

Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera,Edge等。
WebDriverManager 是一个开源的 Java 库,用于自动管理 Selenium WebDriver 所需的驱动程序(如 ChromeDriver、GeckoDriver、EdgeDriver 等)。它可以自动下载、设置和维护这些驱动程序,从而简化了 Selenium 测试的配置过程

在pycharm软件的设置中观察是否安装这两个软件包,如果没有可能无法正常驱动打开本地浏览器
在这里插入图片描述

4.2创建浏览器类

  • 每个功能都需要pycharm驱动浏览,若每个功能都有一份浏览器驱动,功能过多可能导致软件崩溃,将驱动器类放入一个common文件,功能测试则放入test文件,image用于保存截屏图片


在这里插入图片描述

  • 驱动器类
    Lunta实例化出Driver类,每次测试功能时调用类对象driver,防止每个功能模块都创建一个新的驱动器。
import datetime
import os
import sys
import timefrom selenium import webdriver
from selenium.webdriver.edge.service import Service
from webdriver_manager.microsoft import EdgeChromiumDriverManagerclass Driver:driver=""def __init__(self):#打开edge驱动管理EdsIns=EdgeChromiumDriverManager().install()options=webdriver.EdgeOptions()#创建edge浏览器对象self.driver=webdriver.Edge(service=Service(EdsIns),options=options)# 截屏功能def getScreenShot(self):dirname = datetime.datetime.now().strftime('%Y-%m-%d')if not os.path.exists("../images/" + dirname):os.mkdir("../images/" + dirname)filename = sys._getframe().f_back.f_code.co_name + "-" + datetime.datetime.now().strftime('%Y-%m-%d-%H%M%S') + ".png"self.driver.save_screenshot(f'../images/{dirname}/' + filename)
Lunta=Driver()

4.3功能测试

4.3.1登陆测试

  1. 函数find_element()分别找出用户名及密码输入框
  2. send_keys输入内容
  3. click模拟用户点击登陆按钮
  4. find_element找出主页信息判断是否登陆成功
import timefrom selenium.webdriver.common.by import Byfrom common.untils import Luntaclass LunTaLgoin:url=""driver=""def __init__(self):self.url="http://127.0.0.1:9580/sign-in.html"self.driver=Lunta.driverself.driver.get(self.url)#成功登陆def LTLoginTest(self):self.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("zhangsan")self.driver.find_element(By.CSS_SELECTOR,"#password").send_keys("1234")self.driver.find_element(By.CSS_SELECTOR,"#submit").click()time.sleep(2)#查找头像是否登陆成功self.driver.find_element(By.CSS_SELECTOR,"#index_nav_avatar")#截屏登陆成功页面Lunta.getScreenShot()# self.driver.find_element(By.CSS_SELECTOR,"#index_nav_avatar").click()# self.driver.find_element(By.CSS_SELECTOR,"#index_user_logout").click()# Lunta.getScreenShot()#登陆失败def LTFailTest(self):#密码错误self.driver.find_element(By.CSS_SELECTOR, "#username").send_keys("zhangsan")self.driver.find_element(By.CSS_SELECTOR, "#password").send_keys("12345")self.driver.find_element(By.CSS_SELECTOR, "#submit").click()time.sleep(1)Lunta.getScreenShot()#检测是否出现密码错误弹窗self.driver.find_element(By.CSS_SELECTOR,"body > div.jq-toast-wrap.bottom-right > div")#清空内容self.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("zhang")self.driver.find_element(By.CSS_SELECTOR, "#password").send_keys("1234")self.driver.find_element(By.CSS_SELECTOR, "#submit").click()time.sleep(1)Lunta.getScreenShot()# 检测是否出现密码错误弹窗self.driver.find_element(By.CSS_SELECTOR, "body > div.jq-toast-wrap.bottom-right > div")# 清空内容self.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("")self.driver.find_element(By.CSS_SELECTOR, "#password").send_keys("12345")self.driver.find_element(By.CSS_SELECTOR, "#submit").click()time.sleep(1)Lunta.getScreenShot()# 检测是否出现用户名不能为空提示text=self.driver.find_element(By.CSS_SELECTOR, "#signInForm > div.mb-3 > div").textassert text=="用户名不能为空"# 清空内容self.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("zhang")self.driver.find_element(By.CSS_SELECTOR, "#password").send_keys("")self.driver.find_element(By.CSS_SELECTOR, "#submit").click()time.sleep(1)Lunta.getScreenShot()# 检测是否出现用户名不能为空提示text = self.driver.find_element(By.CSS_SELECTOR, "#signInForm > div.mb-2 > div > div").textassert text == "密码不能为空"

4.3.2注册测试

  1. click模拟点击注册按钮
  2. find_element找出用户名,昵称,密码及确认密码输入框
  3. send_keys输入内容
  4. 注册失败是否有弹窗提示
  5. 注册成功返回登陆界面是否能登陆
import timefrom selenium.webdriver.common.by import Byfrom common.untils import Lunta
class LunTareg:driver=""url=""def __init__(self):self.url = "http://127.0.0.1:9580/sign-in.html"self.driver = Lunta.driverself.driver.get(self.url)def LTreg(self):time.sleep(2)self.driver.implicitly_wait(2)self.driver.find_element(By.CSS_SELECTOR,"body > div > div > div > div:nth-child(1) > div > div.text-center.text-muted.mt-3 > a").click()#注册成功self.driver.find_element(By.CSS_SELECTOR,"#username").send_keys("zhangs")self.driver.find_element(By.CSS_SELECTOR,"#nickname").send_keys("zhangs")self.driver.find_element(By.CSS_SELECTOR,"#password").send_keys("1234")self.driver.find_element(By.CSS_SELECTOR, "#passwordRepeat").send_keys("1234")self.driver.find_element(By.CSS_SELECTOR, "#policy").click()self.driver.find_element(By.CSS_SELECTOR,"#submit").click()time.sleep(2)Lunta.getScreenShot()self.driver.back()#登陆self.driver.find_element(By.CSS_SELECTOR, "#username").send_keys("zhangs")self.driver.find_element(By.CSS_SELECTOR, "#password").send_keys("1234")self.driver.find_element(By.CSS_SELECTOR, "#submit").click()time.sleep(2)# 查找头像是否登陆成功self.driver.find_element(By.CSS_SELECTOR, "#index_nav_avatar")# 截屏登陆成功页面Lunta.getScreenShot()time.sleep(2)self.driver.back()def LTrefaii(self):time.sleep(2)self.driver.implicitly_wait(2)#点击注册self.driver.find_element(By.CSS_SELECTOR,"body > div > div > div > div:nth-child(1) > div > div.text-center.text-muted.mt-3 > a").click()# 注册失败(用户已存在)self.driver.find_element(By.CSS_SELECTOR, "#username").send_keys("zhangs")self.driver.find_element(By.CSS_SELECTOR, "#nickname").send_keys("zhangs")self.driver.find_element(By.CSS_SELECTOR, "#password").send_keys("1234")self.driver.find_element(By.CSS_SELECTOR, "#passwordRepeat").send_keys("1234")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.jq-toast-wrap.bottom-right > div")Lunta.getScreenShot()# 注册失败(用户名为空)self.driver.find_element(By.CSS_SELECTOR, "#username").clear()self.driver.find_element(By.CSS_SELECTOR, "#submit").click()# 是否提示text=self.driver.find_element(By.CSS_SELECTOR, "#signUpForm > div > div:nth-child(2) > div").textassert text=="用户名不能为空"Lunta.getScreenShot()# 注册失败(昵称为空)self.driver.find_element(By.CSS_SELECTOR, "#username").send_keys("zhangs")self.driver.find_element(By.CSS_SELECTOR, "#nickname").clear()self.driver.find_element(By.CSS_SELECTOR, "#submit").click()# 是否提示text = self.driver.find_element(By.CSS_SELECTOR, "#signUpForm > div > div:nth-child(3) > div").textassert text == "昵称不能为空"Lunta.getScreenShot()# 注册失败(密码为空)self.driver.find_element(By.CSS_SELECTOR, "#nickname").send_keys("zhangs")self.driver.find_element(By.CSS_SELECTOR, "#password").clear()self.driver.find_element(By.CSS_SELECTOR, "#submit").click()time.sleep(2)# 是否提示text = self.driver.find_element(By.CSS_SELECTOR, "#signUpForm > div > div:nth-child(4) > div").textassert text == "密码不能为空"Lunta.getScreenShot()# 注册失败(确认密码错误)self.driver.find_element(By.CSS_SELECTOR, "#password").send_keys("1234")self.driver.find_element(By.CSS_SELECTOR, "#passwordRepeat").send_keys("12345")self.driver.find_element(By.CSS_SELECTOR, "#submit").click()text=self.driver.find_element(By.CSS_SELECTOR,"#signUpForm > div > div:nth-child(5) > div > div").textassert text=="请检查确认密码"#未点击同意self.driver.find_element(By.CSS_SELECTOR, "#policy").click()# 是否弹窗提示self.driver.find_element(By.CSS_SELECTOR, "body > div.jq-toast-wrap.bottom-right > div")Lunta.getScreenShot()self.driver.back()

4.3.3主页测试

1.click点击发帖子内容
2.send_keys输入标题
3.send_keys输入内容(编辑框外置无法完成交互)
4.Action链模拟点击(click无法点击)

import timefrom selenium.webdriver import ActionChains
from selenium.webdriver.common.by import Byfrom common.untils import Luntaclass LunTahome():driver=""url=""def __init__(self):# 登陆状态urlself.driver=Lunta.driverself.url="http://127.0.0.1:9580/index.html"self.driver.get(self.url)def LTPuTest(self):self.driver.implicitly_wait(5)#点击发布帖子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,"#article_post_borad").click()#编辑框外置无法完成交互# 输入标题,若能交互则完成以下命令# self.driver.find_element(By.CSS_SELECTOR, "#article_post_title").send_keys("如何年薪百万")#self.driver.find_element(By.CSS_SELECTOR,"article_post_submit").click()# # Action链模拟点击# element = self.driver.find_element(By.XPATH, '//*[@id="article_post_submit"]')# ActionChains(self.driver).move_to_element(element).click().perform()# # 提示帖子内容不能为空# self.driver.find_element(By.CSS_SELECTOR, "body > div.jq-toast-wrap.bottom-right > div")# Lunta.getScreenShot()#输入标题self.driver.find_element(By.CSS_SELECTOR,"#article_post_title").send_keys("如何年薪百万")#Action链模拟点击element=self.driver.find_element(By.XPATH,'//*[@id="article_post_submit"]')ActionChains(self.driver).move_to_element(element).click().perform()#提示帖子内容不能为空self.driver.find_element(By.CSS_SELECTOR,"body > div.jq-toast-wrap.bottom-right > div")Lunta.getScreenShot()# 不输入标题self.driver.find_element(By.CSS_SELECTOR,"#article_post_title").clear()# Action链模拟点击element = self.driver.find_element(By.XPATH, '//*[@id="article_post_submit"]')ActionChains(self.driver).move_to_element(element).click().perform()# 提示输入标题不能为空self.driver.find_element(By.CSS_SELECTOR, "body > div.jq-toast-wrap.bottom-right > div")Lunta.getScreenShot()self.driver.back()

4.3.4帖子编辑

  • click点击发帖子>私信>send_keys输入内容>click点击回复>find_element搜索"回复成功弹窗">click点击回复>send_keys输入内容>click点击回复>find_element搜索“回复成功弹窗”>click点击点赞
import timefrom selenium.webdriver.common.by import Byfrom common.untils import Luntaclass LunTaser:driver=""url=""def __init__(self):self.url="http://127.0.0.1:9580/index.html"self.driver=Lunta.driverself.driver.get(self.url)#搜索def LTaser(self):self.driver.implicitly_wait(5)self.driver.find_element(By.CSS_SELECTOR,"body > div.page > header.navbar.navbar-expand-md.navbar-light.d-print-none > div > div > div.nav-item.d-none.d-md-flex.me-3 > div > form > div > input").send_keys("1234")#点击搜索self.driver.find_element(By.CSS_SELECTOR,"body > div.page > header.navbar.navbar-expand-md.navbar-light.d-print-none > div > div > div.nav-item.d-none.d-md-flex.me-3 > div > form > div > input").click()#搜索第一篇文章time.sleep(3)text=self.driver.find_element(By.CSS_SELECTOR,"#artical-items-body > div:nth-child(1) > div > div.col > div.text-truncate > a > strong").textLunta.getScreenShot()#断言是否搜索成功#assert text=="1234"#私信def LTiss(self):self.driver.implicitly_wait(5)Lunta.getScreenShot()self.driver.find_element(By.CSS_SELECTOR,"#artical-items-body > div:nth-child(1) > div > div.col > div.text-truncate > a > strong").click()self.driver.find_element(By.CSS_SELECTOR,"#btn_details_send_message").click()self.driver.find_element(By.CSS_SELECTOR,"#index_message_receive_content").send_keys("上转转回收了吧")self.driver.find_element(By.CSS_SELECTOR,"#btn_index_send_message").click()Lunta.getScreenShot()#是否发布成功弹窗self.driver.find_element(By.CSS_SELECTOR,"body > div.jq-toast-wrap.bottom-right > div")Lunta.getScreenShot()#回复def LTreply(self):self.driver.implicitly_wait(5)time.sleep(5)self.driver.find_element(By.CSS_SELECTOR,"#artical-items-body > div:nth-child(1) > div > div.col > div.text-truncate > a > strong").click()self.driver.find_element(By.CSS_SELECTOR,"#article_details_reply > div.CodeMirror.cm-s-default.CodeMirror-wrap.CodeMirror-empty > div.CodeMirror-scroll").send_keys("哇哈哈")self.driver.find_element(By.CSS_SELECTOR,"#details_btn_article_reply > span").click()#内容为空无法发送Lunta.getScreenShot()#提示请输入内容self.driver.find_element(By.CSS_SELECTOR,"body > div.jq-toast-wrap.bottom-right > div")#点赞def LTlike(self):self.driver.implicitly_wait(5)self.driver.find_element(By.CSS_SELECTOR,"#artical-items-body > div:nth-child(1) > div > div.col > div.text-truncate > a > strong").click()self.driver.find_element(By.CSS_SELECTOR,"#details_btn_like_count").click()#提示点赞成功self.driver.find_element(By.CSS_SELECTOR,"body > div.jq-toast-wrap.bottom-right > div > h2")time.sleep(1)Lunta.getScreenShot()

4.3.5运行主代码

from test import LunTaLgoin
from test import LunTahome
from test import LunTareg
from test import LunTaserif __name__ == '__main__':# 注册失败LunTareg.LunTareg().LTrefaii()# 注册成功LunTareg.LunTareg().LTreg()#登陆失败LunTaLgoin.LunTaLgoin().LTFailTest()#登陆成功LunTaLgoin.LunTaLgoin().LTLoginTest()#主页测试LunTahome.LunTahome().LTPuTest()# 帖子测试LunTaser.LunTaser().LTaser()LunTaser.LunTaser().LTiss()LunTaser.LunTaser().LTreply()LunTaser.LunTaser().LTlike()

五、BUG分析

  1. 搜索框输入内容无法点击搜索

在这里插入图片描述

  1. 主页板块内容显示不完全

在这里插入图片描述

  1. 昵称、邮箱地址、电话号码、个人简介无法修改

在这里插入图片描述
在这里插入图片描述

六、测试总结

本次论坛系统测试旨在全面验证系统功能的完整性、稳定性及用户体验,确保系统能够满足用户在信息交流、内容发布等方面的需求。测试范围涵盖了前台用户操作功能以及后台管理功能,采用了多种测试方法,包括功能测试、性能测试、兼容性测试等。

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

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

相关文章

python量化交易——金融数据管理最佳实践——使用qteasy大批量自动拉取金融数据

文章目录 使用数据获取渠道自动填充数据QTEASY数据拉取功能数据拉取接口refill_data_source()数据拉取API的功能特性多渠道拉取数据实现下载流量控制实现错误重试日志记录其他功能 qteasy是一个功能全面且易用的量化交易策略框架, Github地址在这里。使用它&#x…

后端架构模式之-BFF(Backend-For-Frontend)

Backend-for-Frontend(BFF) 的概念与意义 1. 什么是 Backend-for-Frontend(BFF)? Backend-for-Frontend(简称 BFF)是一种后端架构模式,它为特定的前端应用(Web、移动端…

upload-labs靶场 1-21通关

目录 1.Pass-01 前端绕过 分析 解题 2.Pass-02 服务器端检测--修改IMME 分析 解题 3.Pass-03 黑名单绕过 分析 解题 4.Pass-04 .htaccess绕过 分析 解题 5.Pass-05 . .绕过和.user.ini绕过 分析 解题 6.Pass-06 大小写绕过 分析 解题 7.Pass-07 空格绕过 分…

信贷风控系统架构设计

设计一个信贷风控系统需要综合考虑业务需求、技术架构、数据治理、合规安全等多个维度。以下是从顶级Java架构师视角的系统设计方案,分模块详细说明: 一、系统架构设计原则 高可用性:7x24小时服务,多机房容灾。低延迟&#xff1a…

Ubuntu20.04 在离线机器上安装 NVIDIA Container Toolkit

步骤 1.下载4个安装包 Index of /nvidia-docker/libnvidia-container/stable/ nvidia-container-toolkit-base_1.13.5-1_amd64.deb libnvidia-container1_1.13.5-1_amd64.deb libnvidia-container-tools_1.13.5-1_amd64.deb nvidia-container-toolkit_1.13.5-1_amd64.deb 步…

【工具】COME对比映射学习用于scRNA-seq数据的空间重构

介绍 单细胞RNA测序(scRNA-seq)能够在单细胞分辨率下实现高通量转录组分析。固有的空间位置对于理解单细胞如何协调多细胞功能和驱动疾病至关重要。然而,在组织分离过程中,空间信息常常丢失。空间转录组学(ST&#xf…

Idea配置注释模板

一、配置类注释模板 打开IDEA,打开settings(快捷键:Ctrl Alt s),选择Editor,找到File and Code Templates 这里以设置class文件为例,点击Class,在右侧配置以下内容 #if (${PACKAGE_NAME} && $…

pytorch高可用的设计策略和集成放大各自功能

在使用 PyTorch 编写模型时,为确保模型具备高可用性,可从模型设计、代码质量、训练过程、部署等多个方面采取相应的方法,以下为你详细介绍: 模型设计层面 模块化设计 实现方式:将模型拆分成多个小的、独立的模块,每个模块负责特定的功能。例如,在一个图像分类模型中,可…

从开源大模型工具Ollama存在安全隐患思考企业级大模型应用如何严守安全红线

近日,国家网络安全通报中心通报大模型工具Ollama默认配置存在未授权访问与模型窃取等安全隐患,引发了广泛关注。Ollama作为一款开源的大模型管理工具,在为用户提供便捷的同时,却因缺乏有效的安全管控机制,存在数据泄露…

初识Qt · 信号与槽 · 基础知识

目录 前言: 信号和槽初识 两个问题 前言: 本文我们正式开始介绍信号与槽这个概念,在谈及Qt中的信号与槽这个概念之前,我们不妨回顾一下Linux中的信号,比如发生了除0错误,OS就会给该进程发送一个信号&am…

Kotlin 5种单例模式

在Kotlin中实现单例模式有多种方法,以下是几种常见的方法: 饿汉式 饿汉式是最简单的一种实现方式,在类加载时就完成了实例的初始化。 //饿汉式 object Singleton1 {fun printMessage() {println("饿汉式")} }懒汉式 懒汉式是延迟…

探秘基带算法:从原理到5G时代的通信变革【一】引言

文章目录 一、引言1.1 研究背景与意义1.2 研究目的与方法1.3 研究内容与创新点 本博客为系列博客,主要讲解各基带算法的原理与应用,包括:viterbi解码、Turbo编解码、Polar编解码、CORDIC算法、CRC校验、FFT/DFT、QAMtiaozhi/解调、QPSK调制/解…

C/C++输入输出(1)

1.getchar和putchar 1.1getchar() 函数原型: 1 int getchar(void); getchar()函数返回用户从键盘输入的字符,使用时不带有任何参数。 程序运行到这个命令就会暂停,等待用户从键盘输入,等同于使用cin或scanf()方法读取一个字符…

【消息队列】数据库的数据管理

1. 数据库的选择 对于当前实现消息队列这样的一个中间件来说,具体要使用哪个数据库,是需要稍作考虑的,如果直接使用 MySQL 数据库也是能实现正常的功能,但是 MySQL 也是一个客户端服务器程序,也就意味着如果想在其他服…

飞机大战lua迷你世界脚本

-- 迷你世界飞机大战 v1.2 -- 星空露珠工作室制作 -- 最后更新:2024年1月 ----------------------------- -- 迷你世界API适配配置 ----------------------------- local UI { BASE_ID 7477478487091949474-22856, -- UI界面ID ELEMENTS { BG 1, -- 背景 BTN_LE…

图解MOE大模型的7个核心问题并探讨DeepSeekMoE的专家机制创新

原文地址:https://newsletter.maartengrootendorst.com/p/a-visual-guide-to-mixture-of-experts #mermaid-svg-FU7YUSIfuXO6EVHa {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-FU7YUSIfuXO6EVHa .error-icon{fill…

【智能机器人开发全流程:硬件选型、软件架构与ROS实战,打造高效机器人系统】

文章目录 1. 硬件层设计(1) 传感器选型(2) 计算平台 2. 软件架构设计(1) 核心模块划分(2) 通信框架 3. 关键实现步骤(1) 硬件-软件接口开发(2) SLAM与导航实现(3) 仿真与测试 4. 典型框架示例基于ROS的移动机器人分层架构 5. 优化与扩展6. 开源项目参考 1. 硬件层设计 (1) 传感…

React Native v0.78 更新

这个版本在 React Native 中引入了 React 19,并带来了一些重要的新功能,例如 Android 矢量图(Vector Drawables)的原生支持 以及 iOS 更好的 Brownfield 集成。 亮点 React 19 集成更小更快的发布节奏可选择在 Metro 中启用 Jav…

机器学习数学通关指南

✨ 写在前面 💡 在代码的世界里沉浸了十余载,我一直自诩逻辑思维敏捷,编程能力不俗。然而,当我初次接触 DeepSeek-R1 并领略其清晰、系统的思考过程时,我不禁为之震撼。那一刻,我深刻意识到:在A…

MySQL 实验1:Windows 环境下 MySQL5.5 安装与配置

MySQL 实验1:Windows 环境下 MySQL5.5 安装与配置 目录 MySQL 实验1:Windows 环境下 MySQL5.5 安装与配置 一、MySQL 软件的下载二、安装 MySQL三、配置 MySQL 1、配置环境变量2、安装并启动 MySQL 服务3、设置 MySQL 字符集4、为 root 用户设置登录密…