跳转到主要内容

库,用于构建和销毁索引、数据流、存储库和快照

项目描述

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 的层级名称:hotwarmcold

将此保存为第二步。

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 (131.0 kB 查看哈希值)

上传时间

构建分布

es_testbed-0.8.5-py3-none-any.whl (44.3 kB 查看哈希值)

上传时间 Python 3

支持