草庐IT

Postman知识汇总

努力的小学弟 2024-05-11 原文

Postman 知识汇总

目录

1.Postman简介:

Postman 是一款强大的接口测试工具,postman为用户提供强大的 Web API & HTTP 请求调试功能。postman能够发送任何类型的HTTP 请求( get、post、put、patch、delete )


2.接口测试流程:


3.接口测试执行

鉴权码:鉴权你是否有访问此接口的权限的一个字符串码。
获取鉴权码的方式:
1.有一个专门的获取token鉴权码的接口。
2.登录之后自动生成token鉴权码。

A. 功能的请求页签各模块详解:
Params - 在这里将编写请求所需的参数(多用于get请求传参),比如Key - Value。
Authorization - 为了访问api,需要适当的授权、鉴权(验证是否拥有从服务器访问所需数据的权限)。它可以是Username、Password、Token等形式。
Headers - 请求头信息
Body - 请求体信息,一般在POST中才会使用到

  1. none - 表示无参数
  2. form-data - 表示键值对( key - value)格式输入,也可以进行文件上传(主要特点),可以设置 content
    -type(Http请求内容类型,如utf-8)
  3. x-www-from-urlencoded - 表示键值对格式输入, 不支持文件传输,不可以设置 content -type。
  4. raw - 表示传各种其他类型的参数,如 text, javascript, json, html, application/xml
  5. binary - 表示只可以上传二进制数据,通常用来上传文件,由于没有键值,所以,一次只能上传一个文件

Pre-request Script - 请求之前 先执行js脚本,使用设置环境的预请求脚本来确保在正确的环境中运行测试。
Tests - 这些脚本是在请求期间执行的。对于测试非常重要,因为它设置检查点(断言)来验证响应状态是否正常、检索的数据是否符合预期以及其他测试。
Settings - 最新版本的有设置,一般用不到。

B. 响应的功能页签:

Body - 查看响应内容模块,有三种查看方式: pretty, raw, preview

  1. pretty -
    以漂亮的模式去格式化响应的JSON或者XML,方便更好的去查看。在这个模式中响应数据内容中的链接是高亮显示并且可以点击去发送请求的。还可以点击下拉选项选择以什么方式去格式化响应的数据

  2. Raw - 仅仅是响应体的一个大文本,可以告诉你响应体是否压缩了

  3. Preview - 网页格式, 在一个沙盒的iframe 中渲染响应的内容。一些web框架默认的返回错误的HTML,这时候Preview
    是非常有用的。由于iframe沙盒的限制,JS和图片是不可以用的

Cookie - 查看响应的Cookie信息
Headers - 查看响应头
TestResults - 查看断言结果
Status - 查看响应状态码(200、404、502)
Time - 查看响应时间
Size - 查看响应字节数

补 - 面试题:接口测试中get请求和post请求的区别是什么?
1. get请求一般是获取资源,post请求一般是提交资源
2. get请求通过在地址栏中以 ?方式传参,多个参数以 & 分隔;post请求是通过表单传参。
3. post请求比get请求安全( GET 请求方式从浏览器的 URL 地址就可以看到参数)

4.全局变量和环境变量

环境变量:可切换当前使用哪个环境变量,让接口/代码在不同的环境里面执行。
全局变量:作用于postman所有的文件夹
http端口默认:80 ; https端口默认:443
注意:当“环境变量”和“全局变量”设置同一个变量时,优先走“环境变量”的设置;当环境变量没有设置该变量时,才走全局变量的设置
能够在所有的接口请求里面使用的变量叫做全局变量。


5.接口关联

注意:面试官常问问题:
1. 接口测试里面,接口关联式如何实现的?
2. 接口测试中如何实现上一个接口的返回值作为下一个接口的参数?

A. 在Test里面通过Js代码,去获取解析返回的响应内容(1.Json对象解析 ; 2.正则表达式提取) -----最终都设置到全局或者环境变量,供后面接口使用
B. 其他方法(获取响应头Headers 与 响应 Cookies 的值)


6.Postman动态参数

Postman内置动态参数:(凡是双大括号里面有 $ 符的都是内置动态参数)
1. {{$timestamp}} : 生成当前时间的时间戳。(不是万能的)
2. {{$randomInt}} : 生成0~1000之间的随机数 。
3. {{$guid}} : 生成随机的GUID的字符串。

自定义动态参数:
1.手动制造一个时间戳,达到动态参数效果(要赋予全局变量,调用的话跟全局变量调用方法一致)


7.断言

接口断言:对接口请求后的内容进行设置,如状态码、响应时间、响应头、响应正文等信息进行断言操作。在设置时会给定一个预期结果,在发送请求后会得到一个实际结果,如果两者结果一致,则认为是成功的,否则则会失败。方便捕获失败,分析原因。

状态码断言三个
1.状态码断言:Status code:Code is 200

2.状态码字符串断言:Status code:Code name has string
这里就是通过字符串判断了,比如 “OK” 、 "NOT FOUND"等

3.状态码集合判断断言: Status code:Successful POST request
这里是判断返回状态码只要满足设定集群里的一个,就代表成功通过,如下,状态码只要满足是200、201、203其中一个就代表成功

响应正文断言三个
1.响应正文包含某字符串断言:Response body:Contains string
这里由于得到的响应内容是text格式的文本,所以需要注意转为unicode编码,设置于加上 “\\”。

2.响应正文是Json格式正文断言: Response body:JSON value check
这里只适用于响应正文是Json格式类型才可以用,其他格式无法适用。

3.响应正文是否完全等于某一个值断言:Response body:is equal to a string
这里需要响应正文要完全等于某一个值才生效! 用法非常少,要各种转译,基本不用

响应头部Headers断言一个
1.响应头部 是否包含某个Server(Key): Response headers:Content-Type header check
这里 断言只能去判断Key,比如 Server 、 Content-Type 、 Date等,没法判断 key 后的 value

响应时间断言一个
1.响应时间:Response time is less than 200ms
这里多用于性能的参考,响应时间与用户体验性挂钩


8.用例的批量执行

有时候需要批量执行多个串联接口,可以如下所示,使用【Run collection】,采用数据驱动方式:csv,json
A.可以先创建数据文件(csv,json),csv如下:第一行为变量名,下面的为变量值,逗号分隔开来。

B.JSON如下: JSON格式数据驱动

C.修改接口/代码,去调用这些数据文件里面的变量。
调用分为两种:

  1. 在接口参数里面调用,与调用全局变量方法一致,采用: {{key}}
  2. 在断言里面取数据文件里面的值,采用:data[“key”]

D.配置【Run collection】,如下各配置项内容介绍,选择对应的数据驱动文件。执行,看结果。


9.必须要带请求头的接口的测试方法

常见请求头含义


10.Postman接口测试之Cookie鉴权

接口鉴权、接口加密、接口签名(金融项目、银行项目、信贷项目、特大型项目)
1.什么是Cookie?
Cookie是一些网站为了识别用户和跟踪会话而存储在用户本地终端中的文本数据,是一段文本数据,通常是加密的。

2.Cookie鉴权的原理:

3.Cookie分类:

  1. 会话Cookie:保存在内存当中,浏览器关闭之后会自动消失。

  2. 持久Cookie:保存在硬盘当中,浏览器关闭之后不会消失,只有当持久化的时间到期之后,才会消失。

4.数据格式:

  1. Name:cookie的名称
  2. Value:cookie的值
  3. Domain:cookie的作用的IP地址
  4. path:cookie所在的服务器上面的项目的路径
  5. Expires:cookie失效时间,session表示会话cookie,浏览器退出就失效;时间表示持久cookie,具体失效时间如下图
  6. Size:cookie的大小

11.接口加密(像银行之类的,一般是采用多种混合加密,自定义混合加密,就是几种混在一起)

Postman加密方式只能通过代码方式:
1.对称式的加密方式(私钥加密):不常用DES和AES,已经被淘汰了
现在可能更常用的是Base64加密

A. Base64:
1.Base64加密
2.Base64解密

2.非对称式的加密方式(双钥《公钥和私钥》加密):RSA加密方式
由一个密码生成的双钥,当用公钥去加密时,则用私钥解密;当用私钥去加密时,则用公钥解密

3.只加密,不解密
a.MD5加密。(32位大写、32位小写、16位大写、16位小写)

b.SHA1,SHA3,SHAN…

有关Postman知识汇总的更多相关文章

  1. postman接口测试工具-基础使用教程 - 2

    1.postman介绍Postman一款非常流行的API调试工具。其实,开发人员用的更多。因为测试人员做接口测试会有更多选择,例如Jmeter、soapUI等。不过,对于开发过程中去调试接口,Postman确实足够的简单方便,而且功能强大。2.下载安装官网地址:https://www.postman.com/下载完成后双击安装吧,安装过程极其简单,无需任何操作3.使用教程这里以百度为例,工具使用简单,填写URL地址即可发送请求,在下方查看响应结果和响应状态码常用方法都有支持请求方法:getpostputdeleteGet、Post、Put与Delete的作用get:请求方法一般是用于数据查询,

  2. postman——集合——执行集合——测试脚本——pm对象简单示例02 - 2

    //1.验证返回状态码是否是200pm.test("Statuscodeis200",function(){pm.response.to.have.status(200);});//2.验证返回body内是否含有某个值pm.test("Bodymatchesstring",function(){pm.expect(pm.response.text()).to.include("string_you_want_to_search");});//3.验证某个返回值是否是100pm.test("Yourtestname",function(){varjsonData=pm.response.json

  3. ruby - 我怎样才能更好地了解/了解更多关于 Ruby 的知识? - 2

    按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。我最近开始学习Ruby,这是我的第一门编程语言。我对语法感到满意,并且我已经完成了许多只教授相同基础知识的教程。我已经写了一些小程序(包括我自己的数组排序方法,在有人告诉我谷歌“冒泡排序”之前我认为它非常聪明),但我觉得我需要尝试更大更难的东西来理解更多关于Ruby.关于如何执行此操作的任何想法?

  4. 常见网络安全产品汇总(私信发送思维导图) - 2

    安全产品安全网关类防火墙Firewall防火墙防火墙主要用于边界安全防护的权限控制和安全域的划分。防火墙•信息安全的防护系统,依照特定的规则,允许或是限制传输的数据通过。防火墙是一个由软件和硬件设备组合而成,在内外网之间、专网与公网之间的界面上构成的保护屏障。下一代防火墙•下一代防火墙,NextGenerationFirewall,简称NGFirewall,是一款可以全面应对应用层威胁的高性能防火墙,提供网络层应用层一体化安全防护。生产厂家•联想网御、CheckPoint、深信服、网康、天融信、华为、H3C等防火墙部署部署于内、外网编辑额,用于权限访问控制和安全域划分。UTM统一威胁管理(Un

  5. Postman测试简单操作 - 2

    1、接口请求基本操作1.1例子tips在view的选项可以zoomin调整窗口字帖大小。1、创建一个测试的workspace,并命名为test2、test后面新增一个addrequest3、选择发送GET,URL为一个开源的https://api.apiopen.top/api/sentences获取每日一句4、点击send查看内容Tips:如果提示出现Error:tunnelingsocketcouldnotbeestablished,statusCode=407错误,参照以下解决办法)关于tunnelingsocketcouldnotbeestablished,cause=getaddri

  6. 酷早报:10月21日全球Web3加密行业重大资讯大汇总 - 2

    2022年10月21日星期五【数据指标】加密货币总市值:$0.95万亿BTC市值占比:38.51%恐慌贪婪指数:23极度恐慌 【今日快讯】1、【政讯】1.1.1、美联储布拉德:市场预期美联储11月会加息75个基点1.1.2、美联储哈克:将维持加息一段时间1.2、美国10年期国债收益率触及4.197%,为2008年6月以来最高1.3、法国数字转型部长:政府将专注于DeFi和Web31.4、巴西ATM机将于11月3日起支持USDT1.5、美众议院副议长将于11月初加入a16zCrypto担任政府事务主管1.6、香港数字资产托管机构FirstDigitalTrust首席执行官:香港仍是安全

  7. ruby - Ruby基础知识 - 2

    Asitcurrentlystands,thisquestionisnotagoodfitforourQ&Aformat.Weexpectanswerstobesupportedbyfacts,references,orexpertise,butthisquestionwilllikelysolicitdebate,arguments,polling,orextendeddiscussion.Ifyoufeelthatthisquestioncanbeimprovedandpossiblyreopened,visitthehelpcenter提供指导。已关闭8年。什么是学习ruby语言

  8. 软考网络工程师复习指导--下午题必考-组网技术-华为命令汇总 - 2

    文章目录1、考试介绍2、软考网络工程师前景3、软考网络工程师考试内容4、华为命令总结1、考试介绍软考是一个以考试代替评职称的考试,每年都会举行两次考试,一般都在5月份和11月份考试,今年我们的省份取消了考试。具体参考官网中国计算机技术职业资格网可以在上面查看报考时间和报名等。本人准备2021年下半年全国计算机技术与软件专业技术中网络工程师,谁知道疫情就来的很巧,辛辛苦苦复习了三个月,终于整明白头绪了,但是天不遂人愿,疫情导致取消了考试,但是是害怕我是去捐款的吗?2、软考网络工程师前景随着计算机的远程信息化处理应用的高速发展和广泛应用,网络已成为经济发展的强大动力。计算机网络工程是计算机技术和通

  9. ruby - 我应该具备哪些 Ruby 知识? - 2

    按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。我刚刚发现了whatc#knowledgeshouldIhave?问题和想知道的相同,但对于Ruby。我认为Ruby是我最喜欢的编程语言,除了学习基础知识外,至少我从众多RubyonRails项目和一些Ruby脚本中学到的东西,我还尝试通过阅读像Gluttonous这样的博客来学习。,O'ReillyRuby,OlaBini,和PolishingRuby.

  10. Unity基础知识之顶点吸附、创建组合体 - 2

    Unity基础知识之顶点吸附、创建组合体一、顶点吸附顶点吸附:选择物体后按住键盘上的V键,鼠标定点定位,再拖拽到目标物体对齐即可。注:操作成功后先松V键。1、两个平面Plane的顶点吸附2、两个物体cube的顶点吸附二、创建组合体(子弹)组合体子弹由2个capsule(胶囊)、1个cylinder(圆柱体)组成,如图先创建这3个对象。再将其中一个capsule按照一定比例缩小,将三个对象按照一定位置放置好。创建一个GameObject,将三个对象放在该GameObject里,这样就是父子结构。为创建的组合体即子弹可以添加材质Material:在assets目录下新建Material,选择颜色后

随机推荐