<返回更多

postman安装与简要操作

2019-09-27    
加入收藏

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/q386815991/article/details/79569409

1、Postman接口测试工具

Postman简介与安装:

Postman是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件。

它提供功能强大的 Web API & HTTP 请求调试。它能够发送任何类型的HTTP 请求 (GET, HEAD, POST, PUT..),附带任何数量的参数+ headers。

Postman功能:

主要用于模拟网络请求包

快速创建请求

回放、管理请求

快速设置网络代理

Postman安装:

1.在chrome应用商店搜索,应用商店地址:https://chrome.google.com/webstore/search/postman?t=http://webstore.google.com

翻墙下载直接添加成google浏览器插件即可

2.客户端安装

https://www.getpostman.com/Apps

建议选择mac/windows app,比起Chrome app,下载不需要翻墙,功能更强大

2、界面

postman安装与简要操作

 

3、Postman简单使用

http://www.bejson.com/ 解析json格式数据的网站

https://developers.douban.com/wiki/?title=book_v2#get_book_search

postman安装与简要操作

 

https://mp.weixin.qq.com/wiki/home/

开始开发--接口测试号申请

appID wx55614004f367f8ca

Appsecret 65515b46dd758dfdb09420bb7db2c67f

用户分组管理--创建分组

利用postman发送post请求、参数是json格式

postman安装与简要操作

 

页面访问请求(Post方法):

form-data、x-www-form-urlencoded、raw、binary的区别

1. form-data

就是http请求中的multipart/form-data,它会将表单的数据处理为一条消息,以标签为单元,用分隔符分开。既可以上传键值对,也可以上传文件。当上传的字段是文件时,会有Content-Type来说明文件类型;content-disposition,用来说明字段的一些信息;由于有boundary隔离,所以multipart/form-data既可以上传文件,也可以上传键值对,它采用了键值对的方式,所以可以上传多个文件。

2.x-www-form-urlencoded:

就是application/x-www-from-urlencoded,会将表单内的数据转换为键值对

3.raw

可以上传任意格式的文本,可以上传text、json、xml、html

4.binary

相当于Content-Type:application/octet-stream,从字面意思得知,只可以上传二进制数据,通常用来上传文件,由于没有键值,所以,一次只能上传一个文件。

multipart/form-data与x-www-form-urlencoded区别

multipart/form-data:既可以上传文件等二进制数据,也可以上传表单键值对,只是最后会转化为一条信息;

x-www-form-urlencoded:只能上传键值对,并且键值对都是间隔分开的。

Get方法和Post方法的区别

1. get是从服务器上获取数据,post是向服务器传送数据。

2.get安全性非常低,post安全性较高。但是执行效率却比Post方法好。

3.POST的安全性要比GET的安全性高。注意:这里所说的安全性和上面 GET提到的“安全”不是同个概念。上面“安全”的含义仅仅是不作数据修改,而这里安全的含义是真正的Security的含义,比如:通过GET提交数据,用户名和密码将明文出现在URL上,因为(1)登录页面有可能被浏览器缓存,(2)其他人查看浏览器的历史纪录,那么别人就可以拿到你的账号和密码了,除此之外,使用GET提交数据还可能会造成Cross-site request forgery攻击。

总结一下,Get是向服务器发索取数据的一种请求,而Post是向服务器提交数据的一种请求,在FORM(表单)中,Method默认为"GET",实质上,GET和POST只是发送机制不同,并不是一个取一个发!

Postman设置发送请求头

1、查看响应结果

Body 有三种视图:Prettry, Raw, 和 Preview。

Prettry 模式将 JSON 或 XML 响应格式化,使他们更容易被查看。Pretty 模式中的链接被高亮显示,点击他们可以在 Postman 中加载一个使用该 URL 的 GET 请求。

Raw 视图只是一个显示了响应的 body 的大文本区域, 它可以帮助你判断你的响应是不是被压缩的。

Preview 选项卡在内联沙箱框架中呈现响应。一些Web 框架默认返回 HTML 错误,这时, Preview 模式就非常有用了。由于内联沙箱框架的限制,JAVAScript 和图像在内联框架中是被禁用的。如果你的 API 端点返回一个图像, Postman 会自动检测并呈现它。对于二进制响应类型,你应该选择“Send and download”,这将让你保存响应到你的硬盘上,之后你就可以用适当的查看器来查看它。这样你就可以灵活地测试音频、PDF、zip 文件或 API 给你的任何文件。

Headers:

在 Header 选项卡中,headers 显示为 key/value 对。光标悬停 header 名时则会显示根据 HTTP 规范对 header 的描述。如果你正在发送一个 HEAD 请求, Postman 会默认显示 Headers 选项卡。

Cookies

Postman v0.8.x以上版本 可以显示浏览器 cookies, 就像它与浏览器共享相同的环境一样。对于本地应用, 你需要启用Interceptor,然后你就可以在响应部分的 Cookies 选项卡中查看响应的 cookies。

Tests

Tests为执行断言后的测试结果

2、常规使用--断言Tests

测试返回的body包含的内容

tests["Body matches string"] =responseBody.has("百度搜索");

测试返回的状态码

tests["Status code is 200"] =responseCode.code === 200;

tests["1+1"] = 1+1 === 2;

测试返回的状态信息

tests["Status code name hasstring"] = responseCode.name.has("OK");

tests["hello is he"] ="hello".has("he");

测试响应时间是否低于200ms

tests["Response time is less than200ms"] = responseTime < 200;

检查响应body中等于指定string--Check if response body is equal to a string

tests["Body is correct"] =responseBody === "response_body_string";

检查Content-Type是否包含在header返回(大小写不敏感)

tests["Content-Type is present"]= postman.getResponseHeader("Content-Type");

检查Content-Type是否包含在header返回(大小写敏感)

tests["Content-Type is present"]= responseHeaders.hasOwnProperty("Content-Type");

检查成功post的请求

tests["Successful POST request"]= responseCode.code === 201 || responseCode.code === 202 || responseCode.code=== 200;

检查JSON某字段值

var jsonData = JSON.parse(responseBody);

tests["Your test name"] =jsonData.expires_in === 7200;

3、接口持久化

把单个接口保存到文件夹(接口项目)中,再接口项目文件夹下新建文件夹(模块)

4、环境变量:

环境变量:

postman可直接通过切换环境来实现多个环境中的参数切换。常用功能:环境地址切换、全局变量使用。

5、Postman导入导出功能

6、Postman持久化运行

postman安装与简要操作

 

7、postman提取接口返回值

1、变量赋值的方式

postman安装与简要操作

 

let jsondata = JSON.parse(responseBody) ;

let access_token = jsondata.access_token ;

let expires_in = jsondata.expires_in ;

tests["时效"] =expires_in === 7200 ;

2、保存到全局变量

var jsondata = JSON.parse(responseBody) ;

postman.setGlobalVariable("tokenid",jsondata.access_token);

3、接口串行传参

把上一个接口的返回值送给下一个接口作为输入参数

在postman中通过全局变量实现

postman安装与简要操作

 


postman安装与简要操作

 

4、Postman动态传参

在runner里循环发n次请求/做自动化测试时,有些接口不适合写死参数:

1.Postman有以下内建变量,适合一次性使用:

{{$guid}}//生成GUID

{{$timestamp}}//当前时间戳

{{$randomInt}}//0-1000的随机整数

2.参数依赖上一个请求的返回:

上个请求的Tests里提取参数存环境变量,这个请求里用{{变量名}}取值

3.参数每次都不同,但之后的断言或别的请求里可能还要用:

在Pre-requestScript里写代码处理,存为环境变量,参数里用{{变量名}}取值

5、Postman流程控制

流程控制只有在collection runner或Newman里才生效

设2个接口的顺序为:接口A-->接口B

如果希望执行顺序为:接口A -> 接口B -> 接口A,又不想复制一份接口A

A接口:

postman安装与简要操作

 

B接口:

postman安装与简要操作

 

失败的测试自动重新运行

6、Postman调试功能(日志)

1.使用 Ctrl+Alt+c 可以打开Postman的控制台,可以查看请求和响应(只适用于客户端,不适用于Chrome 插件)

postman安装与简要操作

 

2.用console.log()打印,到控制台看

console.log(jsondata.access_token);

3.tests['这里拼出你想看的字符串']= true在界面/报告看断言

tests[jsondata.access_token] = false;

7、定义公共函数

常用公共函数:

1).判断是否超时(assertNotTimeout):

varhasResponse=postman.getResponseHeader('Content-Type')?true:false;if(!hasResponse) tests['服务端在超时前没返回任何数据,请检查相关服务、网络或反向代理设置(以下跳过其他断言)']=false;

2).未超时,显示发出的请求参数(logParams):

if(hasResponse) tests[`[INFO] 请求参数(超时没返回时不解析):${JSON.stringify(request.data)}`]=true;

3).未超时,解析返回的JSON对象(getResponseJson):

try{if(hasResponse) var json=JSON.parse(responseBody);}catch(err){tests['服务端没返回合法的JSON格式,请检查相关服务、网络或反向代理设置(以下跳过其他断言)']=false; tests[`[INFO] 返回:${responseBody}`]=true;console.error(err);}

4).返回元素的类型(assertType):

var assertType=(name,value,type)=>{letisType=(type==='array')? Array.isArray(value):typeof value===type;tests[`${name}为${type}(实际值:${value})`]=isType;};

js的数据类型:

typeof 2 输出 number

typeof null 输出 object

typeof {} 输出 object

typeof [] 输出 object

typeof (function(){}) 输出 function

typeof undefined 输出 undefined

typeof '222' 输出 string

typeof true 输出 boolean

5).返回元素是否与预期值一致(assertEqual):

var assertEqual=(name,actual,expected)=>{tests[`${name}等于${expected}(实际值:${actual})`]=actual===expected;};

6).返回元素是否与预期值不一致(assertNotEqual):

varassertNotEqual=(name,actual,expected)=>{tests[`${name}不等于${expected}(实际值:${actual})`]=actual!==expected;};

————————————————

版权声明:本文为CSDN博主「快乐风男灬」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/q386815991/article/details/79569409

声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>