JMeter 如何实现 Elasticsearch 8.X 性能测试?

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
性能测试 PTS,5000VUM额度
简介: JMeter 如何实现 Elasticsearch 8.X 性能测试?

1、Elasticsearch 性能测试工具

包含但不限于:

  • 1、rally

Elasticsearch 官方压测工具

下载地址:https://github.com/elastic/rally

文档地址:https://esrally.readthedocs.io/en/stable/

  • 2、 Loadgen

Elasticsearch 专属压测工具,Medcl 大佬(原 Elastic 中国第一人,现极限科技CEO)出品。

下载地址:http://release.infinilabs.com/loadgen/

  • 3、JMeter

开源工具,纯 Java 编写,最初为 Java Web 应用程序而设计,后来扩展到其他测试功能。

下载地址:https://jmeter.apache.org/download_jmeter.cgi

早些年用过 JMeter 测试过 Elasticsearch 5.X 的功能,当时是测试同事协助完成,我自己没有完全掌握。

今天,我带领大家从头过一遍,让大家彻底搞懂 JMeter 实现 Elasticsearch 性能测试。

2、JMeter 部署与启动

由于Java 程序编写,自然支持跨平台,Windows 和 Linux 都可以运行。

这里,主要讲解 Windows 可视化界面配置。

谈不上部署,解压类似绿色安装包就可以使用。

2.1 修改编码格式

为了让 JMeter 支持中文字符,切记先修改配置文件。

修改 bin 路径下的:jmeter.properties 的缺省编码格式如下:

sampleresult.default.encoding=UTF-8

2.2 启动 JMeter

双击:jmeter.bat

启动后,会出现如下的可视化界面:

3、JMeter 性能测试认知前提

3.1 第一:本质上是 Java Web 应用程序测试的逻辑。

Elasticsearch 对外提供服务的就是 9200端口(默认),本质也可以看作 web 服务。

3.2 第二:既然是性能测试,就涉及模拟并发用户请求。

并发用户在JMeter中叫:Threads(Users)。

3.3 第三:既然是Web服务,就涉及配置 Http 请求头。

请求头包含但不限于:

1)Http 请求头,IP、端口、编码格式等基础信息配置,对应于JMeter 中的:Http Request。

2)Https 安全,用户名、密码等的配置,对应于JMeter中的:Http Authorization Manager。

3)Https 响应数据格式,对应于JMeter中的:Http Header Manager。

3.4 第四:既然是性能测试,就得有出报告的地方。

对应于 Listener,类似“吃自助餐”,需要什么拿什么。

有了上面四点认知,剩下的就是走流程了。

4、JMeter 实现 Elasticsearch 8.X 性能测试

4.1 步骤1:设置并发用户数。

如上图所示,逐个点击 Add->Threads(Users)->Thread Group。

  • Number of Threads:并发用户数。
  • Ram-up period:上面这些并发用户数的总耗时,单位为秒。

截图含义:1秒钟有100个用户并发请求。

4.2 步骤2:完成 Http 请求头及安全等基础配置。

4.3 步骤3:根据业务需求自助完成出报相关基础配置。

4.4 步骤4:执行并发性能测试。

绿色按钮执行,”扫帚“按钮清除执行。

4.5 步骤5:查看测试结果。

还有其他表和细节参数,本文没有展开,需要深入了解,查看一下官方文档即可。

5、实战性能对比

  • 4核8G 云服务器(堆内存设置2GB),单节点8.1版本集群性能测试。
  • 索引:weibo相关(构造假数据),数据量:228万4009。

  • 分10并发用户、50并发用户、100并发用户、200并发用户对比如下四种检索方式的平均响应时间。

结果数据统计汇总如下:

初步结论如下:

  • 第一:Wildcard 检索类型不论并发用户是多少,都是最慢的,所以高并发场景不推荐使用。
  • 第二:match、term、match_phrase 要结合应用场景,单纯从性能测试响应时间的维度,无法给出明确的选型建议。
  • 第三:Term针对keyword精准匹配,Match针对倒排索引单个词项检索,Match_phrase针对短语匹配全文检索更为高效。

以上结论仅是初步的,大家或许会有不同的意见(场景不一样,结论会不同),欢迎拍砖。

6、小结

实战出真知,视频讲解地址:https://t.zsxq.com/05uNBQ3ZB

欢迎就 JMeter 性能测试问题进行留言交流。

推荐阅读

比同事抢先一步学习进阶干货!


相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
|
1月前
|
测试技术 持续交付 Apache
Python性能测试新风尚:JMeter遇上Locust,性能分析不再难🧐
【10月更文挑战第1天】Python性能测试新风尚:JMeter遇上Locust,性能分析不再难🧐
130 3
|
12天前
|
测试技术 持续交付 Apache
Python性能测试新风尚:JMeter遇上Locust,性能分析不再难🧐
Python性能测试新风尚:JMeter遇上Locust,性能分析不再难🧐
36 3
|
10天前
|
缓存 测试技术 Apache
告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
25 1
|
1月前
|
SQL 分布式计算 NoSQL
大数据-170 Elasticsearch 云服务器三节点集群搭建 测试运行
大数据-170 Elasticsearch 云服务器三节点集群搭建 测试运行
40 4
|
1月前
|
自然语言处理 搜索推荐 关系型数据库
elasticsearch学习六:学习 全文搜索引擎 elasticsearch的语法,使用kibana进行模拟测试(持续更新学习)
这篇文章是关于Elasticsearch全文搜索引擎的学习指南,涵盖了基本概念、命令风格、索引操作、分词器使用,以及数据的增加、修改、删除和查询等操作。
20 0
elasticsearch学习六:学习 全文搜索引擎 elasticsearch的语法,使用kibana进行模拟测试(持续更新学习)
|
1月前
|
运维 监控 数据可视化
大数据-171 Elasticsearch ES-Head 与 Kibana 配置 使用 测试
大数据-171 Elasticsearch ES-Head 与 Kibana 配置 使用 测试
62 1
|
2月前
|
缓存 Java 测试技术
谷粒商城笔记+踩坑(11)——性能压测和调优,JMeter压力测试+jvisualvm监控性能+资源动静分离+修改堆内存
使用JMeter对项目各个接口进行压力测试,并对前端进行动静分离优化,优化三级分类查询接口的性能
谷粒商城笔记+踩坑(11)——性能压测和调优,JMeter压力测试+jvisualvm监控性能+资源动静分离+修改堆内存
|
1月前
|
缓存 测试技术 Apache
告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
【10月更文挑战第1天】告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
60 4
|
2月前
|
测试技术 数据库 UED
Python 性能测试进阶之路:JMeter 与 Locust 的强强联合,解锁性能极限
【9月更文挑战第9天】在数字化时代,确保软件系统在高并发场景下的稳定性至关重要。Python 为此提供了丰富的性能测试工具,如 JMeter 和 Locust。JMeter 可模拟复杂请求场景,而 Locust 则能更灵活地模拟真实用户行为。结合两者优势,可全面评估系统性能并优化瓶颈。例如,在电商网站促销期间,通过 JMeter 模拟大量登录请求并用 Locust 模拟用户浏览和购物行为,可有效识别并解决性能问题,从而提升系统稳定性和用户体验。这种组合为性能测试开辟了新道路,助力应对复杂挑战。
107 2
|
3月前
|
缓存 测试技术 Apache
告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
【8月更文挑战第5天】性能测试确保应用高负载下稳定运行。Apache JMeter与Locust是两大利器,助力识别解决性能瓶颈。本文介绍这两款工具的应用与优化技巧,并通过实战示例展示性能测试流程。首先,通过JMeter测试静态与动态资源;接着,利用Locust的Python脚本模拟HTTP请求。文中提供安装指南、命令行运行示例与性能优化建议,帮助读者掌握性能测试核心技能。
129 0