迟了很多天的postman分享....... : )

Postman简介

什么是postman?

官方:Postman 是一个用于构建和使用 API 的 API 平台。Postman 简化了 API 生命周期的每个步骤并简化了协作,因此您可以更快地创建更好的 API。

Postman是一个接口测试工具,在做接口测试的时候,Postman相当于一个客户端,它可以模拟用户发起的各类HTTP请求,将请求数据发送至服务端,获取对应的响应结果,

从而验证响应中的结果数据是否和预期值相匹配;并确保开发人员能够及时处理接口中的bug,进而保证产品上线之后的稳定性和安全性.

它主要是用来模拟各种HTTP请求的(如:get/post/delete/put…等等),Postman与浏览器的区别在于有的浏览器不能输出Json格式,而Postman更直观接口返回的结果。

接口测试

接口基础知识

  1. 什么是接口?
           接口就是内部模块对模块外部系统对其他服务提供的一种可调用或者连接的能力的标准。就好比usb接口,是系统向外接提供的一种用于物理数据传输的一个接口,仅一个接口是不能进行传输的,还需要对接口怎么进行传输进行一些设置和定义。
            开发者所谓的接口就是模块与模块之间的一种连接;测试眼中的接口是一种协议(对接口的功能的一种定义)
  2. 接口的种类及分类
    (1)webService接口:走soap协议通过http传输,请求报文和返回报文都是xml格式的,在测试时通过工具进行调用、测试。
    作用是:该接口主要用于客户自身的软件、网站或其他产品,需要将短信群发功能集成于软件、网站内作为产品整体功能的一部分,在这种情况下可以使用WebService接口来提交短信。实现WebService接口的短信群发功能需要有一定的基本编程能力。如VC++、Delphi、ASP等。
    (2)http api接口:走http协议,通过路径来区分调用的方法。请求报文都是key-value形式的,返回报文一般都是json串,有get和post等方法,是最常用的两种请求方式。
            json是一种通用的数据类型,所有语言都认识他,(json的本质是字符串,他与其他语言无关,只是可以经过稍稍加工转换成其他语言的数据类型,比如可以转换成python中的字典,key-value的形式,可以转换成javascript中的原生对象,可以转换成java中的类对象等等)
  3. 接口的本质及其工作原理
            接口可以简单的理解为url,工作原理就是url通过get或post请求向服务器发送一些东西,然后得到一些相应的返回值,本质就是数据的传输与接收。

接口测试的目的

        接口测试的原理就是模拟客户端向服务器发送请求报文,服务器接收请求报文后对相应的报文做处理并向客户端返回应答,客户端接收应答的过程。

        因为不同端的工作进度不一样,所以我们要针对最开始出来的接口,以及需要调用其他公司的一些接口进行接口测试及验证数据。从安全层面来说:仅依赖前端进行限制不能满足系统的安全要求,需要从后端同样进行控制,这种情况下就需要从接口层面进行验证。前后端传输、日志打印等信息是否进行加密传输也是需要验证的,特别是涉及到用户的隐私信息。

接口测试流程:
类似于功能测试流程,一个完整的接口测试流程如下:
分析接口文档和需求文档
编写接口测试计划
编写接口测试用例
接口测试执行
输出接口测试报告。

  • 怎么进行接口测试
            通过工具模拟客户端向服务器发送请求并接收服务器返回的数据来对接口的功能,逻辑业务,异常,安全进行测试

功能测试:测试这个接口的功能是否实现,是否按照接口文档来进行开发的
(例如:接口文档规定了一些关键字,开发的时候把关键字改成了其他的关键字,在整个项目周期,并不只有一个开发而是有多个,所以可能因为在开发过程中因关键字不一样导致某些开发功能异常,还有自动化脚本也会发生异常)

逻辑业务:主要指一些逻辑业务依赖关系(比如说支付宝提交订单要保证是在登录状态的,如果没有登录而提交成功了,这就是异常,可以修改请求的cookie来测试)

异常测试
参数异常:关键字参数(应用其他的关键字替换进行测试)、参数为空、参数数量(通过添加参数数量),参数错误。
数据异常:关键字数据(填入的数据用其他的数据语言的数据替用)、数据长度、数据为空、数据错误。

        由于项目的前后端调用主要是基于http协议的接口,所以测试接口时主要是通过工具或代码模拟http请求的发送与接收。工具有很多如:postman、Jmeter、soupUI、java+httpclient、robotframework+httplibrary。
也可以用接口自动化实现,发送请求利用断言来判断。

接口测试用例设计

请添加图片描述

  • 一般接口用例要包括:
    用例编号、模块名称、接口名称、用例标题、请求方法、请求URL、请求参数(包括请求头、请求体)、预期结果、实际结果等。

  • 怎么确定用例的覆盖率?
    如何快速评估自己的测试用例覆盖率:
    1) 参数验证是否完整(包括各种边界和业务规则)
    2)业务需求点覆盖是否完整(单接口业务功,依赖接口业务功能)
    3)接口异常场景覆盖是否完整(数据的异常,)

  • 接口测试用例设计思路
    目的: 测试接口的正确性和稳定性
    原理: 模拟客户端向服务器发送请求报文,服务器接收请求报文后对相应的报文做处理并向客户端返回应答,客户端接收应答的过程;
    重点:检查数据的交换,传递和控制管理的过程,也包括处理的次数。
    核心:持续集成
    优点:为高复杂性的平台带来高效的缺陷监测和质量监督能力,平台越复杂,系统越庞大,接口测试的效果越明显(提高测试效率,提升用户体验,降低研发成本);
    用例设计重点:通常情况下主要测试最外层的两类接口:
    数据进入系统接口(调用外部系统的参数为本系统使用);
    数据流出系统接口(验证系统处理后的数据是否正常);

  • 写一个接口测试用例

http协议

在这里插入图片描述
在这里插入图片描述在这里插入图片描述
常用http状态码及描述
在这里插入图片描述在这里插入图片描述

Postman基础用法

在这里插入图片描述请求页面
Params : get请求传参
Authorization : 鉴权
Header : 请求头
Body : post 请求传参
            None:没有参数
            From-data:既可以传键值对参数也可以传文件
            x-www-from-urlencoded:只能传键值对参数
            raw:json ,text, xml, html, javascript 可以上传任意格式的文本
            binary : 把文件以二进制的方式传参,没有键值,一次只能上传一个文件
Pre-request-script:请求之前的脚本
Tests:请求之后的断言
cookies:用于管理cookie信息
响应页签:
Body:接口返回的数据
            pretty:以json, html, xml……不同的格式查看返回的数据
            Raw:以文本的方式查看返回的数据。
            Preview:以网页的方式查看返回的数据。
Cookies:响应的cookie信息
Headers:响应头
Test Results’断言的结果
200状态码
OK状态信息

postman常用功能

  1. 抓取和分析现有网站请求
  2. 创建Http请求
  3. 管理Http请求(Collections)
  4. 变量
  5. 导出和导入
  6. 生成在线API文档
  7. 自动化测试
  8. Mock server

接口请求流程

1. GET 请求
GET请求:点击Params,输入参数及value,可输入多个,即时显示在URL链接上,
所以,GET请求的请求头与请求参数如在接口文档中无特别声明时,可以不填。

在这里插入图片描述2. POST请求 POST请求一:json提交
在这里插入图片描述在这里插入图片描述

环境变量

当使用API的时候,可能经常需要使用不同的设置。环境设置可以使用变量自定义request。这个方法可以轻松的在不同的设置之间改变而不用改变你的request。不需要担心要记住Postman中所有的这些变量的值。环境可以下载保存为JSON文件,以后可以再加载。

在这里插入图片描述环境变量被设置为键值对,键为变量的名字。

变量可以以这个形式使用: {{variableName}},这个字符串{{variableName}} 将会被他的值所替代。例如:环境变量名为 ‘url’,值为 ‘http://localhost’ ,你可以在request的URL字段中使用{{url}},{{url}}将会在request发送时被替换成 ‘http://localhost’。

只有当前环境中的变量才是有效的。使用环境变量选择器选择一个环境
环境变量可以帮助你分离敏感数据例如keys和passwords。你最好保存所有的敏感值到一个环境中,提供一个虚拟的环境来使用。如果你信任这个用户,你也可以给他你的环境。

警告:环境和全局变量被存储为字符串。如果你正在存储对象或数组,请确保在存储前使用JSON.stringify()格式化他们 ,在检索时使用 JSON.parse()。

Postman有多种定义变量的方法,用于不同的作用域,详细可以参考官方文档,不管是哪种变量,都是使用=={{variable}}==来使用变量。
变量非常有用,在开发、测试等环境下切换或者API是可以分享给其它人的,在不同的环境下修改一下环境变量,就可以无缝使用。

全局变量
全局变量提供了一组总是有效的变量。你可以有很多环境变量,但是同一时间只能有一组有效。但是你可以像使用环境变量一样使用全局变量。

如果一个有效的环境变量名和全局变量名重名,那么全局变量名将被环境变量名覆盖。
设置环境变量
在不同的环境中测试request
1.Create an environment
在这里插入图片描述

2.创建你将要测试使用的环境

3.在request中使用环境变量
环境变量可以使用在以下地方:

  • URL
  • URL params
  • Header values
  • form-data/url-encoded values
  • Raw body content
  • Helper fields
    在你要使用的变量名上附上双花括号。

4.选择要使用的环境
当我们选择了环境之后,Postman将会用变量的值替代所有的变量。如果没有选择环境,Postman将会在全局变量中寻找对应的变量。
5.发送request
6.改变环境,再次发送request。
7.重复上述步骤直到所有的环境都被测试。

collection用例集

在postman中,所有的请求并不都是独立存在的,我们可以根据项目,根据业务,根据接口的关联性,依赖性创建请求集来管理我们的接口。

用例集创建

New”-> “Collection”-> “Name”; “Description”
输入用例集名称,描述,authorination,pre-request,test等,如果添加了这些配置,那么会对集内的所有请求生效

场景:以线上课程为例,想看下线上课程列表,线上课程详情等相关接口是否都正常?频繁请求这些接口是否有异常?这就可以使用runner,但是runner本身并不能作为一个压测工具,因为runner执行是阻塞队列,串行执行请求,并不能拿来做并发测试,但是可以简单看一下接口的健壮性,如果想对接口进行简单的压力测试,可以使用ab,jmeter等工具

  • 10
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值