库,用于构建和销毁索引、数据流、存储库和快照
项目描述
es-testbed
创建索引、数据流和快照以方便测试的方法。
初步文档
1. 创建预设
创建一个预设目录。一个示例预设目录位于 src/es_testbed/presets/searchable_test
。
您的预设目录必须包含以下文件
- 一个计划YAML文件,例如
plan.yml
- 一个构建列表YAML文件,例如
buildlist.yml
- 一个
functions.py
文件(实际的Python代码),其中必须包含一个名为doc_generator()
的函数。此函数必须接受构建列表的options
中的所有kwargs - 一个
definitions.py
文件,这是一个Python变量文件,帮助查找模块的路径等,以及导入计划、构建列表、映射和设置等。这至少必须包括一个返回构建/配置计划的字典的get_plan()
函数。 - 一个
mappings.json
文件(包含您的文档所需的索引映射) - 一个包含索引设置的
settings.json
文件。任何其他文件都可以被包含以帮助 doc_generator 功能,例如 Faker 定义和类等。一旦预置模块被导入,相对导入应该可以正常工作。
注意:如果 ilm['enabled'] == False
,则其他子键将被忽略。实际上,ilm: False
也是可以接受的。
readonly
可接受的值是允许 readonly
的层级名称:hot
、warm
或 cold
。
将此保存为第二步。
2. 创建一个测试床(TestBed)
必须建立一个 Elasticsearch 客户端才能继续。
from es_testbed import TestBed
tb = TestBed(client, **kwargs)
对于内建的预置,如 searchable_test
,这是
tb = TestBed(client, builtin='searchable_test', scenario=None)
scenario
可以是配置中的多个之一。
对于在文件系统中使用自己的预置
tb = TestBed(client, path='/path/to/preset/dir')
path
必须 是一个目录。
对于从 Git 仓库导入
tb = TestBed(client, url='user:token@https://github.com/GITUSER/reponame.git', ref='main', path='subpath/to/preset')
注意,如果是一个受保护的仓库,则 user:token@
是必要的。在这种情况下,path
必须是仓库的子目录。手动设置 depth=1
,因此只会将最新的一些内容拉入 tmpdir,这将在 teardown()
部分被销毁。
2.1 索引模板创建(幕后操作)
根据第一步中的设置,您将有两个组件模板和一个引用它们的索引模板。
组件模板 1
es-testbed-cmp-mytest-000001
设置
{'index.number_of_replicas': 0}
如果使用 rollover_alias
或 ILM 策略,则将自动添加额外的值。
组件模板 2
es-testbed-cmp-mytest-000002
映射
{
'properties': {
'@timestamp': {'type': 'date'},
'message': {'type': 'keyword'},
'number': {'type': 'long'},
'nested': {'properties': {'key': {'type': 'keyword'}}},
'deep': {'properties': {'l1': {'properties': {'l2': {
'properties': {'l3': {'type': 'keyword'}}}}}}
}
}
}
索引模板
es-testbed-tmpl-mytest-000001
2.2 您拥有索引
根据第一步提供的内容,您将拥有 3 个具有基本映射的索引,每个索引包含 10 个文档。
es-testbed-idx-mytest-000001
es-testbed-idx-mytest-000002
es-testbed-idx-mytest-000003
文档将根据 TestPlan 设置添加。这些文档的语法定义在 es_testbed.helpers.utils.doc_gen()
中。计数被保留,并从索引到索引继续增长。
3. 执行测试。
这是执行测试的地方。
4. 清理
tb.teardown()
除非发生任何异常情况,否则所有索引、数据流、ILM 策略、索引和组件模板以及快照(如果索引被提升为可搜索快照)都将作为 teardown()
方法的一部分被删除。
项目详情
下载文件
下载您平台上的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。
源分布
构建分布
es_testbed-0.8.5.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 4d9bb7f7100499d0ea085e096ea35d2f10e78cbf7673f4df6c57a1abd7e805b9 |
|
MD5 | 6e66bcca818e7695d95a9b0b622c11bb |
|
BLAKE2b-256 | 98a934a05825b90eb0584a09c55324b0b10ce99e3f5d9945897e99b9ae7dfe47 |
es_testbed-0.8.5-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 4ece3c6bf2024bd130fe2d11336c4d1687e19db835093035528ef2330a4732d3 |
|
MD5 | 9b080a29926ea8a8bdb3c131bddf697d |
|
BLAKE2b-256 | f52b8bc817631c30d80f210fe5c1f84b2a0c76a2bc3c7f6e8610cd44f8f44a44 |