博客系统测试报告

一.概述

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()

五.结语

本篇主要介绍测试软件项目相关流程,供小伙伴们参考学习,愿与大家共同进步,祝天天开心~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值