0


个人博客系统测试(selenium)

P. S.:以下代码均在VS2019环境下测试,不代表所有编译器均可通过。P. S.:测试代码均未展示头文件stdio.h的声明,使用时请自行添加。

在这里插入图片描述

                    博主主页:Yan. yan.
                       C语言专栏
                      数据结构专栏
                    力扣牛客经典题目专栏
                    C++专栏
                    软件测试

文章目录

一、项目背景

  • 项目概要   本项目是一个全功能的个人博客系统,旨在提供一个用户友好、功能全面的平台,允许用户注册、登录、浏览博客、查看详细内容、发表评论以及发布和管理个人博文。项目的核心功能包括博客列表、博客详情页、用户登录注册、个人中心和发布博客功能。
  • 测试报告目的   测试报告的主要目的是验证博客系统的功能完整性、性能和安全性。通过对每个核心功能的综合测试,确保系统能够在真实环境中稳定运行,并满足用户的预期需求。此外,报告还旨在识别潜在的问题和缺陷,为后续的开发和改进提供指导。
  • 测试总体执行情况   主要针对常见功能进行测试例如:博客登录页面,博客列表页面,博客详情页,博客编辑页…

二、测试环境

软件:Google Chrome
测试工具:自动化测试工具Selenium
操作系统:Windows 11
浏览器版本:Google Chrome版本 129.0.6668.59(正式版本) (64 位)

三、手工测试用例

博客登录页
在这里插入图片描述

个人博客列表页
在这里插入图片描述

博客详情页
在这里插入图片描述
博客编辑页
在这里插入图片描述

四、编写测试用例

在这里插入图片描述

五、自动化测试selenium

  • 创建浏览器对象
#创建一个浏览器对象
import datetime
import os.path
import sys
import time

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager

classDriver:
    driver =""
    def __init__(self):
        options = webdriver.ChromeOptions()
        self.driver = webdriver.Chrome(service =Service(ChromeDriverManager().install()), options = options)
        self.driver.implicitly_wait(2)
    def getScreeeShot(self):
        # 创建屏幕截图
        ifnot os.path.exists("../images"):
            os.mkdir("../images")
        time.sleep(2)
        dirname = datetime.datetime.now().strftime("%Y-%m-%d")
        #判断dirname文件夹是否存在,若不存在则创建文件夹
        ifnot os.path.exists("../images/"+ dirname):
            os.mkdir("../images/"+ dirname)
        time.sleep(2)
        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()
  • 测试博客登录页面
import time
from selenium.webdriver.common.by import By
from common.utils import BlogDriver
#测试博客登录页面

classBolgLogin:
    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(3)
        #能够找到昵称说明成功了
        self.driver.find_element(By.CSS_SELECTOR,"body > div.container > div.left > div > h3")

        # 添加一个屏幕截图
        #BlogDriver.getScreeeShot()

        #返回登录页面
        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("zhangsan")
        #错误密码
        self.driver.find_element(By.CSS_SELECTOR,"#password").send_keys("123")
        self.driver.find_element(By.CSS_SELECTOR,"#submit").click()
        time.sleep(3)

        # 添加一个屏幕截图
        BlogDriver.getScreeeShot()

        time.sleep(3)
        self.driver.quit()

login =BolgLogin()
login.LoginSucTest()
login.LoginFailTest()
  • 博客首页测试用例
from selenium.webdriver.common.by import By

from common.utils import BlogDriver
#博客首页测试用例

classBlogList:
    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")

list =BlogList()
list.ListTestByLogin()
  • 博客详情页
from selenium.webdriver.common.by import By

from common.utils import BlogDriver

#博客详情页
classBlogDeail:
    url =""
    driver =""
    def __init__(self):
        self.url ="http://8.137.19.140:9090/blog_detail.html?blogId=5128"
        self.driver = BlogDriver.driver
        self.driver.get(self.url)

    #登录状态下博客详情页测试

    def DeailTestByLogin(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,"#detail > p")
  • 博客编辑页面
from selenium.webdriver.common.by import By

from common.utils import BlogDriver
#博客编辑页面
classBlogEdit:
    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,"#editor > div.editormd-toolbar > div > ul > li:nth-child(21) > a > i").clear()
        #直接点击发布按钮来发布博客
        self.driver.find_element(By.CSS_SELECTOR,"#submit").click()
  1. 创建浏览器对象 创建测试化对象,负责初始化浏览器,以及相应的屏幕截图。
  2. 测试博客登录页面 登录博客,读取用户名、密码和预期的博客列表URL。 打开博客登录页面并输入账号密码。 点击提交按钮,验证是否成功跳转到博客列表页。 检查页面上是否显示了正确的用户名。
  3. 博客首页测试用例 打开博客列表页面 检查标题,内容,按钮等是否存在 点击博客列表中的“查看全文”按钮,验证当前URL、页面标题和博客标题是否符合预期。
  4. 博客详情页 查看已发布的文章,是否与预期相符 读取标题、时间、内容等是否符合预期
  5. 博客编辑页面 检查博客编写是否存在问题 检查标题、按钮、编辑区(博客编辑区域不好找,默认情况下为空,可以暂时不考率)

这个测试流程涵盖了博客系统的主要功能,包括登录、列表展示、详情查看、写博客、信息校验。每个测试用例都设计有明确的预期结果,并通过断言来验证这些预期是否得到满足。


本文转载自: https://blog.csdn.net/2401_82669797/article/details/142526602
版权归原作者 Yan. yan.好好学习 所有, 如有侵权,请联系我们删除。

“个人博客系统测试(selenium)”的评论:

还没有评论