网站开发基础教程,上传wordpress后网页为什么空白,wordpress 要备案吗,泰安房产网新楼盘目录 功能测试自动化测试性能测试 功能测试 1.登录注册页面 2.游戏大厅页面
3.游戏房间页面
自动化测试
1.使用脑图编写web自动化测试用例
2.创建自动化项目#xff0c;根据用例通过selenium来实现脚本 根据脑图进行测试用例的编写#xff1a; 每个页面一个测试类根据用例通过selenium来实现脚本 根据脑图进行测试用例的编写 每个页面一个测试类然后再各个测试类中进行测试用例的编写。注意公共属性需要单独放一个类方便进行代码复用。使用测试套件便于运行以及修改。创建启动以及现场截图就是会频繁进行复用所以单独创建一个类进行存储。注意添加隐式等待为了确保页面正确加载显示。 步骤一、初始化测试用例
#创建一个浏览器对象
import 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(serviceService(ChromeDriverManager().install()),optionsoptions)self.driver.implicitly_wait(2)def getScreeShot(self):#创建屏幕截图#图片文件名称./2024-09-24-173456.pngdirname datetime.datetime.now().strftime(%Y-%m-%d)#判断dirname文件夹是否已经存在若不存在则创建文件夹# ../images/2024-09-24if not os.path.exists(../images/dirname):os.mkdir(../images/dirname)#2024-09-24-173456.png#图片路径:../images/调用方法-2024-09-24/2024-09-24-173456.png#图片路径:../images/LoginSucTest-2024-09-24/2024-09-24-173456.png#图片路径:../images/LoginFailTest-2024-09-24/2024-09-24-173456.pngfilename sys._getframe().f_back.f_code.co_name-datetime.datetime.now().strftime(%Y-%m-%d-%H%M%S).pngself.driver.save_screenshot(../images/dirname/filename)GBDriver Driver()步骤二、对登录注册页面的测试
import timefrom selenium.webdriver.common.by import Byfrom common.Utils import GBDriver
#测试在线OJ系统登陆页面class GBLogin:url driver def __init__(self):self.url http://1.117.75.202:8080/login.htmlself.driver GBDriver.driverself.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(zhangsan)self.driver.find_element(By.CSS_SELECTOR,#password).send_keys(123)self.driver.find_element(By.CSS_SELECTOR,#submit).click()#能够找到首页用户的昵称说明登录成功否则登录失败self.driver.find_element(By.CSS_SELECTOR,body div.container div.left div h3)#添加屏幕截图GBDriver.getScreeShot()#返回到登陆页面self.driver.back()#异常登陆的测试用例def LoginFailTest1(self):#若连续多次的send_keys则会出现关键词拼接而不是替换。若要替换需要先clearself.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(123)self.driver.find_element(By.CSS_SELECTOR, #submit).click()#检查是否登录失败actualself.driver.find_element(By.CSS_SELECTOR,body).text#添加屏幕截图GBDriver.getScreeShot()#断言检测一下是否符合预期assert actual 用户名或密码为空!def LoginFailTest2(self):#若连续多次的send_keys则会出现关键词拼接而不是替换。若要替换需要先clearself.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()self.driver.find_element(By.CSS_SELECTOR, #submit).click()#检查是否登录失败actualself.driver.find_element(By.CSS_SELECTOR,body).text#添加屏幕截图GBDriver.getScreeShot()#断言检测一下是否符合预期assert actual 用户名或密码为空!def LoginFailTest3(self):#若连续多次的send_keys则会出现关键词拼接而不是替换。若要替换需要先clearself.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()self.driver.find_element(By.CSS_SELECTOR, #submit).click()#检查是否登录失败actualself.driver.find_element(By.CSS_SELECTOR,body).text#添加屏幕截图GBDriver.getScreeShot()#断言检测一下是否符合预期assert actual 用户名或密码为空!def LoginFailTest4(self):#若连续多次的send_keys则会出现关键词拼接而不是替换。若要替换需要先clearself.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()#检查是否登录失败actualself.driver.find_element(By.CSS_SELECTOR,body).text#添加屏幕截图GBDriver.getScreeShot()#断言检测一下是否符合预期assert actual 用户名或密码为空!#成功注册的测试用例def RegisterSucTest(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(lisi)self.driver.find_element(By.CSS_SELECTOR,#password).send_keys(123456)self.driver.find_element(By.CSS_SELECTOR,#submit).click()#检查是否注册成功actualself.driver.find_element(By.CSS_SELECTOR,body).text#添加屏幕截图GBDriver.getScreeShot()#断言检测一下是否符合预期assert actual 注册成功!#异常注册的测试用例def RegisterFailTest1(self):#若连续多次的send_keys则会出现关键词拼接而不是替换。若要替换需要先clearself.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(123456)self.driver.find_element(By.CSS_SELECTOR, #submit).click()#检查是否注册失败actualself.driver.find_element(By.CSS_SELECTOR,body).text#添加屏幕截图GBDriver.getScreeShot()#断言检测一下是否符合预期assert actual 用户名已存在!def RegisterFailTest2(self):#若连续多次的send_keys则会出现关键词拼接而不是替换。若要替换需要先clearself.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()self.driver.find_element(By.CSS_SELECTOR, #submit).click()#检查是否注册失败actualself.driver.find_element(By.CSS_SELECTOR,body).text#添加屏幕截图GBDriver.getScreeShot()#断言检测一下是否符合预期assert actual 用户名或密码为空!def LoginFailTest3(self):#若连续多次的send_keys则会出现关键词拼接而不是替换。若要替换需要先clearself.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(lisi)#密码为空self.driver.find_element(By.CSS_SELECTOR, #password).send_keys()self.driver.find_element(By.CSS_SELECTOR, #submit).click()#检查是否注册失败actualself.driver.find_element(By.CSS_SELECTOR,body).text#添加屏幕截图GBDriver.getScreeShot()#断言检测一下是否符合预期assert actual 用户名或密码为空!def LoginFailTest4(self):#若连续多次的send_keys则会出现关键词拼接而不是替换。若要替换需要先clearself.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()self.driver.find_element(By.CSS_SELECTOR, #submit).click()#检查是否注册失败actualself.driver.find_element(By.CSS_SELECTOR,body).text#添加屏幕截图GBDriver.getScreeShot()#断言检测一下是否符合预期assert actual 用户名或密码为空!login GBLogin()
login.LoginSucTest()
login.LoginFailTest()步骤三、对游戏大厅页面测试
from selenium.webdriver.common.by import Byfrom common.Utils import GBDriver
class GBHall:url driver def __init__(self):self.url http://1.117.75.202:8080/game_hall.htmlself.driver BlogDriver.driverself.driver.get(self.url)#测试游戏大厅页面def HallTest(self):#测试游戏大厅页面是否正常显示如果正常显示那么必有“游戏大厅”这一段标题actual self.driver.titleassert actual 游戏大厅#添加屏幕截图GBDriver.getScreeShot()#测试游戏大厅页面是否有玩家信息模块screen_element self.driver.find_element(By.ID, screen)#添加屏幕截图GBDriver.getScreeShot()#点击“开始匹配”按钮检查是否有匹配成功或匹配失败self.driver.find_element(By.CSS_SELECTOR,body div div div.match-button).click()# 设置隐式等待self.driver.implicitly_wait(5)#获取当前urlurl self.driver.current_url#比较期望url和当前的urlassert url http://1.117.75.202:8080/game_hall.html#添加屏幕截图GBDriver.getScreeShot()
步骤四、对游戏房间页面测试
from selenium.webdriver.common.by import Byfrom common.Utils import GBDriver
class GBRoom:url driver def __init__(self):self.url http://1.117.75.202:8080/game_room.htmlself.driver BlogDriver.driverself.driver.get(self.url)#测试游戏房间页面def RoomTest(self):# 设置隐式等待self.driver.implicitly_wait(5)#测试游戏房间页面是否正常显示如果正常显示那么必有“游戏房间”这一段标题actual self.driver.titleassert actual 游戏房间#添加屏幕截图GBDriver.getScreeShot()#测试游戏房间页面是否有玩家聊天区域screen_element self.driver.find_element(By.ID, body div div.chat_area)#添加屏幕截图GBDriver.getScreeShot()
性能测试
使用 jmeter 进行简单性能测试针对用户管理、用户匹配、游戏对战功能进行简单的性能测试。 测试策略为并发梯度测试每隔10s新增10个线程最终达到100个线程并发访问。
对注册功能进行性能测试对登录功能进行性能测试对匹配功能进行性能测试对对战功能进行性能测试
测试结果概述 在本次测试中对系统的关键性能指标进行了全面评估包括但不限于响应时间、吞吐量和错误率。测试覆盖了以下3个核心功能模块用户管理、用户匹配、游戏对战功能。 1响应时间 总体表现系统在大多数情况下响应时间较为稳定。用户登录、题目列表加载、具体题目查看、提交评测等操作在高并发场景下表现良好。 例外情况注册功能在高并发场景下出现性能瓶颈响应时间显著增加部分请求达到 30,000ms 以上影响用户体验。 2吞吐量 系统在高负载条件下表现出良好的吞吐能力能够有效处理大量并发请求。尽管在某些时段出现小幅波动但整体保持稳定。 3错误率 系统的错误率维持在 0%没有出现服务不可用或关键功能故障的情况。