【软件测试】Jmeter性能测试(性能测试,Jemeter使用与结果分析1)

本文涉及的产品
性能测试 PTS,5000VUM额度
简介: 【软件测试】Jmeter性能测试(性能测试,Jemeter使用与结果分析)

一、性能测试

1. 什么是性能测试?

性能测试就是通过特定的方式对被测试系统按照一定测试策略施加压力,获取该系统的响应时间、TPS、吞吐量、资源利用率等性能指标,来检测系统上线后能否满足用户需求的过程。


2. 性能测试的重要性

性能测试是检验我们系统性能的重要步骤,只有经过性能测试,得到对应的测试报告,才能根据报告中所呈现的现象(成功率、响应时长、TPS等)来进行分析,找出系统的瓶颈所在,优化系统的性能。


3. 性能指标——QPS和TPS

①QPS

QPS,全名 Queries Per Second,意思是“每秒查询率”,是一台服务器每秒能够响应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。


②TPS

TPS 即 Transactions Per Second的缩写,每秒处理的事务数目。一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程。

客户机在发送请求时开始计时,收到服务器响应后结束计时,以此来计算使用的时间和完成的事务个数,最终利用这些信息作出的评估分。


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

QPS和TPS都是衡量一个系统性能的重要指标之一。


二、压测工具Jmeter

1. 什么是Jmeter?

ApacheJMeter ,是一个100%纯Java的开源软件,旨在加载测试功能行为和测量性能。它最初设计用于测试Web应用程序,但后来扩展到其他测试功能。

相较于世面上一些其他性能测试工具,Jmeter是为数不多的既好用又开源免费的测试工具。


2. Jmeter主要元件

1、测试计划:是使用 JMeter 进行测试的起点,它是其它 JMeter测试元件的容器


2、线程组:代表一定数量的用户,它可以用来模拟用户并发发送请求。实际的请求内容在Sampler中定义,它被线程组包含。


3、配置元件:维护Sampler需要的配置信息,并根据实际的需要修改请求的内容。


4、前置处理器:负责在请求之前工作,常用来修改请求的设置


5、定时器:负责定义请求之间的延迟间隔。


6、取样器(Sampler):是性能测试中向服务器发送请求,记录响应信息、响应时间的最小单元,如:HTTP Request Sampler、FTP Request Sample、TCP Request Sample、JDBC Request Sampler等,每一种不同类型的sampler 可以根据设置的参数向服务器发出不同类型的请求。


7、后置处理器:负责在请求之后工作,常用获取返回的值。


8、断言:用来判断请求响应的结果是否如用户所期望的。


9、监听器:负责收集测试结果,同时确定结果显示的方式。


10、逻辑控制器:可以自定义JMeter发送请求的行为逻辑,它与Sampler结合使用可以模拟复杂的请求序列。


3. 下载安装

进入官网,点击左侧的Download Releases选择和是的版本即可下载。

q1.png

下载好后是一个压缩包,将其解压到你想要的目录下(最好不要出现中文)即可。(当然它需要Java运行环境,如果没装可以另外去下个jdk,这里就不赘述了)


进入bin目录,双击运行jmeter.bat启动jmeter,


q2.png

这样我们就打开了安装好的Jmeter。


q3.png

如果不习惯英文也可以在设置里进行更改

q4.png

三、一个简单的测试案例

这里我演示一个测试常规restful接口的例子。演示接口的项目来源于上次参加服创省赛时写的网脉铁塔监测物联网平台,这个接口主要是获取设备列表。正常获取响应结果如下:


q5.png



①新建一个线程组

w1.png


(1)线程数:即虚拟用户数。设置多少个线程数也就是设置多少虚拟用户数


(2)Ramp-Up时间(秒):设置虚拟用户数全部启动的时长。如果线程数为20,准备时长为10秒,那么需要10秒钟启动20个线程。也就是平均每秒启动2个线程。


(3)循环次数:每个线程发送请求的个数。如果线程数为20,循环次数为10,那么每个线程发送10次请求。总请求数为20*10=200。如果勾选了“永远”,

那么所有线程会一直发送请求,直到手动点击工具栏上的停止按钮,或者设置的线程时间结束。


这里我们设置30个线程(不要加太多,这里只是为了演示), 启动时间设置为3s,循环次数为3次

w2.png


②新建一个HTTP请求

q1.png

q2.png

把这次要测试的接口信息填入


③添加HTTP信息头(请求头)

这里需要添加对应的消息头信息,在大多数web系统里,往往都对api接口做了权限认证,而这次测试的系统也不例外,是典型的token机制,如果不在请求头里加上合法的token,那么这个测试是会被拦截的,也就没办法对业务接口进行测试。所以这里需要把请求头中token复制过来(不同系统权限设计不同,我这里是X-Access-Token)。

当然如果是使用cookie机制来实现的权限认证,则需新建一个Cookie管理器,这里就不多赘述了。


q3.png

q4.png

当然这里也可以直接把整个请求头的信息都复制,然后在Jmeter中点击“从剪切板添加”,这样就可以一键把真实请求的请求头信息都复制过来。


④添加合适的响应断言

对相应结果添加合适的断言

q5.png

在这次的测试系统中,如果成功响应那么响应结果就会包含success:true的字符串,所以我在断言中就做了相应的设置

w1.png

大家可以针对自己的系统设置合适的断言。


⑤添加监听器

JMeter有许多UI Listener,可用于直接在JMeter UI中查看结果:

w2.png

以树形式查看结果:查看结果树显示所有样本响应的树,允许您查看任何样本的响应。

图形结果:图形结果监听器生成一个简单的图形,绘制所有采样时间,

聚合报告:聚合报告为测试中的每个不同命名的请求创建一个表行,

在表中查看结果:此可视化工具为每个样本结果创建一行。与查看结果树一样,此可视化工具使用大量内存,

聚合图:聚合图与聚合报告类似。主要区别在于聚合图提供了一种生成条形图并将图形保存为PNG文件的简便方法,

生成摘要结果:此测试元素可以放在测试计划中的任何位置。生成到目前为止测试运行的摘要到日志文件和/或标准输出。显示运行和差异总计。

选择合适的结果呈现方式,这里我加了查看结果树、汇总报告和图形结果



⑥点击运行

点击运行图标便可运行测试了


w3.png

运行完成后我们可以点击对应的监听器查看运行结果。


q1.png


q2.png

q3.png

————————————————


相关实践学习
通过性能测试PTS对云服务器ECS进行规格选择与性能压测
本文为您介绍如何利用性能测试PTS对云服务器ECS进行规格选择与性能压测。
相关文章
|
1月前
|
人工智能 搜索推荐 数据管理
探索软件测试中的自动化测试框架选择与优化策略
本文深入探讨了在现代软件开发流程中,如何根据项目特性、团队技能和长期维护需求,精准选择合适的自动化测试框架。
98 8
|
1月前
|
数据采集 监控 机器人
浅谈网页端IM技术及相关测试方法实践(包括WebSocket性能测试)
最开始转转的客服系统体系如IM、工单以及机器人等都是使用第三方的产品。但第三方产品对于转转的业务,以及客服的效率等都产生了诸多限制,所以我们决定自研替换第三方系统。下面主要分享一下网页端IM技术及相关测试方法,我们先从了解IM系统和WebSocket开始。
50 4
|
7天前
|
机器学习/深度学习 人工智能 自然语言处理
MarS:微软开源金融市场模拟预测引擎,支持策略测试、风险管理和市场分析
MarS 是微软亚洲研究院推出的金融市场模拟预测引擎,基于生成型基础模型 LMM,支持无风险环境下的交易策略测试、风险管理和市场分析。
36 8
MarS:微软开源金融市场模拟预测引擎,支持策略测试、风险管理和市场分析
|
12天前
|
开发框架 .NET Java
C#集合数据去重的5种方式及其性能对比测试分析
C#集合数据去重的5种方式及其性能对比测试分析
31 11
|
14天前
|
开发框架 .NET Java
C#集合数据去重的5种方式及其性能对比测试分析
C#集合数据去重的5种方式及其性能对比测试分析
41 10
|
1月前
|
Java 测试技术 API
探索软件测试中的自动化测试框架
本文深入探讨了自动化测试在软件开发中的重要性,并详细介绍了几种流行的自动化测试框架。通过比较它们的优缺点和适用场景,旨在为读者提供选择合适自动化测试工具的参考依据。
|
1月前
|
数据管理 测试技术 持续交付
软件测试中的自动化测试策略与最佳实践
在当今快速迭代的软件开发环境中,自动化测试已成为确保软件质量和加速产品上市的关键手段。本文旨在探讨软件测试中的自动化测试策略,包括选择合适的自动化测试工具、构建有效的自动化测试框架以及实施持续集成和持续部署(CI/CD)。通过分析自动化测试的最佳实践,本文为软件开发团队提供了一系列实用的指南,以优化测试流程、提高测试效率并减少人为错误。
70 4
|
3月前
|
测试技术 持续交付 Apache
Python性能测试新风尚:JMeter遇上Locust,性能分析不再难🧐
【10月更文挑战第1天】Python性能测试新风尚:JMeter遇上Locust,性能分析不再难🧐
183 3
|
4月前
|
测试技术 数据库 UED
Python 性能测试进阶之路:JMeter 与 Locust 的强强联合,解锁性能极限
【9月更文挑战第9天】在数字化时代,确保软件系统在高并发场景下的稳定性至关重要。Python 为此提供了丰富的性能测试工具,如 JMeter 和 Locust。JMeter 可模拟复杂请求场景,而 Locust 则能更灵活地模拟真实用户行为。结合两者优势,可全面评估系统性能并优化瓶颈。例如,在电商网站促销期间,通过 JMeter 模拟大量登录请求并用 Locust 模拟用户浏览和购物行为,可有效识别并解决性能问题,从而提升系统稳定性和用户体验。这种组合为性能测试开辟了新道路,助力应对复杂挑战。
135 2
|
2月前
|
测试技术 持续交付 Apache
Python性能测试新风尚:JMeter遇上Locust,性能分析不再难🧐
Python性能测试新风尚:JMeter遇上Locust,性能分析不再难🧐
112 3