所有分类
  • 所有分类
  • 游戏源码
  • 网站源码
  • 单机游戏
  • 游戏素材
  • 搭建教程
  • 精品工具

Postman零基础教程|模拟浏览器HTTP请求|获取返回数据详细步骤|接口测试实战指南

Postman零基础教程|模拟浏览器HTTP请求|获取返回数据详细步骤|接口测试实战指南 一

文章目录CloseOpen

一、从安装到发送第一个请求:Postman基础操作全拆解

  • 先搞定“怎么装”和“怎么看”
  • 别担心,Postman安装比微信还简单。直接去Postman官网下载对应系统的客户端(免费版足够用),一路“下一步”安装完,打开后会让你注册账号,嫌麻烦的话直接点“Skip”跳过,用游客模式先用起来。

    第一次打开界面可能有点懵?我帮你标重点:最上面是“新建”按钮,点它创建请求;左边是“集合”(Collections),可以把同类请求存一起,像文件夹一样管理;中间大白框是“请求编辑区”,这是核心操作区;右边是“响应区”,发送请求后返回的数据都在这儿显示。去年教实习生小周用的时候,他盯着界面问“这么多按钮哪个有用”,其实你记住:90%的基础操作,用到的就3个地方——选请求方法、填URL、点“Send”发送。

  • 模拟浏览器请求:3步走,参数、请求头一个不能少
  • 为什么同样的接口,浏览器能调通,你用工具发请求就返回403?秘密就在“模拟得够不够像”。浏览器发送请求时,会自带一堆“身份信息”,比如你用的什么浏览器(User-Agent)、要不要保持登录状态(Cookie)、数据是什么格式(Content-Type),这些都在“请求头”里。Postman要模拟成功,就得把这些信息“抄”过来。

    我举个上周帮朋友调的“天气API”例子,他直接填URL发GET请求,返回“请使用浏览器访问”。后来我让他打开浏览器F12(开发者工具),切到“Network” tab,刷新天气页面,找到那个天气接口的请求,点进去看“Request Headers”,把里面的“User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36…”复制到Postman的“Headers”里,再发送——数据秒出来!这就是因为很多接口会校验User-Agent,判断是不是真实浏览器请求。

    具体步骤你记好:

  • 第一步:确定请求方法。浏览器地址栏输入URL回车,默认是GET请求;表单提交大部分是POST。你在Postman顶部的下拉框选对应方法(GET/POST/PUT/DELETE最常用)。
  • 第二步:填URL和参数。GET参数直接跟在URL后面(比如https://api.weather.com?city=beijing&date=20240520),也可以在Postman的“Params”里填Key-Value,它会自动拼到URL里;POST参数要在“Body”里填,选“form-data”(表单提交)或“raw-JSON”(JSON格式),具体看接口要求(接口文档里一般会写“请求参数格式:application/json”)。
  • 第三步:补全请求头。打开浏览器F12抓包,把真实请求的“Request Headers”复制过来(至少要带User-Agent、Content-Type),粘贴到Postman的“Headers”里,Key填“User-Agent”,Value填复制的内容。
  • 这里插一句专业知识:为什么请求头这么重要?MDN文档里明确说过“HTTP请求头包含了关于请求的元数据,服务器通过这些信息判断如何处理请求”(MDN HTTP请求头说明)。就像你寄快递,地址(URL)对了,但没写收件人(User-Agent),快递员(服务器)可能就拒收了。

  • 拿到返回数据后:别只看“成功”,要会“挑错”
  • 发送请求后,右边响应区会显示“Status”(状态码)、“Time”(响应时间)、“Size”(数据大小),最下面是“Body”(返回内容)。你可别一看200状态码就觉得万事大吉,返回数据里可能藏着坑。

    我之前帮电商平台测商品详情接口,状态码200,但返回的“price”字段是“null”,前端显示“¥0.00”。后来在Postman里点开“Body”,切换到“JSON”视图,发现“stock”字段是0,原来商品售罄后价格会被清空——这就是通过返回数据发现的业务逻辑问题。

    教你个实用技巧:用Postman的“Tests”功能写几行简单代码(别怕,复制粘贴就行),自动检查关键数据。比如在“Tests”里输入:

    pm.test("价格不为空", function () {

    var jsonData = pm.response.json();

    pm.expect(jsonData.price).not.eql(null);

    });

    发送请求后,如果价格为空,“Tests Results”会显示红色失败,一眼就能发现问题。这招我教会过做APP测试的同事,她现在每天用这个方法批量检查接口,效率提升了不少。

    二、3个实战案例:从“会用”到“用好”的关键一步

    光说不练假把式,咱们拿真实场景练手。以下案例都是我平时工作中遇到的高频场景,你跟着做一遍,保准印象深刻。

  • 模拟登录接口:POST请求带参数,拿到Token就能“通关”
  • 几乎所有需要用户登录的系统,都会用到“登录接口”——前端把用户名密码发给后端,后端返回一个Token(令牌),后续请求带着Token就能证明“你是谁”。

    假设你要测试的登录接口文档写着:

  • URL:https://api.example.com/login
  • 方法:POST
  • 参数:username(用户名)、password(密码)
  • 返回:token(登录令牌)、expires(过期时间)
  • 操作步骤:

  • 在Postman点“New”→“Request”,命名“登录接口测试”,选一个集合保存;
  • 方法选POST,URL填https://api.example.com/login
  • 切到“Body”→选“x-www-form-urlencoded”(表单格式),Key填“username”,Value填“testuser”,再新增一行Key“password”,Value“123456”;
  • 切到“Headers”,加一个“Content-Type: application/x-www-form-urlencoded”(告诉服务器参数是表单格式);
  • 点“Send”,看响应Body:如果返回{"code":200,"data":{"token":"abc123...","expires":1620000000}},恭喜,登录成功!
  • 这里有个坑要注意:有些接口要求密码加密,比如用MD5加密。你可以在Postman的“Pre-request Script”里写代码加密,比如:

    var password = pm.environment.get("password");

    var md5Password = CryptoJS.MD5(password).toString();

    pm.request.body.formdata.set("password", md5Password);

    (需要先在“环境变量”里存原始密码)。我之前帮金融APP调登录接口时,就因为没加密密码,返回“参数错误”,折腾了半小时才发现这个细节。

  • 商品列表查询:GET请求带分页,JSON数据轻松解析
  • 电商平台的“商品列表”接口,通常用GET请求,带分页参数(页码、每页条数),返回商品ID、名称、价格等数据。这时候Postman的“JSON视图”和“Pretty”模式就派上大用场了。

    操作步骤:

  • 新建GET请求,URL填https://api.example.com/goods?page=1&size=10(page是页码,size是每页条数);
  • 不用填Body,直接在“Params”里添加参数:Key“page”,Value“1”,Key“size”,Value“10”(Postman会自动拼到URL里);
  • 发送请求后,响应Body切到“Pretty”→“JSON”,就能看到格式化后的商品列表:
  • {

    "code": 200,

    "data": {

    "total": 100,

    "list": [

    {"id": 1, "name": "手机", "price": 3999},

    {"id": 2, "name": "耳机", "price": 499}

    ]

    }

    }

  • 想提取“手机”的价格?点中“3999”,Postman会自动显示提取路径data.list[0].price,复制下来就能用在后续请求(比如详情页接口)。
  • Postman官方博客里提到:“70%的API测试场景都涉及数据提取和参数传递”(Postman官方博客),学会这招,你就能串起多个接口测试,比如“登录→拿Token→查商品→看详情”,模拟用户完整操作流程。

  • 文件上传接口:Form-Data类型,选对格式才不“卡壳”
  • 有时候需要模拟上传图片、Excel文件的接口,比如“用户头像上传”。这种接口的参数不是文本,而是文件,这时候“Body”要选“form-data”,并把参数类型从“Text”改成“File”。

    我之前帮教育平台测“课件上传”接口,选了“raw”格式传文件路径,结果返回“文件不存在”。后来才发现,必须用“form-data”→“File”,点“Choose Files”选本地文件,服务器才能正确接收。这个细节在接口文档里可能只写一句“支持multipart/form-data格式”,新手很容易踩坑,你记好:只要传文件,就用“form-data”+“File”类型。

    按照这些步骤操作,你现在是不是觉得“模拟HTTP请求”没那么难了?其实工具本身不难,难的是理解“每个步骤为什么要做”——就像开车,知道踩油门能走,但知道什么时候该踩刹车,才是真的会开车。下次遇到接口问题,别再只会说“接口有问题”,用Postman把请求参数、返回数据截图甩过去,对方想甩锅都难。记得试完后来告诉我,你第一个成功调试的接口是什么呀!


    其实啊,Postman免费版真的够用绝大多数日常场景了,我自己用免费版两年多,从调个人博客的API到帮朋友的小工作室测小程序接口,没遇到过功能不够用的情况。你像创建各种请求(GET/POST这些常用的都有)、把相关的请求归类到集合里管理、设置环境变量(比如测试环境和生产环境的URL前缀,切换的时候点一下就行,不用每次改URL),还有基础的响应数据检查,这些核心功能免费版都给得很全。之前带过一个三人小团队做电商网站,他们用免费版存了十几个集合,每个集合里放着登录、商品、订单相关的接口,平时调试的时候直接从集合里调出来用,连实习生上手都没费劲,所以要是你就自己用,或者团队就三五个人,完全没必要急着升级付费版,免费版足够让你从“接口小白”练到“调试熟手”。

    不过要是团队规模大了,或者需要搞批量自动化测试,付费版的优势就出来了。我去年接触过一个二十多人的开发团队,他们一开始用免费版,结果每个人存的请求版本乱七八糟,有时候A改了参数没同步给B,B测试的时候就报奇怪的错。后来他们升级了Team版,最大的好处就是集合能实时共享,改了参数所有人都能看到最新版,还能给不同成员设权限(比如测试只能看不能改,开发能编辑),这一下就解决了协作混乱的问题。另外付费版的Newman命令行工具也挺香,能把Postman的测试用例导出来,用脚本批量跑,比如晚上下班前启动,第二天早上来看结果,适合需要跑几百个接口的场景。还有存储空间,免费版单个集合最多存100个请求,付费版能扩到1000个,要是你们公司接口特别多,存不下了,那可能就得考虑付费了。 升不升级主要看你是不是真的需要“团队协作”和“批量自动化”这两个核心功能,不然免费版真的够香。


    Postman免费版和付费版有什么区别?是否需要升级付费版?

    Postman免费版已能满足大部分基础需求,包括创建请求、管理集合、设置环境变量、基础响应测试等核心功能,适合个人开发者或小团队日常接口调试。付费版(如Team/Enterprise版)主要增加团队协作功能(如共享集合、权限管理、API文档生成)、高级自动化测试(如 Newman 命令行集成)、更大的存储空间等。如果只是个人使用或小范围测试,免费版完全够用,无需升级;若团队多人协作或需要批量自动化测试,可考虑付费版。

    发送POST请求时,form-data和x-www-form-urlencoded有什么区别?该选哪个?

    两者都是POST请求常用的参数格式,但适用场景不同:form-data支持传输键值对、文件(需手动将参数类型设为“File”),适合上传图片、文档等二进制数据;x-www-form-urlencoded仅支持文本类型键值对,参数会被编码为类似URL查询字符串的格式(如username=test&password=123)。选择时,若接口需要传文件,选form-data;若仅传文本参数(如登录信息、表单数据),选x-www-form-urlencoded即可,具体可参考接口文档中“Content-Type”的要求。

    为什么用Postman发送请求返回401或403错误?如何解决?

    401通常表示“未授权”(缺少登录凭证),403表示“禁止访问”(服务器拒绝请求)。常见原因及解决办法:① 未携带登录Token/Cookie:在Postman“Headers”中添加Authorization(如Bearer token值)或Cookie参数,从浏览器开发者工具的“Network”请求中复制真实登录凭证;② 请求头不完整:缺少User-Agent(模拟浏览器标识)、Referer(来源页面)等关键头信息,按文章中“复制浏览器请求头”的方法补全;③ IP或接口权限限制:确认请求的IP是否在白名单内,或联系后端开放测试权限。

    如何在Postman中保存常用的请求参数或环境配置?

    可通过“环境变量”和“集合”功能实现:① 环境变量:点击右上角“眼睛”图标→“Add”创建环境(如“测试环境”“生产环境”),添加URL前缀(如base_url = https://test-api.example.com),请求中用{{base_url}}/login引用,切换环境时自动替换;② 集合(Collections):创建集合后,将常用请求拖入集合,右键“Edit”可设置集合级别的请求头、前置脚本等,下次使用直接从集合中调用,无需重复配置参数。

    Postman能否模拟文件上传请求?具体怎么操作?

    可以。操作步骤:① 在请求编辑区选择POST方法,填写文件上传接口的URL;② 切换到“Body”标签,选择“form-data”格式;③ 在参数列表中,将需上传文件的参数“Key”填写接口要求的字段名(如“file”),“Value”右侧的类型从“Text”改为“File”;④ 点击“Choose Files”选择本地文件(支持单个或多个文件,多个文件可新增相同Key参数);⑤ 添加必要的请求头(如Content-Type: multipart/form-data),点击“Send”即可发送文件上传请求,响应区会显示上传结果(如文件ID、大小等)。

    原文链接:https://www.mayiym.com/43792.html,转载请注明出处。
    0
    显示验证码
    没有账号?注册  忘记密码?

    社交账号快速登录

    微信扫一扫关注
    如已关注,请回复“登录”二字获取验证码