测试进阶02-Postman接口测试实战应用

1. 接口测试概念

1.1 接口概念

       接口是前后端沟通的桥梁,数据传输的通道。如前端页面用户的请求,会发送给后端处理,处理后再通过接口响应回前端,实现用户的交互。

        倘若理解的比较抽象可以参考这篇图文详解博客:http://t.csdnimg.cn/qZvPi

1.2 接口分类

        接口又分为内部接口和外部接口:

  • 内部接口为自己公司开发,分为上层服务接口、下层服务接口、同层接口。

  • 外部接口为第三方接口,例如购物平台支付的支付宝支付、微信支付、银行卡支付。

1.3 接口测试

        接口测试是根据提供的接口进行测试,确定对应的数据正确以及逻辑正确的过程,属于功能测试和灰盒测试,其实现的方式主要有两种:

  • 使用接口工具来实现:Postman、Jmeter。

  • 编写代码来实现:Python+Requests+开源框架。

2. HTTP协议

2.1 HTTP和TCP/IP协议

        HTTP协议和TCP/IP协议的定义:

  • HTTP(HyperText Transfer Protoco)为超文本传输协议,可传输文字、图片、音频、视频等。

  • TCP/IP(Transmission Control Protocol/Internet Protocol)为传输控制协议/网际协议,规定了通信的标准和方法,是保证网络数据完整传输的两个重要协议。

        HTTP和TCP/IP协议的工作流程:

  •  用户浏览网页时,浏览器发起HTTP请求,该请求经TCP封装成数据包。

  • IP协议指引数据包到达服务器。

  • 服务器响应后,TCP/IP协议栈将HTTP响应数据传回浏览器,浏览器解析HTML并展示给用户。

2.2 HTTP协议和HTTPS协议的区别
对比项HTTPHTTPS
数据加密与安全性不加密,安全性较低通过SSL/TLS加密,提供更高安全性
端口使用默认80端口默认443端口
证书与资源消耗无需证书,资源消耗较低需要证书管理,资源消耗较高(因加密处理)

3. HTTP协议-请求

3.1 请求的组成
  • 请求行:请求方法(如GET、POST)、请求的URL和HTTP协议版本。

  • 请求头:一般由开发或服务器定义,数据不能更改。请求头中的Content-Type、Cookie数据非常重要。

  • 请求体:请求体包含要发送到服务器的数据,具体的数据类型取决于请求头中的Content_Type。

3.2 请求方法

        请求方法在HTTP协议中,定义了客户端与服务器之间交互的方式,HTTP/1.1协议中共定义了八种方法,常用的是GET和POST。

        请求方法在面试中经常出现,所以最好是弄明白并理解,也可以看http://t.csdnimg.cn/rjHkt这篇博客,写请求方法写的很详细。

序号方法用途
1GET从指定的资源请求数据
2POST向指定资源提交数据进行处理
3PUT向指定资源上传内容以更新资源
4DELETE请求服务器删除指定的页面或资源
5HEAD类似于GET,但仅返回响应头
6OPTIONS返回服务器针对特定资源所支持的HTTP请求方法
7TRACE回显服务器收到的请求,用于测试或诊断
8CONNECT保留给代理服务器,用于将连接改为管道方式
3.3 GET和POST的区别
对比项GETPOST
数据传输方式URL传递参数HTTP消息的主体传输参数
安全性参数暴露在URL中,安全性较低参数不会暴露在URL中,相对更安全
数据大小限制URL长度的限制,数据量相对较小理论上没有数据大小的限制,但实际限制取决于服务器和客户端的配置
缓存性可以被缓存默认不会缓存
3.4 POST请求参数的传递方式

        POST请求的参数在body中传递,有多种传值方式,需要根据头部参数的Content-Type的值来确定选择哪种方式传值。

Content-Type 取值Body 选择格式入参值的格式
application/x-www-form-urlencodedx-www-form-urlencoded键值对
multipart/form-dataform-data键值对,文件格式
application/jsonraw-jsonjson格式
application/xmlraw-xmlxml格式
application/javascriptraw-javascriptjs格式
text/plainraw-text文本格式
text/htmlraw-htmlhtml格式

4. HTTP协议-响应

4.1 响应的组成
  • 状态行:HTTP协议的版本、状态码(200表示成功)、状态消息。

  •  响应头:响应头包含了多个字段,如Content-TypeContent-LengthDate等。(请求头和响应头都包含Content-Type,请求中Content-Type是告诉服务器参数的请求数据类型,响应中Content-Type是告诉客户端返回的数据的类型)。

  • 响应正文:响应正文是响应消息的实际内容,它可以是HTML文档、图片、视频文件、JSON数据等,具体取决于请求的资源和响应头中指定的Content-Type

4.2 常见的状态码

        状态代码(HTTP Status code)由三位数字组成,第一个数字定义了响应的类别,共分五种类别:

分类分类描述
1**信息,服务器收到请求,需要请求者继续执行操作
2**成功,操作被成功接收并处理
3**重定向,需要进一步的操作以完成请求
4**客户端错误,请求包含语法错误或无法完成请求
5**服务器错误,服务器在处理请求的过程中发生了错误

        更多状态码详解可以看博客http://t.csdnimg.cn/uf30t,以下是一些常见的状态码:

状态码描述状态码描述
200响应成功204No Content(无内容)
301资源(网页等)被永久转移到其它URL302Found(临时移动)
404请求的资源(网页等)不存在403Forbidden(拒绝请求)
500内部服务器错误503Service Unavailable(服务不可用)

5. cookie、session、token

  • Cookie 是服务器在浏览器端存储的一小段数据,用于识别用户身份或存储用户信息。

  • Session 是一种服务器端存储机制,用于跟踪用户的会话信息。

  • Token 是一种服务器生成的加密字符串,用于验证用户的身份或权限。

        Session和Cookie的区别:

对比项SessionCookie
数据存放位置存储在服务器上存储在浏览器本地
用户安全程度相对更安全,因为数据存储在服务器上存在被窃取的风险,因为数据存储在浏览器本地
性能影响访问量增加时,会占用服务器的性能资源不会直接影响服务器性能,因为数据存储在客户端
数据存储大小依赖于服务器的大小单个Cookie保存的数据大小有限制(一般不超过4K)

        Token和Session的区别:

对比项TokenSession
来源与定义开发者自定义的加密字符串HTTP协议规定的一种会话管理机制
存储位置不一定存储在服务器上(可存储在任何地方,只要服务器能验证)总是存储在服务器上
跨域能力可以跨域使用,因为与域名无直接关联与特定域名绑定,不可跨域使用

6. 接口测试流程

        接口测试也属于功能测试,对应的测试流程如下:

  • 分析接口测试文档

  • 编写接口测试用例

  • 准备接口测试数据 

  • 执行接口测试用例-通过工具去执行

  • 得到测试结果-输出测试报告-工具自动生成

7. Postman工具安装

        Postman安装官网:Download Postman | Get Started for Free

        Postman安装教程参考:http://t.csdnimg.cn/7GUvB

        Postman界面介绍:http://t.csdnimg.cn/tdInW

8. Postman断言

        Postman断言就是通过编写JavaScript脚本来检验返回的响应数据是否符合预期。

        Postman断言的脚本代码可以看博客:http://t.csdnimg.cn/oNOsvhttp://t.csdnimg.cn/wIrgy

9. Postman接口测试的导入导出

        Postman接口测试的导入:

        Postman接口测试的导出:

10. Postman实现变量参数化

10.1 环境变量
  • 环境变量有开发环境、测试环境、预生产环境,生产环境等。

  • 不同的环境有不同的值,主要体现在请求协议以及请求域名不一样,因此我们可以使用环境变量来管理不同的值。

  • 例如:http://shop-xo.hctestedu.com/index.php?s=api/user/login&application=app&application_client_type=weixin;生产环境为了安全可能将协议更改为https、shop-xo.hctestedu.com域名也会和测试环境不同;其余部分index.php?s=api/user/login&application=app&application_client_type=weixin都和测试环境一样。

  • 为什么会产生差异呢?因为他们维护在不同的服务器或主机上,比如测试时就放在本地主机,正式环境就放在服务器上。

        设置环境变量方法一

        设置环境变量方法二

        引用环境变量

10.2 全局变量和局部变量
  • 全局变量:可以供Postman所有的工程使用,即所有接口都可以调用全局变量。

  • 局部变量:在Collection中去设置,即当前的测试集可以使用该变量,当和全局变量的变量名相同时,优先局部变量。

        设置全局变量

        设置局部变量

        引用变量的方法一致,在请求地址输入中添加{{}},括号内填写变量名,即可引用成功。

11. Postman实现文档参数化

  • 为什么需要文档参数化? 一个接口有多个组合情况,比如登录接口:要验证用户名正确,用户名错误,密码错误,密码为空等等,这就需要文档参数化。

  • Postman支持Json文档,txt文档,CSV文档。

  • 文档参数化可以批量管理数据(输入的数据,预期结果),批量测试。

        准备数据(一般添加数据后另存为txt、csv文件)

        引用文档

         打开Runner窗口,点击Data旁边的Select File按钮,导入准备好的参数化文件,点击Preview按钮,检查数据正确

        查看执行结

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值