04 常见接口类型与数据格式 - 认识接口的语言本章目标了解各种接口类型和数据格式掌握JSON和XML的读写为后续测试实战打下基础。4.1 接口类型全景图HTTP/RESTful最常用JSON格式WebService/SOAP企业级XML格式RPC微服务ProtobufGraphQL灵活查询单一端点WebSocket实时通信双向推送消息队列异步解耦Kafka/RabbitMQ4.2 JSON 数据格式什么是JSONJSONJavaScript Object Notation是一种轻量级的数据交换格式易于人阅读和编写也易于机器解析和生成。JSON数据类型基本类型字符串 hello、数字 123 / 3.14、布尔 true / false、null复合类型对象 {key:value}、数组 [1,2,3]JSON示例用户信息{ id: 1, name: 张三, email: zhangsanexample.com, isVip: true, balance: null, tags: [developer, tester], address: { city: 北京, zipCode: 100000 } }JSON vs JavaScript对象特性JSONJavaScript对象键名必须用双引号可以不加引号字符串必须用双引号单双引号都可以末尾逗号不允许允许注释不支持支持方法不支持支持JSONPath - JSON的查询语言$.store.book[0].title → 获取第一本书的标题 $.store.book[*].author → 获取所有书的作者 $.store.book[?(.price10)] → 获取价格小于10的书4.3 XML 数据格式什么是XMLXMLeXtensible Markup Language可扩展标记语言是一种标记语言用于存储和传输数据。XML结构?xml version1.0 encodingUTF-8? user id1/id name张三/name emailzhangsanexample.com/email isViptrue/isVip tags tagdeveloper/tag tagtester/tag /tags address city北京/city zipCode100000/zipCode /address /userJSON vs XML 对比特性JSONXML可读性简洁较冗长解析速度快较慢数据体积小大有标签注释不支持支持Schema验证JSON SchemaXSD适用场景Web API、移动App企业级、金融系统4.4 SOAP 接口什么是SOAPSOAPSimple Object Access Protocol是一种基于XML的协议用于在网络上交换结构化的信息。SOAP消息结构?xml version1.0? soap:Envelope xmlns:soaphttp://www.w3.org/2003/05/soap-envelope/ soap:Header !-- 认证信息等 -- /soap:Header soap:Body getUserRequest id1/id /getUserRequest /soap:Body /soap:EnvelopeSOAP vs REST特性SOAPREST协议严格协议架构风格数据格式仅XMLJSON/XML/其他传输层多种协议主要HTTP安全性WS-SecurityHTTPS Token缓存不支持支持适用场景金融、企业级Web、移动App4.5 GraphQL 接口什么是GraphQLGraphQL是一种查询语言允许客户端精确地请求所需的数据避免过多或过少获取。GraphQL vs RESTRESTGET /users/1 返回所有字段GET /users/1/orders 需要第二次请求GraphQL一个查询获取 name、email 和 orders只返回需要的字段GraphQL查询示例# 查询用户信息只取需要的字段 query { user(id: 1) { name email orders { id total } } }响应{ data: { user: { name: 张三, email: zhangsanexample.com, orders: [ {id: 1001, total: 299}, {id: 1002, total: 599} ] } } }4.6 WebSocket 接口什么是WebSocketWebSocket是一种在单个TCP连接上进行全双工通信的协议支持服务器主动推送消息。WebSocket vs HTTP特性HTTPWebSocket连接短连接/长连接长连接通信方式请求-响应双向推送实时性轮询实时适用场景普通API聊天、股票、游戏WebSocket示例// 建立连接 const ws new WebSocket(wss://example.com/socket); // 连接成功 ws.onopen () { ws.send(JSON.stringify({type: subscribe, channel: prices})); }; // 接收消息 ws.onmessage (event) { const data JSON.parse(event.data); console.log(收到推送:, data); };4.7 数据格式转换工具在线工具推荐工具用途网址JSON格式化美化JSONjsonformatter.orgXML格式化美化XMLxmlgrid.netJSON转XML格式转换convertjson.comBase64编解码编码转换base64encode.orgURL编解码URL编码urlencoder.org4.8 本章小结核心知识点JSON轻量简洁键值对结构最常用XML标签结构企业级使用SOAP基础GraphQL灵活查询按需获取单一端点WebSocket双向通信实时推送长连接课后练习 转换题将下面的JSON转换为XML格式{users: [{id: 1, name: 张三}, {id: 2, name: 李四}]}分析题什么场景适合用GraphQL而不是REST实践题找一个公开的SOAP API如天气服务尝试构造一个SOAP请求。4.9 下章预告下一章我们将学习Postman这是接口测试最常用的工具从安装到精通数据格式是接口的语言掌握它们你就能读懂任何接口在说什么。
软件测试接口测试从入门到精通:常见接口类型与数据格式
04 常见接口类型与数据格式 - 认识接口的语言本章目标了解各种接口类型和数据格式掌握JSON和XML的读写为后续测试实战打下基础。4.1 接口类型全景图HTTP/RESTful最常用JSON格式WebService/SOAP企业级XML格式RPC微服务ProtobufGraphQL灵活查询单一端点WebSocket实时通信双向推送消息队列异步解耦Kafka/RabbitMQ4.2 JSON 数据格式什么是JSONJSONJavaScript Object Notation是一种轻量级的数据交换格式易于人阅读和编写也易于机器解析和生成。JSON数据类型基本类型字符串 hello、数字 123 / 3.14、布尔 true / false、null复合类型对象 {key:value}、数组 [1,2,3]JSON示例用户信息{ id: 1, name: 张三, email: zhangsanexample.com, isVip: true, balance: null, tags: [developer, tester], address: { city: 北京, zipCode: 100000 } }JSON vs JavaScript对象特性JSONJavaScript对象键名必须用双引号可以不加引号字符串必须用双引号单双引号都可以末尾逗号不允许允许注释不支持支持方法不支持支持JSONPath - JSON的查询语言$.store.book[0].title → 获取第一本书的标题 $.store.book[*].author → 获取所有书的作者 $.store.book[?(.price10)] → 获取价格小于10的书4.3 XML 数据格式什么是XMLXMLeXtensible Markup Language可扩展标记语言是一种标记语言用于存储和传输数据。XML结构?xml version1.0 encodingUTF-8? user id1/id name张三/name emailzhangsanexample.com/email isViptrue/isVip tags tagdeveloper/tag tagtester/tag /tags address city北京/city zipCode100000/zipCode /address /userJSON vs XML 对比特性JSONXML可读性简洁较冗长解析速度快较慢数据体积小大有标签注释不支持支持Schema验证JSON SchemaXSD适用场景Web API、移动App企业级、金融系统4.4 SOAP 接口什么是SOAPSOAPSimple Object Access Protocol是一种基于XML的协议用于在网络上交换结构化的信息。SOAP消息结构?xml version1.0? soap:Envelope xmlns:soaphttp://www.w3.org/2003/05/soap-envelope/ soap:Header !-- 认证信息等 -- /soap:Header soap:Body getUserRequest id1/id /getUserRequest /soap:Body /soap:EnvelopeSOAP vs REST特性SOAPREST协议严格协议架构风格数据格式仅XMLJSON/XML/其他传输层多种协议主要HTTP安全性WS-SecurityHTTPS Token缓存不支持支持适用场景金融、企业级Web、移动App4.5 GraphQL 接口什么是GraphQLGraphQL是一种查询语言允许客户端精确地请求所需的数据避免过多或过少获取。GraphQL vs RESTRESTGET /users/1 返回所有字段GET /users/1/orders 需要第二次请求GraphQL一个查询获取 name、email 和 orders只返回需要的字段GraphQL查询示例# 查询用户信息只取需要的字段 query { user(id: 1) { name email orders { id total } } }响应{ data: { user: { name: 张三, email: zhangsanexample.com, orders: [ {id: 1001, total: 299}, {id: 1002, total: 599} ] } } }4.6 WebSocket 接口什么是WebSocketWebSocket是一种在单个TCP连接上进行全双工通信的协议支持服务器主动推送消息。WebSocket vs HTTP特性HTTPWebSocket连接短连接/长连接长连接通信方式请求-响应双向推送实时性轮询实时适用场景普通API聊天、股票、游戏WebSocket示例// 建立连接 const ws new WebSocket(wss://example.com/socket); // 连接成功 ws.onopen () { ws.send(JSON.stringify({type: subscribe, channel: prices})); }; // 接收消息 ws.onmessage (event) { const data JSON.parse(event.data); console.log(收到推送:, data); };4.7 数据格式转换工具在线工具推荐工具用途网址JSON格式化美化JSONjsonformatter.orgXML格式化美化XMLxmlgrid.netJSON转XML格式转换convertjson.comBase64编解码编码转换base64encode.orgURL编解码URL编码urlencoder.org4.8 本章小结核心知识点JSON轻量简洁键值对结构最常用XML标签结构企业级使用SOAP基础GraphQL灵活查询按需获取单一端点WebSocket双向通信实时推送长连接课后练习 转换题将下面的JSON转换为XML格式{users: [{id: 1, name: 张三}, {id: 2, name: 李四}]}分析题什么场景适合用GraphQL而不是REST实践题找一个公开的SOAP API如天气服务尝试构造一个SOAP请求。4.9 下章预告下一章我们将学习Postman这是接口测试最常用的工具从安装到精通数据格式是接口的语言掌握它们你就能读懂任何接口在说什么。