关于博客系统的测试报告
- 游戏开发
- 2025-09-17 14:00:02

1.项目简介
博客系统是一款面向个人创作者、企业及技术爱好者设计的内容管理平台,旨在为用户提供高效、灵活的内容发布与管理解决方案。系统通过模块化架构实现多场景适配,兼顾轻量化与可扩展性,满足从个人记录到企业信息发布的多层次需求。
用户端提供直观的内容展示界面,支持文章分类检索、全文搜索及跨设备响应式布局。读者可通过评论、点赞与社交分享功能参与互动,增强内容传播效果。管理后台集成文章编辑(支持Markdown与富文本)、多用户权限管理及数据统计模块,管理员可实时监控访问流量、用户行为等关键指标,优化运营策略。扩展功能涵盖SEO工具、多语言切换及第三方登录接口,进一步提升平台适用性。
2.测试用例设计一个项目的测试用例主要从以下六个方面进行,功能测试,性能测试,兼容性测试,安全测试,界面测试,易用性测试。
3.执行测试 3.1用户登录界面测试3.1.1界面显示是否正常
页面包括用户名输入框和密码输入框,以及登录提交按钮(在输入密码时进行密文展示)
3.1.2登录功能是否正常
正确输入的情况:
错误输入的情况:
此时会出现输入错误提示框,点击确定后立即返回登陆界面
3.2博客首页测试3.2.1界面显示是否正常
在登录界面输入正确的账号和密码后进入博客首页界面,并正确展示出用户名称,头像,以及文章分类和博客列表
3.2.2我的博客系统菜单栏是否正常
点击写博客会跳转到博客编辑页面,在此页面时再点击主页则退回到博客首页面,此时标题栏旁边的选项为发布文章
3.3博客详情页测试3.3.1界面显示是否正常
页面存在用户名,文章分类,以及编辑,删除等元素,详情页中展示的内容正常没有出现乱码或空白的情况则正常
对博客的修改也是成功的
3.3.3删除博客功能是否正常
点击删除选项后会弹出确认提示框,再点击确认后博客就会被正常删除,点击取消则不变
3.4博客编辑页测试3.4.1界面显示是否正常
3.4.2编辑发布博客功能是否正常
4.基于python以及Selenium实现的自动化测试
基于 Python 和 Selenium 的自动化测试通过模拟真实用户操作实现对 Web 应用程序的自动化验证,其核心原理依赖于 Selenium WebDriver 与浏览器内核的深度交互。测试脚本通过 Python 调用 Selenium 提供的 API 接口,将用户行为(如点击、输入、页面跳转)转换为浏览器可执行的指令。
基本步骤为:下载驱动->创建驱动->调用Selenium提供的接口来对页面进行我们的自动化操作
import time from selenium import webdriver from selenium.webdriver.chrome.service import Service from selenium.webdriver mon.by import By from webdriver_manager.chrome import ChromeDriverManager #下载驱动 ChromeIns=ChromeDriverManager().install() #创建谷歌浏览器的驱动 driver=webdriver.Chrome(service=Service(ChromeIns)) #输入百度网址 driver.get(" .baidu ") time.sleep(2) #输入关键词 driver.find_element(By.CSS_SELECTOR,"#kw").send_keys("牢大") time.sleep(2) #点击百度一下按钮 driver.find_element(By.CSS_SELECTOR,"#su").click() time.sleep(2) #关闭浏览器 driver.quit() Until文件由此可知我们在每一次进行测试之前都要进行下载驱动和创建驱动,浏览器对象是每个页面都会调用的(多次创建消耗性能),所以把创建浏览器对象单独拿出来放到一个文件中,这里使用Until.py 文件。
#Util #创建一个浏览器对象 import datetime import os.path import sys from selenium import webdriver from selenium.webdriver.chrome.service import Service from webdriver_manager.chrome import ChromeDriverManager class Driver: driver = "" def __init__(self): options = webdriver.ChromeOptions() self.driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()),options=options) #隐式等待 #在页面内容较为丰富时,通常代码执⾏的速度⽐⻚⾯渲染的速度要快,如果避免因为渲染过慢出现的⾃动化误报的问题呢?可 # 以使⽤selenium中提供的三种等待⽅法:强制,显示,隐式 self.driver.implicitly_wait(2) #截图进阶 def getScreeShot(self): #创建屏幕截图 #图片文件名称:./2024-05-08-173456.png dirname = datetime.datetime.now().strftime("%Y-%m-%d") #判断dirname文件夹是否已经存在,若不存在则创建文件夹 # ../images/2024-05-08 if not os.path.exists("../images/"+dirname): os.mkdir("../images/"+dirname) #2024-05-08-173456.png #图片路径:../images/调用方法-2024-05-08/2024-05-08-173456.png #图片路径:../images/LoginSucTest-2024-05-08/2024-05-08-173456.png #图片路径:../images/LoginFailTest-2024-05-08/2024-05-08-173456.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("../images/"+dirname+"/"+filename) BlogDriver = Driver() RunTest文件设置一个主函数(if __name__ == "__main__":),来测试个个页面是否能正常运行
from common.Utils import BlogDriver from tests import BlogLogin from tests import BlogList from tests import BlogDetail from tests import BlogEdit from common.Utils import BlogDriver if __name__ == "__main__": #BlogLogin.BlogLogin().LoginFailTest() BlogLogin.BlogLogin().LoginSucTest() #登陆成功之后就可以调用博客首页测试首页的用例(登陆状态) BlogList.BlogList().ListTestByLogin() #测试登录状态下的博客详情页 BlogDetail.BlogDeail().DetailTestByLogin() #博客编辑页面 BlogEdit.BlogEdit().EditSucTestByLogin() #指定浏览器的退出 BlogDriver.driver.quit() Blogtest文件 a.BlogLogin通过driver进入登录界面,输入正确或不正确的账号密码
import time from selenium.webdriver mon.by import By from common.Utils import BlogDriver #测试博客登录页面 class BlogLogin: url = "" driver = "" def __init__(self): self.url = "http://8.137.19.140:9090/blog_login.html" self.driver = BlogDriver.driver self.driver.get(self.url) # 成功登录 def LoginSucTest(self): self.driver.find_element(By.CSS_SELECTOR,"#username").send_keys("zhangsan") self.driver.find_element(By.CSS_SELECTOR, "#password").send_keys("123456") #能找到博客页面的用户名称则登陆成功 self.driver.find_element(By.CSS_SELECTOR, "#submit").click() time.sleep(2) #self.driver.quit() #失败登录 def LoginFailTest(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() # 能找到博客中登录失败的提醒 actual=self.driver.find_element(By.CSS_SELECTOR, "").text() login = BlogLogin() #login.LoginSucTest() #login.LoginFailTest()正确情况下进入博客列表页:
错误情况下出现密码错误提示框:
b.BlogList from selenium.webdriver mon.by import By from common.Utils import BlogDriver #博客首页测试用例 class BlogList: url = "" driver = "" def __init__(self): self.url = "http://8.137.19.140:9090/blog_list.html" self.driver = BlogDriver.driver self.driver.get(self.url) #测试首页(登录情况下) def ListTestByLogin(self): #测试博客标题是否存在 self.driver.find_element(By.CSS_SELECTOR,"body > div.container > div.right > div:nth-child(1) > div.title") #测试博客内容是否存在 self.driver.find_element(By.CSS_SELECTOR,"body > div.container > div.right > div:nth-child(1) > div.desc") #测试按钮是否存在 self.driver.find_element(By.CSS_SELECTOR,"body > div.container > div.right > div:nth-child(1) > a") #个人信息-检查昵称是否存在 self.driver.find_element(By.CSS_SELECTOR,"body > div.container > div.left > div > h3") #添加屏幕截图 BlogDriver.getScreeShot() #测试首页(未登录情况下) #未登录情况下会自动跳转到博客登录界面测试成功,所有查找的元素都存在则无报错
c.BlogDetail from selenium.webdriver mon.by import By from common.Utils import BlogDriver #测试博客详情页 class BlogDeail: url = "" driver = "" def __init__(self): self.url = "http://8.137.19.140:9090/blog_detail.html?blogId=19181" self.driver = BlogDriver.driver self.driver.get(self.url) #登陆状态下博客详情页的测试 def DetailTestByLogin(self): #检查标题 self.driver.find_element(By.CSS_SELECTOR,"body > div.container > div.right > div > div.title") #检查时间 self.driver.find_element(By.CSS_SELECTOR,"body > div.container > div.right > div > div.date") #检查内容 self.driver.find_element(By.CSS_SELECTOR,"#h2-u5728u8FD9u91CCu5199u4E0Bu4E00u7BC7u535Au5BA2") #屏幕截图 BlogDriver.getScreeShot()d.BlogEdit import time from selenium.webdriver mon.by import By from common.Utils import BlogDriver #测试博客编辑页面 class BlogEdit: url = "" driver = "" def __init__(self): self.url = "http://8.137.19.140:9090/blog_edit.html" self.driver = BlogDriver.driver self.driver.get(self.url) #正确发布博客(登陆状态下) def EditSucTestByLogin(self): self.driver.find_element(By.CSS_SELECTOR,"#title").send_keys("自动化测试创建") #找到编辑区域,输入关键词(编辑区域不可操作) #菜单栏无法元素无法定位 #博客系统编辑区域默认情况下就不为空,可以暂不处理 #直接点击发布按钮来发布博客 self.driver.find_element(By.CSS_SELECTOR,"#submit").click() #点击完成之后出现页面的跳转,页面跳转需要加载时间,可能会出现代码执行的速度比页面渲染的速度要快,导致元素查找不到,因此可以添加等待 #添加隐式等待和显示等待都可以,任选择一个 #隐式等待:创建浏览器对象之后就可以加上,因为隐式等待的作用域在driver整个生命周期 #显示等待:可以作用在当前代码中 #actual=self.driver.find_element(By.CSS_SELECTOR,"body > div.container > div.right > div:nth-child(10) > div.title").text #assert actual == "自动化测试创建" #屏幕截图 BlogDriver.getScreeShot()
总结:
通过本次学习,掌握了 Python 自动化测试的核心技术栈,能够独立完成 Web自动化测试脚本开发,并设计可维护的测试框架。未来需进一步结合工程化思维,提升测试覆盖率与执行效率,向测试开发全链路能力进阶。
5.软件测试-性能测试基于jmeter实现的性能测试
1.在jmeter中实现一个简单的http请求先创建一个线程组,可以包含多个http请求,但我们现在只创建一个
配置http请求相关内容
这些配置来源于login的Curl(bash)
创建一个查看结果树,来查看请求运行的结果
2.使用jmeter来模仿多个用户的访问3.添加其他页面的http请求
可以看到这里添加博客列表页后出现了一个401的异常
我们先看一看出现错误的原因,原因是缺少了目标资源的有效认证凭证,说人话就是缺少了用户的登陆凭证,在访问列表页面时无法确认登录状态
我们先在postman上面实验一下,看看加上用户凭证能不能成功
结果成功了,我们在jmeter来实现一下
在jmeter中添加请求头的方法
在信息头管理器里面用户登录凭证用JSON表达式来表示(${token})
3.添加一个博客这里发现失败了
使用网页和postman再发送,对比一下请求头和请求体
发现请求头中的 content-type 不一致
再次编辑博客页设置请求头参数
将content- type 设置为application/json
运行后,响应成功了
4.同步定时器JMeter同步定时器的作⽤主要在于模拟多⽤⼾并发访问的场景,确保多个线程能够同时执⾏某个操 作,以达到真正的并发效果。 当多个线程同时启动时,它们可能会在不同的时间间隔内执⾏,这样就⽆法达到真正的并发效果。同 步定时器的作⽤就是将这些线程的执⾏时间同步,使它们在同⼀时间点执⾏。它可以在多个线程之间 制造⼀定的延迟,直到同时到达指定时间点,再同时执⾏后续的操作。 此外,同步定时器可以理解为集合点,当线程数量达到指定值后,再⼀起释放,可以瞬间产⽣很⼤的 压⼒。这样,可以更好地模拟真实的⽤⼾并发访问场景,提⾼测试的准确性和可靠性。 在性能测试过程中,为了真实模拟多个⽤⼾同时进⾏操作以度量服务器的处理能⼒,可以使⽤同步定 时器来设置集合点。不过,虽然通过加⼊集合点可以约束请求同时发送,但不能确保请求同时到达服 务器,所以只能说是较真实模拟并发。
5.事务控制器JMeter事务控制器的作⽤主要⽤于测试执⾏嵌套测试元素所花费的总时间。这相当于模拟⽤⼾进⾏⼀ 系列操作的测试。 在进⾏⻚⾯性能测试或API性能测试时,事务控制器是⼀个⾮常重要的⼯具。它可以帮助测试⼈员更准 确地评估系统性能,尤其是在涉及多个接⼝或操作的复杂场景中。例如,在订单提交的过程中,可能 需要调⽤多个接⼝,并且某些接⼝可能依赖于前⼀个接⼝的结果。在这种情况下,使⽤事务控制器可 以将这些接⼝统⼀视为⼀个事务进⾏性能测试,从⽽得到更接近真实场景的性能测试结果。
6.梯度压测线程组看到这里有很多的选项具体的含义如下
关于博客系统的测试报告由讯客互联游戏开发栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“关于博客系统的测试报告”