1.参与需求评审会议,确定性能方案
性能测试方案包括
性能测试环境
性能测试业务场景
------Eg1 基于大数据量的接口响应
系统在7W/15W/30W用户信息的情况下,用户进行快速筛选,查询接口响应速度要满足用户需求
------Eg2 对接口的并发性能测试
系统有15个用户,每个用户有10个不同的表册,每个表册2000个抄表数据在同一时刻进行上传,接口达到1000TPS。
性能测试计划
性能测试通过标准
2.编写性能方案
3.部署性能测试环境
前端
后端 docker-compose为例
services:
后端服务:
image:镜像地址
network_mode: "host"
volumes:挂载
- "/home/logs/common:/home/logs/common"
ports:
- "18095:18095"
restart: unless-stopped
logging:
driver: "json-file"
options:
max-size: "2g"
environment:
- JAVA_OPTS=-XX:-OmitStackTraceInFastThrow -Xms512M -Xmx512M -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/home/logs/common/wpg-mcmr-web.hprof(内存溢出文件)
- NACOS_HOST=10.10.10.10
- NACOS_PORT=8848
- NACOS_GROUP=GROUP
- NACOS_NAMESPACE=performance
container_name:容器名称
数据库配置 mysql mqtt
nacos配置
监控配置
-----Spring-boot监控配置
-----数据库监控配置 https://zhuanlan.zhihu.com/p/375627646
4 迁移/造性能数据
根据业务场景编写压测脚本基本要求:
熟悉业务流程和业务流程后的数据库执行语句
熟悉数据库表各自段代表的含义
工具:jmeter
编写jmeter脚本
------只需要一个token的脚本:
正则表达式提取器
BeanShell取样器
{__setProperty(access_token,${access_token},)}
log.info("access_token: ${access_token}")
------多个用户对应不同token的脚本:
先用不同账号登陆然后将token和接口需要的参数放入txt文件,单接口压测读取该文件:以下载表册为例子
1getTokens_download.jmx
1-1读取login_download.txt 存放(user,password,mbCode 从数据库查询)
User/password是通过鉴权接口获取token,同时为了方便第二步下载接口的参数mbCode,同时也将mbCode填入
1-2输出文件token_download.txt文件,包含token,mbCode
2 getTokens_download.jmx
2-1读取token_download.txt的mbcode参数化
5 执行性能测试过程 监控性能指标
6 分析过程数据
慢sql解析进行优化
---------使用Explain对慢sql进行解析https://blog.csdn.net/weixin_42512723/article/details/113455778
内存溢出dump文件(开发查看)