性能测试过程(简)


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文件(开发查看)


7 编写性能测试报告

你可能感兴趣的:(性能测试过程(简))