写点什么

服务端性能测试笔记

用户头像
刘帅强
关注
发布于: 52 分钟前

性能测试基本概念

为什么要做性能测试?

  • 满足用户使用需求:网站访问量大崩溃,12306、微博、外卖

  • 最小化成本:新版本上线不知道部署多少台服务器

  • 评估应用系统性能,运维做系统容量提供依据、给开发应用调优参考

什么是性能测试?

  • 模拟多个用户的操作对服务器硬件性能的影响

  • TPS :每秒处理的能力

  • RT: 响应时间

常见性能压力测试工具

  • Apache ab: Apache HTTP 服务器性能基准工具

  • Apache JMeter: 支持很多协议,开源免费,使用 Java 语言开发

  • LoadRunner: 支持很多协议,收费软件,使用 C 语言开发

  • Locust:有 Web 界面、支持很多协议,开源免费,使用 python 语言开发

  • nGrinder: Naver 公司基于 Grinder 开发性能测试平台。

JMeter 的使用

  • JMeter 优点

  • 入门简单,有图形调试界面

  • 使用 Java 语言开发,支持多操作系统平台

  • 插件机制,可以二次开发定制。可以使用第三方开发者开发的协议。

  • JMeter 安装

  • 安装 jdk (jdk8)

  • 配置环境变量

  • 创建 JMeter 脚本

  • 录制新建

  • 手动创建

  • 接口压力测试请求的创建

  • Post

  • Get

  • Put

  • 压力测试中的数据传递

  • JSON 提取器

  • XPATH 提取器

  • 压力测试中的结果断言校验

  • Response Assertion

  • JSON Assertion

  • 利用 BeanShell 生成测试数据

  • BeanShell script 逻辑生成器

  • Java 代码逻辑生成器

  • 全局变量与 CSV 数据导入

  • User Defined Variables

  • CSV Data Set

  • 压测结果解读

  • 聚合报告

  • 请求/响应结果树

  • Debug Sampler

使用 Jmeter 压测某订餐系统

  • 被压测程序简介

  • 简单模拟订餐业务逻辑的 Resultful API 接口交互业务逻辑过程

  • 包含 POST、 GET、DELETE 请求

  • 使用 python3 编写

  • 包含 4 个接口:登录,浏览菜单,确认订单,注销

压测脚本简介

  • jmx 脚本位于

  • jmx/orderservice.jmx

  • 简介

  • 部署 InfluxDB

  • https://github.com/influxdata/influxdb

  • 部署 InfluxDB

  • InfluxDB 是一个用 Go 语言开发的开源分布式时序数据库

  • 新建容器网络: docker network create grafana

  • 运行容器: docker run -d - name=influxdb --network grafana -p 8086:8086 -v $[PWD]/influxdb/:/var/lib/influxdb/influxdb:1.7.10

  • 新建数据库

  • 第一种方式: curl -i -SPOST http://localhost:8086/query --data-urlencode "q = CREATE DATABASE jmeter

  • 第二种方式: docker exec -it influxdb influx. 执行语句 create database jmeter

  • 简单使用

  • show databases

  • use jmeter

  • show measurements

  • select * from jmeter limit 3

  • 配置 Grafana

  • 配置 JMeter

用户头像

刘帅强

关注

还未添加个人签名 2019.05.14 加入

测试小白 短期计划为:构建 测试开发的全貌,而非死磕某个知识点。

评论

发布
暂无评论
服务端性能测试笔记