GraphQL 测试实践

我们很熟悉以REST实现的API,可以用任何能够发出http 请求的库或者工具来测试REST API。去年随着GraphQL在全球风靡,它也出现在了最近两期的ThoughtWorks技术雷达中,当我们面对新的GraphQL APi时,QA应如何应对? 知彼知己,方能百战百胜,下面让我们首先来看看什么是GraphQL,它和传统的REST API又有什么不同?

什么是GraphQL ?

Graph + Query Language =图表化(可视化)查询语言

是一种描述客户端如何向服务端请求数据的API语法,类似于 RESTful API 规范。由Facebook开发,用于替换RESTful API。服务端可以用任何的语言实现。

由于这篇不是GraphQL科普文,我们大概介绍下几个重要概念,给后面测试做铺垫。

**Schema:**Schema由服务端来定义,用于定义API接口,并依靠Schema来生成文档以及对客户端请求进行校验。Schema只是一个概念,它是由各种数据类型及其字段组成,而每个类型的每个字段都有相应的函数来返回数据,且Schema里的字段可以聚合其他Schema,我们可以将Schema理解为多个Query组成的一张表。

Type: 类型是用来描述 API 外观的自定义对象。对于数据模型的抽象是通过Type来描述的,每一个Type有若干Field组成,每个Field又分别指向某个Type。

**Query: **有了Schema 有了Type,相对于传统的API的CRUD,我们接下来需要怎么做,Query就出现。Query 的查询语法和格式受 Schema 约束,而 Query,Mutation,Subscription 是 Query 的三种类型,分别对应不同的业务场景。

总结下:

  1. 前端自己定义返回的数据及结构,降低前后端沟通成本
  2. 无需编写接口文档(GraphQL会根据schema自动生成API文档)
  3. Schema拼接,可以组合和连接多个GraphQL API,合并为一个,减少请求次数
  4. GraphQL是强类型的,通过它,可以在执行之前验证 GraphQL 类型系统中的查询, 它帮助我们构建更强大的 API。

如何简单快速的手动测试GraphQL?

我们先来看看 GraphQL与RESTful的区别

上图我们其实可以发现一些蛛丝马迹,再来个更直观的
https://www.squarefoot.com.hk/en/ </

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值