当前位置: 首页 > news >正文

【压力测试指南】没有任何文档,小白也可以做的压力测试

前言

一般在执行压力测试之前,会由开发提供出接口文档,包含一些接口的详细参数,便于测试工程师编写测试脚本。但在某些情况下,接口等相关文档缺失,那作为Tester,我们该如何顺利的实施压力测试呢?

本实践将以Web应用为例(某新闻网页),对该页面包含的所有HTTP(s) 接口进行压力测试。在没有任何文档前提下,我们可以通过浏览器的调试模式(F12),获取与网络相关的接口请求和响应信息,从而设计出压测脚本并执行。
主要的实践步骤如下:

一、获取接口信息,编写用例

01获取GET请求接口信息

在待测Web页面中,按F12进入调试模式(Chrome浏览器)
点击Network*

Network面板可以记录页面上的网络请求的详情信息,从发起网页页面请求Request后,分析HTTP请求,从而得到的各个请求资源信息

点击左侧Name中资源文件,查看Headers
获取对应的 请求URL(Request URL)和 请求头(Request Headers)
如下图所示:
在这里插入图片描述

将获取到的请求URL和请求头,做本地记录,或录入到接口管理平台形成接口用例:
在这里插入图片描述

02获取POST请求接口信息

Post请求信息的获取方式与Get请求接口一致,但通常Post多一个请求体(Request Body)
GET请求与POST请求的区别

  • GET请求 - 从指定的资源请求数据,用于获取数据,一般用于搜索排序和筛选之类的操作

  • POST请求 - 向指定的资源提交要被处理的数据,用于将数据发送给服务器,一般用于修改和写入数据
    点击Payload,查看对应请求体信息,如图所示:
    在这里插入图片描述

同样,录入平台形成Post接口用例:
在这里插入图片描述

二、调试测试用例

使用工具或平台的调试功能,查看调试日志的响应信息。
并与浏览器对应接口的响应信息对比(点击Response查看),如图:
在这里插入图片描述

在这里插入图片描述

如果内容一致,则证明所捕获的接口信息准确。
准备工作完成,接下来开始压测!

三、压测配置、执行

01压测模式选择

通常压测模式分为两种:用户数模式吞吐量模式

  • 用户数模式:对于需要探索系统性能瓶颈,推荐使用用户数模式。其中如何设置模拟用户数(并发数),需要对流量做准确预估。除此之外,也推荐使用梯度增压模式,通过系统自动增加模拟用户数(并发数),找到瓶颈所在
  • **吞吐量(QPS)**模式:对于有明确吞吐量指标(假设已知高峰吞吐量为280),即推荐使用吞吐量模式,设定最大吞吐量为350,同时设置压测的时长,即可执行测试
    根据实际业务需求选择压测模式,配置对应参数,执行压测吧~
    在这里插入图片描述

02解读压测报告,找到性能瓶颈

压测执行结束后,需要关注的核心指标:吞吐量、响应时间、成功率等,先确认测试结果是否达到预期,如不满足可以通过以下情况做排查:

  • 成功率未达标:查看错误日志,排查错误根本原因,进行性能调优

  • 响应时间未达标:对照错误日志、链路追踪结果、服务器性能指标、数据库/中间件监控指标,找到响应时间过长的具体原因

  • 吞吐量未达标:如果成功率和响应时间均达标,建议不断增加模拟用户数,重新压测,查看测试结果

优测压力测试云平台

优测压力测试平台:优测压力测试是一款在线云原生全链路压测平台,百万级并发即召即用。兼容JMeter脚本,一键上传即可随时发压,免去压测工具搭建成本。除在线压测工具外,也支持私有化部署、定制化开发及专家压测服务。
在这里插入图片描述

在这里插入图片描述

http://www.lryc.cn/news/156571.html

相关文章:

  • Linux: memory: memblock: debug
  • 搬家快递服务小程序的便利性
  • 软件架构师 Debugging
  • ​7.1 项目1 学生通讯录管理:文本文件增删改查(C++版本)(自顶向下设计+断点调试) (A)​
  • 学习使用php判断阿里云oss图片单图或批量上传、查询图片文件是否存在
  • 重磅| Falcon 180B 正式在 Hugging Face Hub 上发布!
  • Linux命令行
  • [持续更新]计算机经典面试题基础篇Day1
  • ProcessWindowFunction 结合自定义触发器的陷阱
  • 什么是jvm
  • kettle通过java步骤获取汉字首拼
  • Conformer: Local Features Coupling Global Representationsfor Visual Recognition
  • java8-Stream流常用API
  • React 任务调度
  • 小白开始学习C++
  • SpringMVC入门的注解、参数传递、返回值和页面跳转---超详细教学
  • 【复习socket】每天40min,我们一起用70天稳扎稳打学完《JavaEE初阶》——28/70 第二十八天
  • vue2踩坑之项目:生成二维码使用vue-print-nb打印二维码
  • 【iVX】十五分钟制作一款小游戏,iVX真有怎么神?
  • SpringMVC常用注解、参数传递、返回值
  • 新公司第一次上架新APP需要提前准备哪些材料?
  • 『C语言进阶』指针进阶(一)
  • 2605. 从两个数字数组里生成最小数字(Java)
  • 深度解析 PostgreSQL Protocol v3.0(一)
  • Mysql中having语句与where语句的用法与区别
  • 基于qt软件的网上聊天室软件
  • 本是同根生-双数据库集群keepalived virtual_route_id冲突导致连接故障
  • 『力扣每日一题06』字符串中的第一个唯一字符
  • selenium鼠标操作方法
  • 医者无疆 | AI赋能大医精诚,医疗制药的进阶与突破