作为测试怎么设计ES与数据库的相关测试用例

首先要明确ES是分布式全文检索与分析引擎,主打高效查询、全文搜索、数据分析

数据库为了结构化数据存储,对于一些复杂的关联查询等

所在在实际的业务中经常是使用:**数据库存储核心数据,ES做高效检索同步,**所以在测试过程中核心就是要保证ES数据与数据库中的数据保持一致性

1.功能测试,测试数据的一致准确性

|--------|-----------------------------------------------------------------|-----------------------------------------------------------------------|
| 测试点 | 测试步骤 | 预期结果 |
| 全量数据同步 | 1.清空ES的索引 2.做全量同步的脚本 3.抽取mysql中的数据与ES中进行对比 | 1.ES中的索引与数据库中的保持一致 2.ES中数据的条数与mysql中的条数保持一致 3.字段保持一致 |
| 增量数据同步 | 1.先完成全量同步 2.对数据库中进行增删改 3.等待同步完成比对ES中的数据 | 1.增删改,es中的数据保持一致 2.同步延时的时间符合预期 |
| 异常同步容错 | 1.同步过程中中断ES 2.恢复ES后重新触发同步 3.比对数据一致性,有无数据丢失 | 1.未同步的数据不会丢失 2.同步的数据没有重复,没有缺失 3.同步失败的数据有对应的日志记录 |
| 字段映射正常 | 验证 MySQL 字段类型与 ES 字段类型的映射关系(如 int→integer,varchar→text/keyword) | 1. 映射关系符合设计要求;2. 需检索的字段设为 text 类型(支持分词),需精确匹配的字段设为 keyword 类型(如商品 ID) |

2.异常测试场景

|------------|--------------------------|----------------------|
| 测试点 | 测试步骤 | 预期结果 |
| 测试超大字段是否正常 | 如 MySQL 中存储的商品详情(5000 字) | ,同步到 ES 后是否完整,检索是否正常 |
| 测试特殊字符 | 如商品名含/、#、@等特殊字符 | ES是否能正常同步可以正常检索 |
| 测试超过数据量边界 | 如同步 100 万条数据 | ES是否可以正常同步检索是否正常 |

3.ES的独立功能

4.性能测试

分别设置按照ES和数据库的形式进行压测看有无性能瓶颈,之前仓储的一个商品6合一接口上线出现大面积的超时当时按照ES和数据库进行压测找出来性能瓶颈并正常修复上线对应的压测过程如下

生产环境: queryPlaceSkusCriteria

相关推荐
ofoxcoding13 小时前
借助 CLAUDE.md 约束 Sonnet 5.5 多文件重构行为的提示词实践
大数据·elasticsearch·ai·重构
Elasticsearch13 小时前
隆重推出 AlertZero:让你的告警队列实现 “收件箱清零” 式管理
elasticsearch
ly768914 小时前
从 TF-IDF 到 BM25:Elasticsearch 相关性评分的字段长度归一化与 boost 调参边界
java·elasticsearch·query dsl·bm25·相关性评分
SL-staff14 小时前
技术实践:将Excel自动升级为可搜索的知识节点(JVS平台实现)
mongodb·elasticsearch·知识图谱·jvs平台·语义解析·企业文档管理·excel结构化
Elasticsearch14 小时前
2026 年唯一获得端点预防与响应(EPR)满分的厂商是 Elastic
elasticsearch
vx_Biye_Design15 小时前
springboot旅游管理系统18006-计算机课程设计、毕业设计
java·spring boot·后端·python·elasticsearch·django·课程设计
ly76891 天前
倒排索引与 FST 在 Lucene 中的内存布局:segment、docValues 与词典压缩的工程取舍
elasticsearch·lucene·倒排索引·doc values·fst
Elasticsearch1 天前
利用预计算上下文,更快速、更低成本地开展支持问题调查
elasticsearch
小小小米粒1 天前
重置本地git
大数据·git·elasticsearch
ly76891 天前
Spring Boot 集成 Elasticsearch 的生产实践:客户端选型、索引生命周期与批量写入容错
spring boot·elasticsearch·索引生命周期·java api client·批量写入