一、项目介绍
本项目对“论坛系统”进行功能、兼容性测试,并编写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