性能测试入门(二):做个最简单的性能测试

CM-GAI:基于连续介质力学与最优传输的数据生成新范式 在数据驱动的工程与科学研究中,如何利用有限的物理数据实现可靠预测是核心挑战。传统方法如深度神经网络,在数据稀缺时往往泛化能力不足且缺乏物理一致性。为解决此问题,一种融合物理原理与数据驱动的新范式应运而生。其核心思想是将数据分布的变化类比为连续介质在广义力驱动下的力学变形过程,通过最优传输理论为分布变换提供最优路径的度量。这种方法将物理规律(如质量守恒、运动方程)作为硬约束嵌入模型,确保了生成过程的物理可解释性。物理信息神经网络(PINNs)则被用作高效求解器,处理高维特征空间中的复杂控制方程。在工程实践中, 阅读详情

之前在《性能测试中的各项指标告诉我们什么》简单介绍了一些基本的性能指标的含义,明确了我们性能测试的目标是在保证请求成功率及不超过目标请求时间的情况下,找出我们系统的最大并发量。在这篇文章中我们做些实践,以程序员小张的视角来做一次性能测试。

做个最简单的性能测试

首先我们把问题简单化一些,假设小张从业务经理接到的一个网站开发任务,这个网站只设计了一个网页,内容是每天公司都会更新发布的10条信息。

好了,因为我们的假设,任务很简单,小张三下五除二就把功能实现做完了,把程序部署到了一台服务器上,然后告知经理做完了。经理说,这个网站很重要,是董事长她小姨子亲手抓的项目,是公司的脸面,董事长一再强调不能做成12306网站那样一点就挂,你这程序能不能撑得住。小张说那我做下性能测试吧

小张先问了问业务经理,说我们的最大响应时间Latency是多久,业务经理有点蒙逼,说你说啥。小张清清嗓子,就是网站用户敲入网址,等待网页打开,最多能等待几秒?业务经理说,你来定吧,于是小张定了3秒。

定了3秒的最大响应时间,小张在网上找了一个测试工具(后文中我们会说有多少种测试工具),开始性能测试:

第一次测试

启动100个线程,每个线程访问一个页面100次,进行压测,

结果32秒完成1万请求,没有失败,每个请求平均时长32毫秒,请问在这次测试中,QPS是多少,并发量是多少?

QPS:10000个请求/32秒=312.5请求/秒

*并发量:312.5*32=100

第二次测试

启动1000个线程,每个线程访问一个页面100次,进行压测,

结果313秒完成10万请求,没有失败,每个请求平均时长3.1秒,请问在这次测试中,QPS是多少,并发量是多少?

QPS:100000个请求/313秒=319请求/秒

并发量:319*3.1=990

因为第二次测试时平均响应时长已经超过了3秒,小张看了看990这个数字,觉得系统目前最大的并发量应该在1000附近。于是跑去告诉业务经理,网站性能是最高支持1000个并发。业务经理挠了挠头,说可是我们公司内部就有3000人啊,所有人都去看一眼岂不是挂了。小张说你觉得用户刷新过一次会隔多久刷新第二次,业务经理说全部看完网页应该是5秒,就会刷新第二次了。小张说那就是思考时间大概是5秒,思考时间为5秒的情况下,并发1000的意思就是就是支持5000个用户刷新。业务经理点点头,很满意的走了。

这是最为简单的一个性能测试过程的模拟。

要考虑更多

上面的那个例子,只是为了简单体会下性能测试的大概的流程,忽略掉了很多的东西,但是现实工作中接触到的性能测试,我们需要考虑更多:

1、系统的瓶颈

性能测试的一个重要目的就是找出系统的性能瓶颈,找到瓶颈的目的其实是为了优化或者保证能优化的可能性。从软件开发角度来讲,我们对系统瓶颈是有期望的,我们期望瓶颈出现在硬件层面,而不要出现在软件层面。如果在性能测试中你发现服务器的CPU、内存等硬件指标一直都没有什么变化,那就意味着肯定是瓶颈出现在网络带宽和软件上,那我们的工作可能就是需要调整DB连接池、OS操作句柄数等指标,我们的工作就是调整这些好调整的,最后调整那些不好调整的。

从上面两次测试结果来看,虽然第二次每个请求平均时长超过3.1秒,但是其实仔细看下,相较于第一次,系统的QPS并没有增加,说明其实在第一次测试的时候,其实就已经达到了它的瓶颈。现实的情况是,上面两次结果其实都是笔者本机压测百度网站的结果,而瓶颈其实是笔者机器的出口带宽。当然在真实工作中这是不允许发生的,性能测试的客户机到被测试机间往往要忽略网络要素,通常的做法是把他们放在统一的内网环境。

所以,在实际的测试过程中,不会像小张一样只关心了测试客户端的数据,必须时刻监测服务器及中间件的各项性能指标,以找出系统瓶颈并分析优化以保证瓶颈出现在我们期望他出现的位置。

2、压测的粒度

小张面临的其实是最简单的一种压力测试,单机单应用测试,也就是只有一个主机,只有一个应用,性能非常好估算。但是实际生产环境中往往是多主机多应用的环境,还有就是存在大量的链条式的调用关系,比如必须先调用下单服务后再调用支付服务。这种情况下就需要从单机单应用出发,逐渐扩展到集群的测试,针对链条式的调用关系也要从单应用的测试,变为链路的测试,比如先单独测试下单服务和支付服务,找到他们的最大并发数后,再构建两个都测试的场景,测试链条的最大并发数。不同的软件类型往往有不同的压测方案,各家公司不太一样,没有放之四海皆准的标准。

3、压测数据流量

当压测的粒度定下来,真正进行压测的时候,实际往往要进行模拟真实的数据流量。比如说要真的模拟用户登录(压测环境往往要针对压测改些代码),模拟用户下单,这部分往往是压测工作中工作量最大的部分,因为要准备虚拟的用户数据,撰写压测脚本,还往往要针对压测要修改下目标系统的代码以保证压测可以正常进行(比如跳过密码登录,关闭IP验证等)。在传统软件领域,往往找一台或者几台性能还不错的测试机,执行下测试脚本,往往也就能构建出相对应的流量。即使对用户数据有要求,上万条用户数据模拟也基本够用了。但是对于互联网领域的大型网站来说,压测流量数据的获取往往是个大问题,没有那么多流量数据咋办。通常的做法就是两种:

  • 线上流量回放:通过tcpcopy或者tcpdump把真实用户的数据存下来,然后回放到压力测试环境以获得压力
  • 自己研发压测平台:自己开发流量平台,支持构建流量模型,造虚拟流量,撰写压测脚本,把压测脚本放到几百台施压机器上执行,对压力测试环境进行施压。其实跟传统软件找机器模拟是一个意思,但是规模要大得多,所以要求自动化程度高。目前阿里PTS平台其实就是将阿里内部的这种压测能力输出到阿里云上供中小企业能够使用

4、前端性能

仅仅针对WEB页面测试的话,小张的测试中其实还忽略了一个要素,前端。一个网页的访问往往不是单纯的一个请求,而是一组请求,除了html的请求还有接口请求,静态资源请求等。如果要考虑性能损耗的话小张应该把所有请求都考虑在内对服务器进行压测才对。笔者现实生活中就见到过项目因为前端请求图片过多大量占用带宽导致整个网站无法访问的情况发生。当然如果在实际项目上已经做了动静分离,可以单独针对前端资源获取进行服务压力测试。但是前端性能测试还要考量的是,用户体验的方面,比如首屏加载时间等,这个属于前端的领域了,与服务器关系不大,笔者不赘述,可以点此链接了解

前端性能优化和测试工具总结

数通基础(基本网络通信原理、IP地址如何配置、DHCP、DNS域名系统、路由技术基础、静态路由 、TCP和UDP、vlan虚拟局域网、trunk、三层交换) 我们知道了1、电脑开机,通过dhcp获取ip地址2、电脑输入域名,www.baidu.com电脑把www.baidu.com发到自己的dns服务器3、dns服务器把域名解析成对应的ip地址4、电脑向百度服务器发送一个请求。 阅读详情

相关推荐

6.2 磁悬浮轴承:软件架构与实现

本文系统阐述了磁悬浮轴承控制系统的软件架构与实现方法。采用分层架构设计,包括硬件抽象层、实时控制内核、控制算法层和应用层,确保系统实时性和可靠性。重点分析了电流环、位置环等关键控制任务的调度策略,比较了不同硬件平台(DSP、ARM、FPGA)的软件实现方案。强调模块化设计、配置化管理等工程实践,并详细介绍了从算法仿真到系统联调的完整开发流程。最后指出严格的测试验证是保证系统性能的关键,需通过多阶段测试评估起浮时间、稳态精度等核心指标。

技术工作者 754

7种性能测试方法,帮你提供工作效率80%

由于真实环境下的实际负载,会有高峰和低谷的交替变化(比如,对于企业级应用,白天通常是高峰时 段,而晚上则是低峰时段),所以为了尽可能地模拟出真实的负载情况,我们会每12小时模拟一个高峰 负载,两个高峰负载中间会模拟一个低峰负载,依次循环3-7天,形成一个类似于“波浪形”的系统测试 负载曲线。由于需要模拟的并发用户数,通常在“几百”到“几百万”的数量级,所以你选择的性能测试工具,一定不 是基于GUI的,而是要采用基于协议的模拟方式,也就是去模拟用户在GUI操作的过程中实际向后端服 务发起的请求。

xuezhangmen的博客 2608

【编译原理】LL(1)分析方法 生成语法树(c++实现)

基本流程 输入文法->消除左递归->提取左公共因子->求FIRST集->求FOLLOW集->LL(1)分析表->表驱动的预测语法分析过程->输出语法分析结果和语法树

qq_43417265的博客 1万+

【基础】性能测试,从0到实战(手把手教,非常实用)

什么是性能测试--->本质?基于协议来模拟用户发送的请求(业务模拟),对服务器形成一定负载。关注点:时间性能、空间性能与界面无关,性能测试,性能测试(狭义)性能测试方法是通过模拟生产环境运行的业务压力量和使用场景组合,测试系统性能是否满足生产性能要求。通俗地讲,这种方法就是要在特定的运行条件下来验证系统能力状态。

myh919的博客 978

告别连接难题:Windows 11下Multisim主数据库稳定运行终极配置指南

本文详细解析了Windows 11下Multisim 14.0主数据库连接失败的三大根源,并提供了四步终极解决方案,包括系统环境优化、软件权限配置、注册表修复和网络验证绕过技巧。通过实测数据对比,本方案显著提升了启动速度和稳定性,解决了电子仿真中的常见连接问题。

weixin_33738555的博客 433

手把手教你用Wireshark抓包分析BLE广播包:从PDU结构到AD Type实战解析

本文详细介绍了如何使用Wireshark工具抓取并分析BLE广播包,从PDU结构到AD Type的实战解析。通过硬件设备选择、软件配置、协议栈解析及高级故障排查,帮助开发者深入理解蓝牙低功耗通信机制,提升物联网设备调试效率。

weixin_30482383的博客 417

简单性能测试--并发、负载、压力

3、进行负载测试时,可以添加以下监听器:Transactions per Second(每秒吞吐量)、Response Times Over Time(每秒响应时间)、Active Threads Over Time(每秒启动线程数)2、添加Concurrency Thread Group线程组或者Ultimate Thread Group线程组(这两个线程组都可以通过阶梯加压实现负载测试)4、jmeter的线程数会按照脚本中设置的运行,但是实际测试过程中会受电脑网络、内存、CPU;

qq_42691516的博客 424

uniapp+openlayers集成天地图实战:renderjs通信陷阱与性能优化避坑指南

本文深入探讨了uniapp与openlayers集成天地图时的renderjs通信陷阱与性能优化策略。通过实战案例解析了renderjs的特殊通信机制、地图实例生命周期管理、图层懒加载等关键技巧,帮助开发者避免常见坑点,提升应用流畅度。特别针对多语言切换、热重载偏移等疑难问题提供了解决方案,是uniapp+openlayers开发者的实用避坑指南。

weixin_30872157的博客 362

超详细!Jmeter性能测试

性能测试认知主要内容什么是性能测试?性能测试分类性能测试指标性能测试的基本流程jmeter性能测试工具jmeter的介绍与组成jmeter工具的多并发请求jmeter工具脚本开发的精要技巧linux与MySQL的性能理解linux服务器性能监控指标与分析MySQL数据库性能指标分析课程学习目标掌握性能测试的基本流程掌握性能测试工具jmeter的基本使用掌握性能指标所代表的的含义掌握性能监控的基本命令了解慢查询的含义。

muxiaoyu0318的博客 11万+

国家医保移动支付国密算法SM2签名验签、SM4加解密DLL

DLL,非.net开发,所以无需安装配置,直接程序引用开发即可,支持各类开发语言。已知省份有广西、贵州、安徽、河北、黑龙江、湖南、吉林、江苏、四川、新疆等各地方。国家医保移动支付国密算法SM2签名验签、SM4加解密DLL。//SM4加密与解密。支持医保移动支付(国家统一版),//SM2签名与验签。

4264

计算图像哈希SHA-512

上述需要将lena.jpg放在当前目录下。

计算机视觉之光 961

性能测试怎么做?一文从5个方面带你做性能测试

大家好,今天小濠从5个方面来介绍性能测试 一、什么是性能测试 二、性能测试的目的 三、如何做性能测试 四、性能测试关注的指标 五、性能结果分析

2033

纳米尺度仿真软件:GROMACS_(3).分子动力学模拟原理

分子动力学(MD)模拟是一种强大的计算方法,通过数值积分牛顿运动方程,追踪粒子在时间上的位置和速度变化,提供关于体系动力学行为的详细信息。选择合适的力场、设置初始条件、应用边界条件、控制温度和压力、选择合适的时间步长、计算能量和力,是 MD 模拟的关键步骤。通过这些步骤,可以对各种化学、生物和材料体系进行模拟和分析,揭示其结构、动力学和热力学性质。高级应用如反应路径模拟和蛋白质折叠研究,进一步扩展了 MD 模拟的应用范围。

kkchenjj的博客 1100

性能测试入门:做一次简单的性能测试

当前,性能测试已经是一名软件测试工程师必须要了解,甚至熟练使用的一项技能了,在工作时可能每次发版都要跑一遍性能,跑一遍自动化。性能测试入门容易,深入则需要太多的知识量,今天这篇文章给大家带来:怎么入门性能测试。

伤心的辣条 753

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

JMeter性能测试,完整入门篇

原文转自:https://blog.youkuaiyun.com/lovesoo/article/details/78579547Apache JMeter是一款纯java编写负载功能测试和性能测试开源工具软件。相比Loadrunner而言,JMeter小巧轻便且免费,逐渐成为了主流的性能测试工具,是每个测试人员都必须要掌握的工具之一。本文为JMeter性能测试完整入门篇,从Jmeter下载安装到编写一个完整...

LAMO 63万+

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

性能测试实战(一):性能测试入门

一、性能测试入门知识 1、先抛出个问题:需求文档中,有一个性能测试需求,你怎么入手? (1)怀疑需求,通常提需求的人是产品经理,假设他不懂性能测试,那么这个需求很可能就是拍脑袋; (2)确认需求,通常需要根据实际数据来分析,这些数据通常是运维的数据,得找他们拿,来判断产品需求的准确性; (3)掌握概念,通常需要根据实际数据分析出具体要测试的对象,当然,前提是掌握性能测试概念,并通过概念去明确测试点; (4)脚本设计,通常需要先分析用户的行为,并设计一个符合用户使用的场景,这些信息都是通过运维数据展

weixin_43431593的博客 1万+

测试人的内卷,性能测试入门到实践该如何做?

性能测试如何入门?如何快速提升压测和性能优化相关的技能?发现还是有很多同学迟迟无法入门,对性能测试的认知依然停留在使用工具压测然后统计数据出报告就完事的层次。下面我们就来聊聊性能测试如何从入门到落地实践。1、方法论有句话叫做“工欲善其事,必先利其器”。我想在后面补充一句:“欲利其器,必晓其理”!无论任何一种知识或者技术领域,想要很好的在这个领域有所收获,一定要先掌握这个领域的理论知识,并且对相关的底层通用知识有所了解,否则在深入实践时会遇到很多认知上的偏差导致的结果南辕北辙。

chengxuyuznguoke的博客 720

jmeter性能测试步骤入门

一、Jmeter简介 1 概述 jmeter是一个软件,使负载测试或业绩为导向的业务(功能)测试不同的协议或技术。 它是 Apache 软件基金会的Stefano Mazzocchi JMeter 最初开发的。 它主要对 Apache JServ(现在称为如 Apache Tomcat 项目)的性能进行测试。 Apache 后来重新设计 JMeter 增强的图形用户界面和添加功能测试能力。 以下是一些 JMeter 的特点: 它是免费的。开放源码软件。 ...

m0_68405758的博客 3万+

性能测试从入门到高级进阶之路(一):性能测试入门

性能测试从入门到高级进阶之路会写成一个系列的专栏

weixin_44844572的博客 2047

深聊性能测试,从入门到放弃之:初识性能测试

深聊性能测试常识一、测试流程二、成败要素三、大佬看性能四、相关术语五、性能工具六、通过标准七、小结 本来想分成7篇来写,但是又考虑看到情深处,还得翻页,所以,索性合成一篇来写。 在写正文之前,先分享一个小故事: 人物: 小屌丝:测试经理 大佬:产品经理 小屌丝最近在做一个xx项目,项目马上结项,大佬突然要求小屌丝做性能测试。 俗话说做项目,要有规范流程,也要有项目计划。 小屌丝一脸懵逼,3秒后,小屌丝发出4问~ ~ 小屌丝:大佬,首先我们在项目初期评估,这个项目是不是不需要做性能测试,二来,客户有没有要性

商务合作 | 面试培训 | 职场规划 ==>主页扫码 1万+

性能测试入门,其实很简单,看看这篇,好好学习

注:性能测试,入门简单,深入难。经常有同学问,建议看看这篇 。 为了帮助大家快速的入门性能测试,接下来文章将从以下几个方面进行展开: 一、赶鸭子上架要我搞性能测试,怎么办?二、想搞性能测试,要学什么东西?三、搞性能测试,并不只是搞搞工具四、搞性能测试,如何入门 一、赶鸭子上架要我搞性能测试,怎么办? 我第一次真正意义上搞性能测试是在2014年。项目组要求搞性能测试,我之前也没搞过,对服务端也不熟悉。就那么一脸懵逼地开始搞性能。当时我连linux上有哪些能看系统资源的命令都不知道。稀里糊涂地进行了

2200

性能测试入门,其实很简单,看看这篇

性能测试入门,其实很简单,看看这篇,好好学习。

okcross0的博客 1081

性能测试怎么入门?一文7个知识点带你成功入门!

企业中性能测试,一般,先做负载测试,得到最大可接受的并发用户数,再通过这个最 大可接受的并发用户数,进行性能测试,得到性能测试指标值,再根据这个指标值,判断是否符合预期,符合,则测试结束,如果不符合,则需要进行问题定位、分析与调优。2.1 先做负载测试,再做性能测试,通过负载测试得到最大可接受的并发用户数,然后用这个最大并发用户数进行性能测试,得到我们的指标值,即压测=负载测试+性能测试。1、概念:压测并不是我们所说的压力测试,也不是我们概念中的性能测试,在企业中一般是负载测试与性能测试的结合。

2301_77645573的博客 1387

Jmeter 性能测试入门

1、Jmeter 简介 Jmeter是Apache组织开发的基于Java的压力测试工具。Jmeter被广泛应用到测试领域,可做接口测试、压力测试、性能测试等。本文介绍Jmeter性能测试 2、Jmeter 安装 2.1、JDK安装 安装后配置系统环境变量,参考这一篇DOS窗口下运行HelloWorld显示错误:找不到或无法加载主类文章配置 2.2、Jmeter 安装 Jmeter 安装...

全村的希望的博客 1866

性能测试入门实战进阶指南

我在前面的文章多次提到了我对技术和业务的认知,就是技术本身没有直接的价值,它一定要通过业务目标的达成或者商业活动的变现,才能体现自己的价值。基础理论知识不难学习,学习理论知识也不需要死记硬背,理论知识的作用在于让我们对性能测试有一个足够和全面的了解,知晓其脉络骨骼,然后按照方法论的指导,在具体的实践中灵活运用。:全链路压测是性能测试最核心也是更高阶的实践,建立全链路压测体系,可以更好的扩展性能测试同学的技术能力以及职场影响力,助力性能测试同学的职场成长和晋升。

okcross0的博客 815
上一篇: Java多线程高并发知识点二:线程池和CountDownLatch
下一篇: docker学习笔记
frog4
博客等级 码龄18年 56粉丝 42原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值