📝 面试求职: 「面试试题小程序」 ,内容涵盖 测试基础、Linux操作系统、MySQL数据库、Web功能测试、接口测试、APPium移动端测试、Python知识、Selenium自动化测试相关、性能测试、性能测试、计算机网络知识、Jmeter、HR面试,命中率杠杠的。(大家刷起来…)
📝 职场经验干货:
在API测试和开发过程中,正确理解和使用参数是至关重要的。Postman作为最流行的API测试工具,提供了多种参数类型支持。本文主讲Query、Path和Body三种主要参数的区别。
参数类型概述
| 参数类型 | 位置 | 可见性 | 数据长度 | 典型用途 |
|---|---|---|---|---|
| Query参数 | URL问号后 | 明文可见 | 有限制 | 过滤、分页、排序 |
| Path参数 | URL路径中 | 明文可见 | 中等 | 资源标识 |
| Body参数 | 请求体中 | 不可见 | 无限制 | 复杂数据提交 |
Query参数:URL中的查询条件
定义:Query参数位于URL末尾,以问号(?)开始,多个参数用&连接
示例:
GET /api/users?page=1&limit=20&sort=name&order=asc
特点:
-
键值对形式:
key=value -
在浏览器地址栏中完全可见
-
有长度限制(不同浏览器限制不同)
-
默认会被URL编码
使用场景:
-
分页查询(page, limit)
-
结果过滤(filter=active)
-
排序设置(sort=date)
-
搜索条件(q=keyword)
在Postman中的设置:
-
Params标签页中添加
-
直接附加在URL末尾
-
支持批量编辑和描述
Path参数:URL中的变量部分
定义:Path参数是URL路径的一部分,用占位符表示
示例:
GET /api/users/{userId}/posts/{postId}
特点:
-
是URL路径的组成部分
-
通常用于标识特定资源
-
在RESTful API设计中广泛使用
-
支持类型约束(如数字ID)
使用场景:
-
获取特定资源详情
-
嵌套资源访问
-
RESTful路由设计
在Postman中的设置:
-
在URL中使用冒号语法:
:paramName -
Params标签页的Path Variables部分
-
支持预定义变量值
Body参数:请求体中的数据
定义:Body参数位于HTTP请求体中,不会显示在URL中
示例:
{
"username": "john_doe",
"email": "john@example.com",
"password": "secure123"
}
特点:
-
不在URL中显示,安全性较好
-
支持大量数据传输
-
支持多种数据格式
-
仅适用于POST、PUT、PATCH等请求方法
常见数据格式:
-
JSON:最常用的现代API格式
-
Form-data:支持文件上传
-
x-www-form-urlencoded:传统表单格式
-
Raw:原始文本(XML、Text等)
-
Binary:二进制文件
使用场景:
-
创建新资源(POST请求)
-
更新现有资源(PUT/PATCH请求)
-
提交复杂数据结构
-
文件上传操作
在Postman中的设置:
-
Body标签页中选择数据类型
-
根据格式填写相应内容
-
支持JSON语法高亮和格式化
三种参数的对比分析
1. 安全性对比
-
Path参数:中等,暴露资源结构但不含敏感数据
-
Query参数:较低,完全暴露在URL中
-
Body参数:较高,不在URL中显示
2. 数据容量对比
-
Query参数:受URL长度限制(通常2048字符内)
-
Path参数:中等长度限制
-
Body参数:理论上无限制(实际受服务器配置限制)
3. 缓存特性对比
-
Query参数:影响缓存,不同参数产生不同缓存
-
Path参数:影响缓存,不同路径产生不同缓存
-
Body参数:通常不被缓存
最佳实践与常见误区
应该使用Query参数的情况:
-
可选参数(如分页、过滤)
-
不影响资源标识的查询条件
-
需要书签或分享的URL
应该使用Path参数的情况:
-
标识特定资源或资源集合
-
RESTful URL设计
-
必需的资源标识符
应该使用Body参数的情况:
-
创建或更新资源
-
包含敏感信息(密码、令牌)
-
复杂或大型数据对象
常见错误:
-
误用Query传递敏感数据
-
错误:
GET /api/login?username=john&password=secret -
正确:使用POST + Body参数
-
-
混淆Path和Query参数
-
错误:
GET /api/users?id=123 -
正确:
GET /api/users/123
-
-
GET请求使用Body参数
-
错误:GET请求中发送Body数据
-
正确:GET请求应使用Query或Path参数
-
高级技巧
1. 动态参数
在Postman中使用变量:
// 在Pre-request Script中设置变量
pm.collectionVariables.set("userId", "12345");
// 在URL或Body中使用变量
GET /api/users/{{userId}}
2. 参数自动化测试
// 测试响应是否包含查询参数
pm.test("Contains query parameter", function() {
pm.expect(pm.response.text()).to.include(pm.request.url.query.get("search"));
});
3. 环境相关参数
利用Postman环境变量管理不同环境的参数值:
-
开发环境:
{{dev_api_url}} -
测试环境:
{{test_api_url}} -
生产环境:
{{prod_api_url}}
总结
三个关键点:
Query参数用于可选查询条件,可见于URL
Path参数用于资源标识,是URL的一部分
Body参数用于提交数据,不在URL中显示
最后: 下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取【保证100%免费】

2029

被折叠的 条评论
为什么被折叠?



