E2E测试
LoongCollector 提供了一个完整的E2E测试引擎,方便您快速开展集成测试,从而进一步保证代码质量。在大部分情况下,您只需要编写一个配置文件来定义测试行为,即可轻松完成测试。
工作原理
E2E测试采用行为驱动开发(Behavior-Driven Development)的设计思路,通过定义一系列测试行为,并通过配置文件的方式来描述测试场景,从而实现对插件的集成测试。测试引擎会根据配置文件中的内容,正则匹配对应的函数,并解析配置文件中的参数,传递给对应的函数。从而完成自动创建测试环境、启动 LoongCollector、触发日志生成、验证日志内容等一系列操作,最终输出测试报告。
相关参考:
测试流程
环境准备
在准备开始进行集成测试前,您首先需要准备以下内容:
测试环境:主机(可通过SSH访问)、K8s集群(可通过kubeconfig访问)、Docker-Compose环境(需在本地安装docker-compose)
部署 LoongCollector
配置文件
对于每一个新的功能,您都需要在./test/e2e/test_cases目录下创建一个新的feature配置文件。每个配置文件中可以包含多个测试场景,每个测试场景由一个或多个步骤组成。
配置文件的基本框架如下所示:
Feature定义了一个测试功能,下面为这个功能的描述信息。在Feature下可以定义多个测试场景。Scenario定义了一个测试场景。在Scenario下可以定义多个行为。行为定义分为三类:
Given:定义了一些准备测试条件的行为。When:定义了一些触发测试条件的行为。Then:定义了一些验证测试条件的行为。
行为中使用
{}作为标识符,该部分内容将作为参数,传递给对应的Go函数。@表示一个tag,在运行测试时,会根据tag的不同,分别运行。除了自定义的tag外,测试框架定义了一些默认的tag:@e2e:表示该测试场景为E2E测试。@regression:表示该测试场景为回归测试。@host:表示该测试场景在host环境下运行。@k8s:表示该测试场景在k8s环境下运行。@docker-compose:表示该测试场景在本地启动docker-compose运行
运行测试
在所有测试内容准备完毕后,您可以直接在test目录下以go test的方式运行E2E测试。根据您的需求,可以选择运行所有测试或者指定测试。
拓展
如果目前engine中已有的测试行为无法满足您的需求,您可以参考以下添加指南,自行拓展测试行为。
Last updated