项目《博客系统》测试报告

测试目标及测试任务概括

本次测试的内容为博客系统,其中包括用户登录功能,博客列表页功能,编辑博客功能以及博客详情页功能的UI自动化和功能测试。

测试功能

该博客系统实现了登录功能,用户名及密码已写入后端数据库,填入先前记录的用户名以及密码,点击登录按钮,即可跳转至博客系统个人主界面,无用户注册界面。创建博客功能,点击右上角写博客字样,跳转至编辑博客页进行创建。修改博客功能,点击博客列表查看全文字样,点击编辑按钮进行修改博客具体内容。删除博客功能,点击博客列表查看全文字样,点击删除按钮删除博客。

自动化测试用例

功能测试 

正常登录

博客系统个人主页

编辑博客 

 修改博客

删除博客

 经测试博客系统主要功能没有问题,由于测试体量不大可能存在细节不到位等情况发生等风险,项目可暂时上线,项目上线后高优先观察线上数据,查看线上用户操作日志,及时跟进用户反馈。

自动化测试

准备工作
#创建驱动对象
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()
    # options.page_load_strategy = 'eager'
    self.driver =
    webdriver.Chrome(service=Service(ChromeDriverManager().install()),options=options)
    def getScreenShot(self):
    dirname = datetime.datetime.now().strftime('%Y-%m-%d')
    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(f'../images/{dirname}/' + filename)

BlogDriver = Driver()
登录功能测试
import time
from selenium.webdriver.common.by import By
from common.Utils import BlogDriver

class BlogLogin:
    url = ""
    driver = ""
    def __init__(self):
        self.url = "http://192.168.47.135:8653/blog_system/blog_login.html"
        self.driver = BlogDriver.driver
        self.driver.get(self.url)

    def loginSucTest(self):
        time.sleep(2)
        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("123")
        self.driver.find_element(By.CSS_SELECTOR, "#submit").click()
        # 对登录结果进⾏检测, 如果跳转到了博客列表⻚才算是登录成功了
        self.driver.find_element(By.CSS_SELECTOR, "body > div.container >
        div.left > div > img")
        BlogDriver.getScreenShot()
        self.driver.back()
    def loginFailTest(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("admin")
        self.driver.find_element(By.CSS_SELECTOR, "#password").send_keys("111")
        self.driver.find_element(By.CSS_SELECTOR, "#submit").click()
        # 等登录失败的结果进⾏检测, 不能仅仅通过body来校验结果,因为登录成功的结果⻚也有body元素
        expect = "⽤⼾名或密码错误!"
        actual = self.driver.find_element(By.CSS_SELECTOR, "body").text
        print(actual)
        BlogDriver.getScreenShot()
        assert expect == actual
        self.driver.back()
博客系统列表页测试
from selenium.webdriver.common.by import By
from common.Utils import BlogDriver
class BlogList:
    url = ""
    driver = ""
    def __init__(self):
        self.driver = BlogDriver.driver
        self.url = "http://192.168.47.135:8653/blog_system/blog_list.html"
        self.driver.get(self.url)
        # 前提:登陆状态下才能进⼊到列表⻚
    def ListTest(self):
        self.driver.find_element(By.CSS_SELECTOR, "body > div.container >
        div.left > div > img")
        self.driver.find_element(By.CSS_SELECTOR, "body > div.container >
        div.right > div:nth-child(1) > a")
        articles = self.driver.find_elements(By.CSS_SELECTOR, "body >
        div.container > div.right > div")
        assert len(articles) > 10
        #点击⽂章
        self.driver.find_element(By.CSS_SELECTOR,"body > div.container >
        div.right > div:nth-child(1) > a").click()
        title = self.driver.title
        assert title == "博客详情⻚"
        BlogDriver.getScreenShot()
博客系统细节逻辑测试
from selenium.webdriver.common.by import By
from common.Utils import BlogDriver
class BlogDetail:
    url = " "
    driver = ""
    def __init__(self):
        self.url = "http://192.168.47.135:8653/blog_system/blog_detail.html?blogId=15"
        self.driver = BlogDriver.driver
        title = self.driver.title
        #列表⻚已经跳过来了,⽆需再指定url跳转
        if not title=="博客列表⻚":
        self.driver.get(self.url)
    def DetailCheck(self):
        #body > div.container > div.right > div:nth-child(1) > a
        BlogDriver.getScreenShot()
        self.driver.find_element(By.CSS_SELECTOR,"body > div.container >div.right > div > h3")
        self.driver.find_element(By.CSS_SELECTOR,"body > div.container >div.right > div > div.date")
        self.driver.find_element(By.CSS_SELECTOR,"#content")
整体自动化测试
from common.Utils import BlogDriver
from tests import BlogLogin
from tests import BlogList
from tests import BlogDetail
if __name__ == "__main__":
    BlogLogin.BlogLogin().loginSucTest()
    BlogList.BlogList().ListTest()
    BlogDetail.BlogDetail().DetailCheck()
    BlogDriver.driver.quit()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值