论坛测试报告
作者前言
🎂 ✨✨✨✨✨✨🍧🍧🍧🍧🍧🍧🍧🎂
🎂 作者介绍: 🎂🎂
🎂 🎉🎉🎉🎉🎉🎉🎉 🎂
🎂作者id:老秦包你会, 🎂
简单介绍:🎂🎂🎂🎂🎂🎂🎂🎂🎂🎂🎂🎂🎂🎂🎂
喜欢学习C语言、C++和python等编程语言,是一位爱分享的博主,有兴趣的小可爱可以来互讨 🎂🎂🎂🎂🎂🎂🎂🎂
🎂个人主页::小小页面🎂
🎂gitee页面:秦大大🎂
🎂🎂🎂🎂🎂🎂🎂🎂
🎂 一个爱分享的小博主 欢迎小可爱们前来借鉴🎂
论坛测试报告
- **作者前言**
- 1.项目背景
- 2.项目功能
- 3. 测试内容
- 3.1 设计测试用例
- 3.2 功能测试
- 3.2.1 注册测试
- 3.2.2登入测试
- 3.2.3 论坛首页
- 3.2.4 发帖中心
- 3.2.5 帖子详情页
- 3.2.6 个人中心
- 3.2.7 私信回复
- 4.自动化测试
- 4.1测试工具
- 4.2 自动化脚本
- 4.2.1 注册测试
- 4.2.2登入测试
- 4.2.3 论坛首页
- 4.2.4 发帖中心
- 4.2.5 帖子详情页
- 4.2.6 我的帖子
- 3.2.7 私信回复
- Bug简述
- 测试总结
- Gitee
1.项目背景
本项目是一个论坛系统,采用前后端分离的方式实现,该系统旨在为用户提供一个基于 Web 的文章发布和讨论平台。
用户可以进行注册登录、查看和修改个人信息,进行帖子的增删改查等基础操作。
用户可以点赞、评论帖子,私信其他用户,并在帖子详情页上查看点赞数和阅读量等信息。
2.项目功能
注册模块:在本页面中,用户可以透过注册获取账号和密码,用于登入,注册过程中需要用户输入用户名、昵称、密码、等操作完成注册。
登入模块用户可以通过注册来的账号进行登入,输入正确的账号和密码进行登入,登入成功将会跳转到论坛首页
论坛首页:论坛首页包含有用户相关显示信息、论坛分类、帖子、帖子搜索、发布帖子等功能。当点击相关的按钮会进行跳转到对应的页面进行操作。
个人中心:主要包含有用户的信息,可以更换用户的头像,进行用户密码的更改等功能。
帖子详情页:主要包含了用户发送帖子的内容、标题、回复评价、私信用户等功能,
发帖子中心:具备了发帖子的基本要是,发送模块、发送内容、发送标题等相关功能
私信中心:可以回复私信等功能
3. 测试内容
3.1 设计测试用例
设计测试用例可以从功能测试、性能测试、兼容性测试、易用性测试、界面测试、安全性测试进行入手、本次测试用例主要针对的是该页面各个模块的功能测试,
3.2 功能测试
3.2.1 注册测试
界面:
测试用例1: 用户名(TestUser)、昵称(TestUser)、密码(123456)、确认密码全部填写,点击条款
预期结果:注册正常,可以进行登入
实际结果:注册成功,跳转登入界面
**测试用例2:**输入已经注册过的用户名(TestUser)、昵称(TestUser)、密码(123456)、确认密码全部填写,点击条款
预期结果:注册失败
实际结果:注册失败,右下角弹窗出用户已存在
测试用例3:用户名(TestUse)、昵称(TestUser)、密码(123456)、确认密码全部填写,不点击条款
预期结果: 注册失败
实际结果: 无法注册
测试用例4: 用户名(TestUse)、昵称(TestUser)、密码(123456)、确认密码全部不填写,点击条款
预期结果: 注册失败
实际结果: 无法注册
3.2.2登入测试
界面:
测试用例1: 输入正确的用户名(TestUser)、密码(123456)
预期结果:登入正常,页面跳转
实际结果:登入正常,页面跳转
测试用例2: 输入未注册的用户名(TestUser1)、密码(123456)
预期结果:不能登入正常,
实际结果:不能正常登陆, 右下角提示错误
测试用例3: 不输入的用户名(TestUser)和密码(123456)
预期结果:不能登入正常,
实际结果:不能正常登陆, 输入框提示错误。
3.2.3 论坛首页
界面:
测试用例1:点击不同模块
预期结果:可以切换不同的帖子列表
实际结果:可以切换不同的帖子列表
测试用例2:点击java模块,点击右上角的搜索框,输入1。进行查找
预期结果:查找出所有的1为标题的帖子
实际结果:不能查找,然后框内容情况
测试用例3:点击右上角的白夜模式切换
预期结果:白天、夜天模式切换正常
实际结果:白天、夜天模式切换正常,页面颜色改变
测试用例4:点击右上角的私信通知
预期结果:打开成功,获取所以私信的内容
实际结果:打开成功,获取所以私信的内容
测试用例5:点击右上角的头像,点击下拉框中的个人中心
预期结果:点击成功,跳转到个人中心
实际结果:点击成功,跳转到个人中心
测试用例6:点击右上角的头像,点击下拉框中的我的帖子
预期结果:点击成功,跳转到帖子中心
实际结果:点击成功,跳转到帖子中心
测试用例7:点击帖子列表中的帖子
预期结果:点击成功,跳转到帖子详情页
实际结果:点击成功,跳转到帖子帖子详情页
测试用例8:点击帖子列表的右上角的发帖按钮
预期结果:点击成功,跳转到发帖中心
实际结果:点击成功,跳转到发帖中心
3.2.4 发帖中心
界面:
测试用例1: 不输入标题,输入内容,点击发布帖子
预期结果:发送失败,帖子无标题
实际结果:发帖失败,右下角出现提示
测试用例2: 输入标题,不输入内容,点击发布帖子
预期结果:发送失败,帖子无标题
实际结果:发帖失败,右下角出现提示
测试用例3: 输入标题,输入内容,点击发布帖子
预期结果:发送成功
实际结果:发帖成功,页面跳转到首页
3.2.5 帖子详情页
界面:
测试用例1: 点击点赞
预期结果:点赞成功
实际结果:点赞成功、可以多次点赞,点赞数量增加
测试用例2: 点击用户名
预期结果:跳转到发帖中心
实际结果:跳转成功
测试用例3: 不输入回复内容,点击发送回复
预期结果:回复失败
实际结果:回复失败
测试用例4: 输入回复内容,点击发送回复
预期结果:回复成功
实际结果:回复成功,回复数量增加
测试用例5: 点击私信按钮, 输入回复内容,点击发送发送
预期结果:发送成功
实际结果:回复发送
3.2.6 个人中心
测试用例1:输入新的昵称进行修改
预期结果:修改成功
实际结果:修改成功
测试用例2:输入新的邮箱进行修改
预期结果:修改成功
实际结果:修改成功
测试用例3:输入新的手机号码进行修改
预期结果:修改成功
实际结果:修改成功
测试用例5:不输入的昵称、邮箱、手机号码,直接进行修改
预期结果:修改失败
实际效果:修改失败
测试用例6:输入个人简介内容,点击修改
预期结果:修改成功
实际效果:修改成功
3.2.7 私信回复
测试用例1: 输入回复内容,点击发送
预期结果:回复成功
实际结果:回复成功
测试用例: 不输入回复内容,点击发送
预期结果:回复失败
实际结果:回复失败
4.自动化测试
4.1测试工具
系统: windows10
浏览器 Chrome 135.0.7049.95(正式版本) (64 位)
语言:python
模块:selenium4.0
软件: pyCharm2024.3.5
4.2 自动化脚本
4.2.1 注册测试
import datetime
import timefrom selenium.webdriver.common.by import Byfrom Common.Utials import Forumclass ForumRegisiter():driver = ""url = ""user = datetime.datetime.now().strftime('%Y-%m-%d-%H%M%S')user1="TestUser"def __init__(self):self.driver = Forum.driverself.url = Forum.urldef go_Register(self):time.sleep(1)Forum.find_element(By.CSS_SELECTOR,"body > div > div > div > div:nth-child(1) > div > div.text-center.text-muted.mt-3 > a").click()def informetionRegister(self,user , nane, password, password2, click_1):Forum.find_element(By.CSS_SELECTOR,"#username").send_keys(user)Forum.find_element(By.CSS_SELECTOR,"#nickname").send_keys(nane)Forum.find_element(By.CSS_SELECTOR,"#password").send_keys(password)Forum.find_element(By.CSS_SELECTOR,"#passwordRepeat").send_keys(password2)if click_1:ele = Forum.find_element(By.CSS_SELECTOR,"#policy")if(ele.get_attribute("class") !="form-check-input is-valid"):ele.click()else:ele = Forum.find_element(By.CSS_SELECTOR, "#policy")if (ele.get_attribute("class") != "form-check-input is-invalid"):ele.click()Forum.imagetSave()#注册按钮Forum.find_element(By.CSS_SELECTOR, "#submit").click()self.user1 = user
forumRegiter = ForumRegisiter()
4.2.2登入测试
import timefrom selenium.webdriver.common.by import Byfrom Common.Utials import Forum
from Test.ForumRegisiter import forumRegiterclass ForumLogin:def __init__(self,):self.driver = Forum.driverself.url = Forum.urldef login(self, user =forumRegiter.user1, password ="123456"):Forum.find_element(By.CSS_SELECTOR,"#username").send_keys(user)Forum.find_element(By.CSS_SELECTOR,"#password").send_keys(password)Forum.find_element(By.CSS_SELECTOR,"#submit").click()print("登入执行完成")
foumLogin = ForumLogin()
4.2.3 论坛首页
import timeimport pyautogui
from selenium.webdriver.common.by import Byfrom Common.Utials import Forum
from Test.ForumRegisiter import forumRegiter
from Test.PostDetailsPase import postDetailsPaseclass ForumFristPase():driver = ""url = ""read = ""likes = ""comment = ""title = ""date = ""def __init__(self):self.driver = Forum.driverself.url = Forum.urldef forumList(self,name="Java"):time.sleep(2)list_1 = Forum.find_elements(By.XPATH,'//span[@class="nav-link-title"]')#//*[@id="topBoardList"]for i in list_1:print(i.text)if(i.text == name):i.click()print(name, "点击成功")time.sleep(5)return Noneprint("点击失败")def clickPost(self, mode = "首页"):index = 0# 获取帖子标题链接self.title = Forum.find_element(By.XPATH,'//*[@id="artical-items-body"]/div[2]/div/div[2]/div[1]/a').text#获取帖子的昵称和发布时间 //*[@id="artical-items-body"]/div[1]/div# 发布的时间self.date = Forum.find_element(By.CSS_SELECTOR, "#artical-items-body > div:nth-child(1) > div > div.col > div.text-muted.mt-2 > div > div.col > ul > li:nth-child(2)").text# 阅读量self.read = Forum.find_element(By.CSS_SELECTOR, "#artical-items-body > div:nth-child(1) > div > div.col > div.text-muted.mt-2 > div > div.col-auto.d-none.d-md-inline > ul > li:nth-child(1)").text# 点赞量self.likes = Forum.find_element(By.CSS_SELECTOR, "#artical-items-body > div:nth-child(1) > div > div.col > div.text-muted.mt-2 > div > div.col-auto.d-none.d-md-inline > ul > li:nth-child(2)").text# 评论量self.comment = Forum.find_element(By.CSS_SELECTOR, "#artical-items-body > div:nth-child(1) > div > div.col > div.text-muted.mt-2 > div > div.col-auto.d-none.d-md-inline > ul > li:nth-child(3)").textname = Forum.find_element(By.XPATH,'//*[@id="artical-items-body"]/div[1]/div/div[2]/div[2]/div/div[1]/ul/li[1]').textprint("昵称:", name)print("发布时间:", self.date)print("阅读量:", self.read)print("点赞量:", self.likes)print("点赞量:", self.comment)# # 进入详情页Forum.find_element(By.XPATH,'//*[@id="artical-items-body"]/div[2]/div/div[2]/div[1]/a').click()# #检查是否符合postDetailsPase.start()postDetailsPase.informationPost(int(self.read),self.likes,self.comment,self.title,self.date)# #私信发送# postDetailsPase.clickPrivate(forumRegiter.user1,"11111")# # 点赞# postDetailsPase.clikeLike()# # 回复postDetailsPase.clikeComment()# #换到对应模块# self.forumList(mode)## time.sleep(2)return Nonedef inputBox(self, content):Forum.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(content)pyautogui.press('enter')Forum.imagetSave()return None# 帖子发送def postSend(self):Forum.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.forumList("首页")print("点击帖子发送")time.sleep(10)Forum.imagetSave()return None# 模式切换def modeSwitch(self):try:Forum.find_element(By.CSS_SELECTOR,"body > div.page > header.navbar.navbar-expand-md.navbar-light.d-print-none > div > div > div:nth-child(2) > a.nav-link.px-0.hide-theme-dark").click()except:Forum.find_element(By.CSS_SELECTOR,"body > div.page > header.navbar.navbar-expand-md.navbar-light.d-print-none > div > div > div:nth-child(2) > a.nav-link.px-0.hide-theme-light").click()Forum.imagetSave()return None#私信箱def privateMailbox(self):Forum.find_element(By.CSS_SELECTOR,"body > div.page > header.navbar.navbar-expand-md.navbar-light.d-print-none > div > div > div:nth-child(2) > div > a").click()time.sleep(1)Forum.imagetSave()Forum.find_element(By.CSS_SELECTOR, "#index_message_offcanvasEnd > div.offcanvas-header > button").click()return None#我的帖子def mePost(self):time.sleep(2)Forum.find_element(By.CSS_SELECTOR,"body > div.page > header.navbar.navbar-expand-md.navbar-light.d-print-none > div > div > div.nav-item.dropdown > a").click()Forum.find_element(By.CSS_SELECTOR,"#index_user_profile").click()self.forumList("首页")Forum.imagetSave()return None#个人中心def personalCent(self):Forum.find_element(By.CSS_SELECTOR,"body > div.page > header.navbar.navbar-expand-md.navbar-light.d-print-none > div > div > div.nav-item.dropdown > a").click()Forum.find_element(By.CSS_SELECTOR, "#index_user_settings").click()Forum.imagetSave()self.forumList("首页")return None
forumfristPase = ForumFristPase()
4.2.4 发帖中心
import timefrom selenium.webdriver.common.by import By
from selenium.webdriver.support.select import Selectfrom Common.Utials import Forumclass PostSend:driver = ""url = ""def __init__(self):self.driver = Forum.driverself.url = Forum.urlForum.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()print("点击帖子发送")def contentInput(self, model = 1,title = "111",content = "1111"):select = Select(Forum.find_element(By.CSS_SELECTOR,"#article_post_borad"))select.select_by_index(model)Forum.find_element(By.CSS_SELECTOR,"#article_post_title").send_keys(title)Forum.find_element(By.CSS_SELECTOR,"#edit-article > div.editormd-toolbar > div > ul > li:nth-child(4) > a").click()self.driver.execute_script("arguments[0].click();", Forum.find_element(By.XPATH,'//*[@id="article_post_submit"]'))print("发送帖子")
4.2.5 帖子详情页
import timefrom selenium.webdriver.common.by import By
from selenium.webdriver.support.select import Selectfrom Common.Utials import Forum
# from Test.ForumFristPase import forumfristPase
from Test.ForumRegisiter import forumRegiter# 前台需要进入帖子详情页
class PostDetailsPase:driver = ""url = ""def __init__(self):self.driver = Forum.driverself.url = Forum.urldef start(self):time.sleep(2)# 标题self.title = Forum.find_element(By.CSS_SELECTOR, "#details_article_title").text# 发布的时间self.date = Forum.find_element(By.CSS_SELECTOR, "#details_article_createTime").text# 阅读量self.read = Forum.find_element(By.CSS_SELECTOR, "#details_article_visitCount").text# 点赞量self.likes = Forum.find_element(By.CSS_SELECTOR, "#details_article_likeCount").text# 评论量self.comment = Forum.find_element(By.CSS_SELECTOR, "#details_article_replyCount").text# 进入了帖子详情页# 判断def informationPost(self,read , likes, comment,title,date):#标题if(self.title != title):print("标题有误")return False# 发布的时间if (self.date != date):print("发布时间有误")return False#阅读量if ( int(self.read)-1 != int(read)):print("阅读量有误")return False# 点赞量if ( self.likes != likes):print("点赞量有误")return False# 点赞量if ( self.self.comment != likes):print("点赞量有误")return Falsereturn True# 点击私信发送def clickPrivate(self, name, content):#非本人if(Forum.find_element(By.CSS_SELECTOR,"#article_details_author_name").text != name):# 点击私信Forum.find_element(By.CSS_SELECTOR,"#btn_details_send_message").click()#发送私信Forum.find_element(By.CSS_SELECTOR,"#index_message_receive_content").send_keys(content)Forum.find_element(By.CSS_SELECTOR, "#btn_index_send_message").click()Forum.imagetSave()Forum.find_element(By.CSS_SELECTOR,"#index_message_modal > div > div > div.modal-header > button").click()print("私信发送完毕")#点赞def clikeLike(self):time.sleep(2)Forum.find_element(By.CSS_SELECTOR,"#details_btn_like_count").click()time.sleep(2)if(int(Forum.find_element(By.CSS_SELECTOR, "#details_article_likeCount").text) ==int(self.likes)+1):self.likes = Forum.find_element(By.CSS_SELECTOR, "#details_article_likeCount").textprint("点赞成功")else:print("点赞失败")#回复加发私信def clikeComment(self):#输入内容self.driver.execute_script("arguments[0].click();",Forum.find_element(By.CSS_SELECTOR,"#article_details_reply > div.editormd-toolbar > div > ul > li:nth-child(14) > a"))# 发送self.driver.execute_script("arguments[0].click();",Forum.find_element(By.XPATH, '//*[@id="details_btn_article_reply"]'))print("发送运行成功")time.sleep(6)# 私信发送try:name = Forum.find_element(By.XPATH,'//*[@id="details_reply_area"]/div[1]/div[1]/div/h3/a').textprint(name)if(name != forumRegiter.user1):#发私信Forum.find_element(By.CSS_SELECTOR,"#details_reply_area > div > div.col-3.card > div > div > a").click()Forum.find_element(By.CSS_SELECTOR, "#index_message_receive_content").send_keys("11111")Forum.find_element(By.CSS_SELECTOR, "#btn_index_send_message").click()Forum.imagetSave()Forum.find_element(By.CSS_SELECTOR, "#index_message_modal > div > div > div.modal-header > button").click()except:pass# 获取评论用户Forum.find_element(By.XPATH, '//div[@id="details_reply_area"]//a[@class="a_reply_user_profile"]').click()time.sleep(2)# forumfristPase.forumList("首页")
postDetailsPase = PostDetailsPase()
4.2.6 我的帖子
import timefrom selenium.webdriver.common.by import By
from selenium.webdriver.support.select import Selectfrom Common.Utials import Forum
from Test.ForumFristPase import forumfristPase
from Test.ForumRegisiter import forumRegiter
class Mepost():driver = ""url = ""def __init__(self):self.driver = Forum.driverself.url = Forum.urldef post(self):forumfristPase.forumList("首页")time.sleep(2)Forum.find_element(By.CSS_SELECTOR,"body > div.page > header.navbar.navbar-expand-md.navbar-light.d-print-none > div > div > div.nav-item.dropdown > a").click()Forum.find_element(By.CSS_SELECTOR, "#index_user_profile").click()# 获取当前的帖子数量time.sleep(2)post_1 = int(Forum.find_element(By.CSS_SELECTOR,"#profile_articleCount").text)#实际的帖子数量lis_1 = Forum.find_elements(By.XPATH, '//*[@id="profile_article_body"]/li')for i in lis_1:post_1-=1if(post_1 < 0):print("帖子数量有误")return None
3.2.7 私信回复
import timefrom selenium.webdriver.common.by import By
from selenium.webdriver.support.select import Selectfrom Common.Utials import Forumclass ReplyPrivate:driver = ""url = ""def __init__(self):self.driver = Forum.driverself.url = Forum.urldef Reply(self,content = "11111"):time.sleep(1)Forum.find_element(By.CSS_SELECTOR,"body > div.page > header.navbar.navbar-expand-md.navbar-light.d-print-none > div > div > div:nth-child(2) > div > a").click()time.sleep(1)Forum.imagetSave()# 获取所有的私信i= Forum.find_element(By.XPATH,'//div[@id="index_div_message_list"]/div//a[@class="text-body d-block index_message_title"]')print(i.get_attribute("href"))time.sleep(1)self.driver.execute_script("arguments[0].click();", i)time.sleep(1)# 回复self.driver.execute_script("arguments[0].click();",Forum.find_element(By.CSS_SELECTOR, "#btn_index_message_reply"))Forum.find_element(By.CSS_SELECTOR, "#index_message_reply_receive_content").send_keys(content)Forum.find_element(By.CSS_SELECTOR, "#btn_index_send_message_reply").click()try:Forum.find_element(By.CSS_SELECTOR, "#index_message_offcanvasEnd > div.offcanvas-header > button").click()time.sleep(12)except:passForum.imagetSave()
Bug简述
bug1:
版本 135.0.7049.96(正式版本) (64 位)
环境:Windons10
步骤:进入论坛主页,点击模块
预期结果:模块信息正常,功能正常切换
实际结果:模块信息存在缺陷,功能正常切换
Bug2
版本 135.0.7049.96(正式版本) (64 位)
环境:Windons10
步骤:进入论坛主页,点击右上角搜索框,输入内容
预期结果:搜索正常,功能正常切换
实际结果:搜索不成功,功能不正常
Bug3:
版本 135.0.7049.96(正式版本) (64 位)
环境:Windons10
步骤:进入论坛主页,点击头像,点击个人主页,更换头像,
预期结果:更换成功
实际结果:更换失败
Bug4
版本 135.0.7049.96(正式版本) (64 位)
环境:Windons10
步骤:进入论坛主页,点击帖子列表的帖子,跳转页面, 点击点赞按钮,
预期结果:每个用户只能点赞一次
实际结果:可以无限点赞
Bug5
版本 135.0.7049.96(正式版本) (64 位)
环境:Windons10
步骤:进入论坛主页,点击帖子列表的自己帖子,跳转页面, 进帖子删除或者修改
预期结果:可以删除或者修改
实际结果:个人帖子无删除和修改按钮
测试总结
本次测试覆盖了注册、登入、论坛主页面、个人中心、帖子详情页、私信回复等相关模块功能的测试。从中总结如下:
- 功能测试:部分模块存在功能未完善或者部分完善的状态,严重影响软件使用
- 界面测试:测试过程中,部分模块存在数值不准确,界面显示
- 易用性测试:测试过程中,存在较大问题,点击返回页面,直接跳转到登入界面,以及注册没有注册成功标识等
结论:基本功能大部分可以使用、用户体验感较差,缺失功能的模块应该增加修复速度。进一步完善。
Gitee
论坛测试脚本
相关文章:
论坛测试报告
作者前言 🎂 ✨✨✨✨✨✨🍧🍧🍧🍧🍧🍧🍧🎂 🎂 作者介绍: 🎂🎂 🎂 🎉🎉🎉…...
人脸扫描黑科技:多相机人脸扫描设备,打造你的专属数字分身
随着科技的迅猛发展,人脸扫描这个词已经并不陌生,通过人脸扫描设备制作超写实人脸可以为影视制作打造逼真角色、提升游戏沉浸感,还能助力教育机构等领域生产数字人以丰富教学资源,还在安防、身份识别等领域发挥关键作用࿰…...
统计字符串每个字符出现频率
输入一个字符串,统计每个字符的出现频率,然后判断最大频率与最小频率的差值 cnt: 如果 cnt 是质数,则输出 "Lucky Word" 和 差值; 否则输出 "No Answer" 和 0。 #include <bits/stdc.h> u…...
SQL-子查询
SQL子查询是嵌套在另一个SQL查询中的SELECT语句,将内部查询的结果作为外部查询的条件或者数据源。 核心概念 子查询是一个完整的SELECT语句,可以嵌入到其他查询的where, from, SELECT, HAVING等子句中,用于动态生成条件或临时数据集。 例如…...
Python(21)Python日期时间完全指南:从基础到实战注意事项
目录 一、背景与核心价值二、核心模块详解与实战2.1 datetime模块四剑客2.2 时区处理黄金法则 三、企业级应用案例3.1 全球日志分析系统3.2 金融交易时间校验 四、六大核心注意事项1. 时区意识优先原则2. 时间戳的精度陷阱3. 夏令时转换三步骤4. 日期格式化安全指南5. 性…...
【医学影像 AI】早产儿视网膜病变国际分类(第三版)
【医学影像 AI】早产儿视网膜病变国际分类(第三版) 0. 论文简介0.1 基本信息0.2 摘要0.3 缩略语0.4 ICROP3的关键内容总结 1. 引言2. 血管化位置:区域(ZONE)3. 加重病变与前加重病变4. 急性病变分期(阶段1-…...
焊接机器人的设计
一、引言 随着制造业的发展,焊接工艺在各个领域得到广泛应用。焊接机器人具有焊接质量高、效率高、劳动强度低等优点,能够满足现代制造业对焊接生产的要求。设计一款性能优良的焊接机器人,对于提高焊接生产的自动化水平和产品质量具有重要意…...
SQL SERVER里面也可以插入存储过程,操作TCP,WEBSOCKET吗?数据发生改变时用于通知客户端
SQL SERVER里面也可以插入存储过程,操作TCP,WEBSOCKET吗?数据发生改变时用于通知客户端SQL存储过程入门🔥 - 人生得E不早朝 深度思考完成 用时28秒 好的,用户的问题是:SQL Server里面是否可以通过插入存储过程来操作TCP或WebSocket&…...
利用 DeepSeek-R1 模型和计算机视觉微调模型实现马铃薯叶片疾病识别和分类
一、需求背景 在农业现代化进程中,作物健康监测对于保障粮食安全和提高农业生产效率起着举足轻重的作用。马铃薯作为全球重要的粮食作物之一,其种植面积广泛,产量和质量直接关系到众多农户的生计以及食品供应链的稳定。准确、快速地鉴别马铃…...
文章记单词 | 第39篇(六级)
一,单词释义 themselves [əmˈselvz] pron. 他们自己;她们自己;它们自己;(用以加强语气)他们亲自,她们亲自,它们亲自;(反身代词) 指某人或某物本…...
深入理解C++中string的深浅拷贝
目录 一、引言 二、浅拷贝与深拷贝的基本概念 2.1 浅拷贝 2.2 深拷贝 在C 中, string 类的深浅拷贝有着重要的区别。 浅拷贝 深拷贝 string 类中的其他构造函数及操作 resize 构造 构造(赋值构造) 构造(拼接构造…...
C++ 常用的智能指针
C 智能指针 一、智能指针类型概览 C 标准库提供以下智能指针(需包含头文件 <memory>): unique_ptr:独占所有权,不可复制, 可移动shared_ptr:共享所有权,用于引用计数weak_pt…...
【AI部署】腾讯云GPU-常见故障—SadTalker的AI数字人视频—未来之窗超算中心 tb-lightly
ERROR: Could not find a version that satisfies the requirement tb-nightly (from torchreid) (from versions: none) ERROR: No matching distribution found for tb-nightly 解决 阿里云 python -m pip install tb-nightly -i https://mirrors.aliyun.com/pypi/simple …...
三大等待和三大切换
三大等待 1、三大等待:等待的方式有三种:强制等待,隐性等待,显性等待。 1、强制等待:time.sleep(2),秒 优点:使用简单缺点:等待时间把握不准,容易造成时间浪费或者等待时…...
工程化实践:Flutter项目结构与规范
工程化实践:Flutter项目结构与规范 在Flutter项目开发中,良好的工程化实践对于提高开发效率、保证代码质量和团队协作至关重要。本文将从项目结构、代码规范、CI/CD流程搭建以及包管理等方面,详细介绍Flutter项目的工程化最佳实践。 项目结…...
数据结构-Map和Set
文章目录 1. 搜索树2. Map3. Set4. 哈希表4.1 哈希表的基本概念4.2 哈希表的实现方法4.3 Java中的哈希表实现 5. 哈希桶哈希桶的实现方式哈希桶的作用哈希桶的应用模拟实现 1. 搜索树 二叉搜索树(Binary Search Tree, BST)是一种特殊的二叉树࿰…...
cpolar 内网穿透 实现公网可以访问本机
1、登录网站,升级成专业版,测试的话建议选一个月付费,选择预留 2、保留的TCP地址增加一条记录,描述可以自己取 3、验证,生成一个Authtocken码 4、在安装目录下,打开CMD命令,复制上面的码运行aut…...
QT调用ffmpeg库实现视频录制
可以通过QProcess调用ffmpeg命令行,也可以直接调用ffmpeg库,方便。 调用库 安装ffmpeg ffmpeg -version 没装就装 sudo apt-get update sudo apt-get install ffmpeg sudo apt-get install ffmpeg libavdevice-dev .pro引入库路径,引入库 LIBS += -L/usr/lib/aarch64-l…...
AI专题(一)----NLP2SQL探索以及解决方案
前面写了很多编码、算法、底层计算机原理等相关的技术专题,由于工作方向调整的缘故,今天开始切入AI人工智能相关介绍。本来按照规划,应该先从大模型的原理开始介绍会比较合适,但是计划赶不上变化,前面通用大模型的工作…...
Redis 的指令执行方式:Pipeline、事务与 Lua 脚本的对比
Pipeline 客户端将多条命令打包发送,服务器顺序执行并一次性返回所有结果。可以减少网络往返延迟(RTT)以提升吞吐量。 需要注意的是,Pipeline 中的命令按顺序执行,但中间可能被其他客户端的命令打断。 典型场景&…...
群辉默认docker数据存储路径
做一下笔记 今天不小心路径规划错误,好不容易找到了数据,特此做个路径记录。 /var/packages/ContainerManager/var/docker/...
【C++】入门基础【上】
目录 一、C的发展历史二、C学习书籍推荐三、C的第一个程序1、命名空间namespace2、命名空间的使用3、头文件<iostream>是干什么的? 个人主页<—请点击 C专栏<—请点击 一、C的发展历史 C的起源可以追溯到1979年,当时Bjarne Stroustrup(本…...
Git LFS 学习笔记:原理、配置、实践与心路历程
最近在学习 Git LFS,把一些零散的笔记整理成一篇博文,记录我的学习思路与心路历程。以下内容均为个人理解总结,部分尚未在生产项目中验证,仅供回顾与参考。 🔍 Git LFS 是什么?原理是什么? 刚接…...
SpringBoot集成oshi 查询系统数据
实现功能: <!-- 获取系统信息 --><dependency><groupId>com.github.oshi</groupId><artifactId>oshi-core</artifactId><version>6.6.1</version></dependency><dependency><groupI…...
iOS Facebook 登录
iOS Facebook 登录 官方文档 SDK下载链接...
uniapp打包IOS私钥证书过期了,如何在非mac系统操作
在非Mac系统下解决uniapp打包iOS私钥证书过期的问题,需通过以下步骤实现: --- ### **一、重新生成iOS证书(非Mac环境操作)** 1. **生成私钥和CSR文件** 使用OpenSSL工具(需提前安装)生成私钥和证书签…...
Axios的使用
Axios 是一个基于 Promise 的现代化 HTTP 客户端库,专为浏览器和 Node.js 设计。在企业级应用中,它凭借以下核心优势成为首选方案: 一、Axios 的核心优势 特性说明Promise 支持天然支持异步编程,避免回调地狱拦截器机制可全局拦截…...
第八篇:系统分析师第三遍——3、4章
目录 一、目标二、计划三、完成情况四、意外之喜(最少2点)1.计划内的明确认知和思想的提升标志2.计划外的具体事情提升内容和标志 五、总结 一、目标 通过参加考试,训练学习能力,而非单纯以拿证为目的。 1.在复习过程中,训练快速阅读能力、掌…...
【2025-泛计算机类-保研/考研经验帖征集】
【2025-泛计算机类-保研/考研经验帖征集】 打扰您1分钟时间看下这里: 这是一个无偿为爱发电的项目,旨在收集湖南大学2025届毕业的计算机类学科同学的经验帖, 我将定期汇总链接,在校内推免群中宣传,为校内的学弟学妹们…...
Flink介绍——实时计算核心论文之Kafka论文详解
引入 我们通过S4和Storm论文的以下文章,已经对S4和Storm有了不错的认识: S4论文详解S4论文总结Storm论文详解Storm论文总结 不过,在讲解这两篇论文的时候,我们其实没有去搞清楚对应的流式数据是从哪里来的。虽然S4里有Keyless …...
细节:如何制作高质量的VR全景图
细节:如何制作高质量的VR全景图 VR全景图是通过虚拟现实和3D技术实现的全景展示方式,能够将实景以1:1的比例等比复刻,并还原到互联网上,使用户能够在线上游览世界,获得沉浸式的体验。制作高质量的VR全景图是一个复杂而…...
深度学习中的概念——元素积(哈达玛积)
元素积操作(哈达玛积) 🔢 基本定义 矩阵的哈达玛积 对于两个同维度的矩阵: A [ a i j ] , B [ b i j ] A [a_{ij}], \quad B [b_{ij}] A[aij],B[bij] 它们的哈达玛积定义为: C A ∘ B 其中 c i j a i j…...
探索 Flowable 后端表达式:简化流程自动化
什么是后端表达式? 在 Flowable 中,后端表达式是一种强大的工具,用于在流程、案例或决策表执行期间动态获取或设置变量。它还能实现自定义逻辑,或将复杂逻辑委托…… 后端表达式在 Flowable 的后端运行,无法访问前端…...
AI语音助手 React 组件使用js-audio-recorder实现,将获取到的语音转成base64发送给后端,后端接口返回文本内容
页面效果: js代码: import React, { useState, useRef, useEffect } from react; import { Layout, List, Input, Button, Avatar, Space, Typography, message } from antd; import { SendOutlined, UserOutlined, RobotOutlined, AudioOutlined, Stop…...
《软件设计师》复习笔记(11.6)——系统转换、系统维护、系统评价
目录 一、遗留系统(Legacy System) 定义: 特点: 演化策略(基于价值与技术评估): 高水平 - 低价值: 高水平 - 高价值: 低水平 - 低价值: 低水平 - 高价…...
学习threejs,使用EffectComposer后期处理组合器(采用RenderPass、GlitchPass渲染通道)
👨⚕️ 主页: gis分享者 👨⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨⚕️ 收录于专栏:threejs gis工程师 文章目录 一、🍀前言1.1 ☘️THREE.EffectComposer 后期…...
Yarn的定义?
YARN(Yet Another Resource Negotiator) 是 Apache Hadoop 的核心组件之一,负责集群的资源管理和任务调度。它的主要作用是将 Hadoop 的资源管理和作业调度/监控功能分离,形成一个通用的资源管理平台,可以支持多种计算…...
职坐标IT培训热门技术实战精讲
在数字化转型浪潮中,人工智能、大数据与云原生已成为驱动产业升级的核心引擎。职坐标IT培训课程以实战导向为基石,聚焦高薪岗位核心技术栈,通过拆解企业级项目案例,将复杂的技术理论转化为可落地的工程实践。课程模块涵盖从架构设…...
前端:uniapp框架中<scroll-view>r如何控制元素进行局部滚动
以下是使用 <scroll-view> 实现局部滚动的完整示例,包含动态内容、滚动控制和滚动位置监听: 一、基础局部滚动示例 <template><view class"container"><!-- 固定高度的滚动容器 --><scroll-view scroll-y :scroll…...
【KWDB 创作者计划】_算法篇---Stockwell变换
文章目录 前言一、Stockwell变换原理详解1.1 连续S变换定义1.2 离散S变换1.3简介 二、S变换的核心特点2.1频率自适应的时频分辨率2.1.1高频区域2.1.2低频区域 2.2无交叉项干扰2.3完全可逆2.4相位保持2.5与傅里叶谱的直接关系 三、应用领域3.1地震信号分析3.2生物医学信号处理3.…...
桌面级OTA测试解决方案:赋能智能网联汽车高效升级
一、前言 随着智能网联汽车的快速发展,OTA(Over-The-Air)技术已成为汽车软件更新和功能迭代的关键手段。为确保OTA升级的可靠性、安全性和效率,构建一套高效、便捷的桌面级OTA测试解决方案至关重要。 本方案基于Vector先进的软硬…...
京东物流基于Flink StarRocks的湖仓建设实践
摘要:本文整理自京东物流高级数据开发工程师梁宝彬先生在 Flink Forward Asia 2024 论坛中的分享。内容主要为以下四个部分: 1、实时湖仓探索与建设 2、实时湖仓应用 3、问题与思考 4、未来展望 今天,将分享的主题大纲包括:首先&a…...
【Test Test】灰度化和二值化处理图像
文章目录 1. 图像灰度化处理对比2. 代码示例3. 二值化处理 1. 图像灰度化处理对比 2. 代码示例 #include <opencv2/opencv.hpp> using namespace cv;int main() {Mat currentImage imread("path_to_image.jpg"); // 读取彩色图像Mat grayImage;// 将彩色图像…...
Docker快速入门
1 基本信息 1.1 基础概览 (1)容器与镜像 容器:轻量级的独立运行时环境,基于Linux的命名空间(namespace)和控制组(cgroup)技术实现资源隔离。容器通过镜像创建,每个容…...
AI 编程工具—如何在 Cursor 中集成使用 MCP工具
AI 编程工具—如何在 Cursor 中集成使用 MCP工具 这里我们给出了常用的MCP 聚合工具,也就是我们可以在这些网站找MCP服务 这是一个MCP Server共享平台,用户可以在上面发布和下载MCP Server配置。在这里可以选择你需要的MCP 服务。 如果你不知道你的mcp 对应的server 名称也不…...
航电系统通信与数据链技术分析
一、技术要点 1. 高带宽与低时延通信技术 航电系统需支持实时数据传输,如民航VDL2数据链采用D8PSK调制和Reed Solomon编码技术,传输速率达31.5Kb/s,并通过物理层优化减少码间串扰。新一代LDACS系统则利用L频段频谱,提供比传统VD…...
windwos脚本 | 基于scrcpy,只投声音、只投画面
安装scrcpy,scrcpy自带adb 写脚本命名为 .bat 结尾 注意这里的set "PATHD:\tools\scrcpy-win64-v3.2;%PATH%" 替换成scrcpy的安装目录 echo off :: 设置UTF-8编码 chcp 65001 > nul :: 设置标题 title 手机投屏工具:: 添加 scrcpy 路径到 PATH set &q…...
产品经理面试题与参考答案资料(2025年版)
一、技术背景与工具能力 问题1: 软件开发生命周期(SDLC)包括哪些阶段?作为产品经理,你如何参与每个阶段? 参考答案: 软件开发生命周期通常划分为需求分析、设计、开发、测试、部署和维护六个阶段。作为产品经理,你需要在...
HTML 初识
段落标签 <p><!-- 段落标签 -->Lorem ipsum dolor sit amet consectetur adipisicing elit. Fugiat, voluptate iure. Obcaecati explicabo sint ipsum impedit! Dolorum omnis voluptas sint unde sed, ipsa molestiae quo sapiente quos et ad reprehenderit.&l…...
CSS3笔记
文章目录 1.CSS的概念2.CSS的引入方式3.选择器3.1基础选择器3.1.1标签选择器3.1.2类选择器3.1.3id选择器3.1.4通配符选择器 4.画盒子5.文字控制属性5.1 字体大小-font-size5.2 字体粗细-font-weight5.3 字体倾斜-font-style5.4 行高-line-height5.5 字体族-font-family5.6 字体…...