论坛系统——测试报告

发布于:2025-04-10 ⋅ 阅读:(39) ⋅ 点赞:(0)

一、项目介绍

        本项目对“论坛系统”进行功能、兼容性测试,并编写selenium自动化测试脚本对其进行自动化测试。测试的核心内容包括对用户登录页,用户注册页,论坛首页,帖子详情页,帖子发布页,发送私信功能,“我的帖子”界面,个人中心界面进行测试

二、测试

(1)功能测试

  • 测试环境:Windows 10
  • Chrome版本: 136.0.7091.2 (正式版本)  (64 位)
  • 测试方式:手动测试

 1.用户登录页

测试步骤:

     1.输入正确的用户名和密码,点击登录

     2.输入错误的用户名/密码,点击登录

     3. 用户名/密码为空,点击登录

期望结果:

     1.成功登录,进入论坛首页

     2.登录失败,系统提示“用户名或密码错误”

     3.登录失败,用户名输入框下方提示“用户名不能为空”,密码框下方提示“密码不能为空”

实际结果:

     1.与期望结果一致,测试通过

     2.与期望结果一致,测试通过

     3.与期望结果一致,测试通过

测试案例展示:

    测试步骤2:输入错误的用户名/密码,点击提交

2. 用户注册页

测试步骤:

     1.输入用户名,昵称,密码,勾选同意条款进行注册

     2.输入用户名,昵称,密码,不勾选同意条款进行注册

     3.用户名/昵称/密码为空,勾选同意条款进行注册

期望结果:

     1.成功注册,跳转用户登录页进行登录后,成功进入论坛首页

     2.注册失败,同意框显示红色,提示用户勾选同意条款进行注册

     3.注册失败,输入框下方分别提示“用户名不能为空”,“昵称不能为空”,“密码不能为空”,“请检查确认密码”

实际结果:

     1.与期望结果一致,测试通过

     2.与期望结果一致,测试通过

     3.与期望结果一致,测试通过

测试案例展示:

    测试步骤3:用户名/昵称/密码为空,勾选同意条款进行注册

3.论坛首页 

测试步骤:

     1.检查论坛首页是否加载成功,以及帖子发布时间是否正确,标题、帖子内容是否正确显示

     2.测试搜索框功能

  • (1)输入关键词搜索
  • (2)搜索内容为空

期望结果:

     1.论坛首页加载成功,帖子发布时间正确,标题、帖子内容正确显示

     2.搜索框功能

  • (1)回车搜索后页面显示搜索结果
  • (2)回车搜索后页面弹窗或警告“搜索内容不为能空”

实际结果:

     1.与期望结果一致,测试通过

     2.搜索框功能

  • (1)回车搜索后页面无变化,没有显示搜索结果
  • (2)回车搜索后页面无变化,没有弹窗或警告“输入内容不为空

测试案例展示:

    测试步骤2:测试搜索框功能

搜索结果:

4.帖子详情页 

测试步骤:

     1.检查帖子详情页是否加载成功,以及帖子发布时间是否正确,标题、帖子内容,评论区是否正确显示

     2.测试评论区功能

  • (1)输入内容对帖子评论
  • (2)评论内容为空

     3.对帖子点赞

期望结果:

     1.帖子详情页加载成功,帖子发布时间正确,标题、帖子内容,评论区正确显示

     2.评论区功能

  • (1)成功评论,评论内容显示在评论区
  • (2)系统提示“请输入回复内容”

      3.系统提示“点赞成功”

实际结果:

     1.与期望结果一致,测试通过

     2.评论区功能

  • (1)与期望结果一致,测试通过
  • (2)与期望结果一致,测试通过

     3.与期望结果一致,测试通过

测试案例展示:

    测试步骤2:测试评论区功能

5. 帖子发布页

测试步骤:

     1.检查帖子发布页是否加载成功,以及内容编辑区等是否正确显示

     2.选择板块,输入标题、内容,点击发布

     3.标题/内容为空,点击发布

期望结果:

     1.帖子发布页加载成功,内容编辑区等正确显示

     2.系统提示“发帖成功”,页面跳转至论坛首页,新发布帖子在论坛首页可见

     3.帖子发布失败,系统提示“请输入帖子标题”或“请输入帖子内容”

实际结果:

     1.与期望结果一致,测试通过

     2.与期望结果一致,测试通过

     3.与期望结果一致,测试通过

测试案例展示:

    测试步骤2:标题/内容为空,点击发布

6. 发送私信功能

测试步骤:

     1.编辑私信内容,点击发送

     2.私信内容为空,点击发送

    

期望结果:

     1.发送成功,系统提示“发送成功”

     2.发送失败,系统提示“请输入要发送的内容”

实际结果:

     1.与期望结果一致,测试通过

     2.与期望结果一致,测试通过

测试案例展示:

    测试步骤2:私信内容为空,点击发送

7. “我的帖子”页面

测试步骤:

     1.检查页面是否加载成功,以及用户名,注册日期,我发布的帖子等内容是否正确显示

     2.点击我发布的帖子进行查看

期望结果:

     1.页面加载成功,用户名,注册日期,我发布的帖子等内容正确显示

     2.成功跳转帖子详情页面,

实际结果:

     1.与期望结果一致,测试通过

     2.与期望结果一致,测试通过

测试案例展示:

    测试步骤1:检查页面是否加载成功,以及用户名,注册日期,我发布的帖子等内容是否正确显示

8.个人中心页 

测试步骤:

     1.检查页面是否加载成功,以及昵称,邮箱,地址,电话号码等内容是否存在

     2.输入原密码、新原密码、确认密码,点击提交修改

期望结果:

     1.检查页面加载成功,昵称,邮箱,地址,电话号码等内容存在

     2.成功修改密码,页面退出到登录页面,密码清空,可重新输入密码登录

实际结果:

     1.与期望结果一致,测试通过

     2.与期望结果一致,测试通过

测试案例展示:

    测试步骤1:检查页面是否加载成功,以及昵称,邮箱,地址,电话号码等内容是否存在

(2)兼容性测试 

测试论坛系统在不同浏览器上能否正常显示:

Chrome浏览器:

Edge浏览器:

测试结果:论坛系统页面在两个浏览器上各个页面均正常显示,测试通过

(3)自动化测试

1.新建公共包和测试包

commom用来编写公共属性,tests用来编写各个页面的测试用例

Utils.py:

1.生成一个公用浏览器驱动对象,减少文件多次创建浏览器对象的消耗

2.提供公共函数

images:

1.用于存放不同日期生成的截图

Tests:

1.每个页面编写一个测试类,测试类中编写不同的测试用例

2.创建公共脚本Utils.py

  • 创建公用浏览器驱动对象
  • 创建公用屏幕截图方法
from selenium import webdriver
import datetime
import os.path
import sys

class Driver:
    driver=""
    def __init__(self):
        options=webdriver.ChromeOptions()
        path = "C:\\Users\\Hasee\\Downloads\\chromedriver-win64\\chromedriver.exe"
        self.driver=webdriver.Chrome(executable_path=path,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("../images/"+dirname+"/"+filename)

FroumDriver=Driver()

3.论坛登录页自动化测试

  • 测试用例

          1.测试成功登录(loginSucTest)

          2.测试登录失败(loginFailTest)

import time
from selenium.webdriver.common.by import By
from common.Utils import FroumDriver

class FroumLogin:
    driver=""
    url=""
    def __init__(self):
        self.driver=FroumDriver.driver
        #添加 隐式等待
        self.driver.implicitly_wait(5)
        self.url="http://127.0.0.1:9580/sign-in.html"
        self.driver.get(self.url)

    #封装 “登录输入框清空” 函数
    def InputClear(self):
        self.driver.find_element(By.CSS_SELECTOR,"#username").clear()
        self.driver.find_element(By.CSS_SELECTOR,"#password").clear()

    #测试 [登录成功] 用例
    def LoginSucTest(self):
        self.InputClear()
        self.driver.find_element(By.CSS_SELECTOR, "#username").send_keys("tx")
        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, "#artical-items-body > div:nth-child(1) > div > div.col > div.text-truncate")
        #屏幕截图
        FroumDriver.getScreenShot()

    #测试 [登录失败] 用例
    def loginFailTest(self):
        # (1).错误的用户名,正确的密码
        self.InputClear()
        self.driver.find_element(By.CSS_SELECTOR, "#username").send_keys("txxxx")
        self.driver.find_element(By.CSS_SELECTOR, "#password").send_keys("123456")
        self.driver.find_element(By.CSS_SELECTOR, "#submit").click()
        expect = "警告"
        text=self.driver.find_element(By.CSS_SELECTOR,"body > div.jq-toast-wrap.bottom-right > div > h2").text
        print(text)
        assert expect==text
        #屏幕截图前添加强制等待/显示等待,因为 getScreenShot 执行效率低于 find_element
        #若不添加等待,屏幕截图会有部分截图失败
        time.sleep(1)
        FroumDriver.getScreenShot()

        #(2).正确的用户名,错误的密码
        self.InputClear()
        self.driver.find_element(By.CSS_SELECTOR, "#username").send_keys("tx")
        self.driver.find_element(By.CSS_SELECTOR, "#password").send_keys("111111")
        self.driver.find_element(By.CSS_SELECTOR, "#submit").click()
        expect = "警告"
        text=self.driver.find_element(By.CSS_SELECTOR,"body > div.jq-toast-wrap.bottom-right > div > h2").text
        print(text)
        assert expect==text
        time.sleep(1)
        #屏幕截图
        FroumDriver.getScreenShot()

        # (3).正确的用户名,密码为空
        self.InputClear()
        self.driver.find_element(By.CSS_SELECTOR, "#username").send_keys("tx")
        self.driver.find_element(By.CSS_SELECTOR, "#submit").click()
        expect = "密码不能为空"
        text=self.driver.find_element(By.CSS_SELECTOR,"#signInForm > div.mb-2 > div > div").text
        print(text)
        assert expect == text
        time.sleep(1)
        #屏幕截图
        FroumDriver.getScreenShot()

        # # (4).用户名为空,正确的密码
        self.InputClear()
        self.driver.find_element(By.CSS_SELECTOR, "#password").send_keys("123456")
        self.driver.find_element(By.CSS_SELECTOR, "#submit").click()
        expect = "用户名不能为空"
        text=self.driver.find_element(By.CSS_SELECTOR,"#signInForm > div.mb-3 > div").text
        print(text)
        assert expect == text
        time.sleep(1)
        #屏幕截图
        FroumDriver.getScreenShot()

        # (5).用户名,密码均为空
        self.InputClear()
        self.driver.find_element(By.CSS_SELECTOR, "#submit").click()
        expect_1 = "用户名不能为空"
        expect_2 = "密码不能为空"
        text_1=self.driver.find_element(By.CSS_SELECTOR,"#signInForm > div.mb-3 > div").text
        text_2=self.driver.find_element(By.CSS_SELECTOR,"#signInForm > div.mb-2 > div > div").text
        print(text_1,text_2)
        assert expect_1==text_1 and expect_2==text_2
        time.sleep(1)
        #屏幕截图
        FroumDriver.getScreenShot()

 

测试截图:

4.论坛注册页自动化测试

  • 测试用例

          1.测试 注册成功(SingUpSucTest)

          2.测试 注册失败(SingUpFailTest)

import time
from selenium.webdriver.common.by import By
from common.Utils import FroumDriver

class FroumSingUp:
    driver=""
    url=""
    def __init__(self):
        self.driver=FroumDriver.driver
        #添加 隐式等待
        self.driver.implicitly_wait(5)
        self.url="http://127.0.0.1:9580/sign-up.html"
        self.driver.get(self.url)

    # 封装 “输入框清空” 函数
    def InPutClear(self):
        self.driver.find_element(By.CSS_SELECTOR,"#username").clear()
        self.driver.find_element(By.CSS_SELECTOR,"#nickname").clear()
        self.driver.find_element(By.CSS_SELECTOR,"#password").clear()
        self.driver.find_element(By.CSS_SELECTOR,"#passwordRepeat").clear()

    #测试 [注册成功] 用例
    def SingUpSucTest(self):
        time.sleep(2)
        #输入用户名、昵称、密码、确认密码,勾选同意条款进行注册
        self.InPutClear()
        self.driver.find_element(By.CSS_SELECTOR,"#username").send_keys("测试用户123")
        self.driver.find_element(By.CSS_SELECTOR,"#nickname").send_keys("测试人1234")
        self.driver.find_element(By.CSS_SELECTOR,"#password").send_keys("123456")
        self.driver.find_element(By.CSS_SELECTOR,"#passwordRepeat").send_keys("123456")
        self.driver.find_element(By.CSS_SELECTOR,"#policy").click()
        self.driver.find_element(By.CSS_SELECTOR, "#submit").click()
        time.sleep(1)
        #屏幕截图
        FroumDriver.getScreenShot()
        # 验证注册成功后是否跳转到登录页面
        self.driver.find_element(By.CSS_SELECTOR, "body > div > div > div > div:nth-child(1) > div > div.card.card-md > div > h2")

    # 测试 [注册失败] 用例
    def SingUpFailTest(self):
        #(1)用户名不输入,输入昵称,密码,确认密码,勾选同意条款进行注册
        self.InPutClear()
        self.driver.find_element(By.CSS_SELECTOR,"#nickname").send_keys("测试人123")
        self.driver.find_element(By.CSS_SELECTOR,"#password").send_keys("123456")
        self.driver.find_element(By.CSS_SELECTOR,"#passwordRepeat").send_keys("123456")
        self.driver.find_element(By.CSS_SELECTOR, "#policy").click()
        self.driver.find_element(By.CSS_SELECTOR, "#submit").click()
        expect="用户名不能为空"
        text=self.driver.find_element(By.CSS_SELECTOR, "#signUpForm > div > div:nth-child(2) > div").text
        assert text==expect
        #屏幕截图
        time.sleep(1)
        FroumDriver.getScreenShot()

        #(2)昵称不输入,输入用户名,密码,确认密码,勾选同意条款进行注册
        self.InPutClear()
        self.driver.find_element(By.CSS_SELECTOR,"#username").send_keys("测试用户123")
        self.driver.find_element(By.CSS_SELECTOR,"#password").send_keys("123456")
        self.driver.find_element(By.CSS_SELECTOR,"#passwordRepeat").send_keys("123456")
        self.driver.find_element(By.CSS_SELECTOR, "#submit").click()
        expect="昵称不能为空"
        text=self.driver.find_element(By.CSS_SELECTOR,"#signUpForm > div > div:nth-child(3) > div").text
        assert text==expect
        time.sleep(1)
        FroumDriver.getScreenShot()

        #(3)密码不输入,输入用户名,昵称,确认密码,勾选同意条款进行注册
        self.InPutClear()
        self.driver.find_element(By.CSS_SELECTOR,"#username").send_keys("测试用户123")
        self.driver.find_element(By.CSS_SELECTOR,"#nickname").send_keys("测试人123")
        self.driver.find_element(By.CSS_SELECTOR,"#passwordRepeat").send_keys("123456")
        self.driver.find_element(By.CSS_SELECTOR, "#submit").click()
        expect1="密码不能为空"
        expect2="请检查确认密码"
        text1=self.driver.find_element(By.CSS_SELECTOR,"#signUpForm > div > div:nth-child(4) > div > div").text
        text2=self.driver.find_element(By.CSS_SELECTOR,"#signUpForm > div > div:nth-child(5) > div > div").text
        assert text1==expect1 and text2==expect2
        time.sleep(1)
        FroumDriver.getScreenShot()

        #(4)确认密码不输入,输入用户名,昵称,密码,勾选同意条款进行注册
        self.InPutClear()
        self.driver.find_element(By.CSS_SELECTOR,"#username").send_keys("测试用户123")
        self.driver.find_element(By.CSS_SELECTOR,"#nickname").send_keys("测试人123")
        self.driver.find_element(By.CSS_SELECTOR,"#password").send_keys("123456")
        self.driver.find_element(By.CSS_SELECTOR, "#submit").click()
        expect="请检查确认密码"
        text=self.driver.find_element(By.CSS_SELECTOR,"#signUpForm > div > div:nth-child(5) > div > div").text
        assert text==expect
        time.sleep(1)
        FroumDriver.getScreenShot()

        #(5)输入用户名,昵称,密码,确认密码不勾选同意条款进行注册
        self.InPutClear()
        self.driver.find_element(By.CSS_SELECTOR, "#username").send_keys("测试用户123")
        self.driver.find_element(By.CSS_SELECTOR, "#nickname").send_keys("测试人123")
        self.driver.find_element(By.CSS_SELECTOR, "#password").send_keys("123456")
        self.driver.find_element(By.CSS_SELECTOR,"#passwordRepeat").send_keys("123456")
        self.driver.find_element(By.CSS_SELECTOR, "#submit").click()
        self.driver.find_element(By.CSS_SELECTOR, "#policy").click()
        button=self.driver.find_element(By.CSS_SELECTOR, "#policy")
       #检查某个Web元素是否被选中,可以判断单选按钮是否处于选中状态
        if not button.is_selected():
            print("请勾选同意注册条款")
        time.sleep(1)
        FroumDriver.getScreenShot()

测试截图: 

5. 论坛首页自动化测试

  • 测试用例

          1.测试 论坛首页(HPageTest)

          2.测试 论坛首页搜索框:测试输入关键词搜索 + 内容为空回车搜索   (HPageSearchTest)

import time
from selenium.webdriver import Keys
from selenium.webdriver.common.by import By
from common.Utils import FroumDriver

class FroumHPage:
    driver=""
    url=""
    def __init__(self):
        self.driver=FroumDriver.driver
        #添加 隐式等待
        self.driver.implicitly_wait(5)
        self.url="http://127.0.0.1:9580/index.html"
        self.driver.get(self.url)

    #测试论坛首页元素
    def HPageTest(self):
        #检查用户头像是否存在
        self.driver.find_element(By.CSS_SELECTOR,"#index_nav_avatar")
        #检查搜索框是否存在
        self.driver.find_element(By.CSS_SELECTOR,"body > div.page > header.navbar.navbar-expand-md.navbar-light.d-print-none > div > div > div.nav-item.d-none.d-md-flex.me-3 > div > form > div > input")
        #检查论坛内容页是否存在
        self.driver.find_element(By.CSS_SELECTOR,"#bit-forum-content")
        #检查“发布帖子“按钮是否存在
        self.driver.find_element(By.CSS_SELECTOR,"#bit-forum-content > div.page-header.d-print-none > div > div > div.col-auto.ms-auto.d-print-none > div > a.btn.btn-primary.d-none.d-sm-inline-block.article_post")
        #屏幕截图
        time.sleep(1)
        FroumDriver.getScreenShot()

    #论坛首页搜索框功能测试
    def HPageSearchTest(self):
        #(1)搜索关键词(由于搜索功能存在bug,搜索框不具备搜索功能,这里使用截图捕捉bug)
        search_button=self.driver.find_element(By.CSS_SELECTOR,"body > div.page > header.navbar.navbar-expand-md.navbar-light.d-print-none > div > div > div.nav-item.d-none.d-md-flex.me-3 > div > form > div > input")
        search_button.send_keys("这是一个标题")
        time.sleep(1)
        #捕捉输入文本时的截图
        FroumDriver.getScreenShot()
        #模拟键盘回车输入
        search_button.send_keys(Keys.RETURN)
        time.sleep(1)
        FroumDriver.getScreenShot()

        #(2)搜索内容为空(直接选中搜索框回车搜索就可以)
        search_button=self.driver.find_element(By.CSS_SELECTOR,"body > div.page > header.navbar.navbar-expand-md.navbar-light.d-print-none > div > div > div.nav-item.d-none.d-md-flex.me-3 > div > form > div > input")
        search_button.send_keys(Keys.RETURN)
        print("搜索空内容")
        time.sleep(1)
        FroumDriver.getScreenShot()

 

测试截图: 

6.论坛帖子详情页自动化测试

  • 测试用例

          1.测试 帖子详情页(DetailTest)

          2.测试 私信功能(SendPMTest)

import time
from selenium.webdriver.common.by import By
from common.Utils import FroumDriver
class FroumDetail:
    driver = ""
    url = ""
    def __init__(self):
        self.driver = FroumDriver.driver
        #添加 隐式等待
        self.driver.implicitly_wait(5)
        self.url = "http://127.0.0.1:9580/index.html"
        self.driver.get(self.url)

    #测试帖子详情页元素
    def DetailTest(self):
        #登录状态下,通过详情页的url访问,只能访问到论坛首页,不能进入详情页,这里点击标题进入详情页
        self.driver.find_element(By.CSS_SELECTOR,"#artical-items-body > div:nth-child(1) > div > div.col > div.text-truncate > a > strong").click()
        #检查 用户头像 是否存在
        self.driver.find_element(By.CSS_SELECTOR,"#article_details_author_avatar")
        #检查 帖子内容 是否存在
        self.driver.find_element(By.CSS_SELECTOR,"#details_article_content")
        #检查 帖子发布时间 是否存在
        self.driver.find_element(By.CSS_SELECTOR,"#details_article_createTime")
        #检查 ”发私信“ 按钮是否存在
        self.driver.find_element(By.CSS_SELECTOR,"#btn_details_send_message")
        #检查 ”点赞“ 按钮是否存在
        self.driver.find_element(By.CSS_SELECTOR,"#details_btn_like_count")
        #屏幕截图
        time.sleep(1)
        FroumDriver.getScreenShot()

    #论坛系统的评论区属于不可交互元素(待完善)

    #私信功能测试
    def SendPMTest(self):
        #(1)发送内容不为空
        # 登录状态下,通过详情页的url访问,只能访问到论坛首页,不能进入详情页,这里点击标题进入详情页
        self.driver.find_element(By.CSS_SELECTOR,"#artical-items-body > div:nth-child(1) > div > div.col > div.text-truncate > a > strong").click()
        #点击 “私信” 按钮
        self.driver.find_element(By.CSS_SELECTOR,"#btn_details_send_message").click()
        #编辑私信内容
        self.driver.find_element(By.CSS_SELECTOR,"#index_message_receive_content").send_keys("你好呀")
        #点击发送
        self.driver.find_element(By.CSS_SELECTOR,"#btn_index_send_message").click()
        #检查系统是否提示发送成功
        expect="成功"
        text=self.driver.find_element(By.CSS_SELECTOR, "body > div.jq-toast-wrap.bottom-right > div").text
        print(text)
        assert expect==text
        time.sleep(1)
        FroumDriver.getScreenShot()

        #(2)发送内容为空
        # 点击 “私信” 按钮
        self.driver.find_element(By.CSS_SELECTOR, "#btn_details_send_message").click()
        # 编辑私信内容
        self.driver.find_element(By.CSS_SELECTOR, "#index_message_receive_content").send_keys("你好呀")
        # 点击发送
        self.driver.find_element(By.CSS_SELECTOR, "#btn_index_send_message").click()
        # 检查系统是否提示 “请输入要发送的内容”
        expect = "警告"
        text = self.driver.find_element(By.CSS_SELECTOR, "body > div.jq-toast-wrap.bottom-right > div").text
        print(text)
        assert expect == text
        time.sleep(1)
        FroumDriver.getScreenShot()

 

测试截图:

7.论坛个人中心页测试

  • 测试用例

          1.测试 个人中心页(PCenterTest)

          2.测试 修改密码功能(ChangePasswordTest)

import time
from selenium.webdriver.common.by import By
from common.Utils import FroumDriver

class FroumPCenter:
    driver = ""
    url = ""
    def __init__(self):
        self.driver = FroumDriver.driver
        #添加 隐式等待
        self.driver.implicitly_wait(5)
        self.url = "http://127.0.0.1:9580/index.html"
        self.driver.get(self.url)

    # 测试个人中心页元素
    def PCenterTest(self):
        # 登录状态下,通过用户中心的url访问,只能访问到论坛首页,不能进入用户中心页,这里利用点击进入用户中心页
        self.driver.find_element(By.CSS_SELECTOR,"#index_nav_avatar").click()
        self.driver.find_element(By.CSS_SELECTOR,"#index_user_settings").click()
        #检查用户头像
        self.driver.find_element(By.CSS_SELECTOR,"#settings_avatar")
        #检查用户名
        self.driver.find_element(By.CSS_SELECTOR,"#setting_input_nickname")
        #检查邮箱地址
        self.driver.find_element(By.CSS_SELECTOR,"#setting_input_email")
        #检查电话号码
        self.driver.find_element(By.CSS_SELECTOR,"#setting_input_phoneNum")
        #屏幕截图
        time.sleep(1)
        FroumDriver.getScreenShot()

    #测试 修改密码功能
    def ChangePasswordTest(self):
        # 登录状态下,通过用户中心的url访问,只能访问到论坛首页,不能进入用户中心页,这里利用点击进入用户中心页
        self.driver.find_element(By.CSS_SELECTOR, "#index_nav_avatar").click()
        self.driver.find_element(By.CSS_SELECTOR, "#index_user_settings").click()
        #输入“原密码” “新原密码” “确认密码”
        self.driver.find_element(By.CSS_SELECTOR, "#settings_input_oldPassword").send_keys("123456")
        self.driver.find_element(By.CSS_SELECTOR, "#settings_input_newPassword").send_keys("123")
        self.driver.find_element(By.CSS_SELECTOR, "#settings_input_passwordRepeat").send_keys("123")
        #点击 “提交修改”
        time.sleep(1)
        self.driver.find_element(By.CSS_SELECTOR, "#settings_submit_password").click()
        #测试是否跳转登录界面,且输入框为空
        self.driver.find_element(By.CSS_SELECTOR, "#submit")
        text1=self.driver.find_element(By.CSS_SELECTOR, "#username").text
        test2=self.driver.find_element(By.CSS_SELECTOR, "#password").text
        username=""
        password=""
        assert text1==username and test2==password
        time.sleep(1)
        FroumDriver.getScreenShot()


测试截图: 

8.创建启动文件

from Tests import Froum_Login
from common.Utils import FroumDriver
from Tests import Froum_SingUp
from  Tests import Froum_HPage
from Tests import Froum_Detail
from Tests import Froum_PCenter

if __name__ =="__main__":
    #成功登录
    #Froum_Login.FroumLogin().LoginSucTest()
    #登录失败
    # Froum_Login.FroumLogin().loginFailTest()
    #注册失败
    # Froum_SingUp.FroumSingUp().SingUpFailTest()
    #论坛首页测试
    # Froum_Login.FroumLogin().LoginSucTest()
    # Froum_HPage.FroumHPage().HPageTest()
    # Froum_HPage.FroumHPage().SearchTest()

    #论坛帖子详情页测试
    # Froum_Login.FroumLogin().LoginSucTest()
    # Froum_Detail.FroumDetail().DetailTest()
    # Froum_Detail.FroumDetail().DetailCommentTest()

    # 论坛用户中心页测试
    # Froum_Login.FroumLogin().LoginSucTest()
    # Froum_PCenter.FroumPCenter().PCenterTest()

    FroumDriver.driver.quit()

三、项目bug

 (1)用户登录页面

bug①: 

    bug出现的步骤:进入用户登录页面

    预期结果:用户名错误时显示“用户名不存在”,密码错误时(用户名正确)显示“密码错误”

    实际结果:用户名错误时显示”用户名或密码错误“,密码错误时(用户名正确)显示”用户名或密码错误“

(2)论坛首页

bug①: 

    bug出现的步骤:登录,进入论坛首页,点击右上角搜索框进行搜索

    预期结果:回车搜索后页面显示搜索结果

    实际结果:回车搜索后页面无变化,没有显示搜索结果

搜索标题为a的帖子

搜索后页面无变化,没有显示搜索结果

(3)个人中心页

bug①: 

    bug出现的步骤:进入个人中心页,找到修改密码模块进行修改密码

    预期结果:修改密码时,点击”密码可见性切换按钮“👁️可查看密码,成功修改密码后提示”密码修改成功“

    实际结果:修改密码时,点击”密码可见性切换按钮“👁️无法查看密码,且成功修改密码后没有提示”密码修改成功

四、测试总结

①、功能测试

  • 功能测试100%通过

②、自动化测试

  • 自动化测试覆盖模块:登录页面、注册页面、首页、帖子详情页,帖子编辑页
  • 自动化代码链接:cybin/python2025 - Gitee.com