浙江建设信息港网站,wordpress 支付宝接入,网站301做下,网站制作前期所需要准备目录 一、项目背景二、论坛系统测试用例思维导图三、论坛系统测试3.1界面测试3.2登陆测试3.3主页测试3.4个人中心测试 四、自动化测试脚本4.1配置驱动4.2创建浏览器类4.3功能测试4.3.1登陆测试4.3.2注册测试4.3.3主页测试4.3.4帖子编辑4.3.5运行主代码 五、BUG分析六、测试总结… 目录 一、项目背景二、论坛系统测试用例思维导图三、论坛系统测试3.1界面测试3.2登陆测试3.3主页测试3.4个人中心测试 四、自动化测试脚本4.1配置驱动4.2创建浏览器类4.3功能测试4.3.1登陆测试4.3.2注册测试4.3.3主页测试4.3.4帖子编辑4.3.5运行主代码 五、BUG分析六、测试总结 一、项目背景 论坛系统致力于打造一个多元交流社区吸引各领域专业人士、爱好者及普通用户汇聚一堂。用户可在开放的环境中充分交流。伴随互联网用户群体持续壮大尤其是年轻一代网民对在线交流和知识获取的需求不断攀升论坛作为经典且有效的互动平台蕴藏着巨大发展潜力。通过论坛系统建设期望满足不同用户的多样化需求提升信息交流效率与质量为用户创造更多价值助力互联网内容生态的健康、持续发展。 二、论坛系统测试用例思维导图
对于论坛系统简单可以分为六类方面进行测试界面测试、安全测试、易用性测试、兼容性测试、功能测试。
三、论坛系统测试
3.1界面测试 用户登陆框虽然没有在屏幕正中央好在用白色和背景板颜色区分更加显眼并标有黑体“用户登陆”。用户名及密码输入框大小合适让用户容易输入。登陆按钮用蓝色框格包围使得用户能加轻松登陆。“点击注册”字样用蓝色标识时用户容易找到。密码框内“小眼睛”有显示密码功能。
3.2登陆测试
用户名及密码为空时输入框下显示红色“用户名不能为空”或“密码不能为空”字样。 用户名zhangsan 密码12345 为例 输入正确用户名及错误密码提示用户名或密码错误. 输入错误用户名及正确密码. 输入正确用户名及正确密码 进入论坛主页
3.3主页测试
1.点击发帖子 2.选择板块 3.输入标题及内容 4.点击发布 5.发布成功 6.点击输入框输入论坛测试 测试发现点击搜索框内的放大镜无法搜索。
7.点击帖子标题 显示进入帖子
8.点击发私信 9.发布成功 测试显示没有查找私信功能
10.点击回复 回复成功
3.4个人中心测试
点击主页头像 进入个人中心 点击修改昵称/邮箱地址/电话号码 测试结果发现无法修改
点击修改密码 修改成功 四、自动化测试脚本
4.1配置驱动 Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中就像真正的用户在操作一样。支持的浏览器包括IE7, 8, 9, 10, 11Mozilla FirefoxSafariGoogle ChromeOperaEdge等。 WebDriverManager 是一个开源的 Java 库用于自动管理 Selenium WebDriver 所需的驱动程序如 ChromeDriver、GeckoDriver、EdgeDriver 等。它可以自动下载、设置和维护这些驱动程序从而简化了 Selenium 测试的配置过程 在pycharm软件的设置中观察是否安装这两个软件包如果没有可能无法正常驱动打开本地浏览器
4.2创建浏览器类
每个功能都需要pycharm驱动浏览若每个功能都有一份浏览器驱动功能过多可能导致软件崩溃将驱动器类放入一个common文件功能测试则放入test文件image用于保存截屏图片
。
驱动器类 Lunta实例化出Driver类每次测试功能时调用类对象driver防止每个功能模块都创建一个新的驱动器。
import datetime
import os
import sys
import timefrom selenium import webdriver
from selenium.webdriver.edge.service import Service
from webdriver_manager.microsoft import EdgeChromiumDriverManagerclass Driver:driverdef __init__(self):#打开edge驱动管理EdsInsEdgeChromiumDriverManager().install()optionswebdriver.EdgeOptions()#创建edge浏览器对象self.driverwebdriver.Edge(serviceService(EdsIns),optionsoptions)# 截屏功能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) .pngself.driver.save_screenshot(f../images/{dirname}/ filename)
LuntaDriver()4.3功能测试
4.3.1登陆测试
函数find_element()分别找出用户名及密码输入框send_keys输入内容click模拟用户点击登陆按钮find_element找出主页信息判断是否登陆成功
import timefrom selenium.webdriver.common.by import Byfrom common.untils import Luntaclass LunTaLgoin:urldriverdef __init__(self):self.urlhttp://127.0.0.1:9580/sign-in.htmlself.driverLunta.driverself.driver.get(self.url)#成功登陆def LTLoginTest(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(1234)self.driver.find_element(By.CSS_SELECTOR,#submit).click()time.sleep(2)#查找头像是否登陆成功self.driver.find_element(By.CSS_SELECTOR,#index_nav_avatar)#截屏登陆成功页面Lunta.getScreenShot()# self.driver.find_element(By.CSS_SELECTOR,#index_nav_avatar).click()# self.driver.find_element(By.CSS_SELECTOR,#index_user_logout).click()# Lunta.getScreenShot()#登陆失败def LTFailTest(self):#密码错误self.driver.find_element(By.CSS_SELECTOR, #username).send_keys(zhangsan)self.driver.find_element(By.CSS_SELECTOR, #password).send_keys(12345)self.driver.find_element(By.CSS_SELECTOR, #submit).click()time.sleep(1)Lunta.getScreenShot()#检测是否出现密码错误弹窗self.driver.find_element(By.CSS_SELECTOR,body div.jq-toast-wrap.bottom-right div)#清空内容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(zhang)self.driver.find_element(By.CSS_SELECTOR, #password).send_keys(1234)self.driver.find_element(By.CSS_SELECTOR, #submit).click()time.sleep(1)Lunta.getScreenShot()# 检测是否出现密码错误弹窗self.driver.find_element(By.CSS_SELECTOR, body div.jq-toast-wrap.bottom-right div)# 清空内容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()self.driver.find_element(By.CSS_SELECTOR, #password).send_keys(12345)self.driver.find_element(By.CSS_SELECTOR, #submit).click()time.sleep(1)Lunta.getScreenShot()# 检测是否出现用户名不能为空提示textself.driver.find_element(By.CSS_SELECTOR, #signInForm div.mb-3 div).textassert text用户名不能为空# 清空内容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(zhang)self.driver.find_element(By.CSS_SELECTOR, #password).send_keys()self.driver.find_element(By.CSS_SELECTOR, #submit).click()time.sleep(1)Lunta.getScreenShot()# 检测是否出现用户名不能为空提示text self.driver.find_element(By.CSS_SELECTOR, #signInForm div.mb-2 div div).textassert text 密码不能为空4.3.2注册测试
click模拟点击注册按钮find_element找出用户名昵称密码及确认密码输入框send_keys输入内容注册失败是否有弹窗提示注册成功返回登陆界面是否能登陆
import timefrom selenium.webdriver.common.by import Byfrom common.untils import Lunta
class LunTareg:driverurldef __init__(self):self.url http://127.0.0.1:9580/sign-in.htmlself.driver Lunta.driverself.driver.get(self.url)def LTreg(self):time.sleep(2)self.driver.implicitly_wait(2)self.driver.find_element(By.CSS_SELECTOR,body div div div div:nth-child(1) div div.text-center.text-muted.mt-3 a).click()#注册成功self.driver.find_element(By.CSS_SELECTOR,#username).send_keys(zhangs)self.driver.find_element(By.CSS_SELECTOR,#nickname).send_keys(zhangs)self.driver.find_element(By.CSS_SELECTOR,#password).send_keys(1234)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()time.sleep(2)Lunta.getScreenShot()self.driver.back()#登陆self.driver.find_element(By.CSS_SELECTOR, #username).send_keys(zhangs)self.driver.find_element(By.CSS_SELECTOR, #password).send_keys(1234)self.driver.find_element(By.CSS_SELECTOR, #submit).click()time.sleep(2)# 查找头像是否登陆成功self.driver.find_element(By.CSS_SELECTOR, #index_nav_avatar)# 截屏登陆成功页面Lunta.getScreenShot()time.sleep(2)self.driver.back()def LTrefaii(self):time.sleep(2)self.driver.implicitly_wait(2)#点击注册self.driver.find_element(By.CSS_SELECTOR,body div div div div:nth-child(1) div div.text-center.text-muted.mt-3 a).click()# 注册失败(用户已存在)self.driver.find_element(By.CSS_SELECTOR, #username).send_keys(zhangs)self.driver.find_element(By.CSS_SELECTOR, #nickname).send_keys(zhangs)self.driver.find_element(By.CSS_SELECTOR, #password).send_keys(1234)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()#是否弹窗提示self.driver.find_element(By.CSS_SELECTOR,body div.jq-toast-wrap.bottom-right div)Lunta.getScreenShot()# 注册失败(用户名为空)self.driver.find_element(By.CSS_SELECTOR, #username).clear()self.driver.find_element(By.CSS_SELECTOR, #submit).click()# 是否提示textself.driver.find_element(By.CSS_SELECTOR, #signUpForm div div:nth-child(2) div).textassert text用户名不能为空Lunta.getScreenShot()# 注册失败(昵称为空)self.driver.find_element(By.CSS_SELECTOR, #username).send_keys(zhangs)self.driver.find_element(By.CSS_SELECTOR, #nickname).clear()self.driver.find_element(By.CSS_SELECTOR, #submit).click()# 是否提示text self.driver.find_element(By.CSS_SELECTOR, #signUpForm div div:nth-child(3) div).textassert text 昵称不能为空Lunta.getScreenShot()# 注册失败(密码为空)self.driver.find_element(By.CSS_SELECTOR, #nickname).send_keys(zhangs)self.driver.find_element(By.CSS_SELECTOR, #password).clear()self.driver.find_element(By.CSS_SELECTOR, #submit).click()time.sleep(2)# 是否提示text self.driver.find_element(By.CSS_SELECTOR, #signUpForm div div:nth-child(4) div).textassert text 密码不能为空Lunta.getScreenShot()# 注册失败(确认密码错误)self.driver.find_element(By.CSS_SELECTOR, #password).send_keys(1234)self.driver.find_element(By.CSS_SELECTOR, #passwordRepeat).send_keys(12345)self.driver.find_element(By.CSS_SELECTOR, #submit).click()textself.driver.find_element(By.CSS_SELECTOR,#signUpForm div div:nth-child(5) div div).textassert text请检查确认密码#未点击同意self.driver.find_element(By.CSS_SELECTOR, #policy).click()# 是否弹窗提示self.driver.find_element(By.CSS_SELECTOR, body div.jq-toast-wrap.bottom-right div)Lunta.getScreenShot()self.driver.back()4.3.3主页测试
1.click点击发帖子内容 2.send_keys输入标题 3.send_keys输入内容编辑框外置无法完成交互 4.Action链模拟点击click无法点击
import timefrom selenium.webdriver import ActionChains
from selenium.webdriver.common.by import Byfrom common.untils import Luntaclass LunTahome():driverurldef __init__(self):# 登陆状态urlself.driverLunta.driverself.urlhttp://127.0.0.1:9580/index.htmlself.driver.get(self.url)def LTPuTest(self):self.driver.implicitly_wait(5)#点击发布帖子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).click()#编辑框外置无法完成交互# 输入标题,若能交互则完成以下命令# self.driver.find_element(By.CSS_SELECTOR, #article_post_title).send_keys(如何年薪百万)#self.driver.find_element(By.CSS_SELECTOR,article_post_submit).click()# # Action链模拟点击# element self.driver.find_element(By.XPATH, //*[idarticle_post_submit])# ActionChains(self.driver).move_to_element(element).click().perform()# # 提示帖子内容不能为空# self.driver.find_element(By.CSS_SELECTOR, body div.jq-toast-wrap.bottom-right div)# Lunta.getScreenShot()#输入标题self.driver.find_element(By.CSS_SELECTOR,#article_post_title).send_keys(如何年薪百万)#Action链模拟点击elementself.driver.find_element(By.XPATH,//*[idarticle_post_submit])ActionChains(self.driver).move_to_element(element).click().perform()#提示帖子内容不能为空self.driver.find_element(By.CSS_SELECTOR,body div.jq-toast-wrap.bottom-right div)Lunta.getScreenShot()# 不输入标题self.driver.find_element(By.CSS_SELECTOR,#article_post_title).clear()# Action链模拟点击element self.driver.find_element(By.XPATH, //*[idarticle_post_submit])ActionChains(self.driver).move_to_element(element).click().perform()# 提示输入标题不能为空self.driver.find_element(By.CSS_SELECTOR, body div.jq-toast-wrap.bottom-right div)Lunta.getScreenShot()self.driver.back()4.3.4帖子编辑
click点击发帖子私信send_keys输入内容click点击回复find_element搜索回复成功弹窗click点击回复send_keys输入内容click点击回复find_element搜索“回复成功弹窗”click点击点赞
import timefrom selenium.webdriver.common.by import Byfrom common.untils import Luntaclass LunTaser:driverurldef __init__(self):self.urlhttp://127.0.0.1:9580/index.htmlself.driverLunta.driverself.driver.get(self.url)#搜索def LTaser(self):self.driver.implicitly_wait(5)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).send_keys(1234)#点击搜索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).click()#搜索第一篇文章time.sleep(3)textself.driver.find_element(By.CSS_SELECTOR,#artical-items-body div:nth-child(1) div div.col div.text-truncate a strong).textLunta.getScreenShot()#断言是否搜索成功#assert text1234#私信def LTiss(self):self.driver.implicitly_wait(5)Lunta.getScreenShot()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()Lunta.getScreenShot()#是否发布成功弹窗self.driver.find_element(By.CSS_SELECTOR,body div.jq-toast-wrap.bottom-right div)Lunta.getScreenShot()#回复def LTreply(self):self.driver.implicitly_wait(5)time.sleep(5)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_reply div.CodeMirror.cm-s-default.CodeMirror-wrap.CodeMirror-empty div.CodeMirror-scroll).send_keys(哇哈哈)self.driver.find_element(By.CSS_SELECTOR,#details_btn_article_reply span).click()#内容为空无法发送Lunta.getScreenShot()#提示请输入内容self.driver.find_element(By.CSS_SELECTOR,body div.jq-toast-wrap.bottom-right div)#点赞def LTlike(self):self.driver.implicitly_wait(5)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 h2)time.sleep(1)Lunta.getScreenShot()4.3.5运行主代码
from test import LunTaLgoin
from test import LunTahome
from test import LunTareg
from test import LunTaserif __name__ __main__:# 注册失败LunTareg.LunTareg().LTrefaii()# 注册成功LunTareg.LunTareg().LTreg()#登陆失败LunTaLgoin.LunTaLgoin().LTFailTest()#登陆成功LunTaLgoin.LunTaLgoin().LTLoginTest()#主页测试LunTahome.LunTahome().LTPuTest()# 帖子测试LunTaser.LunTaser().LTaser()LunTaser.LunTaser().LTiss()LunTaser.LunTaser().LTreply()LunTaser.LunTaser().LTlike()
五、BUG分析
搜索框输入内容无法点击搜索 主页板块内容显示不完全 昵称、邮箱地址、电话号码、个人简介无法修改 六、测试总结 本次论坛系统测试旨在全面验证系统功能的完整性、稳定性及用户体验确保系统能够满足用户在信息交流、内容发布等方面的需求。测试范围涵盖了前台用户操作功能以及后台管理功能采用了多种测试方法包括功能测试、性能测试、兼容性测试等。