阿里云PTS-原生JMeter压测实战-云测试

本文涉及的产品
性能测试 PTS,5000VUM额度
简介: 阿里云PTS-原生JMeter压测实战-云测试

在进行性能测试时很多同学在工作中会选择jmeter作为工具来测试,但是jmeter本身有很多限制;于是现在有很多云测试了。

阿里云的PTS是一款云化性能测试工具,同时也支持原生Jmeter压测(把写好的jmeter脚本传入即可)。以下就介绍快速压测(9.9尝鲜包)和JMeter压测(278的峰值5k并发的入门包),而云端录制就不介绍了主要是这都是我自己花钱实践的,这个套餐是要628以上。。。

快速压测

一:场景配置

阿里云的PTS性能测试目前有三种方法可以创建场景;快速压测,Jmeter压测,云端录制;每一个种方法都有不同的价格套餐,如果是想试用一下就买尝鲜包好了,但是尝鲜包不可以使用JMeter压测和云端录制。

image.png

1.出参/断言定义

点击“添加压测API”;填写URL和Headers,此处的出参需注意;比如一般的系统都需要登录,登陆后会有相应的token以供后面的接口使用,那么在这里就可以把登录响应的token存下来,给后面使用。断言就是判断此条用例是否通过;

需要注意的是数据轮询:关联数据文件后才可用,选中后关联的数据文件会被轮询一次,轮询完后就不再发送新的请求。比如:设置的并发是100,但是轮询的数据只有50条,那么数据文件轮询一次后,就不会再次发送新的请求。

 

image.png

image.png

 

image.png

2.在接口中引用参数

在第二个请求就会用到:Key是系统里接口中验证权限的字段,根据各自的项目设置,Value就是登录这个接口返回的token值,使用${参数名}即可引用,这里的参数名是登录接口在出参时定义的。

image.png

3.Header设置

其实很多接口的请求头都是大同小异,可以把公共的信息写在全局变量中,那么在请求接口时就会自动带上全局设置的Header。

image.png

 

 

image.png

4.数据文件的引入

每一个用户的操作有所不同,因此每一个接口的传入参数也会不一样;比如:压测时选择并发模式,最大并发1000用户,每一个用户的用户名和密码都不一样,因此在压测登录这个接口时是不可能写定一个用户名和密码的,这样达不到压测的目的。因此就是用到了数据文件的引入。将用户名和密码写在一个文件里,用户名和密码的字段各自对应数值;可以先用excel打开在前两行分别写入用户名和密码的值,另存为csv格式。

点击:全局自定义参数->上传文件;上传后设置用户名和密码的参数,loginName,password;分别对应csv文件的第一列和第二列。

在接口中如何引用参数:使用${参数名}即可引用。

image.png

二.施压配置

1.此处的设置需要去了解什么是TPS,RPS(每秒请求数),具体如何设置是要根据系统的业务量来设置的。

image.png

2.比如:有时会遇到这种情况

为何设置了300并发,实际压测过程中并未能达到?

基本概念

  • 并发模式:即虚拟用户模式。详细定义,参见并发虚拟用户、RPS、TPS的解读
  • 并发用户数(以下简称“并发”):现实系统中同时操作业务的用户数量,在性能测试工具中一般称为虚拟用户(Virutal User)。最大并发用户数,即在压测中最多多少用户同时对压测业务产生压力。
  • RPS:Request Per Second,每秒请求数。RPS 是从服务端的视角衡量系统每秒处理的请求数,一个并发用户可能产生多个请求。
  • 由于压测的施压机计算资源有限,同时为了保证压测流量更稳定,在施压时对 RPS 有一定的限制(资源包规格中不同并发有相应的 RPS 上限)。RPS 如果到达上限,即不会增加更大的压力。

例如,将最大并发设置为 300 时,在施压配置页面您可以看到对应的 RPS 限制为 4000:

image.png

以最上面图片所示的压测为例,您会发现平均 RPS(总请求数/总压测时长)已经达到 4001(4001是采集周期内计算的合理误差),在压测趋势图中已经达到了 4000 的 RPS 上限,所以并发不会再继续往上涨了。

image.png

三:调试场景

1.调试场景

设置好一系列的请求和配置要求后为了验证每一个接口是正常的业务流程,也为了避免浪费资源,可以在正式压测之前使用调试场景。点击接口可以查看此接口的详情信息。

image.png

2.测试出参正则表达式

有时候在接口的出参设置那里不知道参数的提取表达是如何书写,就可以使用这样的方法。

选中某一个接口后点击右侧的:去测试出参正则表达式,就会出现以下界面:

image.png

在正则表达式的输入框输入表达式即可验证表达式是否正确,比如:

image.png

黄色部分就代表输入的表达式期望得到的结果;或者点击输入框的右侧下拉箭头也可选择写好的表达式;粘贴表达式到出参设置或者点击 “同步出参配置”。

JMeter压测

1. 创建压测->原生Jmeter压测->场景配置中单击上传文件,添加JMeter脚本、JAR文件(即放置在JMeter的安装目录.../lib/ext 下的相关JAR文件)和其他数据文件。  95dcc176-b4fc-48d6-a19a-6239ba1c34f2.png

95dcc176-b4fc-48d6-a19a-6239ba1c34f2.png

2. 施压配置

95dcc176-b4fc-48d6-a19a-6239ba1c34f2.png

四.压测报告

95dcc176-b4fc-48d6-a19a-6239ba1c34f2.png

95dcc176-b4fc-48d6-a19a-6239ba1c34f2.png

右上角还可以导出PDF查看。

原生JMeter压测配置阿里云官方文档:https://help.aliyun.com/document_detail/91788.html?spm=5176.5176.0.dexternal.585967e4WU2y7y

 

相关实践学习
通过性能测试PTS对云服务器ECS进行规格选择与性能压测
本文为您介绍如何利用性能测试PTS对云服务器ECS进行规格选择与性能压测。
相关文章
|
2月前
|
测试技术 持续交付 Apache
Python性能测试新风尚:JMeter遇上Locust,性能分析不再难🧐
【10月更文挑战第1天】Python性能测试新风尚:JMeter遇上Locust,性能分析不再难🧐
154 3
|
3月前
|
测试技术 数据库 UED
Python 性能测试进阶之路:JMeter 与 Locust 的强强联合,解锁性能极限
【9月更文挑战第9天】在数字化时代,确保软件系统在高并发场景下的稳定性至关重要。Python 为此提供了丰富的性能测试工具,如 JMeter 和 Locust。JMeter 可模拟复杂请求场景,而 Locust 则能更灵活地模拟真实用户行为。结合两者优势,可全面评估系统性能并优化瓶颈。例如,在电商网站促销期间,通过 JMeter 模拟大量登录请求并用 Locust 模拟用户浏览和购物行为,可有效识别并解决性能问题,从而提升系统稳定性和用户体验。这种组合为性能测试开辟了新道路,助力应对复杂挑战。
117 2
|
1月前
|
测试技术 持续交付 Apache
Python性能测试新风尚:JMeter遇上Locust,性能分析不再难🧐
Python性能测试新风尚:JMeter遇上Locust,性能分析不再难🧐
54 3
|
1月前
|
缓存 测试技术 Apache
告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
47 1
|
3月前
|
缓存 Java 测试技术
谷粒商城笔记+踩坑(11)——性能压测和调优,JMeter压力测试+jvisualvm监控性能+资源动静分离+修改堆内存
使用JMeter对项目各个接口进行压力测试,并对前端进行动静分离优化,优化三级分类查询接口的性能
110 10
谷粒商城笔记+踩坑(11)——性能压测和调优,JMeter压力测试+jvisualvm监控性能+资源动静分离+修改堆内存
|
2月前
|
缓存 测试技术 Apache
告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
【10月更文挑战第1天】告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
70 4
|
3月前
|
移动开发 JSON Java
Jmeter实现WebSocket协议的接口测试方法
WebSocket协议是HTML5的一种新协议,实现了浏览器与服务器之间的全双工通信。通过简单的握手动作,双方可直接传输数据。其优势包括极小的头部开销和服务器推送功能。使用JMeter进行WebSocket接口和性能测试时,需安装特定插件并配置相关参数,如服务器地址、端口号等,还可通过CSV文件实现参数化,以满足不同测试需求。
255 7
Jmeter实现WebSocket协议的接口测试方法
|
3月前
|
测试技术 持续交付 Apache
Python性能测试新风尚:JMeter遇上Locust,性能分析不再难🧐
【9月更文挑战第10天】随着软件应用的不断扩展,性能测试成为确保系统稳定运行的关键环节。本文通过对比Apache JMeter和Locust,探讨了如何在Python环境中利用这两款工具挖掘更多性能测试潜力。JMeter是一款成熟且功能强大的开源工具,支持多种协议,适用于各种应用的测试;而Locust则基于Python,通过简单脚本模拟HTTP请求,更适合Web应用测试。
102 3
|
3月前
|
消息中间件 监控 测试技术
惊呆了!Python性能测试高手都用这些神器:JMeter+Locust,效率翻倍📈
【9月更文挑战第8天】在软件开发中,性能测试对确保应用稳定性和高效运行至关重要。对于Python开发者而言,选择合适的性能测试工具能显著提升测试效率并精准定位性能瓶颈。本文深入探讨了JMeter和Locust这两款工具的独特优势。JMeter作为跨平台的性能测试工具,支持多种协议,具备高度可定制性和扩展性;而Locust则专为Python应用设计,利用协程实现高并发,提供实时监控和分布式测试功能。两者结合使用,可在实际项目中实现1+1>2的效果,帮助开发者构建全面高效的测试方案,保障应用稳定运行。
193 1
|
3月前
|
测试技术 Apache 数据库
从慢如蜗牛到飞一般的感觉!Python性能测试实战,JMeter&Locust助你加速🏃‍♂️
【9月更文挑战第6天】你的Python应用是否曾因响应缓慢而让用户望而却步?借助JMeter与Locust,这一切将迎刃而解。JMeter作为Apache基金会的明星项目,以其强大的跨平台和多协议支持能力,成为性能测试领域的魔法师;而Locust则以Python的简洁与高效,让性能测试更加灵活。通过实战演练,你可以利用这两款工具轻松识别并解决性能瓶颈,优化数据库查询、网络配置等,最终使应用变得敏捷高效,轻松应对高并发挑战。
28 1