性能测试流程及基本介绍

news2024/11/14 13:39:17

性能名次解释

1、用1个用户(几乎毫无压力)访问服务器,观察项目的基本性能
2、单场景(单接口-基准测试)
目的1:最大处理能力 压力测试 关注结果
目的2:评估接口的性能 负载测试 关注过程 一点点增加用户数
3、混合测试(容量测试)
目的3:基本性能如何 性能测试
4、稳定测试
基于混合+固定用户数+时间长

吞吐量

可以衡量服务器的处理能力的都代表为吞吐量,如tps、hps、网络

针对服务器的测试

压测技术:
并发:线程(loadrunner、jmeter)、协程(locust)
业务层面的用户(人) 不等价于 工具层面的用户(线程),线程要快很多
业务层面的用户转换成工具层面的用户
1000个人相当于多少个线程?

压测目标

访问日志:
web服务器–nginx/httpd/iis—》日志文件
logExpert–分析日志 找到高峰时段的数据进行分析
在这里插入图片描述
pv量–打开一次页面(接口)记录一次pv,一次pv会产生多个hits
运维(真实访问):首页的pv量是100000,时间范围一天(24小时),高峰2小时:60000
tps–transaction(pv):1tps=1pv
期望首页tps指标:60000/7200(2小时)
单场景(基准测试):tps最低要求达到60000/7200(2小时),最低能达到混合场景的tps
在这里插入图片描述
通过上图,页面访问(pv)排名,很容易算出业务的百分比(总pv量/单页面的pv量)

真实用户(在线)–cu vs 虚拟用户–vu(线程)-》本质区别就是会话时间不同
下单业务
响应时间:RT=1s
思考时间:Tt=9s
CU:RT+Tt,完成一笔业务需要10s
VU:RT,完成一笔业务需要1s
一分钟时间:
1个CU:6笔业务
1个VU:60笔业务
如果让CU达到1分钟60笔业务,请问需要多少个CU?10个CU
结论:1个VU相当于10个CU
CU = (RT+Tt)/RTVU 转换在线用户公式
推倒过程:
1/RT+Tt:10s完成1笔,1s完成10/1笔
1/RT:1s完成1笔
CU
(1/RT+Tt) = VU*(1/RT):VU与CU吞吐量相等
CU/(RT+Tt)=VU/RT
CU=VU*(RT+Tt)/RT
计算出真实用户的难点:Tt时间

监控网络

服务器与客户端分别下载iperf软件
服务器端输入iperf -s 启动监听服务
在这里插入图片描述
客户端cmd下输入iperf -c 服务器地址
客户端到服务器大概是10Mbit =>10/8 实际下载速度1Mbit

在这里插入图片描述
如何算是否带宽够用?
jmeter在客户端上跑一下,设置1个线程,如下图显示153/kb,吞吐量是5.6/s

在这里插入图片描述

瓶颈分析

资源消耗过低,吞吐量上不去
压力机:
配置:如jmeter压测工具,主要是内存方面,毕竟是java开发的软件,容易造成内存泄漏问题
压力工具:针对IO比较大的,jmeter的吞吐量就比locust小
资源消耗过高,吞吐量上不去(常见但不好定位)

压测工具选择

Jmeter、Locust、Loundrunner
并不是说线程的效率一定比协程高,主要看项目里有没有I/O的出现(网络I/O或磁盘读写I/O),因为有I/O出现的时候,线程会经常被阻塞的,cpu认为它还是个资源,需要进行上下文切换。
总结:在受I/O(网络I/O或磁盘读写I/O)因素影响较小的情况下:三个工具的压测结果相近
在I/O因素影响较大的情况下,Locust、Loundrunner压测结果更好
举例:例如有10客户同时去银行办业务,客户手里资料准备齐全,营业员不需要等待客户这边处理的事情,这种情况派10个营业员去接待10个客户效率是高的(线程模式,没有I/O阻塞的情况)。
假如业务员需要等待客户大量的准备资料时间,派10个业务员去接待客户,大部分营业员都是在等待,需要大量的上下文切换,占用资源。

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

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

相关文章

开源电子书工具Calibre 6.3 发布

Calibre 开源项目是 Calibre 官方出的电子书管理工具。它可以查看,转换,编辑和分类所有主流格式的电子书。Calibre 是个跨平台软件,可以在 Linux、Windows 和 macOS 上运行。Calibre 6.3 正式发布,此次更新内容如下:新…

离散数学---期末复习知识点

一、 数理逻辑 [复习知识点] 1、命题与联结词(否定¬、析取∨、合取∧、蕴涵→、等价↔),命题(非真既假的陈述句),复合命题(由简单命题通过联结词联结而成的命题) 2、命题公式与赋值(成真、成假)&#x…

软件测试2

一 web掐断三大核心技术 HTML:负责网页的结构 CSS:负责网页的美化 JS:负责网页的行为 二 工具的使用 改变HBuilder文字的大小: 工具-视觉主题设置-大小22-确定 三 html简介 中文定义:超文本标记语言 新建一个html…

浅谈跨境电商运行模式

近些年,由于疫情的原因和人们的消费习惯的改变,线下销售越来越不占优势,电商行业由于这几年的飞速发展,成功地吸引到我国的民众,拼多多、淘宝、京东、天猫等各种各样的国内电商平台涌现,依靠着产品质量好、…

OVN:ovn20.03.1/ovs2.13.0编译rpm过程

操作系统openeuler22.0,x86架构分别下载ovn和ovs的源码https://github.com/openvswitch/ovs/tree/v2.13.0https://github.com/ovn-org/ovn/tree/v20.03.1安装必要工具:yum install -y unzip tar make autoconf automake libtool rpm-build gcc libuuid-d…

FPGA纯verilog代码实现4路视频缩放拼接 提供工程源码和技术支持

目录1、前言2、目前主流的FPGA图像缩放方案3、目前主流的FPGA视频拼接方案4、本设计方案的优越性5、详细设计方案解读HDMI输入图像缩放图像缓存VGA时序HDMI输出6、vivado工程详解7、上板调试验证8、福利:工程源码获取1、前言 本文详细描述了FPGA纯verilog代码实现4…

MyBatis 架构介绍

MyBatis 架构介绍MyBatis 架构图MyBatis 所解决的 JDBC 中存在的问题引用MyBatis 架构图 mybatis 配置:mybatis-config.xml,此文件作为 mybatis 的全局配置文件,配置了 mybatis 的运行环境等信息。另一个 mapper.xml 文件即 sql 映射文件,文件…

跑步戴哪种蓝牙耳机比较好,五款适合跑步的蓝牙耳机推荐

跑步当中佩戴的蓝牙耳机,佩戴舒适度以及牢固度是我们首要关注的,耳机的材质还有耳机的防水能力,都是十分需要注意的方面。那具体在挑选运动耳机当中需要如何选择呢?下面收集的一些在运动当中比较好用的运动蓝牙耳机分享给大家。1、…

Python自动发周报给老板,到点赶紧跑

嗨害大家好鸭!我是小熊猫~ 作为一个社畜人 …勤勤恳恳的打工人!!! 几乎每周都要写周报 没办法只能用点小技术 用python写个小工具 让它来给老板发周报哈哈哈 更多python摸鱼小技巧、基础知识:点击此处跳转文末名片获取 目标细…

Mysql的索引

为什么写这篇文章呢~最近在梳理公司的数据库,在查看表结构的时候发现了这个 CREATE TABLE esp_5_N (ID int(11) NOT NULL AUTO_INCREMENT,pId int(11) DEFAULT NULL,EsFileId varchar(32) DEFAULT NULL,obligate1 varchar(45) DEFAULT NULL,obligate2 varchar(45) …

2023年了还不会写软件测试简历吗,那就来看这里吧,怎么样才能更容易让HR看到你的简历

作为软件测试的从业者,面试或者被面试都是常有的事。 可是不管怎样,和简历有着理不清的关系,面试官要通过简历了解面试者的基本信息、过往经历等。 面试者希望通过简历把自己最好的一面体现给面试官,所以在这场博弈中&#xff0…

志愿者招募令|来!一起Build OceanBase第一次开发者大会

2023 年 3 月 25 日,我们将开启第一次 OceanBase 开发者大会,走近开发者,共同探讨单机分布式、云原生、HTAP 等数据库前沿趋势,分享全新的产品 Roadmap,交流场景探索和最佳实践。 为了让活动现场更有活力,…

人工智能写的十段代码,九个通过测试了

“抢走你工作的不会是 AI ,而是先掌握 AI 能力的人” 编程测试 1. 我想用golang实现二叉树前序,请你帮我写一下代码。 // 定义二叉树节点 type TreeNode struct {Val intLeft *TreeNodeRight *TreeNode }// 前序遍历 func PreOrderTraversal(root *Tre…

2023年车联网与自动驾驶车辆国际研讨会(SoCAV 2023)

重要信息 会议网址:www.socav.org 会议时间:2023年4月21-23日 召开地点:深圳 截稿时间:2023年3月30日 录用通知:投稿后2周内 收录检索:EI,Scopus ★2023年车联网与自动驾驶车辆国际研讨会&#xff0…

(二十)操作系统-信号量机制

文章目录一、知识预览二、前篇文章知识点回顾三、信号量机制四、信号量机制—整形信号量五、信号量机制—记录型信号量六、总结一、知识预览 二、前篇文章知识点回顾 进程互斥的四种软件实现方式:单标志法、双标志先检查、双标志后检查、Peterson算法。(…

MFCC语音特征值提取算法

博主简介 博主是一名大二学生,主攻人工智能研究。感谢让我们在CSDN相遇,博主致力于在这里分享关于人工智能,c,Python,爬虫等方面知识的分享。 如果有需要的小伙伴可以关注博主,博主会继续更新的&#xff0c…

Java学习之路003——集合

1、 代码演示 【1】新增一个类,用来测试集合。先创建一组数组,数组可以存放不同的数据类型。对于Object类型的数组元素,可以通过.getClass方法获取到具体类型。 【2】如果数组指定类型为int的时候,使用.getClass()就会提示错误。 …

官方不推荐@Autowired

1用lombok注解 2 构造器

云原生是什么?核心概念和应用方法解析

什么是云原生? 云原生是一种基于容器、微服务和自动化运维的软件开发和部署方法。它可以使应用程序更加高效、可靠和可扩展,适用于各种不同的云平台。 如果要更直接通俗的来解释下上面的概念。云原生更准确来说就是一种文化,是一种潮流&…

使用邮箱验证实现登录功能(发送邮件,redis)

目录 概述 前端搭建 后端搭建 生成验证码-存入redis(主要过程代码) 发送邮件(主要过程代码) 登录验证-取出redis中数据进行验证(主要代码) 完整代码一-LoginController 完整代码二-LoginService 完…