首页 > 其他分享 >【Postman工具】

【Postman工具】

时间:2024-08-10 17:52:42浏览次数:10  
标签:postman Postman 接口 响应 var 请求 工具 pm

一.接口扫盲

1.什么是接口?

接口是系统之间数据交互的通道。拿小红到沙县点餐为例:小红想吃鸭腿饭。她要用什么语言来表达?跟谁表达?通过什么表达?按照生活习惯应该是:小红根据菜单对服务员用中文表达她想要一份鸭腿饭。这里中文作为小红和服务员的共同语言标准,菜单作为一个规范。迁移到浏览器和服务器上:浏览器和服务器通过http协议(中文)进行通信,通过接口规范文档(菜单)发送符合规定的报文才能得到响应服务。

2.接口测试的意义是什么?

接口测试可以理解为不借助前端,提前对后端接口进行测试,提早发现问题解决问题。

3.什么是接口测试?

接口测试用来校验响应数据与预期结果是否一致、逻辑依赖关系是否正确。(逻辑以来关系:比如退出登录以后再打开订单链接,是否会跳转到登录页面。)

4.什么是自动化接口测试?

自动化接口测试是使用工具和代码代替人工的测试方法,主要依赖断言。

5.接口测试从哪些方面入手?

单接口测试和多接口测试。

单接口测试分为正向测试(必填参数组合、必填+非必填组合)和反向测试(功能异常、数据异常、参数异常)。

多接口测试需要考虑业务场景,如登录后跳转页面。

6.怎么界定RESTful风格的接口?

传统的接口测试只有post和get方法,且url不唯一。

RESTful风格的接口有四种方法:post增加、get查询、delete删除、put修改,且url唯一。

7.接口文档的作用?

帮助前端和后端工作人员进行工作对接。

帮助测试人员编写测试用例。

帮助新入职的员工快速接手项目。

8.f12抓包需要关注的内容

二.HTTP协议

HyperText Transfer Protocol超文本传输协议,是一种用于请求和响应的应用层协议。

协议特点:支持客户端服务器模式,简单快速,无连接无状态(B/S模式)

URL:Uniform Resource Locator 统一资源定位符,用来定位资源。

协议:http、https

域名:IP地址,可以定义到环境中的一台主机

端口号:在主机上定义到具体的应用。默认端口号被省略就跟随协议。

--mysql默认端口号:3306

--redis默认端口号:6379

--http协议默认端口:80

--https协议默认端口:443

资源路径:对应网页源代码或数据资源

--资源路径可以为空

--如果有查询参数,资源路径为?之前 / 之后的所有内容

--如果没有查询参数,资源路径就从端口号到结束

查询参数:传递参数给源代码,一定是k=v格式。

(一).HTTP请求

工具:fiddler进行抓包验证

特点:由客户端发送给服务器

格式:请求行、请求头、空行、请求体(get请求没有请求体)

请求行(请求方法、url、协议版本

作用:指定请求方法和请求资源

格式:请求方法(空格)url(空格)协议版本(\r\n)

请求方法:GET查询、POST新增(登录注册用)、PUT修改、DELETE删除

url:数据资源定位符,协议://域名:端口号/资源路径?查询参数&查询参数

请求头

作用:向服务器描述浏览器的基本信息

格式:全是key : value的键值对

要重点记住两个:

User-Agent:向服务器描述浏览器类型

Content-Type:向服务器描述请求体的数据类型

请求体

GET、DELETE没有请求体

PUT、POST有请求体

请求体的数据类型,收请求头中Content-Type的值的影响

复习:

这个是fiddler抓包抓到的请求报文

1是请求行:请求方法是POST,url中http是协议类型,://是协议与域名的分割符,/是域名和资源路径的分割符,HTTP/1.1是协议版本号。

2-16是请求头:其中User-Agent是浏览器的类型,Content-Type是请求体的数据类型:表单类型

17是空行

18是请求体

(二).HTTP响应

特点:服务器发给浏览器(客户端)

格式:响应行、响应头、空行、响应体

响应行

格式:协议版本(空格)状态码(空格)状态码描述\r\n

协议版本:http1.0/ http1.1 / http2.0

状态码:

1xx:信息向

2xx:表成功

3xx:重定向

4xx:客户端错误。404表示数据资源不存在,403表示数据资源拒绝被访问

5xx:服务端错误。

状态描述:比如200ok,404Not Found,403Forbidden

响应头

作用:向客户端描述服务器的信息

语法:k : v键值对

Content-Type:向客户端描述响应体的数据类型

响应体

http报文响应,大多数都有响应体

数据类型受响应头中的Content-Type值影响,常见的类型:json/表单类型/图片类型

三.使用postman进行接口测试

postman是接口调试工具

newman插件可以自动生成测试报告

npm -v 检查是否安装了node.js

npm install -g newman 安装newman

newman -v 检查是否安装成功

npm install -g newman-reporter-html 最后一步

(一).基础使用

1.使用postman发送http请求,访问京东网站上”搜索“功能

2.使用postman向网易邮箱的登录接口发送一个密码错误的登录请求。

(二).管理测试用例collections

(三).导入导出用例

(三).断言

使用postman自带的断言机制,判断响应结果与预期是否一致。

1.断言响应状态码:Status code is 200

pm:postman的一个实例

test():postman的一个实例方法,有两个参数:

①“Status code is 200”,断言完成后的提示信息,可修改。

② function () { pm.response.to.have.status(200);}是匿名函数调用,意思是pm的响应状态有一个码值为200。

2.断言响应体是否包含某个字符串:Response body: Contains string

pm.test("Body matches string", function () {

pm.expect(pm.response.text()).to.include("string_you_want_to_search");

});

3.断言响应体是否等于某个字符串:Response body: ls equal to a string

4.断言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();定义一个变量jsonData ,值为json格式的响应体数据

pm.expect(jsonData.value).to.eql(100);pm预期响应结果中xxx(key)的值为xxx

value可替换为:success、code、message、data

to.eql()中的值对应为预期结果:true、"操作成功”...

5.断言响应头:Response headers: Content-Type

四.全局变量和环境变量

全局变量

概念:在postman全局唯一且不可以重复的变量。

设置:pm.globals.set("var_name", value);

获取:

①请求参数(页面)中获取{{var_name}},用来查询参数、请求头、请求体中

②代码中获取:var value = pm.globals.get("var_name");

举例:

var age_tmp = 18;

pm.globals.set("glb_age",age_tmp);

var ret_age = pm.globals.get("glb_age")

环境变量

概念:某个环境中变量不可重复定义,常见的有开发环境、测试环境、生产环境。

设置:pm.environment.set("var_name", value);

获取:

①请求参数(页面)中获取{{var_name}}

②代码中获取:var value = pm.environment.get("var_name");

五.postman请求的前置脚本

1.时间戳

概念:表示当前系统时间。从1970年1月1日00:00:00-现在所经历的秒数

2.请求前置脚本

postman可以在http请求发送之前会自动执行该脚本中的代码,以准备请求发送前的环境和数据。

案例:调用百度首页接口,传时间戳给服务器

步骤:

1.创建“请求前置脚本”用例集和http请求页

2.指定请求方法为GET,百度网址http://www.baidu.com

3.在"Pre-request Script"标签页中写入代码,获取时间戳,写入到全局变量中

4.点击"send"按钮,使"Pre-request Script"标签页中的代码被自动执行,点击小眼睛图标,会发现多出一个全局变量。

5.在URL中借助请求参数使用全局变量。点击发送按钮,发送带有时间戳的请求。

6.点击菜单栏中view->ShowPostman Console中查看

六.postman关联

1.介绍:postman关联可以借助全局变量或环境变量来解决接口和接口之间的依赖问题。

2.实现步骤:

以A接口返回的数据供B接口使用为例

①.组织A接口http请求数据,发送A接口的请求

②.将A接口返回的响应数据存到全局/环境变量中

③.组织B接口http发送数据,从全局/环境变量中获取A接口返回的数据

3.案例:请求查询手机号接口,提取结果中返回的城市,将城市名给百度搜索接口使用。

①.查询手机号的页面以及url:https://api.wetools.com/tool/phoneNumber

②组织A接口http请求数据,发送A接口的请求

//获取响应数据
var jsonData = pm.response.json()
//获取城市名
var city = jsonData.data.detail["所属地区"]
//写入全局变量
pm.globals.set("glb_city", city)

③B接口获取到全局变量城市名,在百度中进行搜索

4.批量执行用例集

iterations:指定迭代次数(执行几次)

delay:用例执行延迟时间

data:导入外部数据文件,实现“参数化”

七.postman测试报告

步骤:

1.先把测试用例集导出

2.在用例集所在目录打开cmd,使用newman生成测试报告的完整命令:

newman run 测试用例集名.json -e 环境变量文件 -d 数据文件 -r html -- reporter-html-export 测试报告名称.html

ps: -e 环境变量文件 -d 数据文件,如果没有可省略

ps:可以复制路径到postman中

①:右键复制路径,选择bash

② 导入到postman中

标签:postman,Postman,接口,响应,var,请求,工具,pm
From: https://blog.csdn.net/w2022009105/article/details/141093372

相关文章

  • 免费好用!用AI做海报太高效了!阿里ModelScope这款AI创意海报生成工具,连专业设计都在用!(附
    大家好,我是程序员X小鹿,前互联网大厂程序员,自由职业2年+,也一名AIGC爱好者,持续分享更多前沿的「AI工具」和「AI副业玩法」,欢迎一起交流~今天是七夕,大家都怎么过呢?(画了张图,送给单身的朋友)今天分享一个免费的、可以快速制作七夕等各种节日海报AI工具——它就是魔搭......
  • Postman小工具大妙用
    目录写在前面基本概念UI基本结构collectionsvariables变量优先级environmentsScriptsCollectionRunnerDataFile运行效果实践技巧接口快速导入导出CollectionRunner如何直接导入json报文如何快速收集失败的case响应报文解密如何展示参考文献写在前面postman大家都会用,但是很......
  • 一款.NET开发的AI无损放大工具
    前言今天大姚给大家分享一款由.NET开源(GPL-3.0license)、基于腾讯ARCLab提供的Real-ESRGAN模型开发的AI无损放大工具:AI-Lossless-Zoomer。Real-ESRGAN模型专注于人像和动漫图片的高质量无损放大。项目功能支持多线程处理、批量图片处理、设置选项、自定义输出格式和自定义......
  • 那年追过的开发者测试工具
    交付进度紧张,为什么还要花费精力写单元测试代码,如下是之前的笔记。写单元测试代码有什么好处为什么程序员讨厌写单元测试代码工欲善其事,必先利其器。使用Java语言交付项目时,需要掌握单元测试框架和Mock工具的使用。如下是当年交付项目过程中,使用过的测试框架和工具,可供参考......
  • Ai小说推文工具,Ai漫画工具AIGC阿祖绘唐3
    AIGC阿祖绘唐3是一款Ai小说推文工具和Ai漫画工具,它由Ai技术驱动,旨在帮助用户创作优质的小说和漫画作品。【绘唐3下载】小说推文批量Ai生成工具https://qvfbz6lhqnd.feishu.cn/wiki/D3YLwmIzmivZ7BkDij6coVcbn7W该工具具有智能创作功能,可以根据用户输入的关键词和情节要求,自......
  • [JVM] 应用诊断工具之java命令
    0序本章对java命令的使用、最佳实践进行全方位的总结。1java命令1.0场景:查看版本方法1#java-versionjavaversion"1.8.0_261"Java(TM)SERuntimeEnvironment(build1.8.0_261-b12)JavaHotSpot(TM)64-BitServerVM(build25.261-b12,mixedmode)方法2......
  • UDP/TCP网络调试助手 NetAssist【调试工具】下载
    链接:https://pan.baidu.com/s/1QgL4XZdKNW39nFe18feBbw?pwd=1122提取码:1122–来自百度网盘超级会员V3的分享接收设置ASCII:以ASCII格式显示接收到的数据。ASCII是一种字符编码标准,用于表示文本数据。HEX:以十六进制格式显示接收到的数据。十六进制显示更适合查看和调试......
  • 太强了,这几个Python效率工具非常好用!
    为了提高效率,我们在平时工作中常会用到一些Python的效率工具,Python作为比较老的编程语言,它可以实现日常工作的各种自动化。为了更便利的开发项目,这里给大家推荐几个Python的效率工具。1、Pandas-用于数据分析Pandas是一个强大的分析结构化数据的工具集;它的使用基础是Numpy(......
  • grep文本处理工具
    bash的特性: 变量 快捷键 命令别名 命令行展开:{},~ 管道 输入、输出重定向 编程 命令行补全 路径补全 1、文本处理命令   字符统计wc:wordcount,wc[options]FILE       -l:只显示行数      -w:只显示单词 ......
  • 软件设计:整合独立函数到工具类与通用类的权衡
    在面向对象编程中,经常会面临是否应该将独立函数整合进工具类或通用类的决策。这个问题涉及到代码组织、维护性以及可扩展性等多个方面。通过将相关的独立函数组织在一起,我们可以提高代码的可读性和可维护性,但同时也可能带来一些潜在的设计挑战。本文旨在探讨在软件设计中整......