【接口测试】Postman教程

【接口测试】Postman教程

参考资料:BiliBili白月黑羽编程



Postman API 接口测试

1.接口测试

我们常说的接口测试(或者API接口测试),其实就是对软件系统消息交互接口的测试

消息交互接口是软件系统其他软件系统交互的那部分

比如,你正在用浏览器 使用CSDN。

CSDN前端(在浏览器里面运行) 和 后端服务器 之间 就是 消息交互的。

我们可以说 SMS系统前端 和 后端服务器 之间是 消息交互接口

再比如,你手机上使用美团订餐, 美团APP 和 美团服务器之间, 也是消息交互的。

当你提交订单,使用微信支付的时候, 美团服务器 和 微信服务器 之间也是通过 消息交互的。

接口测试就是

  1. 依据接口规范,写出测试用例
  2. 使用软件工具,直接通过消息接口对被测系统进行消息收发
  3. 验证被测系统行为是否正确

接口测试,通常是对服务端做的比较多,但是也有对客户端做的。关键是看 被测系统是 服务端还是客户端。

  • 服务端接口测试:测试一个电商的商品查询 API,发送请求后检查返回的商品数据、状态码是否符合要求,不关心前端怎么展示。
  • 客户端接口测试:测试电商 APP 的 “商品列表页”,验证 APP 是否能正确调用商品查询 API,是否能处理网络异常、错误响应等场景,不关心 API 后台的实现。

目前的软件系统之间的消息接口大部分是基于HTTP协议收发的。

HTTP协议的特点就是:客户端发出一个HTTP请求给服务端,服务端返回一个HTTP响应。好像程序的API调用。

  • 客户端(比如你的手机 APP、浏览器)是 “提问的人”,主动发起 “请求”(比如 “我要查看电商的商品列表”)。

  • 服务端(比如电商的后台服务器)是 “回答的人”,收到请求后,按规则返回 “响应”(比如返回商品名称、价格、图片链接)。

  • HTTP 协议就是这两者的 “沟通礼仪”,规定了请求要怎么发、响应要怎么回(比如格式、编码、状态提示),确保双方能看懂彼此的信息。

  • API(接口)就是服务端对外开放的 “沟通入口”,比如 “商品查询 API”“登录 API”。

  • HTTP 协议是调用这些 API 的 “工具”—— 你要调用某个 API,就得用 HTTP 协议的规则发请求,服务端通过这个 API 接收请求、返回响应。

所以 接口测试 通常又被称之为 API接口测试 或者 WEB API接口测试

API接口 传递数据信息 是通过HTTP协议进行收发的 ,网站获取网页、图片 、css 等资源, 也是通过HTTP协议进行收发的 。

那么这两者有什么区别呢? 为什么 获取网页、图片这些HTTP消息通常不叫 API 接口消息呢?

网页、图片、css 这些资源,都是 静态资源 , 就是一个个文件存储在服务器上的,获取这些信息,服务端直接读取文件,返回给客户端即可,无需特别的数据处理。

而 API接口请求消息,通常都需要 服务端程序进行 一番处理,比如:对请求的权限检查,从数据库中读出数据,进行信息过滤和 格式转换,最后在HTTP响应中返回给客户端。


接口测试需要 工具 和 被测系统之间进行消息(通常是HTTP消息)的收发, 这个工具可以是别人开发好的,也可以自己开发。

基于 HTTP 的接口测试工具, 常见的 有 Postman、Jmeter等

都是用来 构建HTTP请求消息,并且解析收到的HTTP响应消息, 用户来判断是否符合预期

熟悉 Python 语言的朋友, 也完全可以使用 requests 库,自己写代码发送接收HTTP请求,进行测试.


2.PostManAPI接口测试

2.1 Postman下载与界面介绍

Postman主要用来做基于HTTP的API接口测试

Postman下载链接(官网下载即可)

安装完成后,桌面上Postman的 图标点击它启动 。

启动时要求你注册一个账号,可以先跳过去,选择右下角 continue with the lightweight API client

进入到操作主界面后,可以在右边的 HTTP 请求构建界面的地址栏 里, 输入一个网址比如: www.baidu.***

然后点击send按钮,就可以在界面下方看到 发出的请求收到的响应 的消息构成


2.2 被测系统

Bysms 系统安装与运行 - 白月黑羽


2.3 构建HTTP请求

接口测试最关键的是什么,就是根据接口文档定义构建符合接口要求的各种的HTTP请求

HTTP请求消息构成如下

  1. Method(请求方法如Get、Post、Put…)
  2. URL(包括参数)
  3. Headers(消息头)
  4. Body(消息体)

Postman的作用就是让我们更方便的构造这些HTTP请求


2.3.1 请求方法、URL、请求头

请求方法

Postman里面可以在 请求方法下拉框 ,非常方便的选择HTTP请求的方法。

  • GET:用于获取资源,比如在浏览器中输入网址加载网页、查询商品信息等。它是最常用的请求方法,请求参数通常附在 URL 中。
  • POST:用于提交数据,比如用户注册、提交表单、上传文件等。数据会放在请求体中,相对更安全且能传输大量数据。
  • PUT:用于更新或替换资源,比如修改用户信息、替换整个商品详情。通常是对资源的完整更新。
  • PATCH:用于部分更新资源,比如只修改商品的价格,而不是替换整个商品信息,比 PUT 更灵活。
  • DELETE:用于删除资源,比如删除用户账号、删除订单等。
  • HEAD:类似 GET,但只返回响应头,不返回响应体,常用于检查资源是否存在、获取资源的元信息(如文件大小、修改时间)。
  • OPTIONS:用于查询服务端支持的请求方法,比如客户端想知道某个 URL 支持哪些交互动作,就可以发送 OPTIONS 请求来询问。

URL

GET  /api/mgr/customers  HTTP/1.1

通常URL还包括域名,上面这个只是域名后面部分的URL,测试文档通常会省略域名,因为他不知道你会部署在哪个服务器或者本机(比如localhost),但你自己做测试要写域名

请求参数

http 请求消息 url 中 需要携带如下参数,

  • action

    必填项,填写值为 list_customer

  • pagesize

    必填项,分页的 每页获取多少条记录

  • pagenum

    必填项,获取第几页的信息

  • keywords

    可选项, 里面包含的多个过滤关键字,关键字之间用 空格 分开

URL输入框里面输入接口url

比如www.baidu.*** 协议类型 http 可以省略不写

如果是 https ,需要写上.如果网站会自动的重定向,也可以省略。

URL参数可以直接在URL输入框里面 整体输入,也可以在下方 Params 栏里面 逐个输入,参数之前用?参数之间由&隔开


请求头

在下方 Headers 栏里面 可以逐个输入需要额外添加的HTTP请求头

请求头用于在客户端与服务端之间传递元信息,帮助双方理解和处理请求

  • 身份与权限验证:例如Authorization头,可携带令牌或账号密码信息,让服务端确认客户端是否有权限访问资源,像用户登录后调用 API 时,就会通过该头传递认证信息。
  • 内容描述Content-Type头用于说明请求体的数据格式,比如application/json表示请求体是 JSON 格式,application/x-www-form-urlencoded表示是表单数据,方便服务端解析。
  • 控制缓存Cache-Control等头可以控制浏览器或中间服务器的缓存策略,比如设置资源的缓存时长、是否可缓存等,以提升访问速度。
  • 传递额外信息:还可以自定义请求头,传递一些业务相关的额外信息,比如在请求中加入用户的设备类型、语言偏好等,让服务端能根据这些信息返回更合适的响应。

2.4 请求消息体

有的时候,我们发送HTTP请求需要携带消息体。 最常见的就是POST、PUT请求。

通常API接口测试 HTTP请求的消息体,是大家最容易糊涂的地方。为什么?

因为 消息体是有不同格式的

比如 BYSMS系统要添加一个客户的信息,包括:客户名、联系电话、地址

怎么放到消息体里面传递出去?

通过http请求发送的数据,必须是字节串。我们必须要用字节串来表示 对象,这个术语叫做 序列化

序列化成什么格式呢?

  1. xml格式
<client>
    <name>华山医院代理2</name>
    <phone>13599887766</phone>
    <addr>上海华山路777号</addr>
</client>
  1. json格式
{
    "name"  :"华山医院代理2",
    "phone" :"13599887766",
    "addr" :"上海华山路777号"
}

不管使用上面的哪种格式,都能起到 传递信息的作用。

所以首先,你必须搞清楚你的接口测试请求消息体数据到底是什么格式 。

API接口里面,比较常见的就是 urlencodedjsonxml 这3种

根据协议规范, HTTP头里面的 Content-Type 字段指明消息体格式,比如urlencodedapplication/x-www-form-urlencoded,json为 application/json

当请求被发送的时候,Postman会根据你设定的消息体格式,自动加上对应的 Content-Type 消息头。

  1. 如果登录接口消息体的格式 是 urlencoded,Postman中应该这样设置
  1. 如果添加客户接口消息体的格式 是 json, 所以,Postman中应该这样设置
****
转载请说明出处内容投诉
CSS教程网 » 【接口测试】Postman教程

发表评论

欢迎 访客 发表评论

一个令你着迷的主题!

查看演示 官网购买