简单的python包,用于定义要存储在elasticsearch中的构建和测试结果的模式。
ebr-connector的Python项目详细描述
EBR接头
简单的python包,用于定义要存储在elasticsearch中的构建和测试结果的模式
术语
- build:CI系统生成/测试执行的单个实例。它应该映射到ci系统上的单个url/uri/uid。
- build id:与给定的build相关联的id(例如1078929)。
- job:描述如何运行build的任务集合。运行一个job应该会生成一个build。在詹金斯,这映射到一个工作/项目, 在QuickBuild中,这映射到配置(例如cpp tests,root/prod/main)。
- product:与给定生成关联的产品的名称。
- 测试集:测试用例的集合,即一个套件
测试和套件分离
为了更好地支持grafana,测试和套件被分为两个数组,而不是在这个模式中用套件嵌套测试。 (在ElasticSearch中对访问嵌套信息有限制)。
由于生成结果存储在一个文档中,因此不可能仅筛选出失败的测试用例。可以筛选生成结果 只有测试失败但收到响应的文档也将包含成功的测试用例。
为了减少接收到的数据量,测试因此被分为通过、失败和跳过的数组。
模式约定
由于在架构中使用了嵌套类型,因此需要将此情况通知ElasticSearch索引器。这是通过定义所谓的index template来实现的。
为了避免在修改模式时修改索引模板,我们决定使用 dynamic templates动态映射类型 基于以下规则(按此顺序应用):
- 每个字段的前缀都必须是
br_
- 不应用于全文搜索(keyword)的字段以
_key
作为后缀,并将映射到keyword类型。 - 嵌套的字段以
_nested
作为后缀,并将映射到nested类型。 - 计数器字段的后缀为
_count
,将映射到integer类型。 - 名称中包含
duration
的字段将映射到float类型。 - 类型为string的字段获取可用于非全文搜索的原始字段(以
_key
作为后缀的除外),最多256个字符。
学分
这个包是用Cookiecutter和tomtom-international/cookiecutter-python项目模板创建的。
更改日志
0.1.0-dev(2019-04-10)
- pypi上的第一个版本。