GraphQL 测试实践

本文介绍了GraphQL的基本概念和与RESTful API的区别,并探讨了如何手动测试GraphQL,包括使用graphiql、graphql-playground和Postman。文章还讨论了如何通过Postman的测试脚本实现自动化测试,并推荐了使用AVA和ApolloClient进行GraphQL API的测试,强调测试工具应以提高团队协作效率为目标。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我们很熟悉以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/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值