Add scalable regression testing framework(#7584) contains - Test framework making by groovy, and support built-in **readable DSL** named as `Action` - Demo exists in `${DORIS_HOME}/regression-test/data/demo` - Chinese doc exist in `${DORIS_HOME}/docs/zh-CN/developer-guide/regression-testing.md` English document coming soon
16 KiB
16 KiB
title, language
| title | language |
|---|---|
| 回归测试 | zh-CN |
回归测试
概念
Suite: 一个测试用例,目前仅用来指代测试用例文件名Group: 一个测试集,目前仅用于指代测试用例所属的目录Action: 一个封装好的具体测试行为,比如用于执行sql的sqlAction,用于校验结果的testAction,用于导入数据的streamLoadAction等
测试步骤
- 需要预先安装好集群
- 修改配置文件
${DORIS_HOME}/conf/regression-conf.groovy,设置jdbc url、用户等配置项 - 创建测试用例文件并编写用例
- 如果用例文件包含
qtAction,则需要创建关联的的data文件,比如suites/demo/qt_action.groovy这个例子,需要用到data/demo/qt_action.out这个TSV文件来校验输出是否一致 - 运行
${DORIS_HOME}/run-regression-test.sh测试全部用例,或运行${DORIS_HOME}/run-regression-test.sh --run <suiteName>测试若干用例,更多例子见"启动脚本例子"章节
目录结构
开发时需要关注的重要文件/目录
run-regression-test.sh: 启动脚本regression-conf.groovy: 回归测试的默认配置data: 存放输入数据和输出校验数据suites: 存放用例
./${DORIS_HOME}
|-- **run-regression-test.sh** 回归测试启动脚本
|-- regression-test
| |-- conf
| | |-- logback.xml 日志配置文件
| | |-- **regression-conf.groovy** 默认配置文件
| |
| |-- framework 回归测试框架源码
| |-- **data** 用例的输入输出文件
| | |-- demo 存放demo的输入输出文件
| | |-- correctness 存放正确性测试用例的输入输出文件
| | |-- performance 存放性能测试用例的输入输出文件
| | |-- utils 存放其他工具的输入输出文件
| |
| |-- **suites** 回归测试用例
| |-- demo 存放测试用例的demo
| |-- correctness 存放正确性测试用例
| |-- performance 存放性能测试用例
| |-- utils 其他工具
|
|-- output
|-- regression-test
|-- log 回归测试日志
框架默认配置
测试时需要实际情况修改jdbc和fe的配置
/* ============ 一般只需要关注下面这部分 ============ */
// 默认DB,如果未创建,则会尝试创建这个db
defaultDb = "regression_test"
// Jdbc配置
jdbcUrl = "jdbc:mysql://127.0.0.1:9030/?"
jdbcUser = "root"
jdbcPassword = ""
// fe地址配置, 用于stream load
feHttpAddress = "127.0.0.1:8030"
feHttpUser = "root"
feHttpPassword = ""
/* ============ 一般不需要修改下面的部分 ============ */
// DORIS_HOME变量是通过run-regression-test.sh传入的
// 即 java -DDORIS_HOME=./
// 设置回归测试用例的目录
suitePath = "${DORIS_HOME}/regression-test/suites"
// 设置输入输出数据的目录
dataPath = "${DORIS_HOME}/regression-test/data"
// 默认会读所有的组,读多个组可以用半角逗号隔开,如: "demo,performance"
// 一般不需要在配置文件中修改,而是通过run-regression-test.sh来动态指定和覆盖
testGroups = ""
// 默认会读所有的用例, 同样可以使用run-regression-test.sh来动态指定和覆盖
testSuites = ""
// 其他自定义配置
customConf1 = "test_custom_conf_value"
编写用例的步骤
- 进入
${DORIS_HOME}/regression-test目录 - 根据测试的目的来选择用例的目录,正确性测试存在
suites/correctness,而性能测试存在suites/performance - 新建一个groovy用例文件,增加若干
Action用于测试,Action讲在后续章节具体说明
Action
Action是一个测试框架默认提供的测试行为,使用DSL来定义。
sql action
sql action用于提交sql并获取结果,如果查询失败则会抛出异常
参数如下
- String sql: 输入的sql字符串
- return List<List