唯品会网站建设/站长之家app

唯品会网站建设,站长之家app,大学高校网站建设栏目,网站推广效果1.什么是性能测试 1.什么是性能 就像这两个车一样,虽然都是代步工具,构造都是一样的,但是路虎的发动机要比捷达好.路虎的百米加速却是比捷达快的,我们就知道路虎的性能要比捷达好 . 那么什么是软件的性能呢?我们分析一下 2.常见的性能测试指标 2.1并发数 并发数是指在同一…

1.什么是性能测试

1.什么是性能

就像这两个车一样,虽然都是代步工具,构造都是一样的,但是路虎的发动机要比捷达好.路虎的百米加速却是比捷达快的,我们就知道路虎的性能要比捷达好 .

那么什么是软件的性能呢?我们分析一下

2.常见的性能测试指标

2.1并发数

并发数是指在同一时间点上,系统能够同时处理的请求或任务的数量.比如:"双十一电商大战".此时各大电商平台在某一时间段突然涌入大量的用户,下单商品.如果系统承受不住高并发的压力,就会挂掉.

2.2 吞吐量

单位时间内处理的并发数,直接体现软件系统负载承受能⼒。吞吐量越⾼,系统承受的并发越
多,性能越好。
吞吐量反映了系统在一定时间内完成工作的能力。例如,在网络通信中,吞吐量可以表示为单位时间内成功传输的数据量

2.3 响应时间

应⽤系统从请求发出开始,到客⼾端接收到最后⼀个字节数据所消耗的时间。
响应时间反映了系统对请求的处理速度。在不同的应用场景中,响应时间的具体含义和重要性有所不同。例如,在网页浏览中,响应时间是指从用户点击链接或提交表单到浏览器接收到完整页面内容并显示出来的时间。对于在线交易系统,响应时间则是从用户提交交易请求到系统返回交易结果的时间

2.4 并发数,吞吐量,响应时间的关系

当并发⽤⼾较少,系统吞吐量低,系统响应时间较短,我们认为系统处于空闲区间。随着系统并发⽤⼾增加,系统吞吐量开始呈线性增⻓,系统性能进⼊了线性增⻓区间。 吞吐量在某个点上达到了饱和点,也称之为拐点。在这之后⽤⼾请求不再被⽴即处理,响应时间随之 变⻓,吞吐量也逐渐降低,系统性能进⼊了过饱和区间。

2.5 事务

⼀个接⼝可以是⼀个事务,多个接⼝也可以是事务,⼀个流程可以是事务,事务代表⼀个完整的功
能。用户登录接口我们就视为一个事务.而我们的下单事务,可能包含多个接口,比如商品下单,支付信息等,包含很多接口,我们把这个也称为一个事务.银行转账系统中,从一个账户扣除一定金额并将其添加到另一个账户的操作就是一个事务。
TPS和QPS

TPS:每秒处理事务数,⽤于衡量系统在⼀定时间内能够处理的事务数

QPS:每秒查询率.是用于衡量系统每秒能够处理的查询请求数量的指标,常用于评估数据库、搜索引擎、Web 服务器等系统的性能。

资源利用率

观察CPU,内存,硬盘的使用信息


3.性能测试分类

3.1基准测试

基准测试(Benchmark Testing)⼜称单⽤⼾测试,主要⽤于监测被测系统在较低压⼒下的运⾏状
况并记录相关数据。当性能测试环境确定以后,通常选取业务模型中的重要业务做基准测试,对
被测系统施加⼀定压⼒,从⽽获取被测系统在单⽤⼾运⾏情况下的各项性能指标,为多⽤⼾并发
测试和混合场景测试等提供参考依据

3.2并发测试

并发测试(Concurrency Testing)⽤于评估被测系统的某些特定操作同时发⽣时的性能表现,例
如,被测系统被多个⽤⼾同时登录时的响应能⼒,或系统的某⼀功能被多个⽤⼾同时操作时的性
能表现。

3.3负载测试

负载测试是通过逐步加载的⽅式来确定系统的处理能⼒。负载测试
类似于举重运动,通过不断给运动员增加重量,确定运动员在其⾝体状况保持正常的情况下所能
举起的最⼤重量。通过负载测试可以获取系统能够达到的峰值指标。
例如,⼀个软件系统的响应时间要求不超过2秒,如果在这个前提下不断增加⽤⼾访问量,系统
的响应时间就会变⻓。假设当访问量超过1万⼈时系统的响应时间超过2秒,那么就可以确定在系
统响应时间不超过2秒的前提下,系统的最⼤负载量是1万⼈。负载测试可⽤于系统的性能验证、
性能诊断和性能调优等场景

3.4压力测试

进⾏压⼒测试时通常采⽤逐步增加系统负载的⽅式,使系统某些资源达到饱和甚⾄失
效,从⽽发现那些只有在⾼负载条件下才会出现的缺陷,如同步问题、内存泄漏等。通过对被测
系统进⾏压⼒测试,也能找出被测系统的性能拐点,获得系统所能提供的最⼤服务级别(系统所
能承受的最⼤压⼒),评估系统在峰值负载或超出最⼤负载情况下的处理能⼒。压⼒测试主要⽤
于性能诊断、性能调优和容量规划等场景

压力测试和负载测试的区别

负载测试是在保持性能指标要求的前提下测试系统能够承受的最⼤负
载,⽽压⼒测试则是测试系统性能达到极限的状态.

4.性能测试实战

4.1安装性能测试工具

1.性能测试工具我们这里使用jmeter.

Apache JMeter - Apache JMeter™https://jmeter.apache.org/2.打开jmeter

3.每次打开都很费劲,所以我们添加环境变量在命令行打开

4.2操作 jmeter进行性能测试

4.2.1添加线程组

线程组就是模拟用户发送请求

 

4.2.2添加请求

这一步就是构造访问请求,接下来我们对登录接口进行性能测试

构造完请求之后我们要观察结果,所以加入"查看结果树"

接下来我们运行观察结果,我们看到返回的结果都是正确的


 4.2.3 重要组件

前面我们已经使用了线程组和HTTP请求组件,接下来我们介绍一些比较常用的组件

4.2.3.1 HTTP请求默认值

每次对一个接口进行性能测试都要在HTTP请求器中输入IP,端口,十分麻烦.所以我们就可以使用HTTP请求默认值这个组件来将IP地址和端口号设置成默认值,这样我们就不要每次发送请求的时候重复输入了

设置好了之后后续我们构造HTTP请求器的时候就不用输入了


4.2.3.2 CSV数据文件格式
以登陆接⼝为例,当我们执⾏登陆接⼝的性能测试时,⼿动配置了⽤⼾名和密码为固定的username和password,然⽽实际使⽤中不可能只有⼀个⽤⼾登陆,为了模拟更真实的登录环境,我们需要提供更多的⽤⼾username和password来实现登录操作
文件名: 填写csv⽂件的路径。建议使⽤绝对路径。(创建一个excel表格,写完数据之后存储到本次创建的测试项目路径下)
文件编码:UTF-8
变量名称( 从csv数据⽂件中读起的数据需要保存到的变量名。有多个变量时⽤逗号分隔)
是否忽略⾸⾏:是否从csv数据⽂件第⼀⾏开始读取
分隔符:要求与csv数据⽂件中多列的分隔符⼀致
遇到⽂件结束符再次循环:若选择为True当数据不够的时候会从头取。若选择False,则需要勾选
下⾯的配置,遇到⽂件结束符停⽌线程,这⾥如果不勾选,请求将会报错。

1.创建csv文件

2.修改登陆接⼝及其他涉及到username和password获取的参数

修改完该配置后,登陆接⼝发起请求时将从csv⽂件中获取配置好的username和password参数,获取顺序为从上往下依次获取
3. 修改线程组中线程数,使得每次取到的username和password都不⼀样
4.运行结果

4.2.3.3 JSON提取器

在我们设计后端服务器代码的时候,为了防止用户跳过登录,直接访问我们的其他页面,我们设置了拦截器,访问页面必须要携带token或者session.而只有在登录的时候才会生成.我们通过url直接访问页面就会受到拦截.

但是在我们做性能测试的时候,都是对一个一个接口进行测试,不是完整的测试一个流程.所以其他的接口不会携带token或者session,所以返回的就是失败.所以我们就要用到json提取器.将token从登录返回的响应中提取出来,放到HTTP信息头管理器中,其他的接口也就可以拿到token,进而可以访问了

如何从登录中获取token,这里我们使用JSON提取(其实还有很多方法,这里就不一一列举了)


4.2.3.4 JSON断言

接口请求成功返回状态码200并不能完全代表接口请求成功,我们还要关注返回的数据是否符合预期

(1)添加断言

针对某⼀个HTTP请求接⼝添加JSON断⾔
(2).添加JSON断言配置
注意:
1)若不选Additionally assert value,表⽰添加断⾔值,则可⽤来判断字段是否存在
2)选择Additionally assert value,则必须添加Expected Value期望的断⾔值
3)若不选Match as regular expression正则匹配,则Expected Value必须填写完整,少⼀个字符都
会导致断⾔失败
4)若选择Match as regular expression正则匹配,则Expected Value可以仅写上部分关键词即可断
⾔成功

4.2.3.5 同步定时器

JMeter同步定时器的作⽤主要在于模拟多⽤⼾并发访问的场景,确保多个线程能够同时执⾏某个操
作,以达到真正的并发效果。
当多个线程同时启动时,它们可能会在不同的时间间隔内执⾏,这样就⽆法达到真正的并发效果。同 步定时器的作⽤就是将这些线程的执⾏时间同步,使它们在同⼀时间点执⾏。它可以在多个线程之间 制造⼀定的延迟,直到同时到达指定时间点,再同时执⾏后续的操作。
此外,同步定时器可以理解为集合点,当线程数量达到指定值后,再⼀起释放,可以瞬间产⽣很⼤的 压⼒。这样,可以更好地模拟真实的⽤⼾并发访问场景,提⾼测试的准确性和可靠性。
在性能测试过程中,为了真实模拟多个⽤⼾同时进⾏操作以度量服务器的处理能⼒,可以使⽤同步定 时器来设置集合点。不过,虽然通过加⼊集合点可以约束请求同时发送,但不能确保请求同时到达服 务器,所以只能说是较真实模拟并发
现实⽣活中,红绿灯就相当于⼀个集合点,有⼈先到达,有⼈后达到,但必须等到绿灯后所有⼈才能开始过⼈⾏道。

4.2.3.6 事务控制器
Meter事务控制器的作⽤主要⽤于测试执⾏嵌套测试元素所花费的总时间。这相当于模拟⽤⼾进⾏⼀系列操作的测试。
在进⾏⻚⾯性能测试或API性能测试时,事务控制器是⼀个⾮常重要的⼯具。它可以帮助测试⼈员更准确地评估系统性能,尤其是在涉及多个接⼝或操作的复杂场景中。例如,在订单提交的过程中,可能 需要调⽤多个接⼝,并且某些接⼝可能依赖于前⼀个接⼝的结果。在这种情况下,使⽤事务控制器可以将这些接⼝统⼀视为⼀个事务进⾏性能测试,从⽽得到更接近真实场景的性能测试结果

4.2.3压力测试

4.2.3.1 安装管理插件

Install :: JMeter-Plugins.org A custom set of plugins for Apache JMeter, not affiliated with Apache Software Foundation, graphs, load shapers, new functions.https://jmeter-plugins.org/install/Install/下载监听器插件

下载线程组插件

安装完后


4.2.3.2 Stepping Thread Group(梯度压测)

This group will start:启动多少个线程,同线程组中的线程数
First, wait for:等待多少秒才开始压测,⼀般默认为0
Then start:⼀开始有多少个线程数,⼀般默认为0
Next,add:下⼀次增加多少个线程数
threads every:当前运⾏多⻓时间后再次启动线程,即每⼀次线程启动完成之后的的持续时间;
using ramp-up:启动线程的时间;若设置为5秒,表⽰每次启动线程都持续5秒
thenhold loadfor:线程全部启动完之后持续运⾏多⻓时间
finally,stop/threadsevery:多⻓时间释放多少个线程;若设置为5个和1秒,表⽰持续负载结束之后
每1秒钟释放5个线程
4.2.3.3 监听器

聚合报告


Response Times Over Time
Response Times Over Time的图形展⽰中,横坐标通常代表运⾏时间,⽽纵坐标则代表响应时间(单位是毫秒)。测试⼈员可以根据图形中的趋势线来判断响应时间的稳定性以及是否存在⼤的波动。例如,如果响应时间在某个时间点突然增加,这可能意味着系统在该时间点遇到了性能问题。

Transactions per Second(TPS)
JMeter中的Transactions per Second(TPS)监听器是⼀个⽤于分析系统吞吐量的重要⼯具。TPS
即每秒事务数,表⽰⼀个客⼾机向服务器发送请求后服务器做出反应的过程。这个指标反映了系统在 同⼀时间内处理业务的最⼤能⼒。TPS值越⾼,说明系统的处理能⼒越强
在使⽤TPS监听器时,横坐标通常代表运⾏时间,⽽纵坐标则代表TPS值。通过监听器展⽰的图表,可 以清晰地看到TPS值随时间的变化情况。在图表中,红⾊通常表⽰通过的TPS,⽽绿⾊可能表⽰失败的TPS。这有助于我们快速识别系统性能的变化和瓶颈

4.2.4测试报告

JMeter测试报告是⼀个全⾯⽽详细的⽂档,它提供了关于测试执⾏结果的详细信息,帮助⽤⼾全⾯评估系统的性能并进⾏性能优化。⽣成性能测试报告的命令
Jmeter -n -t 脚本⽂件 -l ⽇志⽂件 -e -o ⽬录
-n : ⽆图形化运⾏
-t : 被运⾏的脚本
-l : 将运⾏信息写⼊⽇志⽂件,后缀为 jtl 的⽇志⽂件
-e : ⽣成测试报告
-o : 指定报告输出⽬录

注意:⽇志⽂件和⽬录可以不存在,若为已经存在的情况下需要保证内容为空,否则会出现错误! 

运行后:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/73717.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【极速版 -- 大模型入门到进阶】LORA:大模型轻量级微调

文章目录 🌊 有没有低成本的方法微调大模型?🌊 LoRA 的核心思想🌊 LoRA 的初始化和 r r r 的值设定🌊 LoRA 实战:LoraConfig参数详解 论文指路:LORA: LOW-RANK ADAPTATION OF LARGE LANGUAGE M…

禅道品牌全面战略升级:开创项目管理国产化替代新格局

2025年,禅道软件完成企业品牌战略深度升级。此次升级,从产品力、服务力到生态圈构建等方面进行了全面优化,以更智慧的解决方案、更开放的生态布局,更安全的国产化解决方案,助力企业实现从“工具应用”到“价值创造”的…

降维(DimensionalityReduction)基础知识2

文章目录 五、基于局部结构保持的降维1、Laplacian Eigenmaps(拉普拉斯特征映射)(1)邻接矩阵(2)图论基础(3)Laplace算子1、散度(Divergence)2、拉普拉斯算子3…

【蓝桥杯】单片机设计与开发,PWM

一、PWM概述 用来输出特定的模拟电压。 二、PWM的输出 三、例程一:单片机P34引脚输出1kHZ的频率 void Timer0Init(void);unsigned char PWMtt 0;void main(void) {P20XA0;P00X00;P20X80;P00XFF;Timer0Init();EA1;ET01;ET11;while(1);}void Timer0Init(void) //1…

从替代到超越,禅道国产化替代解决方案2.0发布!

3月22日,由禅道携手上海惠艾信息科技、麦哲思科技共同举办的禅道・中国行北京站活动圆满落下帷幕。 除深入探究AI赋能研发项目管理外,禅道在活动现场正式发布了《禅道国产化替代解决方案2.0》,助力企业全方位构建自主可控的研发项目管理新体…

2025美国网络专线国内服务商推荐

在海外业务竞争加剧的背景下,稳定高效的美国网络专线已成为外贸企业、跨国电商及跨国企业的刚需。面对复杂的国际网络环境和严苛的业务要求,国内服务商Ogcloud凭借其创新的SD-WAN技术架构与全球化网络布局,正成为企业拓展北美市场的优选合作伙…

2.2.2 引入配置文件和定义配置类

本实战通过三种方式实现Spring Boot中的配置加载与管理。首先,通过PropertySource加载自定义配置文件,结合ConfigurationProperties注解将配置文件中的属性绑定到Java类中,实现配置的灵活管理。其次,利用ImportResource加载XML配置…

Django:构建高性能Web应用

引言:为何选择Django? 在当今快速发展的互联网时代,Web应用的开发效率与可维护性成为开发者关注的核心。Django作为一款基于Python的高级Web框架,以其"开箱即用"的特性、强大的ORM系统、优雅的URL路由设计,…

【银河麒麟高级服务器操作系统 】虚拟机运行数据库存储异常现象分析及处理全流程

更多银河麒麟操作系统产品及技术讨论,欢迎加入银河麒麟操作系统官方论坛 https://forum.kylinos.cn 了解更多银河麒麟操作系统全新产品,请点击访问 麒麟软件产品专区:https://product.kylinos.cn 开发者专区:https://developer…

《2核2G阿里云神操作!Ubuntu+Ollama低成本部署Deepseek模型实战》

简介: “本文为AI开发者揭秘如何在阿里云2核2G轻量级ECS服务器上,通过Ubuntu系统与Ollama框架实现Deepseek模型的高效部署。无需昂贵硬件,手把手教程涵盖环境配置、资源优化及避坑指南,助力初学者用极低成本在云端跑通行业领先的大…

Anaconda开始菜单里添加JupyterLab快捷方式

Anaconda开始菜单里添加JupyterLab快捷方式 在 Windows 系统安装 Anaconda 后,发现开始菜单只有 Jupyter Notebook,却找不到Jupyter Lab入口。其实这是因为最新版 Anaconda 默认未预装 Lab 组件,本篇介绍一种添加 Jupyter Lab入口到开始菜单…

解决Vmware 运行虚拟机Ubuntu22.04卡顿、终端打字延迟问题

亲测可用 打开虚拟机设置,关闭加速3D图形 (应该是显卡驱动的问题,不知道那个版本的驱动不会出现这个问题,所以干脆把加速关了)

【网络】Socket套接字

目录 一、端口号 二、初识TCP/UDP协议 三、网络字节序 3.1 概念 3.2 常用API 四、Socket套接字 4.1 概念 4.2 常用API (1)socket (2)bind sockaddr结构 (3)listen (4)a…

Baklib内容中台的核心定位是什么?

构建企业级知识中枢 在数字化转型趋势下,Baklib内容中台通过构建企业级知识中枢,实现了从碎片化信息到体系化资产的跃迁。其核心能力体现为对多源内容的智能聚合与结构化存储,支持从文档、图片到视频的全格式整合,并通过语义标签…

蓝耘平台API深度剖析:如何高效实现AI应用联动

目录 一、蓝耘平台简介 1.1 蓝耘通义大模型 1.2 蓝耘云计算资源 1.3 蓝耘API与微服务 二、 蓝耘平台应用联动场景 2.1 数据采集与预处理联动 2.2 模型推理与后端服务联动 2.3 跨平台联动 三、蓝耘平台注册体验功能 3.1 注册 3.2 体验蓝耘MaaS平台如何使用海螺AI生成视频…

《大语言模型赋能证券业开发安全:海云安技术方案在上交所专刊发表》

近日,海云安《大语言模型在证券业开发安全领域的探索与实践》技术方案经过上海证券交易所(以下简称”上交所“)行业专家评审后正式收录于《交易技术前沿——网络安全专刊(2025年第1期 总第61期)》。 证券信息技术研究…

将网络安全和第三方风险管理与业务目标相结合

在网络安全风险领域,我们经常遇到与企业语言不通的问题。这可能导致网络安全风险管理计划得不到支持。当发现网络安全风险时,困难在于以符合组织语言和目标的方式来表达它。 第三方风险属于另一个灰色地带。在组织内部,许多利益相关者&#…

使用Github项目nghttp3的样例学习HTTP/3

文章目录 前言一、HTTP3测试 in Ubuntu1.1. 基本软件1.2. gcc/g1.2.1. Ubuntu221.2.2. Ubuntu201.2.2.1. 必备库1.2.2.1.1. gmp1.2.2.1.2. mpfr1.2.2.1.3. mpc 1.2.2.2. 安装 1.3. libev > 4.11(备用)1.3.1. 安装1.3.2. 测试 1.4. nghttp31.5. ngtcp2…

2025清华大学:DeepSeek教程全集(PDF+视频精讲,共10份).zip

一、资料列表 第一课:Deepseek基础入门 第二课:DeepSeek赋能职场 第三课:普通人如何抓住DeepSeek红利 第四课:让科研像聊天一样简单 第五课:DeepSeek与AI幻觉 第六课:基于DeepSeek的AI音乐词曲的创造法 第…

容器C++

string容器 string构造函数 #include<iostream> using namespace std; #include<string.h> void test01() {string s1;//默认构造const char* str "hello world";string s2(str);//传入char*cout << "s2" << s2 << endl;s…