压测实战 | 高校选课系统压力测试实战教程
每年开学季,各高校都会同步上演,轰轰烈烈的“抢课大战”!全校同学同一时间段抢课,是一种什么样的体验?当几万名学生同时涌入在线系统,指尖悬停在“提交选课”按钮上,那一刻的流量洪峰,对选课系统核心链路(登录→数据加载→提交)的并发能力要求极高。
随着9月开学季的临近,小优特别准备了一期《选课系统场景下的压力测试实战指南》,并在文末附赠“教育领域专属资源包”,助力各类院校系统提前开展性能测试,平稳度过开学季流量高峰。
业务场景解析
根据业务逻辑,需要重点测试以下三个关键流程:
01 用户登录
需构造模拟学生用户的登录凭证(用户名、密码),并将成功认证后获取的会话信息传递给后续请求,作为身份验证依据。
02 获取课程
模拟学生加载可选课程列表的操作。此步骤返回的学校数据中,关键是将目标课程的唯一标识(课程ID)提取出来,作为下一步“选课提交”请求的必需参数。
03 提交选课
利用上一步骤获取的课程ID,模拟学生提交选课的操作,判断提交选课是否成功。
压力测试需求
- 业务场景模拟:完整模拟“登录 -> 获取课程 -> 提交选课”这一核心业务路径
- 参数传递与依赖:登录环节产生的认证信息需
测试方法
基于上述业务逻辑和压测需求,我们在优测压力测试SaaS平台构建基本压测场景。
步骤一:创建测试场景
① 创建链路:选择全链路模式,通过编排的方式,无需代码即可快速构建出一个串行链路,真实模拟“用户登录->获取课程->提交选课”的场景。
② “用户登录”API配置:为模拟不同用户登录,可以通过上传csv文件构造用户登录的账密信息,方法如下:
a. 在本地新建一个.csv文件,构造两列数据,分别对应用户名和密码;
csv文件示例:
b. 上传csv文件后,在请求体页签中,添加用户登录的数据变量:
③ “获取课程”API配置:为了将某个课程ID传递给下一个请求,需要提取当前API响应出参的课程ID,作为出参。
配置方法:
选择出参定义页签,类型选择Body:Json;出参名和表达式根据选课系统的实际信息填写(可以Fn+F12组合键打开浏览器的开发者工具查看)。
出参定义配置示例:
④ “提交选课”API配置:为判断提交选课是否成功,需要使用前一个API的出参课程ID,并校验结果断言。
配置方法:
a. 点击请求体页签,数据类型选择x-www-form-urlencoded,引用前一个API的出参数据。
b. 点击出参定义页签,填写信息。
- 出参名:填写自定义的参数名称;
- 类型:选择Body的解析格式;
- 表达式:根据实际出参信息填写;
c. 点击请求结果断言页签,在断言区域填写对应的信息,为该API设置结果断言:
步骤二:测试场景调试
单击页面下方的调试按钮,调试结束后,可以查看所有执行链路的调试详情(这里由于使用的是示例URL,故显示请求报错)。
步骤三:测试场景调试
基本场景构建完成后,需要选择施压模式、设置施压量级等,示例如下:
- 压力测式:选择用户数模式,以虚拟用户模式发起压测,更适合客户端发起的场景;
- 并发数:并发模式下需填写最大并发用户数,例如1000;
- 压力配置:选择梯度增压模式,每个时间间隔递增并发量;
- 递增时间间隔:隔多久进行一次递增,例如60秒;
- 压测总时长:例如10分钟;
- 其他:可保留默认值;
步骤四:执行结果报告
压测结束后,报告概览页收集了本次压力测试中的基本信息以及相对重要的性能指标,以图表的形式展示,可快速判断测试结果是否达标。
演示报告示图:
步骤五:接口监控(可选,建议添加)
为了确保用户随时都有良好的访问体验,时刻了解API的实时运行情况,建议为业务场景同步创建监控任务。
在监控任务与统计页面,点击 引用场景,便可以一键式快速发起监控计划。当API出现连续失败时,可以实时获得告警。
福利时刻:教育领域专属礼包
点击页面“联系客服”领取:
- 限时免费1万VUM压测资源
- 测试专家1V1技术支持
- 专家测试服务优惠折扣
本文未注明其它来源的内容,其版权归原作者所有。如需转载,请在显著位置注明出处(优测云服务平台,以及文章链接:https://utest.21kunpeng.com/home/topic/pts250806)