PostMan使用

发布于:2025-06-24 ⋅ 阅读:(12) ⋅ 点赞:(0)

PostMan的工具使用分享

一、postman简介

1、简介

Postman是一个接口测试工具,在做接口测试的时候,Postman相当于一个客户端,它可以模拟用户发起的各类HTTP请求,将请求数据发送至服务端,获取对应的响应结果, 从而验证响应中的结果数据是否和预期值相匹配;并确保开发人员能够及时处理接口中的bug,进而保证产品上线之后的稳定性和安全性。 它主要是用来模拟各种HTTP请求的(如:get/post/delete/put..等等),Postman与浏览器的区别在于有的浏览器不能输出Json格式,而Postman更直观接口返回的结果。

2、下载与使用:

由于2018年初chrome停止对chrome应用程序的支持,目前postman插件还可安装,但已经无法正常使用了。

下载地址:Postman: The World's Leading API Platform | Sign Up for Free

3、界面元素简介:

1)主要界面功能介绍

l   New: 新建,可以创建request(请求),collection(请求集),environment(环境变量)等。

l   Inport:导入,可以直接导入postman请求集,curl等一些请求文件。

l   Runner: 执行请求,可以选择执行请求的collection,并且添加执行参数,例如执行时间,执行次数等等。

l   Workspace: 工作台,可以选择使用个人工作台或团队工作台,可以创建team并且邀请成员加入一起编辑使用请求集。

l   History: 历史请求,所有调试的历史请求数据

l   Collection: 请求集,可以创建保存,将某些请求放到一起形成请求集

l   Environment: 环境变量,管理设置的环境变量,可以设置全局环境变量,也可新建环境,添加环境变量

2)工作台页面主要介绍

l   请求方法: 支持get,post,put,patch等请求方法

l   URL: 可以直接输入请求URL,也可以通过环境变量设置,自定义URL

l   Params: 请求参数

l   Authorization:  认证鉴权,支持多种授权鉴权

l   Header: 请求头

l   Body: 请求体,包含form-data,json,文件上传等

l   Pre-request-Script: 请求脚本,可以在请求发起前执行的脚本

l   Tests: 接口测试,请求完成后进行的测试脚本

l   Cookies: 可以为请求添加cookies

l   下面就是response的一些信息,返回数据,返回头,cookie,测试结果等

4、常规使用步骤:

1)打开postman,新建一个请求

2)在请求方法模块中选择具体的请求方法,比如GET,

3)接口URL中输入地址,点击Send按钮即可发送请求。

二、postman接口测试之断言

1、操作说明

对接口请求后端内容进行设置,如状态码、响应头、响应正文等信息进行断言操作,在设置时会给一个预期结果,在发送请求后会得到一个实际结果,如果两者结果一致,则认为是成功,否则认为是失败,在失败的情况下需要进一步分析原因,从而判断是否是一个bug如果没有断言,我们只能做接口的功能测试,但有了断言后,就为我们做自动化提供了条件。

Postman的Test模块就是实现请求断言功能的,也是基于Node.js的,并且在postman中的断言是非常方便和强大的 ,它为我们内置了一些常用的断言 。用的时候,只需从右侧点击其中一个断言类型,就会在文本框中自动生成对应断言代码块。

2、postman断言的一些特点

  • 断言编写位置:Tests标签
  • 断言所用语言:JavaScript
  • 断言执行顺序:在响应体数据返回后执行 。
  • 断言执行结果查看:Test Results

3、常用的断言类型:

1、状态行中的断言

  • 断言状态码:Status code: code is 200
pm.test("Status code is 200", function () {
    pm.response.to.have.status(200);        //这里填写的200是预期结果,实际结果是请求返回结果
});

  • 断言状态消息:Status code:code name has string
pm.test("Status code name has string", function () {
    pm.response.to.have.status("OK");   //断言响应状态消息包含OK
});

2、响应头中的断言

  • 断言响应头中包含:Response headers:Content-Type header check
pm.test("Content-Type is present", function () {
    pm.response.to.have.header("Content-Type"); //断言响应头存在"Content-Type"
});

3、断言响应体(常用)

  • 断言响应体中包含XXX字符串:Response body:Contains string
pm.test("Body matches string", function () {
    pm.expect(pm.response.text()).to.include("string_you_want_to_search");
});
//注解
pm.expect(pm.response.text()).to.include("string")      获取响应文本中包含string

  • 断言响应体等于XXX字符串:Response body : is equal to a string
pm.test("Body is correct", function () {
    pm.response.to.have.body("response_body_string");
});
//注解
pm.response.to.have.body("response_body_string");   获取响应体等于response_body_string

  • 断言响应体(json)中某个键名对应的值:Response body : JSON value check
pm.test("Your test name", function () {
    var jsonData = pm.response.json();
    pm.expect(jsonData.value).to.eql(100);
});
//注解
var jsonData = pm.response.json()   获取响应体,以json显示,赋值给jsonData .注意:该响应体必须返会是的json,否则会报错
pm.expect(jsonData.value).to.eql(100)  获取jsonData中键名为value的值,然后和100进行比较

4、响应时间(一般用于性能测试)

  • 断言响应时间:Response time is less than 200ms
pm.test("Response time is less than 200ms", function () {
    pm.expect(pm.response.responseTime).to.be.below(200);   //断言响应时间<200ms
});

三、接口批量执行

1、点击postman左侧Collections下面有个添加文件夹图标,就可以创建测试项目

2、该目录下还可以创建子目录,进行测试用例的细分

3、创建测试用例

创建接口测试用例,即新建http请求,选择请求方式、写好url、请求头、请求体

4、设置变量

postman的变量和Jmeter的参数化相似,即把若干处出现多次的数值用一个变量表示,达到一次修改、多处生效的效果,便于修改和管理。

点击postman右上方一个按钮,点击Globals后面的Add按钮,添加全局变量

5、点击右下角Add按钮,添加Environment Name,Key值写变量名称,Value值写变量对应的数值,点击Save按钮进行保存

6、把Value值出现过的地方用{{key}}代替,比如以下面面的截图为例,出现Cookie的位置使用“{{cookie1}}”代替

7、添加响应处理(断言)

在Tests中添加检查条件,postman提供了一些常用的检查条件的代码,直接添加或稍加修改即可。如:响应数据的状态码为200,则判断测试通过,则在代码片中选择“status code:code is 200”

8、点击运行

9、运行后,弹出测试结果,显示测试通过和失败的个数、请求URL、请求头、请求体信息,响应头、响应体信息,状态码等,我们就可以查看测试用例的执行结果及具体信息

四、接口串联

1、先在创建任务接口下,test里选择json check value这个代码片段,将接口返回内容转化为json格式

2、设置全局or局部变量(我这里是设置里全局变量)设置全局or局部变量(我这里是设置里全局变量)

3、在第一个接口请求成功后会自动生成一个环境变量

4、第二个接口我们直接使用 {{变量}}进行传参就行。

原理总结:

1)获取上一个接口的返回值 2)用一个环境变量或全局变量来接受这个返回值 3)用此环境变量或者全局变量作为下一个接口的参数

五、Mock Server

1、Mock Server的意义:模拟那些无法实时连接的后端,或是较难测试的系统接口,用于获得结果反馈的一种测试方式。通过发送请求后,模拟后台返回的响应内容来确认当前系统的正确性。

2、Mock对象适用场景

(1)需要将当前被测单元和其依赖模块独立开来,构造一个独立的测试环境,不关注被测单元的依赖对象,只关注被测单元的功能逻辑。

  -----比如被测代码中需要依赖第三方接口返回值进行逻辑处理,可能因为网络或者其他环境因素,调用第三方经常会中断或者失败,无法对被测单元进行测试,这个时候就可以使用mock技术来将被测单元和依赖模块独立开来,使得测试可以进行下去。

(2)被测单元依赖的模块尚未开发完成,而被测单元需要依赖模块的返回值进行后续处理。

  1)前后端项目中,后端接口开发完成之前,接口联调;

  2)依赖的上游项目的接口尚未开发完成,需要接口联调测试;

  -----比如service层的代码中,包含对Dao层的调用,但是,DAO层代码尚未实现

(3)被测单元依赖的对象较难模拟或者构造比较复杂。

  -----比如,某系统的异常条件有很多,但是测试这种异常条件很复杂或者无法模拟。

3、操作步骤:

1)首先,创建一个自定义的URL

2)点击右侧,添加example,保存请求的响应作为一个example

3)此时可以在创建的请求下方看见一个”e.g"的举例, 编辑example,展示请求结果

4)点击mock Server》新建》创建一个mock server 》选择上面已经创建好的 collection

5)在Configuration里面 补充 自定义 mock server名称、环境变量等信息,最后点击创建

6)可以看到mock server里面新增了一个 mock test的项目,复制这个URL

7)然后  用这个API替换自己创建的URL  :https://507e0097-5a40-419c-b800-02f5b0b48b78.mock.pstmn.io

8)点击Send 

9)使用这个URL去浏览器访问

4、总结:

1)使用mock-server配置私有环境变量并设置相应内容 2)获取mock-sever的接口密钥AIP-key并创建接口名称 3)将mock-server的url(和接口密钥API-key一并)添加在环境变量中 4)在当前集合中创建新请求,在example中设置预期响应结果,使用环境变量中的mock-sever的url,并将环境变量中的mock-server的接口名称和API-key放到请求头(header)里,发送请求,获得预期结果.

六、查看日志

在做接口测试时,经常会因为代码写的有问题导致报错,这时通过查看日志就显得非常重要了,postman也提供了这样的功能,它允许我们在脚本中编写打印语句,查看打印的结果 ; 同时也可以查看每个请求的日志信息 。

在postman中编写日志打印语句使用的是JavaScript,编写的位置可以是Pre-request Script 或Tests标签中。编写打印语句如:console.log("我是一条日志")

打印的日志可以在在postman中:view-show postman console  进行查看

(第二个入口就是左上角第三个图标 )

这里面有几个比较实用的功能:

  • 搜索日志:输入URL或者打印的日志就能直接搜索出我们想要的请求和日志,这对我们在众多日志中查找某一条日志是非常方便的 。
  • 按级别搜索:可以查询log,info,warning,error级别的日志 ,有助于我们更快定位到错误 。
  • 隐藏请求(Hide network):把请求都隐藏掉,只查看输出日志 。

总之,通过这个功能,我们在请求接口报错时,通过打印响应的日志,就能很轻松地找到问题原因了 。


网站公告

今日签到

点亮在社区的每一天
去签到