首页 > 其他分享 >postman的使用

postman的使用

时间:2022-11-27 20:01:18浏览次数:36  
标签:postman 请求 使用 variable 服务器 com pm

一、使用介绍

1、创建集合

   集合可以理解成请求的总和或合集,在Postman中,集合表示将请求进行分组、分模块管理;对含义相近、对功能相近的请求保存到一个集合中,方便后期的维护、管理。

2、创建请求

   创建集合后,即可在集合下创建请求,点击图中的“+”即可。

3、发送第一个GET请求

   使用下面测试链接,请求方式选择GET,点击send,即可从服务器获取响应数据。

  postman-echo.com/get?param1=51&param2=66

请求方式有如下八种:

请求方式

解释

GET

用于获取资源,当采用 GET 方式请求指定资源时, 被访问的资源经服务器解析后立即返回响应内容。通常以 GET 方式请求特定资源时, 请求中不应该包含请求体,所有需要向被请求资源传递的数据都应该通过 URL 向服务器传递。

POST

用于提交数据, 当采用 POST 方式向指定位置提交数据时,数据被包含在请求体中,服务器接收到这些数据后可能会建立新的资源、也可能会更新已有的资源。

DELETE

用于删除特定位置的资源

PUT

用于向指定位置提交数据, 当采用 PUT 方式向指定位置提交数据时, 数据被包含在请求体中, 服务器接收到这些数据后直接在当前位置(即提交数据时指定的位置) 创建新的资源

PUT 方式和 POST 方式极为相似,都可以向服务器提交数据,

    • PUT 方式通常指定了资源的存放位置(即提交数据时指定的位置)
    • POST 方式所提交的数据由服务器决定存放位置(可能是新增数据,也可能是更新数据)。

...

...

4、发送第一个POST请求

场景一:在链接种添加参数,使用场景比较少,但也会有。

https://postman-echo.com/post?param=51zxw

场景二:提交表单数据,发送一个Request,其中body为application/x-www-form-urlencoded类型,参数分别为param1=gqx和param2=888 请 求 URL 如下:

https://postman-echo.com/post

    • multipart/form-data:可以上传文件或者键值对,最后都会转化为一条消息
    • x-www-form-urlencoded:只能上传键值对,而且键值对都是通过&间隔分开的

5、PUT请求

HTTP PUT 请求主要是从客户端向服务器传送的数据取代指定的文档的内容。

发送 PUT 请求,并传递字符参数“hello world”

6、delete请求

请求链接

https://postman-echo.com/delete

 

二、环境变量&数据变量以及断言

1、环境变量

    环境变量指在不同环境,同一个变量值随着环境不同而变化,比如我们上面举例场景就可以使用环境变量,当在测 试环境时,host 值为: dev.postman.com ,当切换到生产环境时,host 值变为:postman-echo.com 。

增加了两个环境变量,分别对应线上和线下,运行的时候,选择合适的环境变量即可。

 

2、本地变量

     本地变量主要是针对单个 URL 请求设置的变量,作用域只是局限在请求范围内。如请求 URL 如下,设置两个本地 变量(user,passwd)作为参数。请求方式为 POST

https://postman-echo.com/post

变量设置好之后需要赋值,在 Pre-request-Script 里面编写如下代码:

3、全局变量

  全局变量是指在所有的环境里面,变量值都是一样的,全局变量的作用域是所有请求。

【1】pm.globals.set("variable_key", "variable_value"):设置全局变量;

【2】pm.globals.get("variable_key"):获取全局变量;

4、关于Pre-request-Script

在进行接口测试时,有些工作需要在请求发起前进行完成,这就好比你要去看一场演唱会,前提条件是你必须在合适的时间且拿着入场票才可以如愿,那么买票等操作就是你看演唱会的充分条件。(预置脚本)

【1】pm.environment.get("variable_key"):获取环境变量;

【2】pm.globals.get("variable_key"):获取全局变量;

【3】pm.variables.get("variable_key"):获取本地变量;

【4】pm.environment.set("variable_key", "variable_value"):设置环境变量;

【5】pm.globals.set("variable_key", "variable_value"):设置全局变量;

【6】pm.environment.unset("variable_key"):清除环境变量;

【7】pm.globals.unset("variable_key"):清除全局变量;

三、自写预置脚本示例

除了使用 postman 自身封装的脚本外,我们还可以使用自己使用 js 编写的脚本作为预置脚本。如我们想添加一个 nowTime参数,这个参数必须是当前系统时间;

 var now = new Date(); //获取当前日期
 pm.environment.set("now", now);//将当前日期设置为时间参数

     

四、断言

使用postman完成请求后,验证返回结果,会用到tests断言。

1、判断响应体中是否包含指定内容

判断请求返回的状态为200,200就是正常  

pm.test("Status code is 200", function () {
    pm.response.to.have.status(200);
});

   

以此内推,可以判断响应体的其他结构中是否包含指定内容:

//body中是否包含"111"
pm.test("Status code name has string", function () {
    pm.response.to.have.body("111");  //boy中是否包含111
});
//断言响应头包含指定的响应头(“head”)中包含"Content-Type"
pm.test("Content-Type is present", function () {
    pm.response.to.have.header("Content-Type");
});
//其他方式实现——断言响应结果包含指定的字符串
pm.test("Body matches string", function () {
    pm.expect(pm.response.text()).to.include("哈哈哈");
});

2、从json中获取数据,对返回的结果做json检查

pm.test("Your test name", function () {
    var jsonData = pm.response.json(); //表示需要断言的响应结果中json的值(通过json键值对的方法获取)
    console.log(jsonData);
    var data = JSON.parse(jsonData.data); // jsonData.value表示需要断言的响应结果中json的值(通过json键值对的方法获取),
    console.log(data.name);   
    pm.expect(data.name).to.eql("aaa");  // to.eql(100)表示期望响应结果的值
});

3、断言响应结果等于指定的字符串

pm.test("Body is correct", function () {
    console.log(pm.response.text()) 
    pm.response.to.have.body("111"); //一般用于响应结果固定的断言方式
});

4、断言接口响应时间小于200ms

pm.test("Response time is less than 200ms", function () {
    pm.expect(pm.response.responseTime).to.be.below(200);  //响应时间根据需要进行自定义
});

5、断言响应码在指定范围内

pm.test("Successful POST request", function () {
    pm.expect(pm.response.code).to.be.oneOf([100, 202]);  //根据接口自身情况定义范围,比较常用
});

'

五、基础知识补充

1、Request Header

   HTTP请求报文格式

请求头

说明

示例

Accept

告诉WEB服务器自己接受什么介质类型,*/* 表示任何类型,type/* 表示该类型下的所有子类型,type/sub-type

Accept: text/plain, text/html

Content-Type

application/x-www-form-urlencoded:数据被编码为名称/值对。这是标准的编码格式。
multipart/form-data: 数据被编码为一条消息,页上的每个控件对应消息中的一个部分。
text/plain: 数据以纯文本形式(text/json/xml/html)进行编码,其中不含任何控件或格式字符。postman软件里标的是RAW。

Content-Type: application/x-www-form-urlencoded

Host

接受请求的服务器地址,可以是IP:端口号,也可以是域名

Host:rss.sina.com.cn

User-Agent

发送请求的应用程序名称

User-Agent:Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN;rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14

Connection

指定与连接相关的属性,如Connection:Keep-Alive

 

Accept-Charset

通知服务端可以发送的编码格式

 

Accept-Encoding

通知服务端可以发送的数据压缩格式

 

Accept-Language

通知服务端可以发送的语言

 
     

...

...

....

2、Response Header

   HTTP响应报文格式

3、Cookie设置

    cookie 是存储在浏览器中的小片段信息,每次请求后都将其发送回服务器,以便在请求之间存储有用的信息。比 如很多网站登录界面都有保留账号密码,以便下次登录。

由于 HTTP 是一种无状态的协议,服务器单从网络连接上无从知道客户身份。怎么办呢?就给客户端们颁发一个通 行证吧,每人一个,无论谁访问都必须携带自己通行证。这样服务器就能从通行证上确认客户身份了。这就是 Cookie 的工作原理。

     Cookie 是由服务端生成,存储在响应头中,返回给客户端,客户端会将 cookie 存储下来,在客户端发送请求时, user-agent 会自动获取本地存储的 cookie,将 cookie 信息存储在请求头中,并发送给服务端。postman 也可以 设置、获取、删除 Cookie。 

添加Cookie

查看响应信息种的Cookie

也可以这样查看

4、授权设置

    很多时候,出于安全考虑我们的接口并不希望对外公开。这个时候就需要使用授权(Authorization)机制 授权过程 验证您是否具有访问服务器所需数据的权限。 当您发送请求时,您通常必须包含参数,以确保请求具有访问和返 回所需数据的权限。

Postman 支持的授权协议类型如下:

    • No Auth
    • Basic auth
    • Digest Auth
    • OAuth 1.0
    • Hawk Authentication
    • 等等

(1)Basic auth

    基本身份验证是一种比较简单的授权类型,需要经过验证的用户名和密码才能访问数据资源。这就需要我们输入用 户名和对应的密码。 请求 URL 如下,授权账号为:

•用户名: postman

•密码: password

•授权协议为:Basic auth

https://postman-echo.com/basic-auth

(2)Digest Auth

  Digest auth 是一个简单的认证机制,最初是为 HTTP 协议开发的,因此也常叫做 HTTP 摘要。其身份验证机制非 常简单,它采用哈希加密方法,以避免用明文传输用户的口令。摘要认证就是要核实參与通信的两方都知道双方共 享的一个口令。 当 server 想要查证用户的身份,它产生一个摘要盘问(digest challenge),并发送给用户。典型的摘要盘问例如以下:

请求 URL 如下 :

https://postman-echo.com/digest-auth

摘牌配置信息如下:用户名密码和上面 basic auth 一样

Digest username="postman" 密码: password , realm="Users", nonce="ni1LiL0O37PRRhofWdCLmwFsnEtH1lew", uri="/digest-auth",

response="254679099562cf07df9b6f5d8d15db44", opaque=""

(3)Hawk Auth

Hawk Auth 是一个 HTTP 认证方案,使用 MAC(Message Authentication Code,消息认证码算法)算法,它提供 了对请求进行部分加密验证的认证 HTTP 请求的方法。hawk 方案要求提供一个共享对称密匙在服务器与客户端之 间,通常这个共享的凭证在初始 TLS(安全传输层协议)保护阶段建立的,或者是从客户端和服务器都可用的其他 一些共享机密信息中获得的。

请求 URL 如下:

https://postman-echo.com/auth/hawk

密钥信息如下:

•Hawk Auth ID: dh37fgj492je

•Hawk Auth Key: werxhqb98rpaxn39848xrunpaw3489ruxnpa98w4rxn

•Algorithm: sha256 

(4)OAuth 1.0

允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片, 视频,联系人列表),而无需将用户名和密码提供给第三方应用。

请求 URL 如下:请求方式为 GET,Add authorization data to 设置为:Request Headers

https://postman-echo.com/oauth1

参数配置为:

•Consumer Key: RKCGzna7bv9YD57c

•Consumer Secret: D+EdQ-gs$-%@2Nu7

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

标签:postman,请求,使用,variable,服务器,com,pm
From: https://www.cnblogs.com/helloworldcode/p/16930104.html

相关文章

  • 在iOS中使用NSURLProtocol进行网络代理
    在iOS中使用NSURLProtocol进行网络代理一引言网络能力是互联网应用程序必不可少的功能。随着应用程序的复杂,对网络的依赖性也会逐渐增高。如何统一的处理请求头,统一的处......
  • pymysql的使用
    importpymysql#连接数据库conn=pymysql.connect(host='101.133.225.166',user='root',password="123456",database='test',port=3306)##获取游标cursor=conn.......
  • 8.7 正确使用索引(no)
    一索引未命中并不是说我们创建了索引就一定会加快查询速度,若想利用索引达到预想的提高查询速度的效果,我们在添加索引时,必须遵循以下问题1范围问题,或者说条件不明确,条件中......
  • 学习笔记-Django框架的使用
    前言:本博客为技术小白的记录学习过程,有错误或不解的地方请指出!!!一.安装和创建项目1.安装1.1命令行下载pip3installdjango==1.11.11 (可以跟镜像地址:-i+镜像地址......
  • 如何更好的使用Markdown
    段落和换行一个Markdown段落是由一个或多个连续的文本行组成,它的前后要有一个以上的空行。普通的Markdown段落不可以用空格或制表符来缩进。空行:一行之内只包含回车......
  • jenkins安装和使用
    官网:http://www.jenkins.io/zh/文档:https://www.jenkins.io/zh/doc/下载地址:https://www.jenkins.io/zh/download/    安装JavaJDKyuminstall-yjava安......
  • ldconfig命令使用说明
    ldconfig是一个动态链接库管理命令,命令的用途,主要是在默认搜寻目录(/lib和/usr/lib)以及动态库配置文件/etc/ld.so.conf内所列的目录下,搜索出可共享的动态链接库(格式......
  • std::list 的使用
    #pragmawarning(disable:4786)#include<iostream>#include<list>#include<algorithm>#include<string>//#include<iomanip.h>usingnamespacestd;templat......
  • wpe使用方法(详细)(--新加秒10图)(10号继续可用)
    新加视频链接​​http://bbs.houdao.com/r565301/​​关于wpe的使用方法 工具在下面 里面的代理我设置好了 只需要按我的步骤即可   10次用完后 无需关游戏关......
  • 一个XP使用者眼中的Windows 7
    我本来想将这篇文章命名为“windows7试用报告”,但我想我没有太多资格这样命名,因为我在大多数时间用的是XP,vista没有深入使用过。只知道vista的UAC很烦人。根据统计,浏览​​......