当前位置: 首页 > web >正文

论坛系统测试报告

文章目录

  • 目录
    • 1. 项目背景
    • 2. 项目简介
    • 3. 测试工具
    • 4. 测试用例
    • 5. 功能测试
    • 6. 性能测试
    • 7. 弱网测试
    • 8. 自动化测试
    • 9. bug简述
    • 10. 测试结论

目录

  • 项目背景
  • 项目简介
  • 测试工具
  • 测试用例
  • 功能测试
  • 性能测试
  • 弱网测试
  • 自动化测试
  • bug简述
  • 测试结论

1. 项目背景

通过论坛系统,我们可以将自己的问题或者学习经验分享到上面,和他人讨论分享,从而共同进步。

2. 项目简介

论坛系统共分为以下几个页面:登录页面、注册页面、论坛首页、我的/他人文章详情页、帖子发布页、我的/他人帖子页面、个人中心页面。

登录页面:通过输入正确的账号和密码进行登录。

注册页面:按要求输入用户名、昵称、密码进行注册。

论坛首页:查看用户昵称、头像;查看首页发布的贴子并且可以跳转到帖子详情页;选择不同分类查看当前分类下的帖子;查看站内信,可以回复他人给自己发的私信;切换白天和夜间模式;搜索;可以点击发布按钮并跳转到帖子发布页面

我的文章详情页:查看作者/回复者头像昵称;点赞帖子;发布回复帖子

他人文章详情页:查看作者/回复者头像昵称;点赞帖子;发布回复帖子;给帖子作者发私信

帖子发布页:选择板块、输入标题和内容并点击发布按钮

我的帖子页面:可以查看头像、昵称、发帖数、邮箱、注册日期、发布的帖子并可以点击跳转到详情页、个人介绍

他人帖子页面:可以查看头像、昵称、发帖数、邮箱、注册日期、发布的帖子并可以点击跳转到详情页、个人介绍;可以给当前用户发私信

个人中心页面:可以修改头像、昵称、邮箱地址、电话号码、密码、个人简介

3. 测试工具

在进行性能测试时,我们会用到jmeter工具;在进行弱网测试时,我们会用到fiddler工具;在进行自动化测试时,我们会用到PyCharm以及selenium库来编写自动化脚本。

4. 测试用例

测试用例

5. 功能测试

这里会展示部分功能测试的截图:

  • 正常登录

正常登录(1)

正常登录(2)


  • 异常登录

异常登录(1)

异常登录(2)


正常注册:

正常注册


异常注册:

异常注册(1)

异常注册(2)

异常注册(3)


  • 论坛首页登录状态

论坛首页登录状态(1)

论坛首页登录状态(2)

bug1:部分分类名称未显示

论坛首页登录状态(3)

bug2:帖子数量显示不正确

论坛首页登录状态(4)

论坛首页登录状态(5)

论坛首页登录状态(6)

bug3:在搜索框搜索后不会跳出搜索的内容


  • 论坛首页未登录状态

论坛首页未登录状态


  • 我的帖子详情页面

我的帖子详情页面(1)

我的帖子详情页面(2)


  • 他人帖子详情页面

他人帖子详情页面(1)

他人帖子详情页面(2)

他人帖子详情页面(3)


  • 正常发布帖子

正常发布帖子(1)

正常发布帖子(2)

bug4:帖子发布时间显示不正确


  • 异常发布帖子

异常发布帖子(1)

异常发布帖子(2)


  • 我的帖子页面

我的帖子页面(1)

bug5:显示的发帖数和实际发帖数不一致

bug6:注册日期错误


  • 他人帖子页面

他人帖子页面


  • 个人中心页面

个人中心页面(1)

个人中心页面(2)


bug7:修改密码时和原来的密码相同也能修改成功


个人中心页面(3)

个人中心页面(4)

个人中心页面(5)

个人中心页面(6)


bug8:让密码取消掩码显示不成功

6. 性能测试

性能测试

性能测试报告(1)

性能测试报告(2)

性能测试报告(3)

性能测试报告(4)

性能测试报告(5)

性能测试报告(6)

性能测试报告(7)

总结: 在较高的并发下,回复帖子接口、帖子详情页接口、论坛首页接口、点赞接口出现错误;且大部分接口响应时间较长。

7. 弱网测试

弱网测试(1)

弱网测试(2)

弱网测试(3)

弱网测试(4)

总结: 在弱网环境下,页面加载变慢,但不会错误展示;建议页面在加载缓慢时加上默认提示来使用户体验更加良好。

8. 自动化测试

# common/Utils.pyimport datetime
import os.path
import sysfrom selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManagerclass Driver:driver = ""def __init__(self):options = webdriver.ChromeOptions()self.driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()),options=options)self.driver.implicitly_wait(5)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)ForumDriver = Driver()
# tests/ForumLogin.pyimport timefrom selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWaitfrom common.Utils import ForumDriverclass ForumLogin:driver = ""url = ""def __init__(self):self.driver = ForumDriver.driverself.url = "http://127.0.0.1:9580/sign-in.html"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("waves")self.driver.find_element(By.CSS_SELECTOR, "#password").send_keys("123456")self.driver.find_element(By.CSS_SELECTOR,"#submit").click()WebDriverWait(self.driver,3).until(EC.title_is("比特论坛"))ForumDriver.getScreenShot()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("waves")self.driver.find_element(By.CSS_SELECTOR, "#password").send_keys("1234")self.driver.find_element(By.CSS_SELECTOR, "#submit").click()WebDriverWait(self.driver,3).until(EC.visibility_of_element_located((By.CSS_SELECTOR,"body > div.jq-toast-wrap.bottom-right > div")))ForumDriver.getScreenShot()time.sleep(0.5)# 错误的用户名和正确的密码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("wave")self.driver.find_element(By.CSS_SELECTOR, "#password").send_keys("123456")self.driver.find_element(By.CSS_SELECTOR, "#submit").click()WebDriverWait(self.driver, 3).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "body > div.jq-toast-wrap.bottom-right > div")))ForumDriver.getScreenShot()time.sleep(0.5)# 错误的用户名和错误的密码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("wave")self.driver.find_element(By.CSS_SELECTOR, "#password").send_keys("1234")self.driver.find_element(By.CSS_SELECTOR, "#submit").click()WebDriverWait(self.driver, 3).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "body > div.jq-toast-wrap.bottom-right > div")))ForumDriver.getScreenShot()
# tests/ForumRegister.pyimport datetime
import timefrom selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWaitfrom common.Utils import ForumDriverclass ForumRegister:driver = ""url = ""def __init__(self):self.driver = ForumDriver.driverself.url = "http://127.0.0.1:9580/sign-up.html"self.driver.get(self.url)def RegisterSucTest(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()self.driver.find_element(By.CSS_SELECTOR, "#username").send_keys(datetime.datetime.now().strftime("%Y%m%d%H%M%S"))self.driver.find_element(By.CSS_SELECTOR, "#nickname").send_keys(datetime.datetime.now().strftime("%Y%m%d%H%M%S"))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()WebDriverWait(self.driver,3).until(EC.title_is("比特论坛 - 用户登录"))ForumDriver.getScreenShot()def RegisterFailTest(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()self.driver.find_element(By.CSS_SELECTOR, "#username").send_keys("waves")self.driver.find_element(By.CSS_SELECTOR, "#nickname").send_keys("waves")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(0.5)ForumDriver.getScreenShot()# 关闭警告self.driver.find_element(By.CSS_SELECTOR,"body > div.jq-toast-wrap.bottom-right > div > span.close-jq-toast-single").click()# 把勾选的同意隐私政策取消勾选self.driver.find_element(By.CSS_SELECTOR, "#policy").click()time.sleep(0.5)# 输入未被占用的用户名,正确的昵称,密码和确认密码不相同,点击同意隐私政策,点击注册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()self.driver.find_element(By.CSS_SELECTOR, "#username").send_keys("waves123")self.driver.find_element(By.CSS_SELECTOR, "#nickname").send_keys("waves123")self.driver.find_element(By.CSS_SELECTOR, "#password").send_keys("123456")self.driver.find_element(By.CSS_SELECTOR, "#passwordRepeat").send_keys("1234")self.driver.find_element(By.CSS_SELECTOR, "#policy").click()self.driver.find_element(By.CSS_SELECTOR, "#submit").click()text1 = self.driver.find_element(By.CSS_SELECTOR,"#signUpForm > div > div:nth-child(5) > div > div").textassert text1 == "请检查确认密码"ForumDriver.getScreenShot()# 把勾选的同意隐私政策取消勾选self.driver.find_element(By.CSS_SELECTOR, "#policy").click()time.sleep(0.5)# 输入正确的昵称、密码,点击注册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()self.driver.find_element(By.CSS_SELECTOR, "#nickname").send_keys("waves123")self.driver.find_element(By.CSS_SELECTOR, "#password").send_keys("123456")self.driver.find_element(By.CSS_SELECTOR, "#submit").click()text2 = self.driver.find_element(By.CSS_SELECTOR, "#signUpForm > div > div:nth-child(2) > div").textassert text2 == "用户名不能为空"text3 = self.driver.find_element(By.CSS_SELECTOR, "#signUpForm > div > div:nth-child(5) > div > div").textassert text3 == "请检查确认密码"ForumDriver.getScreenShot()
# tests/ForumHomepage.pyimport timefrom selenium.webdriver.common.by import Byfrom common.Utils import ForumDriverclass ForumHomepage:driver = ""url = ""def __init__(self):self.driver = ForumDriver.driverself.url = "http://127.0.0.1:9580/index.html"self.driver.get(self.url)def ForumHomepageByNotLogin(self):title = self.driver.titleassert title == "比特论坛 - 用户登录"ForumDriver.getScreenShot()def ForumHomepageByLogin(self):# 查看用户头像self.driver.find_element(By.CSS_SELECTOR,"#index_nav_avatar")# 查看用户昵称# 把页面放大到全屏,不然没有显示出用户昵称就提取不了文本self.driver.maximize_window()nickname = self.driver.find_element(By.CSS_SELECTOR,"#index_nav_nickname").textassert nickname == "waves"# 查看首页发布的帖子self.driver.find_element(By.CSS_SELECTOR,"#artical-items-body > div:nth-child(1)")time.sleep(2)ForumDriver.getScreenShot()# 查看站内信,可以回复他人给自己发的私信self.driver.find_element(By.CSS_SELECTOR,"body > div.page > header.navbar.navbar-expand-md.navbar-light.d-print-none > div > div > div:nth-child(2) > div > a > svg").click()self.driver.find_element(By.CSS_SELECTOR,"#index_div_message_list > div:nth-child(1) > div > div.col.text-truncate > a > span:nth-child(2)").click()self.driver.find_element(By.CSS_SELECTOR,"#btn_index_message_reply").click()self.driver.find_element(By.CSS_SELECTOR,"#index_message_reply_receive_content").send_keys("hello")self.driver.find_element(By.CSS_SELECTOR,"#btn_index_send_message_reply").click()self.driver.find_element(By.CSS_SELECTOR,"body > div.jq-toast-wrap.bottom-right > div")ForumDriver.getScreenShot()self.driver.find_element(By.CSS_SELECTOR,"#index_message_offcanvasEnd > div.offcanvas-header > button").click()# 切换白天和夜间模式self.driver.find_element(By.CSS_SELECTOR,"body > div.page > header.navbar.navbar-expand-md.navbar-light.d-print-none > div > div > div:nth-child(2) > a.nav-link.px-0.hide-theme-dark > svg").click()self.driver.find_element(By.CSS_SELECTOR,"#artical-items-body > div:nth-child(1)")ForumDriver.getScreenShot()self.driver.find_element(By.CSS_SELECTOR,"body > div.page > header.navbar.navbar-expand-md.navbar-light.d-print-none > div > div > div:nth-child(2) > a.nav-link.px-0.hide-theme-light > svg").click()self.driver.find_element(By.CSS_SELECTOR,"#artical-items-body > div:nth-child(1)")ForumDriver.getScreenShot()
# tests/OthersForumDetail.pyimport timefrom selenium.webdriver.common.by import Byfrom common.Utils import ForumDriverclass OthersForumDetail:driver = ""url = ""def __init__(self):self.driver = ForumDriver.driverself.url = "http://127.0.0.1:9580/index.html"self.driver.get(self.url)def OthersForumDetail(self):# 选择不同分类查看当前分类下的帖子self.driver.find_element(By.CSS_SELECTOR, "#topBoardList > li:nth-child(2) > a").click()# 点击跳转到他人帖子详情页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, "#details_btn_like_count").click()self.driver.find_element(By.CSS_SELECTOR,"body > div.jq-toast-wrap.bottom-right > div")time.sleep(0.5)ForumDriver.getScreenShot()# 发布回复帖子self.driver.find_element(By.CSS_SELECTOR,"#article_details_reply > div.editormd-toolbar > div > ul > li:nth-child(20) > a > i").click()time.sleep(0.5)self.driver.find_element(By.CSS_SELECTOR,"#details_btn_article_reply").click()self.driver.find_element(By.CSS_SELECTOR,"body > div.jq-toast-wrap.bottom-right > div")time.sleep(0.5)ForumDriver.getScreenShot()time.sleep(0.5)# 给帖子作者发私信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("hello")self.driver.find_element(By.CSS_SELECTOR,"#btn_index_send_message").click()self.driver.find_element(By.CSS_SELECTOR,"body > div.jq-toast-wrap.bottom-right > div")time.sleep(0.5)ForumDriver.getScreenShot()# 查看作者/回复者头像昵称self.driver.find_element(By.CSS_SELECTOR, "#details_reply_area > div:nth-child(1) > div.col-3.card > div > span")self.driver.find_element(By.CSS_SELECTOR, "#details_reply_area > div:nth-child(1) > div.col-3.card > div > h3 > a")self.driver.find_element(By.CSS_SELECTOR,"#article_details_author_avatar")# 跳转到他人帖子页面self.driver.find_element(By.CSS_SELECTOR, "#article_details_author_name").click()# 查看头像self.driver.find_element(By.CSS_SELECTOR,"#profile_avatar")# 查看昵称self.driver.find_element(By.CSS_SELECTOR, "#profile_nickname")# 查看发帖数self.driver.find_element(By.CSS_SELECTOR, "#bit-forum-content > div.page-header.d-print-none > div > div > div.col > div > div:nth-child(1)")# 查看邮箱self.driver.find_element(By.CSS_SELECTOR, "#bit-forum-content > div.page-header.d-print-none > div > div > div.col > div > div:nth-child(2)")# 查看注册日期self.driver.find_element(By.CSS_SELECTOR, "#bit-forum-content > div.page-header.d-print-none > div > div > div.col > div > div:nth-child(3)")# 查看个人介绍text = self.driver.find_element(By.CSS_SELECTOR, "#bit-forum-content > div.page-body > div > div > div.col-lg-4 > div > div > div > div > h2").textassert text == "个人介绍"# 给当前用户发私信self.driver.find_element(By.CSS_SELECTOR, "#btn_profile_send_message").click()self.driver.find_element(By.CSS_SELECTOR,"#index_message_receive_content").send_keys("hello")self.driver.find_element(By.CSS_SELECTOR, "#btn_index_send_message").click()self.driver.find_element(By.CSS_SELECTOR,"body > div.jq-toast-wrap.bottom-right > div")time.sleep(1)ForumDriver.getScreenShot()# 查看发布的帖子并可以点击跳转到详情页self.driver.find_element(By.CSS_SELECTOR,"#profile_article_body > li:nth-child(1) > div.card.timeline-event-card > div > div > div > div > div.text-truncate > a > strong").click()self.driver.find_element(By.CSS_SELECTOR,"#bit-forum-content > div.page-header.d-print-none > div > div.row.g-2.align-items-center > div")time.sleep(1)ForumDriver.getScreenShot()
# tests/MyForum.pyimport timefrom selenium.webdriver.common.by import Byfrom common.Utils import ForumDriverclass MyForum:driver = ""url = ""def __init__(self):self.driver = ForumDriver.driverself.url = "http://127.0.0.1:9580/index.html"self.driver.get(self.url)def MyForum(self):# 进入我的帖子页面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.dropdown").click()self.driver.find_element(By.CSS_SELECTOR,"#index_user_profile").click()# 查看头像self.driver.find_element(By.CSS_SELECTOR,"#profile_avatar")# 查看昵称self.driver.find_element(By.CSS_SELECTOR, "#profile_nickname")# 查看发帖数self.driver.find_element(By.CSS_SELECTOR, "#bit-forum-content > div.page-header.d-print-none > div > div > div.col > div > div:nth-child(1)")# 查看邮箱self.driver.find_element(By.CSS_SELECTOR, "#bit-forum-content > div.page-header.d-print-none > div > div > div.col > div > div:nth-child(2)")# 查看注册日期self.driver.find_element(By.CSS_SELECTOR, "#bit-forum-content > div.page-header.d-print-none > div > div > div.col > div > div:nth-child(3)")# 查看个人介绍text = self.driver.find_element(By.CSS_SELECTOR, "#bit-forum-content > div.page-body > div > div > div.col-lg-4 > div > div > div > div > h2").textassert text == "个人介绍"ForumDriver.getScreenShot()# 查看发布的帖子并可以点击跳转到详情页self.driver.find_element(By.CSS_SELECTOR, "#profile_article_body > li:nth-child(1) > div.card.timeline-event-card > div > div > div > div > div.text-truncate > a > strong").click()# 点赞帖子self.driver.find_element(By.CSS_SELECTOR, "#details_btn_like_count").click()self.driver.find_element(By.CSS_SELECTOR,"body > div.jq-toast-wrap.bottom-right > div")time.sleep(0.5)ForumDriver.getScreenShot()# 发布回复帖子self.driver.find_element(By.CSS_SELECTOR, "#article_details_reply > div.editormd-toolbar > div > ul > li:nth-child(20) > a > i").click()time.sleep(0.5)self.driver.find_element(By.CSS_SELECTOR, "#details_btn_article_reply").click()self.driver.find_element(By.CSS_SELECTOR,"body > div.jq-toast-wrap.bottom-right > div")time.sleep(0.5)ForumDriver.getScreenShot()# 查看作者/回复者头像昵称self.driver.find_element(By.CSS_SELECTOR, "#article_details_author_avatar")self.driver.find_element(By.CSS_SELECTOR, "#article_details_author_name")self.driver.find_element(By.CSS_SELECTOR, "#details_reply_area > div:nth-child(1) > div.col-3.card > div > span")self.driver.find_element(By.CSS_SELECTOR, "#details_reply_area > div:nth-child(1) > div.col-3.card > div > h3 > a")
# tests/ForumEdit.pyimport timefrom selenium.webdriver.common.by import Byfrom common.Utils import ForumDriverclass ForumEdit:driver = ""url = ""def __init__(self):self.driver = ForumDriver.driverself.url = "http://127.0.0.1:9580/index.html"self.driver.get(self.url)def ForumFailEdit(self):# 点击发布按钮并跳转到帖子发布页面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").click()# 输入标题,点击发布按钮self.driver.find_element(By.CSS_SELECTOR,"#article_post_title").clear()self.driver.find_element(By.CSS_SELECTOR, "#article_post_title").send_keys("自动化测试")# 保证内容为空self.driver.find_element(By.CSS_SELECTOR, "#edit-article > div.editormd-toolbar > div > ul > li:nth-child(39) > a > i").click()self.driver.find_element(By.CSS_SELECTOR, "#article_post_submit").click()self.driver.find_element(By.CSS_SELECTOR,"body > div.jq-toast-wrap.bottom-right > div")time.sleep(0.5)ForumDriver.getScreenShot()# 输入内容,点击发布按钮self.driver.find_element(By.CSS_SELECTOR, "#article_post_title").clear()self.driver.find_element(By.CSS_SELECTOR,"#edit-article > div.editormd-toolbar > div > ul > li:nth-child(39) > a > i").click()self.driver.find_element(By.CSS_SELECTOR,"#edit-article > div.editormd-toolbar > div > ul > li:nth-child(20) > a > i").click()time.sleep(0.5)self.driver.find_element(By.CSS_SELECTOR, "#article_post_submit").click()self.driver.find_element(By.CSS_SELECTOR, "body > div.jq-toast-wrap.bottom-right > div")time.sleep(0.5)ForumDriver.getScreenShot()# 输入标题和内容,不点击发布按钮self.driver.find_element(By.CSS_SELECTOR, "#article_post_title").clear()self.driver.find_element(By.CSS_SELECTOR, "#article_post_title").send_keys("自动化测试")self.driver.find_element(By.CSS_SELECTOR,"#edit-article > div.editormd-toolbar > div > ul > li:nth-child(39) > a > i").click()self.driver.find_element(By.CSS_SELECTOR,"#edit-article > div.editormd-toolbar > div > ul > li:nth-child(20) > a > i").click()time.sleep(0.5)text = self.driver.find_element(By.CSS_SELECTOR,"#bit-forum-content > div.page-header.d-print-none > div > div > div > h2").textassert text == "发新贴"ForumDriver.getScreenShot()def ForumSucEdit(self):# 点击发布按钮并跳转到帖子发布页面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").click()# 选择板块self.driver.find_element(By.CSS_SELECTOR,"#article_post_borad > option:nth-child(2)").click()# 输入标题self.driver.find_element(By.CSS_SELECTOR, "#article_post_title").clear()self.driver.find_element(By.CSS_SELECTOR, "#article_post_title").send_keys("自动化测试")# 输入内容self.driver.find_element(By.CSS_SELECTOR,"#edit-article > div.editormd-toolbar > div > ul > li:nth-child(39) > a > i").click()self.driver.find_element(By.CSS_SELECTOR,"#edit-article > div.editormd-toolbar > div > ul > li:nth-child(20) > a > i").click()# 点击发布按钮time.sleep(0.5)self.driver.find_element(By.CSS_SELECTOR, "#article_post_submit").click()self.driver.find_element(By.CSS_SELECTOR,"body > div.jq-toast-wrap.bottom-right > div")title = self.driver.find_element(By.CSS_SELECTOR,"#artical-items-body > div:nth-child(1) > div > div.col > div.text-truncate > a > strong").textassert title == "自动化测试"ForumDriver.getScreenShot()
# tests/ForumPersonalCenter.pyimport datetime
import timefrom selenium.webdriver.common.by import Byfrom common.Utils import ForumDriverclass ForumPersonalCenter:driver = ""url = ""def __init__(self):self.driver = ForumDriver.driverself.url = "http://127.0.0.1:9580/index.html"self.driver.get(self.url)def FailModify(self):# 跳转到个人中心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.dropdown > a").click()self.driver.find_element(By.CSS_SELECTOR,"#index_user_settings").click()# 和原来的一样self.driver.find_element(By.CSS_SELECTOR,"#setting_submit_nickname").click()self.driver.find_element(By.CSS_SELECTOR, "body > div.jq-toast-wrap.bottom-right > div:nth-child(1) > span.close-jq-toast-single").click()self.driver.find_element(By.CSS_SELECTOR, "#setting_submit_email").click()self.driver.find_element(By.CSS_SELECTOR, "body > div.jq-toast-wrap.bottom-right > div:nth-child(1) > span.close-jq-toast-single").click()self.driver.find_element(By.CSS_SELECTOR, "#setting_submit_phoneNum").click()self.driver.find_element(By.CSS_SELECTOR, "body > div.jq-toast-wrap.bottom-right > div")self.driver.find_element(By.CSS_SELECTOR, "#settings_submit_remark").click()self.driver.find_element(By.CSS_SELECTOR, "body > div.jq-toast-wrap.bottom-right > div")time.sleep(0.5)ForumDriver.getScreenShot()# 原密码错误self.driver.find_element(By.CSS_SELECTOR,"#settings_input_oldPassword").clear()self.driver.find_element(By.CSS_SELECTOR, "#settings_input_oldPassword").send_keys("12345")self.driver.find_element(By.CSS_SELECTOR, "#settings_input_newPassword").clear()self.driver.find_element(By.CSS_SELECTOR, "#settings_input_newPassword").send_keys("1234")self.driver.find_element(By.CSS_SELECTOR, "#settings_input_passwordRepeat").clear()self.driver.find_element(By.CSS_SELECTOR, "#settings_input_passwordRepeat").send_keys("1234")self.driver.find_element(By.CSS_SELECTOR, "#settings_submit_password").click()self.driver.find_element(By.CSS_SELECTOR,"body > div.jq-toast-wrap.bottom-right > div")time.sleep(1)ForumDriver.getScreenShot()# 新原密码和确认密码不同self.driver.find_element(By.CSS_SELECTOR, "#settings_input_oldPassword").clear()self.driver.find_element(By.CSS_SELECTOR, "#settings_input_oldPassword").send_keys("123456")self.driver.find_element(By.CSS_SELECTOR, "#settings_input_newPassword").clear()self.driver.find_element(By.CSS_SELECTOR, "#settings_input_newPassword").send_keys("1234")self.driver.find_element(By.CSS_SELECTOR, "#settings_input_passwordRepeat").clear()self.driver.find_element(By.CSS_SELECTOR, "#settings_input_passwordRepeat").send_keys("12345")self.driver.find_element(By.CSS_SELECTOR, "#settings_submit_password").click()self.driver.find_element(By.CSS_SELECTOR, "body > div.jq-toast-wrap.bottom-right > div")time.sleep(1)ForumDriver.getScreenShot()# 只填写正确的原密码self.driver.find_element(By.CSS_SELECTOR, "#settings_input_oldPassword").clear()self.driver.find_element(By.CSS_SELECTOR, "#settings_input_oldPassword").send_keys("123456")self.driver.find_element(By.CSS_SELECTOR, "#settings_input_newPassword").clear()self.driver.find_element(By.CSS_SELECTOR, "#settings_input_passwordRepeat").clear()self.driver.find_element(By.CSS_SELECTOR, "#settings_submit_password").click()self.driver.find_element(By.CSS_SELECTOR, "body > div.jq-toast-wrap.bottom-right > div")time.sleep(0.5)ForumDriver.getScreenShot()# 只填写正确的新原密码self.driver.find_element(By.CSS_SELECTOR, "#settings_input_oldPassword").clear()self.driver.find_element(By.CSS_SELECTOR, "#settings_input_newPassword").clear()self.driver.find_element(By.CSS_SELECTOR, "#settings_input_newPassword").send_keys("1234")self.driver.find_element(By.CSS_SELECTOR, "#settings_input_passwordRepeat").clear()self.driver.find_element(By.CSS_SELECTOR, "#settings_submit_password").click()self.driver.find_element(By.CSS_SELECTOR, "body > div.jq-toast-wrap.bottom-right > div")time.sleep(1)ForumDriver.getScreenShot()# 只填写正确的确认密码self.driver.find_element(By.CSS_SELECTOR, "#settings_input_oldPassword").clear()self.driver.find_element(By.CSS_SELECTOR, "#settings_input_newPassword").clear()self.driver.find_element(By.CSS_SELECTOR, "#settings_input_passwordRepeat").clear()self.driver.find_element(By.CSS_SELECTOR, "#settings_input_passwordRepeat").send_keys("1234")self.driver.find_element(By.CSS_SELECTOR, "#settings_submit_password").click()self.driver.find_element(By.CSS_SELECTOR, "body > div.jq-toast-wrap.bottom-right > div")time.sleep(0.5)ForumDriver.getScreenShot()def SucModify(self):# 跳转到个人中心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.dropdown > a").click()self.driver.find_element(By.CSS_SELECTOR, "#index_user_settings").click()# 修改邮箱地址self.driver.find_element(By.CSS_SELECTOR,"#setting_input_email").clear()self.driver.find_element(By.CSS_SELECTOR, "#setting_input_email").send_keys(datetime.datetime.now().strftime("%Y%m%d%H%M%S"))self.driver.find_element(By.CSS_SELECTOR, "#setting_submit_email").click()self.driver.find_element(By.CSS_SELECTOR,"body > div.jq-toast-wrap.bottom-right > div")time.sleep(1)ForumDriver.getScreenShot()# 修改电话号码self.driver.find_element(By.CSS_SELECTOR, "#setting_input_phoneNum").clear()self.driver.find_element(By.CSS_SELECTOR, "#setting_input_phoneNum").send_keys(datetime.datetime.now().strftime("%Y%m%d%H%M%S"))self.driver.find_element(By.CSS_SELECTOR, "#setting_submit_phoneNum").click()self.driver.find_element(By.CSS_SELECTOR, "body > div.jq-toast-wrap.bottom-right > div")time.sleep(0.5)ForumDriver.getScreenShot()# 修改个人简介self.driver.find_element(By.CSS_SELECTOR, "#settings_textarea_remark").clear()self.driver.find_element(By.CSS_SELECTOR, "#settings_textarea_remark").send_keys(datetime.datetime.now().strftime("%Y%m%d%H%M%S"))self.driver.find_element(By.CSS_SELECTOR, "#settings_submit_remark").click()self.driver.find_element(By.CSS_SELECTOR, "body > div.jq-toast-wrap.bottom-right > div")time.sleep(0.5)ForumDriver.getScreenShot()
# tests/RunTest.pyfrom common.Utils import ForumDriver
from tests import ForumLogin, ForumRegister, ForumHomepage, OthersForumDetail, MyForum, ForumEdit, ForumPersonalCenterif __name__ == "__main__":ForumRegister.ForumRegister().RegisterFailTest()ForumRegister.ForumRegister().RegisterSucTest()ForumLogin.ForumLogin().LoginFailTest()ForumHomepage.ForumHomepage().ForumHomepageByNotLogin()ForumLogin.ForumLogin().LoginSucTest()ForumHomepage.ForumHomepage().ForumHomepageByLogin()OthersForumDetail.OthersForumDetail().OthersForumDetail()MyForum.MyForum().MyForum()ForumEdit.ForumEdit().ForumFailEdit()ForumEdit.ForumEdit().ForumSucEdit()ForumPersonalCenter.ForumPersonalCenter().FailModify()ForumPersonalCenter.ForumPersonalCenter().SucModify()ForumDriver.driver.quit()

9. bug简述

bug1:部分分类名称未显示

论坛首页登录状态(2)


bug2:帖子数量显示不正确

论坛首页登录状态(3)


bug3:在搜索框搜索后不会跳出搜索的内容

论坛首页登录状态(6)


bug4:帖子发布时间显示不正确

正常发布帖子(2)


bug5:显示的发帖数和实际发帖数不一致

bug6:注册日期错误

我的帖子页面(1)


bug7:个人中心页面修改密码时和原来的密码相同也能修改成功


bug8:个人中心页面让密码取消掩码显示不成功

10. 测试结论

通过对论坛系统的测试,测试出论坛系统在功能方面还存在8个bug需要修改;性能方面在20个线程同时不断向系统各接口发生请求时,部分接口会出现异常;在弱网环境下,页面加载变慢,但不会错误展示,建议页面在加载缓慢时加上默认提示来使用户体验更加良好;界面较为美观;布局清晰,用户易上手;可以兼容不同浏览器和不同版本;在输入密码时有掩码行为,可以很好的保护用户隐私。

http://www.xdnf.cn/news/4606.html

相关文章:

  • 基于Transformer的多资产收益预测模型实战(附PyTorch实现与避坑指南)
  • OpenCV定位地板上的书
  • 中介者模式(Mediator Pattern)详解
  • 前端面经--网络通信与后端协作篇--XMLHttpRequest、axios、fetch、AbortController
  • 代理协议解析:如何根据需求选择HTTP、HTTPS或SOCKS5?
  • MySQL概念简介
  • C++ stl中的vector的相关用法 迭代器失效问题
  • Linux中的线程安全与线程同步详解
  • MySQL的深度分页如何优化?
  • NetSuite 销售订单折扣项目相关设置
  • 若依前后端分离项目中可以删除哪些原若依有的?
  • mysql中执行select命令的顺序
  • PE文件结构(导入表)
  • 【AI论文】
  • JavaSE核心知识点01基础语法01-05(字符串)
  • 进程与线程详细介绍
  • 如何使用 QuickAPI 连接 PostgreSQL 数据库并将PostgreSQL数据发布成API?
  • 嵌入式开发学习日志Day15
  • AI恶魔之眼使用说明书
  • Spring Bean 的创建流程
  • 分布式id的两大门派!时钟回拨问题的解决方案!
  • 单调栈原理
  • vtkSmartPointer<vtkPolyData> 常用的函数方法
  • Spring Boot 多数据源事务管理
  • async/await的另一种食用方法
  • vue-quill-editor的失焦事件
  • 分布式架构详解
  • #黑马点评#(一)登录功能
  • 数字化转型-4A架构之应用架构
  • 鸿蒙编译boost