当前位置: 首页 > 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脚本,一键上传即可随时发压,免去压测工具搭建成本。除在线压测工具外,也支持私有化部署、定制化开发及专家压测服务。
在这里插入图片描述

在这里插入图片描述

相关文章:

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

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

Linux: memory: memblock: debug

文章目录 代码memblock=debug实例log代码 将内存相关的一些日志打开: static int __init early_memblock(char *p) {if (p && strstr(p, "debug")...

搬家快递服务小程序的便利性

在当今快节奏的生活中,搬家可能是很多人都需要面对的问题。无论是新房子还是新办公室,都需要高效、便捷的搬家服务。本文将介绍如何使用第三方小程序制作平台,如乔拓云平台,开发一款高效便捷的搬家服务小程序。 1. 注册登录第三方…...

软件架构师 Debugging

软件架构师 Debugging 目录概述需求: 设计思路实现思路分析 参考资料和推荐阅读 Survive by day and develop by night. talk for import biz , show your perfect code,full busy,skip hardness,make a better result,wait for change,challenge Survi…...

​7.1 项目1 学生通讯录管理:文本文件增删改查(C++版本)(自顶向下设计+断点调试) (A)​

C自学精简教程 目录(必读) 作业目标: 这个作业中,你需要综合运用之前文章中的知识,来解决一个相对完整的应用程序。 作业描述: 1 在这个作业中你需要在文本文件中存储学生通讯录的信息,并在程序启动的时候加载这些…...

学习使用php判断阿里云oss图片单图或批量上传、查询图片文件是否存在

学习使用php判断阿里云oss图片单图或批量上传、查询图片文件是否存在 doesObjectExist doesObjectExist 主要函数doesObjectExist /*** Base64上传文件* param string|array $images* param string $model_path* param string $model_type* param string $upload_path* param…...

重磅| Falcon 180B 正式在 Hugging Face Hub 上发布!

引言 我们很高兴地宣布由 Technology Innovation Institute (TII) 训练的开源大模型 Falcon 180B 登陆 Hugging Face! Falcon 180B 为开源大模型树立了全新的标杆。作为当前最大的开源大模型,有180B 参数并且是在在 3.5 万亿 token 的 TII RefinedWeb 数…...

Linux命令行

目录 CLI GUI 命令行界面 图形界面 命令行提示符 # $ ​编辑 命令一般由三个部分组成 历史命令,使用上下键,或者使用history,ctrlr搜索历史命令 通配符 *,? 切换用户 su 作业管理 &,jobs,bg,fg CLI GUI 命令行界面 …...

[持续更新]计算机经典面试题基础篇Day1

[通用]计算机经典面试题基础篇Day1 1、jvm的组成 类加载器(Class Loader):负责将编译后的Java类加载到JVM中,并在运行时动态加载所需的类。运行时数据区(Runtime Data Area):是JVM的内存管理区…...

ProcessWindowFunction 结合自定义触发器的陷阱

背景: flink中常见的需求如下:统计某个页面一天内的点击率,每10秒输出一次,我们如果采用ProcessWindowFunction 结合自定义触发器如何实现呢?如果这样实现问题是什么呢? ProcessWindowFunction 结合自定义触发器实现…...

什么是jvm

一、初识JVM(虚拟机) JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。 引入Jav…...

kettle通过java步骤获取汉字首拼

kettle通过java步骤获取汉字首拼 用途描述 一组数据,需要获取汉字首拼后,输出; 实现效果 添加jar包 pinyin4j-2.5.0.jar 自定义常量数据 Java代码 完整代码: import net.sourceforge.pinyin4j.PinyinHelper; import net.sou…...

Conformer: Local Features Coupling Global Representationsfor Visual Recognition

论文链接:https://arxiv.org/abs/2105.03889 代码链接:https://github.com/pengzhiliang/Conformer 参考博文:Conformer论文以及代码解析(上)_conformer代码_从现在开始壹并超的博客-CSDN博客 摘要 在卷积神经网络…...

java8-Stream流常用API

什么是 Stream Stream(流)是 Java 8 引入的一个新的抽象概念,它代表着一种处理数据的序列。简单来说,Stream 是一系列元素的集合,这些元素可以是集合、数组、I/O 资源或者其他数据源。 Stream API 提供了丰富的操作方…...

React 任务调度

React 任务池 不同的fiber任务有不同的优先级,为了用户体验,React需要先处理优先级高的任务。 为了存储这些任务,React中有两个任务池: // Tasks are stored on a min heap var taskQueue []; // 存储立即要执行的任务 var tim…...

小白开始学习C++

​​​​第一节&#xff1a;控制台输出hello word&#xff01; #include<iostream> //引入库文件 int main() { //控制台输出 hello word! 之后回车 std::cout << "hello word!\n"; #include<iostream> //引入库文件int main() {//控制…...

SpringMVC入门的注解、参数传递、返回值和页面跳转---超详细教学

前言&#xff1a; 欢迎阅读Spring MVC入门必读&#xff01;在这篇文章中&#xff0c;我们将探索这个令人兴奋的框架&#xff0c;它为您提供了一种高效、灵活且易于维护的方式来构建Web应用程序。通过使用Spring MVC&#xff0c;您将享受到以下好处&#xff1a;简洁的代码、强大…...

【复习socket】每天40min,我们一起用70天稳扎稳打学完《JavaEE初阶》——28/70 第二十八天

专注 效率 记忆 预习 笔记 复习 做题 欢迎观看我的博客,如有问题交流,欢迎评论区留言,一定尽快回复!(大家可以去看我的专栏,是所有文章的目录)   文章字体风格: 红色文字表示:重难点★✔ 蓝色文字表示:思路以及想法★✔   如果大家觉得有帮助的话,感谢大家帮忙 点…...

vue2踩坑之项目:生成二维码使用vue-print-nb打印二维码

1. vue2安装 npm install vue-print-nb --save vue3安装 npm install vue3-print-nb --save 2. //vue2 引入方式 全局 main.js import Print from vue-print-nb Vue.use(Print) ------------------------------------------------------------------------------------ //vue2 …...

【iVX】十五分钟制作一款小游戏,iVX真有怎么神?

个人主页&#xff1a;【&#x1f60a;个人主页】 新人博主&#xff0c;喜欢就关注一下呗~ 文章目录 前言iVX介绍初上手布置背景制作可移动物体总结&#xff08;完善步骤&#xff09; 前言 在上篇文章中&#xff0c;我向大家介绍了一种打破常规的编程方式——iVX&#xff0c;可…...

【开源】基于 ASP.NET Core Blazor Server 10.0 构建的学生信息查询系统

学生查询系统基于 ASP.NET Core Blazor Server 10.0 构建的学生信息查询系统&#xff0c;使用 Excel 文件作为数据源&#xff0c;支持动态列适配和响应式布局。功能特性灵活查询&#xff1a;支持按姓名、学号进行模糊查询&#xff0c;可单独或组合使用动态列适配&#xff1a;不…...

从热设计小白到专家:我是如何用RC6-4-01这颗TEC搞定激光器温控的(真实项目复盘)

从热设计小白到专家&#xff1a;我是如何用RC6-4-01这颗TEC搞定激光器温控的&#xff08;真实项目复盘&#xff09; 激光器温控从来不是简单的"制冷片贴上去就行"。去年接手某光纤激光器项目时&#xff0c;面对客户要求的0.1℃控温精度&#xff0c;我盯着规格书里密密…...

基于Adafruit TRRS Trinkey构建低成本无障碍鼠标键盘模拟器与开关控制器

1. 项目概述&#xff1a;为无障碍交互打开一扇新窗在数字时代&#xff0c;鼠标和键盘是我们与计算机交互最直接的桥梁。然而&#xff0c;对于许多因运动神经元疾病、脊髓损伤、脑瘫或其他肢体障碍而无法使用传统输入设备的朋友来说&#xff0c;这座桥梁却显得遥不可及。作为一名…...

手把手教你用TTL线刷救活咪咕MGV3200盒子(GK6323V100C芯片/安卓9系统)

咪咕MGV3200盒子救砖全指南&#xff1a;从TTL焊接到底层刷机实战 当你的咪咕MGV3200电视盒子因为一次鲁莽的卡刷操作变成"砖头"&#xff0c;指示灯不再亮起&#xff0c;屏幕一片漆黑时&#xff0c;那种绝望感只有经历过的人才能体会。不同于普通刷机教程&#xff0c;…...

iOS设备激活锁绕过全指南:AppleRa1n离线解锁解决方案

iOS设备激活锁绕过全指南&#xff1a;AppleRa1n离线解锁解决方案 【免费下载链接】applera1n icloud bypass for ios 15-16 项目地址: https://gitcode.com/gh_mirrors/ap/applera1n 你是否曾遇到过这样的情况&#xff1a;购买了一台二手iPhone&#xff0c;却发现设备被…...

基于开源LLM构建私有化智能体:从意图解析到安全执行的工程实践

1. 项目概述与核心价值最近在折腾一个挺有意思的开源项目&#xff0c;叫giocaizzi/ralph-copilot。乍一看这个名字&#xff0c;可能会让人联想到微软的 GitHub Copilot&#xff0c;但它的定位和实现方式其实非常不同。简单来说&#xff0c;这是一个基于开源大语言模型&#xff…...

RT-Thread实战:AB32VG1驱动I2C OLED屏实现上电自启动

1. 项目概述与核心思路最近在折腾中科蓝讯的AB32VG1开发板&#xff0c;想用它来驱动一块I2C接口的OLED屏幕。在网上搜了一圈&#xff0c;发现大部分教程都停留在“官方例程”的层面——也就是在RT-Thread的msh&#xff08;类似shell的命令行&#xff09;里输入指令来测试驱动。…...

惠普OMEN游戏本终极性能优化:OmenSuperHub开源工具完全指南

惠普OMEN游戏本终极性能优化&#xff1a;OmenSuperHub开源工具完全指南 【免费下载链接】OmenSuperHub 使用 WMI BIOS控制性能和风扇速度&#xff0c;自动解除DB功耗限制。 项目地址: https://gitcode.com/gh_mirrors/om/OmenSuperHub 还在为惠普OMEN游戏本官方软件的臃…...

Tungsten自适应采样算法:如何智能分配计算资源提升渲染质量

Tungsten自适应采样算法&#xff1a;如何智能分配计算资源提升渲染质量 【免费下载链接】tungsten High performance physically based renderer in C11 项目地址: https://gitcode.com/gh_mirrors/tu/tungsten Tungsten渲染器的自适应采样算法是一种革命性的渲染优化技…...

PowerShdll源码深度分析:从DLL导出到控制台劫持的完整实现原理

PowerShdll源码深度分析&#xff1a;从DLL导出到控制台劫持的完整实现原理 【免费下载链接】PowerShdll Run PowerShell with rundll32. Bypass software restrictions. 项目地址: https://gitcode.com/gh_mirrors/po/PowerShdll PowerShdll是一个创新的PowerShell绕过工…...