如何测试和自动化在GraphQL中实现的API

时间:2018-10-30 10:04:05

标签: graphql

在我们公司中,我们正在通过实现graphQL创建一个应用程序。 我想测试和自动化用于CI / CD的API。

我尝试了REST保证,但是由于graphQL查询与Json不同, 如here所述,REST保证的对graphQL查询没有适当的支持。

  • 我们如何使用REST保证的发送graphQL查询?

  • 请提出测试和自动化graphQL API的最佳方法 以及可用于测试和自动化的工具。

2 个答案:

答案 0 :(得分:1)

所以我遇到了同样的问题,并且能够以一种非常简单的方式使其工作。

所以我一直在努力尝试与Restassured一起提出这个graphQL请求,以验证响应(分析有关此信息的稀缺程度),从昨天开始,我就能够使它工作,并在这里共享思想可能会帮助别人。

怎么了?仅通过在请求上复制并粘贴我的Graphql请求(不是json格式)无法正常工作。我不断收到错误消息“ JSON中的意外令牌t在该位置”。所以我认为这是因为graphql不是JSON或没有保证的某种验证。就是说,我尝试将请求转换为JSON,导入的库以及许多其他功能,但它们均无效。

我的grahql查询请求:

String reqString = "{ trade  { orders { ticker } }}\n";

我如何解决它?通过使用邮递员来格式化我的请求。是的,我只是粘贴在邮递员的QUERY窗口中,然后单击右侧的代码按钮(图1)。这样一来,我就可以在其他格式上查看我的请求,该格式可以放心使用(图2)。 PS:请记住要配置邮递员,我用红色箭头指出。

我的grahql查询请求已格式化:

String reqString = {"query":"{ trade  { orders { ticker } }}\r\n","variables":{}}

Fig 1.

Fig 2.

希望它可以帮助您,保重!

答案 1 :(得分:0)

你可以用apitest测试

public function up()
{
    Schema::create('courts', function (Blueprint $table) {
        $table->id();

        $table->foreignId('event_id')->constrained()->cascadeOnDelete();
        $table->string('name')->nullable();

        $table->timestamps();
    });
}

Apitest 是声明式 api 测试工具,具有类似 JSON 的 DSL。

https://github.com/sigoden/apitest