写点什么

MatrixOne 从入门到实践 07——MO-Tester

作者:MatrixOrigin
  • 2022-11-28
    上海
  • 本文字数:1540 字

    阅读完需:约 5 分钟

MatrixOne从入门到实践07——MO-Tester

MatrixOne 从入门到实践——MO-Tester

从 0.5.0 版本开始,MatrixOne 引入了一个自动测试框架 MO-Tester


MO-Tester 测试框架,也可以称作为测试器,是通过 SQL 测试 MatrixOne 或其他数据库功能的。

简介

MO-Tester 是基于 Java 语言进行开发,用于 MatrixOne 的测试套件。MO-Tester 构建了一整套完整的工具链来进行 SQL 自动测试。它包含测试用例和运行结果。MO-Tester 启动后,MO-Tester 将使用 MatrixOne 运行所有 SQL 测试用例,并将所有输出 SQL 测试结果与预期结果进行比较。所有案例的结果无论成功或者失败,都将记录在报告中。


MO-Tester 相关用例、结果和报告的链接如下:



测试用例和测试结果一一对应。如需添加新的测试用例和测试结果请进入右侧所示 MatrixOne 仓库路径中进行添加:https://github.com/matrixorigin/matrixone/tree/main/test


MO-Tester 测试用例如下表所示:


使用 MO-Tester

环境准备

  • 安装 jdk 8

  • 启动 MatrixOne

  • 请参考MatrixOne部署

  • 克隆 MO-Tester 仓库

配置 MO-Tester

MO-tester 基于 Java 语言进行开发,因此 Mo-tester 所依赖的 Java 数据库连接(JDBC,Java Database Connectivity) 驱动程序需要配置 mo.yml 文件里的参数信息:进入到 mo-tester 本地仓库,打开 mo.yml 文件,配置服务器地址、默认的数据库名称、用户名和密码等。


以下是本地独立版本 MatrixOne 的默认示例。



#jdbcjdbc: driver: "com.mysql.cj.jdbc.Driver" server: - addr: "127.0.0.1:6001" #- addr: "127.0.0.1:3306" #- addr: "127.0.0.1:3306" database: default: "" paremeter: characterSetResults: "utf8" continueBatchOnError: "false" useServerPrepStmts: "true" alwaysSendSetIsolation: "false" useLocalSessionState: "true" zeroDateTimeBehavior: "CONVERT_TO_NULL" failoverReadOnly: "false" serverTimezone: "Asia/Shanghai" socketTimeout: 30000#usersuser: name: "dump" password: "111"
复制代码

运行 MO-Tester

运行以下所示命令行,SQL 所有测试用例将自动运行,并将报告和错误消息生成至 report/report.txtreport/error.txt 文件中。


./run.sh
复制代码


如果你想调整测试范围,你可以修改 run.yml 文件中的 path 参数。或者,在执行 run.sh 命令时,你也可以指定一些参数,参数解释如下:



run.yml:


#test scritps pathpath: "cases/"
#method#run: means execute test scripts configured by para[path] completely,and generate the test reprot,execution logs#debug: means execute test scripts configured by para[path] completely, only print the result to console,do not generate the test reprot,execution logs#genrs: means generate the expected result for the test scripts onlymethod: "run"
#rate: means the execution success rate,if the actual rate is less than this,the programe will exit with status 1rate: 100
复制代码


示例:


./run.sh -p case -m run -t script -r 100 -i select,subquery -e substring -g
复制代码

使用 MO-Tester 完成 TPCH

注意: 这里的 tpch 只是一个测试用例,仅用来测试数据库能够跑通 tpch 的 22 条查询语句,包含的数据条数较少。


  • 获取 MatrixOne 源码

  • 复制 test 目录到 MO-Tester

  • 同理,将 MatrixOne 源码目录中 test 下的 result 也复制过来

  • 运行 MO-Tester 进行 TPCH 测试

  • 最终结果显示:

  • 我们可以看一下 report.txt 观察测试用例结果

  • 同理,我们如果需要执行其他的测试用例,只需要将对应的 cases 复制过来,运行时指定对应的路径即可


发布于: 刚刚阅读数: 4
用户头像

MatrixOrigin

关注

还未添加个人签名 2021-12-06 加入

一个以技术创新和用户价值为核心的基础软件技术公司。

评论

发布
暂无评论
MatrixOne从入门到实践07——MO-Tester_数据库_MatrixOrigin_InfoQ写作社区