- Elasticsearch 教程
- Elasticsearch - 主页
- Elasticsearch - 基本概念
- Elasticsearch - 安装
- Elasticsearch - 填充
- 版本之间的迁移
- Elasticsearch - API 约定
- Elasticsearch - 文档 API
- Elasticsearch - 搜索 API
- Elasticsearch - 聚合
- Elasticsearch - 索引 API
- Elasticsearch - CAT API
- Elasticsearch - 集群 API
- Elasticsearch - 查询 DSL
- Elasticsearch - 映射
- Elasticsearch - 分析
- Elasticsearch - 模块
- Elasticsearch - 索引模块
- Elasticsearch - 摄取节点
- Elasticsearch - 管理索引生命周期
- Elasticsearch - SQL 访问
- Elasticsearch - 监控
- Elasticsearch - 汇总数据
- Elasticsearch - 冻结索引
- Elasticsearch - 测试
- Elasticsearch - Kibana 仪表板
- Elasticsearch - 按字段过滤
- Elasticsearch - 数据表
- Elasticsearch - 区域地图
- Elasticsearch - 饼图
- Elasticsearch - 面积图和条形图
- Elasticsearch - 时间序列
- Elasticsearch - 标签云
- Elasticsearch - 热图
- Elasticsearch - 画布
- Elasticsearch - 日志 UI
- Elasticsearch 有用资源
- Elasticsearch - 快速指南
- Elasticsearch - 有用的资源
- Elasticsearch - 讨论
Elasticsearch - 测试
Elasticsearch提供了一个jar文件,可以将其添加到任何java IDE中,并可用于测试与Elasticsearch相关的代码。使用Elasticsearch提供的框架可以执行一系列测试。在本章中,我们将详细讨论这些测试 -
- 单元测试
- 集成测试
- 随机测试
先决条件
要开始测试,您需要将 Elasticsearch 测试依赖项添加到您的程序中。您可以使用 maven 来实现此目的,并可以在 pom.xml 中添加以下内容。
<dependency> <groupId>org.elasticsearch</groupId> <artifactId>elasticsearch</artifactId> <version>2.1.0</version> </dependency>
EsSetup 已初始化以启动和停止 Elasticsearch 节点以及创建索引。
EsSetup esSetup = new EsSetup();
esSetup.execute() 函数和 createIndex 将创建索引,您需要指定设置、类型和数据。
单元测试
使用JUnit和Elasticsearch测试框架进行单元测试。可以使用 Elasticsearch 类创建节点和索引,并在测试方法中用于执行测试。ESTestCase 和 ESTokenStreamTestCase 类用于此测试。
集成测试
集成测试使用集群中的多个节点。ESIntegTestCase 类用于此测试。有多种方法可以使准备测试用例的工作变得更容易。
序列号 | 方法及说明 |
---|---|
1 |
刷新() 集群中的所有索引都被刷新 |
2 |
确保绿色() 确保绿色健康集群状态 |
3 |
确保黄色() 确保黄色健康集群状态 |
4 |
创建索引(名称) 使用传递给此方法的名称创建索引 |
5 |
冲洗() 集群中的所有索引都被刷新 |
6 |
刷新并刷新() 刷新()和刷新() |
7 |
索引存在(名称) 验证指定索引是否存在 |
8 |
集群服务() 返回集群服务java类 |
9 |
簇() 返回测试集群类 |
测试集群方法
序列号 | 方法及说明 |
---|---|
1 |
确保AtLeastNumNodes(n) 确保集群中的最小节点数大于或等于指定数量。 |
2 |
确保最多节点数(n) 确保集群中的最大节点数小于或等于指定数量。 |
3 |
停止随机节点() 停止集群中的随机节点 |
4 |
停止当前主节点() 停止主节点 |
5 |
stopRandomNonMaster() 停止集群中的随机节点,该节点不是主节点。 |
6 |
构建节点() 创建一个新节点 |
7 |
启动节点(设置) 启动一个新节点 |
8 |
节点设置() 重写此方法以更改节点设置。 |
访问客户
客户端用于访问集群中的不同节点并执行某些操作。ESIntegTestCase.client() 方法用于获取随机客户端。Elasticsearch 还提供其他方法来访问客户端,这些方法可以使用 ESIntegTestCase.internalCluster() 方法来访问。
序列号 | 方法及说明 |
---|---|
1 |
迭代器() 这可以帮助您访问所有可用的客户端。 |
2 |
masterClient() 这将返回一个正在与主节点通信的客户端。 |
3 |
非MasterClient() 这将返回一个不与主节点通信的客户端。 |
4 |
clientNodeClient() 这将返回当前在客户端节点上运行的客户端。 |
随机测试
此测试用于使用所有可能的数据来测试用户的代码,以便将来任何类型的数据都不会出现故障。随机数据是进行此测试的最佳选择。
生成随机数据
在此测试中,Random 类由 RandomizedTest 提供的实例实例化,并提供许多获取不同类型数据的方法。
方法 | 返回值 |
---|---|
获取随机数() | 随机类的实例 |
随机布尔值() | 随机布尔值 |
随机字节() | 随机字节 |
随机短() | 随机短 |
随机整数() | 随机整数 |
随机长() | 随机长 |
随机浮点() | 随机浮动 |
随机双精度() | 随机双 |
随机区域设置() | 随机区域设置 |
随机时区() | 随机时区 |
随机从() | 数组中的随机元素 |
断言
ElasticsearchAssertions 和 ElasticsearchGeoAssertions 类包含断言,用于在测试时执行一些常见检查。例如,观察此处给出的代码 -
SearchResponse seearchResponse = client().prepareSearch(); assertHitCount(searchResponse, 6); assertFirstHit(searchResponse, hasId("6")); assertSearchHits(searchResponse, "1", "2", "3", "4",”5”,”6”);