Apifox对GraphQL提供了全面支持,使得可以在一个工具内完成从编写、调试到自动化的全部测试工作。
一、基础设置和请求创建
新建请求
在项目中新建接口,在Body选项卡中选择 GraphQL 作为请求格式。
配置请求地址
在请求的URL栏填写GraphQL服务器的端点(如 http://api.zmtests.com/graphql)。
智能获取Schema
点击Query编辑器旁边的 获取Schema或自动生成按钮。
Apifox会向配置的端点发送Introspection查询,自动获取完整的GraphQL Schema。
此步骤将启用代码提示和自动补全功能,这是高效编写GraphQL语句的重要。
二、执行查询和变更
查询(Query)用于读取数据,变更(Mutation)用于修改数据。它们在Apifox中的执行方式基本一致。
编写操作语句
在Query编辑器中直接编写GraphQL语句。得益于获取的Schema,输入时会获得字段和类型的智能提示。
graphql
# 查询示例
query GetUser($userId: ID!) {
user(id: $userId) {
name
posts(first: 5) {
title
}
}
}
# 变更示例
mutation CreatePost($input: PostInput!) {
createPost(input: $input) {
id
title
content
}
}
使用“查询变量”
在单独的 “QUERY VARIABLES” 面板中,以JSON格式定义变量,实现请求和参数分离,提升可维护和复用。
json
{
"userId": "123",
"input": {
"title": "Hello GraphQL",
"content": "Using Apifox is efficient."
}
}
发送请求和查看响应
点击发送按钮,响应会以格式化JSON显示在下方。Apifox支持自动格式化、语法高亮和快速导航。
三、处理实时订阅
订阅(Subscription)用于监听实时数据,根据WebSocket长连接实现。
建立WebSocket连接
订阅的URL一般和HTTP端点不同,常见格式为 ws:// 或 wss://。
需要在环境变量或前置脚本中正确配置WebSocket连接地址。
编写订阅语句
在Query编辑器中编写订阅操作,语法和查询类似。
graphql
subscription OnMessageCreated($channelId: ID!) {
messageCreated(channelId: $channelId) {
id
content
sender {
name
}
}
}
发起和监听订阅
填写变量后,点击发送。
Apifox会建立WebSocket连接并发送订阅请求。此时界面会转变为不断监听方式。
当服务器端有对应事件(如新消息发布)被触发时,数据会实时推送到Apifox并显示在响应面板。
连接管理
可以手动停止监听以断开WebSocket连接。
四、高级功能
环境和变量:将GraphQL端点、WebSocket URL、鉴权Token等配置为环境变量,实现不同环境(开发/生产)一键切换。
前置/后置脚本:使用JavaScript在请求前后进行复杂思路处理,如动态计算签名、处理响应数据、设置全局变量等。
自动化测试:将GraphQL请求添加到测试套件,利用断言证实响应数据准确性,并可将返回的字段值(如新创建的ID)提取为变量供后续步骤使用。
文档同步:Apifox可根据你的操作和从服务器获取的Schema,自动生成并维护API文档,保证团队协作时信息一致。
建议
Apifox将GraphQL的重要操作(查询、变更、订阅)集成在统一的调试界面,并通过智能Schema获取和代码补全极大提升了效率。对于订阅功能,需注意正确配置WebSocket地址。
为了更流畅地使用建议:
优先配置并获取Schema,来激活智能提示。
会用查询变量面板,使脚本更清晰、易复用。
将连接配置和认证信息存入环境变量,方便管理。
对于复杂业务流程,使用自动化测试功能将多个GraphQL请求串联起来。