使用 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,一经查实,立即删除!

相关文章

使用 postman 给 API 写测试

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

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数据模型…

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

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

CSS padding margin border属性讲解

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

【实战 Ids4】║ 客户端、服务端、授权中心全线打通!

1、经过元旦两天的全力整改,终于在这新的一年,完成了我的布道生涯的第一个大步走 —— 那就是客户端(VUE)、服务端(ASP.NET Core API)、授权中心(IdentityServer4)的大融合&#xff…

补丁 检测系统_大云制造 | BCLinux For ARM64 V7.6操作系统正式发布

友情提示:全文3000多文字,预计阅读时间10分钟概述大云企业操作系统(BC-Linux,BigCloud Enterprise Linux)是中移(苏州)软件技术有限公司借助开源社区优势,通过定制化手段研发的高性能、安全可靠、自主可控的企业级Linux操作系统。…

告别2019,写给2020:干好技术,要把握好时光里的每一步

本文来自:长沙.NET技术社区 邹溪源不知不觉,一晃年关将近,即将翻开2019,进入新的一页。(本文写于2019年12月27日)这周已经在朋友圈看到了来自公众号《恰同学少年》《Edi.Wang》和《吃草的罗汉》几位老师写下…

单片机课程设计数字心率计_如何选购合适的PH计

聚舟供应的PH计PH计已经被广泛应用于各个行业,如工业、电力、农业、医药、食品、科研和环保等领域,在酸碱值检测时必不可少的,那么该如何选购呢?聚舟销售的PH计也有多种样式与型号,各种型号都供应充足,欢迎…

cd返回上一 git_如何使用Git实现自动化部署你的项目

在开发过程中,我们不可避免的会用到版本控制。你可能对 Git 和 SVN 有所了解。一开始基本都是在用SVN,现在可能都进化到用Git了吧,因为SVN缺点比较多。这里就不过于多的介绍Git的优点了。不知道大家一开始是怎么使用 git 进行开发的&#xff…

在Asp.Net Core中使用ModelConvention实现全局过滤器隔离

从何说起这来自于我把项目迁移到Asp.Net Core的过程中碰到一个问题。在一个web程序中同时包含了MVC和WebAPI,现在需要给WebAPI部分单独添加一个接口验证过滤器IActionFilter,常规做法一般是写好过滤器后给需要的控制器挂上这个标签,高级点的做…

2 未匹配到任何借口_拼多多【关键词精确匹配溢价】给你想要的精准流量,让你订单暴增的秘诀...

关键词匹配方式升级啦,开启精确匹配溢价功能,拥有更多精准流量。为帮助商家解决在使用多多搜索时,遇到的关键词流量不精准、流量不可控、点击率低的问题,多多搜索新推出【关键词精确匹配溢价】功能。通过精确匹配溢价功能&#xf…

如何运用领域驱动设计 - 领域服务

概述本文将介绍领域驱动设计(DDD)战术模式中另一个非常重要的概念 - 领域服务。在前面两篇博文中,我们已经学习到了什么是值对象和实体,并且能够比较清晰的定位它们自身的行为。但是在某些时候,你会发现某一些业务行为…

指令打印与驱动打印随笔

本文对指令打印和驱动打印做了一个简要的介绍,分享了在开发客户端打印组件时的一些过程并提出了一个新轮子用于解决老的问题并引出更多的新问题。全文大概 3500 字无图,阅读大概需要 7 分钟。驱动打印是指:使用 PrintDocument 进行打印。通过…

er图转为数据流程图_「数据架构」实体关系模型介绍

实体-关系模型(或ER模型)描述特定知识领域中相关的事物。基本的ER模型由实体类型(对感兴趣的事物进行分类)和指定实体之间可能存在的关系(那些实体类型的实例)组成。在软件工程中,为了执行业务流程,ER模型通常用于表示业务需要记住的内容。因此&#xff…

WeihanLi.Npoi 1.7.0 更新介绍

WeihanLi.Npoi 1.7.0 更新介绍Intro昨天晚上发布了 WeihanLi.Npoi 1.7.0 版本,增加了 ColumnInputFormatter/ ColumnOutputFormatter,又进一步增强了导入导出的灵活性,来看下面的示例ColumnInputFormatter/ColumnOutputFormatter示例 Model:i…

【复杂系统迁移 .NET Core平台系列】之迁移项目工程

源宝导读:微软跨平台技术框架—.NET Core已经日趋成熟,已经具备了支撑大型系统稳定运行的条件。本文将介绍明源云ERP平台从.NET Framework向.NET Core迁移过程中的实践经验。一、背景随着ERP的产品线越来越多,业务关联也日益复杂,…