Postman~做接口测试

在工作中,接口测试势必是最有效的测试途径。因此,学习接口测试的基础和工具是很有必要的,从Postman开始吧~

目录

1. 接口测试简介

2. 接口测试流程及用例设计

3.使用Postman执行接口测试

4. Postman的环境变量以及全局变量

5. 接口关联

6. Postman内置动态参数以及自定义的动态参数

7. Postman断言


1. 接口测试简介

接口测试就是测试系统组件接口之间的一种测试。

分类:

测试外部接口:

        测试被测系统和外部系统之间的接口。这种接口只需要保证被测系统可以调通外部系统,因此,只需要测试正例就足够了

测试内部接口:

        1.内部接口只提供给内部系统使用。这种情况下,调用关系都很明确,像公司内部的预算系统,承保系统等,只需要测试正例即可

        2.内部接口提供给外部系统使用。这种情况下,我们不知道会外部调用我们的接口时,会出现哪些异常,因此,测试此须非常全面,正例,各种异常场景,权限控制等都要进行测试

价值:

        看过一本书,是这样描述的:UI测试无法覆盖复杂的组件交互网络,因此绕过客户端,直接使用接口测试对服务端进行测试~

2. 接口测试流程及用例设计

        测试过程,研发会提供接口api文档,有时也可以通过抓包工具获取,需要熟悉接口业务,接口地址,鉴权方式,入参,错误码等信息后,就要编写相关的接口测试用例。

        根据日常遇到的问题,做了如下总结:

        正例:输人正常入参,接口能够成功返回数据

        反例:

        鉴权反例:鉴权码为空,鉴权码错误,鉴权码过期

        参数反例:参数为空,参数类型异常,参数长度异常

        错误码覆盖:根据业务而定

        其他错误场景:接口黑名单,接口调用次数限制,分页场景等

3.使用Postman执行接口测试

官网安装 安装完进行注册和登录

以上是比较常用的功能。

        一般就是新增Collections新增集合->add Request新增接口。在接口中填入域名、入参、Headers信息,全都正确的情况下,就可以返回所需要的数据~

        当然,接口也是非常复杂的,首先就会有不同的方法,最常见的就是Post和Get方法,两种方法的区别也简单做了总结:

Get请求和Post请求的区别:

1. get请求一般是获取数据,post请求一般是提交数据

2. post请求比get请求安全

3. 本质区别是传参的方式不一样:

        get请求在地址栏后面以?的方式传参,多个参数之间用&分割

        post请求是在body以表单的方式传参

逐个接口的测试还是比较简单的,参数正确,用例全面,进行验证即可。但是,接口测试还存在一些问题:

        多种环境:开发环境,测试环境,生产环境,

        接口关联:需要手动关联

        参数需要手动修改

因此,需要解决这些问题,强大的Postman还是能做到的。

4. Postman的环境变量以及全局变量

多种环境需要 来回切换,可以设置环境变量也进行问题的简化

        环境变量:环境变量就是全局变量

        全局变量:全局变量是能在任何接口里面访问的变量

        获取环境变量和全局变量的值通过:{{变量名}}

5. 接口关联

5.1 使用Json提取器实现接口关联

第一个接口:
//使用json提取器提取accesss_ token值。
//把返回的字符串格式的数据转换成对象的形式
var result = JSON.parse(responseBody);
//把access token设置为全局变量
pm.globals.set ("access_token", result.access_token);
第二个接口:
{(access_token}}

5.2 使用正则表达式提取器实现接口关联

第一个接口:
//使用正则表达式提取器实现接口关联,match匹配
var result = responseBody.match(new RegExp ('"access_token": " (.*?)"')
console.log(result[1]);
//设置为全局变量
pm.globals.set("access_token",result[1]);
第二个接口:
{{access_token}}

这样就可以关联接口的数据,Postman内置方法还有好多,需要进一步探索交流。。

6. Postman内置动态参数以及自定义的动态参数

postman内置动态参数:

        {{$timestamp}} 生成当前时间的时间戳

        {{$randomInt}} 生成0-1000之间的随机数

        {{$guid}} 生成速记GUID字符串

自定义动态参数:

//手动的获得时问戳
var times = Date.now();
//设置为全局变量
pm.globals.set("times",times);

使用时使用:{{times}}

7. Postman断言

列举下场景的六种断言方式,方法很多种,最终目的是到达到核对接口的数据是否正确。

常规六种断言

        Status code:Code is 200 检查返回的状态码是否为200

        Response body:Contains string 检查响应中包括指定字符串

        Response body:Json value check 检查响应中其中ison的值

        Response body: is equal to a string 检查响应等于一个字符串

        Response headers:Content-Type 检查是否包含响应头Content-Type

        Response time is less than 200ms:检直请求耗时小于200ms

陆续学习输出,指正 共勉~

  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值