如何向 Nebula Graph 增加一个测试用例

ywz888
发布于 2022-10-10 16:27
浏览
0收藏

由于 Nebula Graph 在持续研发过程中会频繁地更改返回数据的格式,这样就会造成了上层应用程序无法正确解析数据。

比如在 v2.0.0 发布的时候,改变了 SHOW JOBS 的格式,造成了 Studio 解析的时候页面崩溃。

为了避免再次发生这样的悲剧问题,可以使用 Nebula Graph 提供的测试框架,方便地增加测试用例。

>>>>

环境准备

按照文档「源码编译安装」(链接:https://docs.nebula-graph.com.cn/2.0.1/4.deployment-and-installation/2.compile-and-install-nebula-graph/1.install-nebula-graph-by-compiling-the-source-code/)中所示,我们可以参考以下步骤进行操作:

1. 准备一台开发机,这里给出了开发环境的配置要求。

  • Python3 要求的最低版本为 Python 3.7 

如何向 Nebula Graph 增加一个测试用例-鸿蒙开发者社区

2. 按照文档中步骤编译源代码。选择 master 版本,并拉一个分支。

具体步骤可以见 Nebula 文档站中如何贡献中的 GitHub 使用步骤部分(链接:https://docs.nebula-graph.com.cn/2.0.1/15.contribution/how-to-contribute/)。

如何向 Nebula Graph 增加一个测试用例-鸿蒙开发者社区

  1. 安装 case 运行环境。

如何向 Nebula Graph 增加一个测试用例-鸿蒙开发者社区

如果遇到模块版本过低,可以根据提示升级版本,比如:命令 pip3 install --upgrade keyrings.alt 

4. 运行已有 case 

如何向 Nebula Graph 增加一个测试用例-鸿蒙开发者社区

>>>>

开发 case




研究一下已有 case 

大多数已有 case 都在 https://github.com/vesoft-inc/nebula-graph/tree/master/tests/tck/features 目录下,根据主要功能放在不同目录下。

例如,以最常用的 MATCH 功能举例。打开 GitHub 目录下的  match/MatchById.feature (链接:https://github.com/vesoft-inc/nebula-graph/blob/master/tests/tck/features/match/MatchById.feature)文件

如何向 Nebula Graph 增加一个测试用例-鸿蒙开发者社区

nebula-test 是基于 BDD 思想撰写的,这些 feature 文件基本是自然语言(gherkin 文本),BDD 介绍文章可参考:《基于 BDD 理论的 Nebula 集成测试框架重构(上篇)》

这里简单地解释一下 case 用例模版主要的格式:

  • Feature:介绍整个文本是做什么的;
  • Background:设置一下公共的运行环境,例子中,选用了一个已经存在的数据集 basketballplayer(建立了schema,index,写入了数据);
  • Scenario:一组 When-Then 的组合,是一个最小的并发执行单位;
  • When executing query:向 Nebula Graph 发送一组命令;
  • Then the result should be:从 Nebula Graph 获取结果,和下面的期望结果对比;

这个对比方式可以有以下几种:

  • The result should be:需完全一样 (行、列、单元格内容都必须一模一样);
  • The result should contain:只包含以下内容即可;
  • The result should be, in any order:返回结果的行顺序无关(对于行 1 和行 2 的顺序没有要求);
  • The result should be, in any order, with relax comparison:结果集需要是以下形式,行顺序无关,并且至少包括以下内容(例如,每个单元格至少包括"Tiago Splitter",但可以比这个多);
  • The execution should be successful:返回码为成功;
  • An ExecutionError should be raised at runtime: not existed! 执行失败,抛出异常 ExecutionError,且返回错误码为 not existed!;




尝试自己撰写一个 case

假设现在我们的目的是检查一下 SHOW JOBS 的返回格式,可以这么操作:在 nebula-graph/tests/tck/features/job/(链接:https://github.com/vesoft-inc/nebula-graph/tree/master/tests/tck/features/job)下增加一个 JobCommands.feature 的文件。

如何向 Nebula Graph 增加一个测试用例-鸿蒙开发者社区




调试 case

如何向 Nebula Graph 增加一个测试用例-鸿蒙开发者社区

检查格式错误,并格式化文件。

如何向 Nebula Graph 增加一个测试用例-鸿蒙开发者社区

运行刚撰写的 case,通常要来回更改多次。用 # 号注释。也可以用 @skip 标注跳过整个 Scenario。

如何向 Nebula Graph 增加一个测试用例-鸿蒙开发者社区

如果内存有限,-n4 控制并发度。

更多说明可以参见这里:https://github.com/vesoft-inc/nebula-graph/tree/master/tests#nebula-graph-test-manual。 




通过 git 向 Nebula Graph repo 增加该 case

如果所有的测试都已经通过,将调试标记 @mintest 去掉,通过 git 指令向 Nebula Graph 仓库提交一个 pull request,参考如何贡献(链接:https://docs.nebula-graph.com.cn/2.0.1/15.contribution/how-to-contribute/)。



文章转载自公众号:Nebula Graph Community

分类
标签
已于2022-10-10 16:27:38修改
收藏
回复
举报
回复
    相关推荐