Jmeter 性能 —— 电商系统TPS计算!

1、怎么计算得出TPS指标

①第一个通过运维那边给的生产数据,看一下生产进件有多少,计算得来的,如果没有生产数据,或者不过就看如下的方法

②第二个就是根据最近一个月的实际访问数据,比如每天调用了多少个接口,调用了哪些接口,把比例列出来

举个例子:

比如xxx_shop系统,从2023-12-3到2024-1-3,最高的一天调用接口数量最高为100万次。

那么tps的计算公式如下:

tps = 1000000/24*3600=11.57/sec ==》这是通用的tps
比如这100万次请求里面登录请求比例:40% 那么登录接口的标准tps=11.57*40% = 4.63/sec退出请求比例:20% 那么退出接口的标准tps=11.57*20% = 2.31/sec添加商品比例:20% 那么添加商品接口的标准tps=11.57*20% = 2.31/sec查询商品比例:10% 那么查询商品接口的标准tps=11.57*10% = 1.16/sec修改商品比例:10% 那么修改商品接口的标准tps=11.57*10% = 1.16/sec

如上是通用的tps模型,除了上面的通用tps模型,还有添加商品和查询商品的业务模型。

比如下午9点添加商品占比40%,下午16点查询商品占比20%,那么就需要重新计算了

添加商品业务模型:首先拿到9点这一小时的数据为10万,那么tps = 100000/3600*40% = 11.1/sec查询商品业务模型:首先拿到16点这一小时的数据为8万,那么tps = 80000/3600*20% = 4.44/sec
现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:691998057【暗号:csdn999】

2、性能问题:如果500TPS那并发线程数应该是多少?

首先搞清楚一个概念:服务器的tps是有一个阈值的,要达到500tps ,用50个并发线程数和100并发线程数,或者200并发线程数都可以达到500tps。

还有一个概念并发线程数和并发用户数不是同一个概念,并发线程数是Jmeter里面的线程数,而并发用户数是需要通过tps来进行承载的,这个里面的并发用户数就是500tps

再延伸一点:如果需要达到500tps并发用户数,如果并发度为1%,那么在线用户应该就是500tps/1% = 50000的在线用户,这个并发度又是怎么计算的呢?

并发度计算:50000的在线用户,在1秒内发出来了500个接口请求,那么并发度等于500/50000=1%,这个就是并发度的计算公式

注册用户计算:可以取在线用户的10-100倍,也就是50万*500万 = 50万-500万的注册用户

500tps = 50个并发线程数/0.1秒500tps = 100个并发线程数/0.2秒500tps = 200个并发线程数/0.4秒...500tps = 1000个并发线程数/2秒

总结:用更多的并发线程数来做压测或者负载,不会让服务器的tps继续往上增加,只会增加响应时间。

因为每台服务器的tps是有一个上限阈值的,到了这个阈值就不会再增加了。

3、性能问题:你们之前支持多少个并发?

经常有面试官问你,你们之前支持多少并发,其实这个并发是指的并发用户数,而不是并发线程数。

并发用户数是通过tps来承载的,你上面说的500tps,你就可以理解为并发用户数就是500tps,最高支持500个并发。

而Jmeter里面的那个线程数指的是并发线程数,加大并发线程数只会让响应时间变大,而不会增加tps。

并且Jmeter里面线程数加到超过500,Jmeter自身就会很卡。

下面是配套资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!

最后: 可以在公众号:自动化测试老司机! 免费领取一份216页软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。

如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!喜欢软件测试的小伙伴们,可以点击下方小卡片加入我们的测试技术交流扣扣群

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

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

相关文章

【机器学习:欧氏距离 】机器学习中欧氏距离的理解和应用

【机器学习:欧氏距离 】机器学习中欧氏距离的理解和应用 距离公式二维更高的维度点以外的物体属性欧几里得距离的平方概括历史 在数学中,欧氏距离’是指欧氏空间中任意两点之间的直线距离。这种距离可以通过应用勾股定理来计算,利用两点的笛卡…

Filter Options in Select Field

Filter Options in Select Field 假设有两个下拉字段State和City。邦有两个值卡纳塔克邦和马哈拉施特拉邦,城市有四个值,班加罗尔,迈索尔,孟买和浦那。如果希望根据State中选择的值过滤City中的选项,可以编写如下所示的…

LeetCode 每日一题 Day 32 ||递归单调栈

2487. 从链表中移除节点 给你一个链表的头节点 head 。 移除每个右侧有一个更大数值的节点。 返回修改后链表的头节点 head 。 示例 1: 输入:head [5,2,13,3,8] 输出:[13,8] 解释:需要移除的节点是 5 ,2 和 3 。…

Python中列表和字符串的反转

嗨喽~大家好呀,这里是魔王呐 ❤ ~! python更多源码/资料/解答/教程等 点击此处跳转文末名片免费获取 一、Python现成的反转功能: 在Python中有专门进行列表反转的函数–reverse() l [13, 30, 42, 85, 9, 45] l.reverse() # [45, 9, 85, 42, 30, 13]还…

苹果macOS 14.3开发者预览版Beta 2发布 修复API会意外失败的问题

1 月 4 日消息,苹果向 Mac 电脑用户推送了 macOS 14.3 开发者预览版 Beta 2 更新(内部版本号:23D5043d),本次更新距离上次发布隔了 22 天。 macOS Sonoma 14.3 Beta 2 主要以修复 BUG、提高安全性为主。根据苹果官方更…

Spring中的数据校验

文章目录 引言摘要正文基于 ValidationUtils的简单校验基于自定义 Validator的校验Spring内置校验 LocalValidatorFactoryBeanHibernateValidator校验使用HibernateValidator自定义校验规则 总结 引言 我们在日常的软件开发过程中,尤其是WEB开发过程中,…

书生·浦语大模型全链路开源体系 学习笔记 第一课

背景 大模型是发展人工通用人工智能的一个重要途径,能够解决多种任务和多种模态,展示了一个更面向更高阶的智能的潜在途径。大模型的发展历程是从专用模型到通用模型的过程,从语音识别、图像识别、人脸识别等专用模型,到通用的大…

【Windows】之微软输入法配置小鹤双拼

前言 Windows 自带的输入法微软输入法本身就是个最简洁、最方便的输入法,不需要去安装多余的第三方输入法软件。同时,微软中文拼音输入法支持双拼输入法,但微软自带的双拼输入法不包含小鹤双拼方案的。所以,在这里将会讲解如何配置…

异常..

1.开发过程中的错误 在开发Java程序的过程中 会遇到各种各样的错误 一下是对错误的分类: 1.语法错误 如果产生了语法错误的话 那么就会导致编译失败 程序无法正常运行 2.逻辑错误 比如原本我想要进行加法运算 但是我将加法运算符写成了减法运算符 但是这个错误并不…

IPv6和IPv4在技术层面的区别

随着互联网的不断发展,IPv4地址资源已经逐渐枯竭,而IPv6地址的使用逐渐成为趋势。IPv6和IPv4作为互联网协议的两个版本,在技术层面存在许多区别。本文将从地址空间、地址表示方法、路由协议、安全性、移动性以及网络性能等方面对IPv6和IPv4进…

免费搭建ip代理池的保姆级方法(最详细最有效)

IP代理池是一个用于管理和提供代理IP地址的系统或服务。在网络中,IP代理池的主要目的是帮助用户隐藏其真实IP地址,以实现一些特定的目标,如爬取网站数据、访问受限制的内容或保护个人隐私等。以下是对IP代理池的解释: IP代理的概念…

PDF.js实现搜索多个不同的关键词高亮显示效果

static\PDF\web\viewer.js 392行左右 // 自定义搜索关键词---------------------------------------- this.searchKeywords = keyword => {if (typeof PDFViewerApplication !== undefined) {PDFViewerApplication.eventBus.dispatch(find, {query: keyword,caseSensitive:…