使用 Postman 测试你的 API

使用 Postman 测试你的 API

Intro

最近想对 API 做一些自动化测试,看了几个工具,最后选择了 postman,感觉 postman 的设计更好一些,我们可以在请求发送之前和请求获取到响应之后都可以自定义脚本,很灵活。而且 postman 的支持直接导入 swagger 定义,这样我们就可以很容易的和接口的 swagger 文档结合起来,而且值得一提的是看了几个工具 postman 是看的几个工具里唯一一个支持 openapi 3.0 的文档导入的,其他工具只支持 swagger 2.0,openapi 3.0 是不支持的。

先来看一个 postman 测试的结果

下面就基于一个 swagger 文档来导入API并测试 API

GetStarted

postman 支持直接给出一个 swagger 的 json 描述文档可以是本地的也可以是在线的,这里我们以一个在线的swagger文档作为示例

  1. 打开左上角的 File => Import

  2. 打开 asp.net core 的 swagger 页面,如下图,使用的示例:https://reservation.weihanli.xyz/swagger/index.html

  3. 将 swagger 文档的地址 copy 到对应的 url 输入框中

    导入之后可以得到类似下面的示例, API 对应着这个 Collection,swagger 中的分组对应的 collection 下的 folder,具体的某一个 api 对应着具体的 request

  4. 调整 api 请求,调整 api 请求需要的参数或请求头等信息

  5. 编辑 Collection 信息

    打开 Collection 的编辑页面

    打开 Varibales Tab, 导入之后你会发现请求的地址都是以 {{baseUrl}} 开头的,这是 postman 增加的一个变量,在 Collection 的编辑页面可以看到,修改成自己实际要使用的地址:

    打开 Tests Tab, 编写一个简单的测试,这里确保请求的响应 statusCode 是 200:

// ensure statusCode 200
pm.test("response is ok", function () {pm.response.to.have.status(200);
});
  1. 运行 api

自定义请求参数变量

postman 中的参数使用 {{variableName}} 的形式来使用,上面的 baseUrl 就是一个变量

我们可以在请求中使用参数,然后在运行测试的时候设置一个 json/csv 文件来代替这些参数,下面来看一下示例:

这个公告详情的接口是需要一个参数的,这里我们设置为一个变量,变量名叫做 path

然后再来运行我们的测试

选择我们准备的测试数据,支持 json 和 csv,csv 必须要有 header, header 就是变量名,这里我使用的是 json

选择好文件之后,可以预览我们的数据

数据无误之后就可以运行我们的测试了,运行之后可以在结果页面看到具体的请求信息

可以看到,我们的参数已经被 json 文件里的定义替换了

More

postman 的功能十分强大,这里就介绍这么多,后面再来分享如何编写测试用例以及自动化测试,希望有所收获

Reference

  • https://learning.getpostman.com/docs/postman/scripts/pre-request-scripts/

  • https://learning.getpostman.com/docs/postman/collection-runs/starting-a-collection-run/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/312466.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

散列查找 散列表(哈希表)

哈希表的平均查找长度是()的函数。 A.哈希表的长度 B.哈希表的装填因子 C.哈希函数 D.表中元素的多少 装填因子 关键字个数 / 表长 符号表:是 “名字(Name)–属性(Attribute)”对的集合 符号表…

使用 postman 给 API 写测试

使用 postman 给 API 写测试Intro上次我们简单介绍了 使用 postman 测试 API,这次主要来写一些测试用例以检查请求的响应是否符合我们的预期以及如何使用脚本测试使用 postman 内置的随机变量postman 内置的有一些产生随机值的变量,在发送请求时随机生成…

图 无向图 有向图

若无向图G (V,E)中含7个顶点,要保证图G在任何情况下都是连通的,则需要的边数最少是: A.6 B.15 C.16 D.21 (n-1)*(n-2)/21 6 * 5/2116 设无向图的顶点个数为N,则该图最多有多少条边?…

Excel催化剂回顾2019年产出(文章合集),展望2020年

一年结束,大家都对自己一年辛勤耕耘作一个总结,Excel催化剂也不落俗,也来一篇文章合集式的梳理,方便大家对Excel催化剂的产出有一个宏观全局的认识。不断创新中前行Excel催化剂从2018年开波以来,累计到如今已有114个大…

朗文3000词汇表带音标_英语零基础音标语法都不会词汇量3000 学雅思到6/6.5分 需要多久 该如何做?...

谢邀~题主好!看来题主的零基础非常纯正。你现在测试的单词量是3000,只能大概展示出你的一些基础,但其实真正的还是要看你会使用,真正理解用法、语境的词汇有多少,而不是为了看起来有多少的那个数字。那么首先题主最好的…

选择排序 插入排序 交换排序

动图演示: https://www.runoob.com/w3cnote/bubble-sort.html 选择排序 简单选择排序 在未排序的序列中,选出最小的元素和序列的首位元素交换,接下来在剩下的未排序序列中,再选出最小元素与序列的第二位元素交换,以此…

ASP.NETCore编程实现基本认证

HTTP基本认证在HTTP中,HTTP基本认证(Basic Authentication)是一种允许浏览器或其他客户端程序使用(用户名,口令)请求资源的身份验证方式,不要求cookie,session identifier、login page等标记或载…

计算机原理(计算机系统漫游)

计算机五大组成部件:运算器(ALU),控制器,存储器,输入部件,输出部件 1.控制器 2.运算器 逻辑运算(判断事物的对与错) 数学运算(11) 控制器运算器中央处理器(CP…

使用ASP.NET Core 3.x 构建 RESTful API - 4.2 过滤和搜索

向Web API传递参数数据可以通过多种方式来传给API。 Binding Source Attributes 会告诉 Model 的绑定引擎从哪里找到绑定源。 共有以下六种 Binding Source Attributes: [FromBody] 请求的 Body [FromForm] 请求的 Body 中的 form数据 [FromHeader] 请求的 Header […

360浏览器linux版本_360安全浏览器崩溃解决方案

360安全浏览器崩溃解决方案方案一:打开360安全浏览器,按键盘上的F1调出浏览器医生界面,点击一键修复即可。如图所示:方案二:360浏览器打开了太多标签占用内存,并且随着浏览器开着的时间越长,占用…

.NET 开源软件开发BIM工具包xBIM

一、xBIM 简介BIM(Building Information Modelling)建筑信息模型,xBIM(eXtensible Building Information Modelling)可扩展的建筑信息模型。它是一个.NET 开源软件开发BIM工具包,支持BuildingSmart数据模型…

< meta name=“viewport“ content=“width=device-width, initial-scale=1.0“>的解释

< meta name“viewport” content“widthdevice-width, initial-scale1.0”> meta是html语言head区的一个辅助性标签&#xff0c;位于文档的头部&#xff0c;不包含任何内容 标签的属性定义了与文档相关的名称/值对 meta元素可提供相关页面的元信息&#xff0c;比如针对…

<meta name=“robots“ content=“index,follow“>的解释

为了让搜索引擎禁止抓取本页面 此标签必须放在< head >和< /head >之间 content中的值决定允许抓取的类型&#xff0c;必须同时包含两个值&#xff1a;是否允许索引&#xff08;index&#xff09;和是否跟踪链接&#xff08;follow&#xff0c;也可以理解为是否允…

2019(dotNet全栈开发)公众号回顾

2019年已经过去&#xff0c;人口红利已经逐渐消失&#xff0c;也许这是这10年互联网史上最糟糕的一年&#xff0c;也可能这是未来10年互联网史上最好的一年关于公众号&#xff0c;我其实很早就开始注册了&#xff0c;只是一直没怎么运营&#xff08;ps&#xff1a;不知道怎么推…

CSS padding margin border属性讲解

把所有网页上的对象都放在一个盒&#xff08;box&#xff09;中 &#xff0c;设计师可以通过创建定义来控制这个盒的属性&#xff0c;这些对象包括段落、列表、标题、图片以及层。 盒模型主要定义四个区域&#xff1a; 内容&#xff08;content&#xff09; 内边距&#xff08;…

laravel 模板继承_Laravel框架模板之公共模板、继承、包含实现方法分析

本文主要介绍了laravel框架模板之公共模板、继承、包含实现方法,结合实例形式分析了Laravel框架中公共模板的建立、模板包含、模板继承等相关操作技巧&#xff0c;需要的朋友可以参考下&#xff0c;具体如下&#xff1a;简介&#xff1a;利用laravel框架开发后台管理系统或web站…

css表格表单属性

表格标签 table表格 属性&#xff1a; border 边框属性 值 数字 width 宽度 值 数字 height 高度 值 数字 cellpadding单元格的内容到单元格边的距离 cellspacing单元格和单元格之间的间距 align规定表格水平如何摆放 值 left/center/right tr行 属性&#xff1a; height 高度…

2019 amazingdotnet 公众号回顾

2019 精彩文章汇总Intro新的一年了&#xff0c;把去年的精彩文章汇总一下&#xff0c;希望能对大家有所帮助博客园推荐文章asp.net core 3.0 更新简记asp.net core 从单机到集群动手造轮子&#xff1a;实现一个简单的 EventBusasp.net core 3.0 中使用 swaggerasp.net core 自定…

echarts字变大_在echarts中如何调整lable的字体大小?

波斯汪series[i]-pie.data[i].label.normal.textStyle.fontSize透過設定 fontSize 就可以調整大小了, 你可以參考 官網的範例, 手動修改左側欄 label 的 fontSize 看看, 是可以調整大小的.文檔在此用 legend.textStyle.fontSize 更改示例大小用 itemStyle.normal.label.textSty…

Identifiers in Java(Java标识符)

Identifiers&#xff08;标识符&#xff09; in Java are symbolic(符号化) names used for identification. They can be a class name, variable name, method name, package name, constant&#xff08;常量&#xff09; name, and more. However, In Java, There are some …