记录一次jmeter压测的过程!

在软件架构与中间件实验的最后,要求进行非功能测试,那得非压力测试莫属了。虽然之前学习秒杀项目的时候看视频里面用过jmeter,但没有自己实操过,趁着这次机会,使用一下。

QPS与TPS

1、TPS:

Transactions Per Second,意思是每秒事务数。一个事务是指客户端向服务器发送请求然后服务器做出反应的过程,具体的事务定义,可以是一个接口、多个接口、一个业务流程等等。以单接口定义为事务举例,每个事务包括了如下3个过程:

  1. 向服务器发请求
  2. 服务器自己的内部处理(包含应用服务器、数据库服务器等)
  3. 服务器返回结果给客户端

如果每秒能够完成 N 次以上3个过程,TPS 就是 N。

TPS 是软件测试结果的测量单位。我们在进行服务性能压测时,接口层面最常关注的是最大 TPS 以及接口响应时间,个人理解 TPS 可以指一组逻辑相关的请求,而服务整体处理能力取决于处理能力最低模块的TPS值。

2、QPS:

Queries Per Second,意思是每秒查询率。指一台服务器每秒能够响应的查询次数,用于衡量特定的查询服务器在规定时间内所处理流量多少,主要针对专门用于查询的服务器的性能指标,比如dns,它不包含复杂的业务逻辑处理,比如数据库中的每秒执行查询sql的次数。QPS 只是一个简单查询的统计显然,不能描述增删改等操作,显然它不够全面,所以不建议用 QPS 来描述系统整体的性能;

QPS 基本类似于 TPS,但是不同的是,对于一个事务访问,会形成一个 “ T ”;但一次 " T " 中,可能产生多次对服务器的请求,服务器对这些请求,就可计入 QPS 之中。

3、区别:

  1. 如果是对一个查询接口压测,且这个接口内部不会再去请求其它接口,那么 TPS = QPS,否则,TPS ≠ QPS
  2. 如果是容量场景,假设 N 个接口都是查询接口,且这个接口内部不会再去请求其它接口,QPS = N * TPS\

Jmeter配置WebSocket请求

利用plugin manager中提供的WebSocket插件,可以进行WebSocket应用程序的压力测试。

使用jmeter工具对TPS进行测试,其中测试的事务为consumer建立连接,并发送订阅消息,记录该事务的吞吐量。jmeter配置500个线程,在3秒内每个线程发起一次上述事务,重复两次,吞吐量结果如下表所示(仅展示重要信息):

可以看到,可以达到332.3的TPS,效率还是不错的。同时,应用进程的资源监视图如下所示:

可以看到应用进程的自选消耗并没有激增。下面来调整一下参数,试试线程数5000, 1秒内发起请求,重复两次的结果:

结果是电脑炸了,,,单机无法达到一秒内创建5000个线程发起请求

观察日志可以看到Jmeter的堆空间直接溢出了,也想过通过jvm参数-Xmx来配置堆空间大小,但是本机的物理内存总共也就8G,怕整个电脑都死机,没有继续测试了╭(╯^╰)╮

看的出来高并发场景还是很难模拟的,仅仅靠单机是做不到的,,,越来越佩服大厂的架构师了。

将参数改成线程数2000, 1秒内发起请求,重复两次。

TPS达到了438,说明本实验产品的性能还是不错的。

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走! 

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JMeter是一款非常强大的压力测试工具,可以用于对Web应用程序、Web服务、数据库等进行性能测试。在进行实际的压测过程中,文档记录是非常重要的,可以帮助团队成员了解测试的目的、过程和结果。以下是一些常见的JMeter压测文档记录内容: 1. 测试目标和范围:明确测试的目标和范围,例如测试的是哪个应用程序、测试的功能点、预期的用户并发量等。 2. 测试计划:记录测试计划的详细信息,包括测试场景、测试数据、测试脚本等。可以包括脚本编写过程中的思路和方案。 3. 测试环境配置:记录测试环境的配置信息,包括服务器硬件配置、操作系统版本、JDK版本等。这些信息可以帮助其他人在复现测试结果时保持一致的环境。 4. 测试步骤:记录进行压测的具体步骤,包括启动JMeter、导入测试计划、配置线程组、设置断言等。步骤应该尽量详细,以便他人能够按照文档进行操作。 5. 测试结果分析:记录测试运行结束后的结果分析,包括响应时间、吞吐量、错误率等指标。可以使用图表或表格的形式展示结果,方便其他人快速了解测试结果。 6. 总结和建议:对测试过程进行总结,并提出改进的建议。可以记录测试过程中遇到的问题、解决方案和经验教训,为以后的压测提供参考。 需要注意的是,文档记录应该尽量清晰、简洁,使用易于阅读和理解的语言。同时,及时更新文档以反映实际情况的变化。这样可以帮助团队成员更好地理解和利用文档中的信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值