目录
一.概述
1.1 测试背景
问卷系统是面向企业用户的在线调研平台,支持问卷创建、发布、数据回收与统计分析。本次测试为问卷系统上线前的测试,旨在验证系统是否满足需求规格说明书中定义的功能、性能及安全要求,确保系统稳定交付。
1.2 测试目标
验证核心功能(问卷设计、发布、填写、统计)的正确性与完整性
检查问卷系统各个界面是否存在缺陷
确保用户数据安全与权限控制有效
1.3测试文档
| 类型 | 配置版本 |
| 测试硬件设备 | 神舟战神Z7 |
| 手动化测试浏览器 | Microsoft Edge版本 146.0.3856.78 (正式版本) (64 位) |
| 自动化开发环境 | PyCharm Community Edition 2023.2.2 |
| 自动化测试工具 | Selenium4.2 |
| 操作系统 | Windows 11 |
| 自动化测试浏览器 | Microsoft Edge版本 146.0.3856.78 (正式版本) (64 位) |
二.测试用例
测试用例是一组输入、执行条件和预期结果的集合,目的是验证软件是否满足需求规格。
2.1登录页面测试用例

2.2 注册界面测试用例

2.3 主页面测试用例




三.手动化功能测试
手动测试(Manual Testing),也称为手工测试。它是软件测试中最基础、最传统的一种方式,由测试人员手工执行测试用例,模拟真实用户的操作,观察系统实际行为是否与预期一致,并记录缺陷。
3.1注册界面手动化功能测试
注册页面色彩正常,UI正常,文字排版及格式正常,无负能量反馈,方便易用


不填任何数据,无法注册,并进行提示

未输入用户名,注册失败,显示:用户名为必填项!

未输入登录帐名,注册失败,显示:登录账号不能为空!

未输入密码,注册失败,显示:密码为必填项!

输入密码不符合位数要求,显示:密码至少6位

未输入确认密码,显示:请再次输入密码

点击隐藏小眼睛,显示密码

再次点击小眼睛,隐藏密码

步骤无误后点击”注册账户“,跳转至登录页面,并显示”注册成功“

点击”返回登录“,跳转至登录界面


3.2 登录界面手动化功能测试
注册页面色彩正常,UI正常,文字排版及格式正常,无负能量反馈,方便易用


什么都未输入,登录失败,显示:用户名是必填项!、密码是必填项!

输入账号,未输入密码,显示:密码是必填项

未输入账号,显示:用户名是必填项!

点击隐藏小眼睛,显示密码

再次点击,隐藏密码

点击”注册用户“,跳转至注册页面


3.3主页面手动化功能测试
输入正确的用户名和密码,点击”登录后,进入主页面,并且显示登录成功
主页面色彩正常,UI正常,文字排版及格式正常,无负能量反馈,方便易用

点击侧面按钮,左侧功能板展开

点击我的项目,进入我的项目页面

点击新建,展开新建选项页面

在新建项下,点击“问卷调查”,进入问卷调查页面,并成功创建,并保存成功

在新建项下,点击“创建考试”,进入在线考试页面,并成功创建,并保存成功

在新建项下,点击“通过Excel导入”,进入Excel导入问卷界面

在新建项下,点击”文本导入问卷“,成功进入文本导入问卷

在新建项下,点击”通过模板导入“,成功进入模板导入界面

在新建下,点击”通过模板导入“,成功进入模板导入界面

在新建项下,点击”回收站“,成功进入回收站界面

在我的项目页面,点击分类项,成功显示分类

在我的项目页面,点击所有列表项,成功显示所有项目

点击搜索栏,输入考试名称,点击搜索,显示出搜索项目

我的练习页面功能测试




















系统管理界面手动化测试
































主页面手动化功能测试就结束了,是不是很繁琐?所以,为了提高测试效率,我们可以借助自动化测试工具。例如selenium 。
四. 自动化测试
4.1注册页面自动化测试

from selenium import webdriver
from selenium.webdriver.edge.service import Service
import datetime
from time import sleep
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
driver_path = r"D:\Python文件\edgedriver_win64\msedgedriver.exe"
# 定义了一个字符串变量 driver_path,用来存储 Edge 驱动(msedgedriver.exe)的绝对路径。
service = Service(driver_path) # 创建了一个 Service 对象,参数 driver_path 告诉 Service 要启动哪个驱动程序的路径
driver = webdriver.Edge(service=service)
# 使用 webdriver.Edge 类实例化一个浏览器驱动对象,通过 service=service 参数将之前创建的 Service 对象传递给 Edge 驱动。
driver.implicitly_wait(5)
# 添加隐式等待 ,告诉 WebDriver,在尝试查找一个元素时,如果该元素没有立即出现,最多等待 5 秒 后再抛出 NoSuchElementException
driver.get("http://49.235.61.184:8080/user/login?redirect=%2Fsystem%2Fsetting")
# 进入问卷系统网址
# sleep(2)
# driver.find_element(By.CSS_SELECTOR,"#root > div > div.content___2zk1- > div.main___x4OjT > div > form > div:nth-child(4) > a").click()
#进入注册页面
# filename = "LoginPageTesting-" + datetime.datetime.now().strftime("%Y-%m-%d-%H%M%S") + ".png"
# # 获取当前系统时间,返回一个 datetime 对象,包含年、月、日、时、分、秒、微秒等,生成唯一文件名,避免重复截图覆盖,同时通过时间戳天然排序。
# driver.save_screenshot("./SaveImage/" + filename)
# 保存截图到指定文件
#driver.find_element(By.CSS_SELECTOR,"#root > div > div.content___1k5Ro > div.main___19HXK > div > form > button").click()
#不按正确步骤输入,直接点击注册,显示注册失败
# sleep(2)
# filename = "LoginPageTesting-" + datetime.datetime.now().strftime("%Y-%m-%d-%H%M%S") + ".png"
# driver.save_screenshot("./SaveImage/" + filename)
# driver.find_element(By.CSS_SELECTOR,"#name").send_keys("CC")
# driver.find_element(By.CSS_SELECTOR,"#root > div > div.content___1k5Ro > div.main___19HXK > div > form > button").click()
#只输入用户名,然后直接进行注册,显示登录名和密码是必填项,注册失败
# driver.find_element(By.CSS_SELECTOR,"#name").send_keys("CC")
# driver.find_element(By.CSS_SELECTOR,"#username").send_keys("CC")
# driver.find_element(By.CSS_SELECTOR,"#root > div > div.content___1k5Ro > div.main___19HXK > div > form > button").click()
#只输入用户名和登录账号,然后直接点注册,显示密码是必填项,注册失败
# driver.find_element(By.CSS_SELECTOR,"#name").send_keys("CC")
# driver.find_element(By.CSS_SELECTOR,"#username").send_keys("CC")
# driver.find_element(By.CSS_SELECTOR,"#password").send_keys("123456")
# driver.find_element(By.CSS_SELECTOR,"#root > div > div.content___1k5Ro > div.main___19HXK > div > form > button").click()
#不输入确认密码,直接点注册,显示:请再次输入密码,注册失败
# driver.find_element(By.CSS_SELECTOR,"#name").send_keys("CC")
# driver.find_element(By.CSS_SELECTOR,"#username").send_keys("CC")
# driver.find_element(By.CSS_SELECTOR,"#password").send_keys("123456")
# driver.find_element(By.CSS_SELECTOR,"#rePassword").send_keys("123457")
# driver.find_element(By.CSS_SELECTOR,"#root > div > div.content___1k5Ro > div.main___19HXK > div > form > button").click()
#确认密码与密码不一致,显示:两次密码不一致,注册失败
# driver.find_element(By.CSS_SELECTOR,"#name").send_keys("CC")
# driver.find_element(By.CSS_SELECTOR,"#username").send_keys("CC")
# driver.find_element(By.CSS_SELECTOR,"#password").send_keys("123456")
# driver.find_element(By.CSS_SELECTOR,"#rePassword").send_keys("123456")
# driver.find_element(By.CSS_SELECTOR,"#root > div > div.content___1k5Ro > div.main___19HXK > div > form > button").click()
#步骤均正确,注册成功,跳转至登录界面
# driver.find_element(By.CSS_SELECTOR,("#root > div > div.content___1k5Ro > div.main___19HXK > div > form > div:nth-child(6) > a")).click()
sleep(3)
filename = "LoginPageTesting-" + datetime.datetime.now().strftime("%Y-%m-%d-%H%M%S") + ".png"
driver.save_screenshot("./SaveImage/" + filename)
driver.quit()
4.2登录页面自动化测试
from selenium import webdriver
from selenium.webdriver.edge.service import Service
import datetime
from time import sleep
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
driver_path = r"D:\Python文件\edgedriver_win64\msedgedriver.exe"
# 定义了一个字符串变量 driver_path,用来存储 Edge 驱动(msedgedriver.exe)的绝对路径。
service = Service(driver_path) # 创建了一个 Service 对象,参数 driver_path 告诉 Service 要启动哪个驱动程序的路径
driver = webdriver.Edge(service=service)
# 使用 webdriver.Edge 类实例化一个浏览器驱动对象,通过 service=service 参数将之前创建的 Service 对象传递给 Edge 驱动。
driver.implicitly_wait(5)
# 添加隐式等待 ,告诉 WebDriver,在尝试查找一个元素时,如果该元素没有立即出现,最多等待 5 秒 后再抛出 NoSuchElementException
driver.get("http://49.235.61.184:8080/user/login?redirect=%2Fsystem%2Fsetting")
# 进入问卷系统网址
# sleep(2)
# filename = "LoginPageTesting-" + datetime.datetime.now().strftime("%Y-%m-%d-%H%M%S") + ".png"
# # 获取当前系统时间,返回一个 datetime 对象,包含年、月、日、时、分、秒、微秒等,生成唯一文件名,避免重复截图覆盖,同时通过时间戳天然排序。
# driver.save_screenshot("./SaveImage/" + filename)
# 保存截图到指定文件
# driver.find_element(By.CSS_SELECTOR,"#username").send_keys("CC")
# driver.find_element(By.CSS_SELECTOR,"#root > div > div.content___2zk1- > div.main___x4OjT > div > form > button").click()
# #只输入用户名,直接点“登录”,显示密码是必填项
# driver.find_element(By.CSS_SELECTOR,"#username").send_keys("CC")
# driver.find_element(By.CSS_SELECTOR,"#password").send_keys("123457")
# driver.find_element(By.CSS_SELECTOR,"#root > div > div.content___2zk1- > div.main___x4OjT > div > form > button").click()
#输入正确的用户名,错误的密码,显示错误的用户名和密码
driver.find_element(By.CSS_SELECTOR,"#username").send_keys("CC")
driver.find_element(By.CSS_SELECTOR,"#password").send_keys("123456")
driver.find_element(By.CSS_SELECTOR,"#root > div > div.content___2zk1- > div.main___x4OjT > div > form > button").click()
# 正确的密码和用户名,进入主页面
sleep(3)
filename = "LoginPageTesting-" + datetime.datetime.now().strftime("%Y-%m-%d-%H%M%S") + ".png"
driver.save_screenshot("./SaveImage/" + filename)
driver.quit()
4.3主页面自动化测试
import time
from selenium import webdriver
from selenium.webdriver.edge.service import Service
import datetime
from time import sleep
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
driver_path = r"D:\Python文件\edgedriver_win64\msedgedriver.exe"
# 定义了一个字符串变量 driver_path,用来存储 Edge 驱动(msedgedriver.exe)的绝对路径。
service = Service(driver_path) # 创建了一个 Service 对象,参数 driver_path 告诉 Service 要启动哪个驱动程序的路径
driver = webdriver.Edge(service=service)
# 使用 webdriver.Edge 类实例化一个浏览器驱动对象,通过 service=service 参数将之前创建的 Service 对象传递给 Edge 驱动。
# driver.implicitly_wait(5)
# 添加隐式等待 ,告诉 WebDriver,在尝试查找一个元素时,如果该元素没有立即出现,最多等待 5 秒 后再抛出 NoSuchElementException
driver.get("http://49.235.61.184:8080/user/login?redirect=%2Fsystem%2Fsetting")
# 进入问卷系统网址
# sleep(2)
# filename = "LoginPageTesting-" + datetime.datetime.now().strftime("%Y-%m-%d-%H%M%S") + ".png"
# # 获取当前系统时间,返回一个 datetime 对象,包含年、月、日、时、分、秒、微秒等,生成唯一文件名,避免重复截图覆盖,同时通过时间戳天然排序。
# driver.save_screenshot("./SaveImage/" + filename)
# 保存截图到指定文件
driver.find_element(By.CSS_SELECTOR,"#username").send_keys("CC")
driver.find_element(By.CSS_SELECTOR,"#password").send_keys("123456")
driver.find_element(By.CSS_SELECTOR,"#root > div > div.content___2zk1- > div.main___x4OjT > div > form > button").click()
# 正确的密码和用户名,进入个人信息主页面
# driver.find_element(By.CSS_SELECTOR,"#phone").send_keys("12345678988")
# driver.find_element(By.CSS_SELECTOR,"#email").send_keys("888")
# driver.find_element(By.CSS_SELECTOR,"#profile").send_keys("帅气")
# driver.find_element(By.CSS_SELECTOR,"#sk-layout > div > div > section > div.ant-pro-layout-container > main > div > div > div > div.right___2jdGg > div.baseView___3sRG3 > div.left___GavW0 > form > div.ant-space.ant-space-horizontal.ant-space-align-center > div:nth-child(2) > button").click()
# driver.find_element(By.CSS_SELECTOR,"#sk-layout > div > div > section > div.ant-pro-layout-container > main > div > div > div > div.leftMenu___179-W > ul > li:nth-child(2) > span").click()
# 进入安全设置界面
time.sleep(1)
# driver.find_element(By.CSS_SELECTOR,"#sk-layout > div > div > section > div.ant-pro-layout-container > main > div > div > div > div.leftMenu___179-W > ul > li:nth-child(2) > span").click(
driver.find_element(By.XPATH,"//span[text()='安全设置']").click()
#进入AI设置界面
driver.find_element(By.XPATH,"//span[text()='AI设置']").click()
# # 点击我的问卷,显示我的问卷列
driver.find_element(By.XPATH,).click()
sleep(3)
filename = "MainPageTesting-" + datetime.datetime.now().strftime("%Y-%m-%d-%H%M%S") + ".png"
driver.save_screenshot("./SaveImage/" + filename)
driver.quit()
五.结语
本篇主要介绍测试软件项目相关流程,供小伙伴们参考学习,愿与大家共同进步,祝天天开心~
2679

被折叠的 条评论
为什么被折叠?



