一.概述
1.1 测试背景
博客系统是运行在Web服务器上的软件,用于快速创建、管理和发布网络博客。它不仅是个人表达的窗口,更是知识沉淀与品牌塑造的重要阵地。
1.2测试目标
1.检查博客系统页面色彩,UI,文字格式是否有误
2.测试博客系统各个功能是否符合产品文档要求
3.测试博客系统操作是否稳定
1.3 测试文档
|
类型 | 配置版本 |
| 测试硬件设备 | 神舟战神Z7 |
| 手动化测试浏览器 | Microsoft Edge版本 146.0.3856.78 (正式版本) (64 位) |
| 自动化开发环境 | PyCharm Community Edition 2023.2.2 |
| 自动化测试工具 | Selenium4.2 |
| 操作系统 | Windows 11 |
| 自动化测试浏览器 | Microsoft Edge版本 146.0.3856.78 (正式版本) (64 位) |
二.测试用例
测试用例是一组输入、执行条件和预期结果的集合,目的是验证软件是否满足需求规格。
2.1 登录页面测试用例

2.2主页面测试用例

2.3写博客页面测试用例

三.手动化测试
手动测试(Manual Testing),也称为手工测试。它是软件测试中最基础、最传统的一种方式,由测试人员手工执行测试用例,模拟真实用户的操作,观察系统实际行为是否与预期一致,并记录缺陷。
3.1登录页面手动化测试






3.2 主页面手动化测试




3.3写博客页面手动化测试









四。自动化测试
自动化测试是指使用专门的软件工具、脚本或框架,自动执行预定义的测试用例,并将实际结果与预期结果进行比较,从而验证软件系统是否符合要求的过程。它替代了传统的人工重复操作,是软件测试领域中提高效率、保证质量的重要手段。
3.0创建函数接口
import datetime
import os.path
import sys
from selenium import webdriver
from selenium.webdriver.edge.service import service
from webdriver_manager.microsoft import EdgeChromiumDriverManager
class Driver:
driver = ""
def __init__(self):
options = webdriver.edgeOptions()
self.driver = webdriver.edge(Service=(EdgeChromiumDriverManager().install()),options=options)
self.driver.implicitly_wait(2)
def getScreeShot(self):
#创建屏幕截图
#图片文件名称:.
dirname = datetime.datetime.now().strftime("%Y-%m-%d")
#判断dirname文件夹是否已经存在,若不存在则创建文件夹
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("../images/"+dirname+"/"+filename)
BlogDriver = Driver()
3.1登录页面测试
import time
from selenium.webdriver.common.by import By
from common.Utils import BlogDriver
#测试博客登陆页面
class BlogLogin:
url = ""
driver = ""
def __init__(self):
self.url = "http://49.235.61.184:19090/blog_edit.html"
self.driver = BlogDriver.driver
self.driver.get(self.url)
#成功登陆的测试用例
def LoginSucTest(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("123456")
self.driver.find_element(By.CSS_SELECTOR,"#submit").click()
#能够找到博客首页用户的昵称,说明登录成功,否则登录失败
self.driver.find_element(By.CSS_SELECTOR,"body > div.container > div.left > div > h3")
#添加屏幕截图
BlogDriver.getScreeShot()
#返回到登陆页面
self.driver.back()
#异常登陆的测试用例
def LoginFailTest(self):
#若连续多次的send_keys则会出现关键词拼接,而不是替换。若要替换需要先clear
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("admin")
#错误的密码
self.driver.find_element(By.CSS_SELECTOR, "#password").send_keys("1234")
self.driver.find_element(By.CSS_SELECTOR, "#submit").click()
#检查是否登录失败
actual=self.driver.find_element(By.CSS_SELECTOR,"body").text
#添加屏幕截图
BlogDriver.getScreeShot()
#断言检测一下是否符合预期
assert actual == "用户名或密码错误!"
login = BlogLogin()
login.LoginSucTest()
login.LoginFailTest()
3.2主页测试
from selenium.webdriver.common.by import By
from common.Utils import BlogDriver
#博客主页测试用例
class BlogList:
url = ""
driver = ""
def __init__(self):
self.url = "http://49.235.61.184:19090/blog_edit.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 > 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 > div.operating > button:nth-child(1)")
#个人信息-检查昵称是否存在
#self.driver.find_element(By.CSS_SELECTOR,"body > div.container > div.left > div > h3")
#添加屏幕截图
BlogDriver.getScreeShot()
3.1写博客测试
from selenium.webdriver.common.by import By
from common.Utils import BlogDriver
#测试博客详情页
class BlogDeail:
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 DetailTestByLogin(self):
#检查标题
self.driver.find_element(By.CSS_SELECTOR, )
#检查时间
self.driver.find_element(By.CSS_SELECTOR,"body > div.container > div.right > div > div.date")
#检查内容
self.driver.find_element(By.CSS_SELECTOR,"#content > p")
#屏幕截图
BlogDriver.getScreeShot()
import time
from selenium.webdriver.common.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整个生命周期
#显示等待:可以作用在当前代码中
time.sleep(3)
actual=self.driver.find_element(By.CSS_SELECTOR,"body > div.container > div.right > div:nth-child(1) > div.title").text
assert actual == "自动化测试创建"
#屏幕截图
BlogDriver.getScreeShot()
五.结语
本篇主要介绍测试软件项目相关流程,供小伙伴们参考学习,愿与大家共同进步,祝天天开心~

1182

被折叠的 条评论
为什么被折叠?



