Skip to content

性能测试实战

性能测试实战

学习体系

  • 掌握 JMeter 常用组件
  • 掌握接口压测方法

知识模块

  • 服务端性能测试 L1

实战需求

实战 1:测试环境准备

  • 点击下载项目
  • 测试环境接口文档
  • 被压测演示例子程序说明:
    • 仅为用于课堂演示,被压测程序,无实际业务逻辑,Mock应用
    • 简单模拟一个订餐业务逻辑的 Restful API 接口交互业务逻辑过程
    • 包含 GET、POST、DELETE 请求

实战 2:单接口压测

  • 单接口压测
    • 点菜系统登录接口
    • 添加断言
    • 设定并发数
    • 设定运行时间
    • 解读压测报告

实战 3:编写接口脚本

  • 完成 4 个接口的脚本编写
  • 完成用户的变量定义与调用
  • 完成 token 提取

实战 4:场景压测

  • 场景压测:点菜系统
    • 登录接口
    • 浏览菜单接口
    • 订单确认接口
    • 用户注销接口
    • 添加断言
    • 解决 Unicode 显示成可读中文
    • 生成聚合报告

实战 5:参数化

  • 参数化实现多用户登录:csv 格式
  • 生成具体报告

相关知识点

教程地址 教程视频地址 时间位置
JMeter 虚拟用户管理 JMeter 虚拟用户管理 全部
JMeter 监听器 JMeter 监听器 5:10-9:44
JMeter 变量与引用 JMeter 变量与引用 全部
JMeter 后置处理器 JMeter 后置处理器 全部
JMeter 定时器 JMeter 定时器 全部
控制器 控制器 全部
使用变量进行参数化测试 使用变量进行参数化测试 全部
JMeter 参数化 csv JMeter 参数化 csv 全部

实战演练

实战 1:测试环境准备

  1. 下载测试环境项目到本地,解压缩
  2. 使用 pycharm 打开项目
  3. 安装项目依赖:pip install -r requirements.txt

  1. 启动服务

  1. 服务启动成功

实战 2:单接口压测

点击下载 jmx 文件

  1. 添加线程组
  2. 添加 HTTP 取样器

    1. 定义请求名称:用户登录
    2. 配置 Host 、Port、Path = /api/v1/user/login
    3. 配置 Method = POST
    4. 添加接口请求参数

  1. 添加 json 断言

  1. 添加查看结果树

  1. 设置并发

  1. 添加聚合报告

  1. 设置压测时间

  1. 查看压测结果

实战 3:编写接口脚本

点击下载 jmx 文件

  1. 浏览菜单接口

添加头信息

解决Unicode 显示成可读中文的问题

添加 BeanShell 后置处理器

将项目中 unicode2utf8/unicode2utf8.js 内容复制粘贴到 BeanShell PostProcessor 中

添加响应断言

  1. 订单确认接口

  1. 用户注销接口

  1. 变量设置

  1. 变量引用

  1. 运行查看结果

  1. 参数传递:提取登录接口获取的 token 传递给其他业务接口

把头信息管理器中的 token 值改为引用变量的形式

实战 4:场景压测

点击下载 jmx 文件

  1. 添加固定定时器

  1. 添加事务控制器组件

把 4 个接口放到事务控制器下

  1. 运行查看结果

实战 5:参数化

  1. 添加 CSV 数据配置组件

  1. 配置 CSV 组件

  1. 登录接口中使用变量引用 csv 文件中的值

  1. 设置线程

  1. 运行查看效果

总结

  • 掌握 JMeter 常用组件
  • 掌握接口压测方法