【postman进阶之路】
1接口测试的必要条件
要先想进行接口测试,就必须掌握以下几个内容:
(1)请求地址
(2)请求协议
(3)请求方式
(4)请求头
(5)请求参数
ps:公司没有接口文档也并非完全没办法测试接口,仍然可以通过抓包工具获取,但要想测试接口,还是需要上述的必要条件。
2常见请求与传参
常见请求方式主要为GET请求与POST请求,常见的传参格式为请求体提交与表单提交
3接口演示
4接口collection集合讲解
collection集合在接口测试中显得尤为重要,最重要的功能就是集合请求,将个别请求进行分组处理,这些请求可以进一步组织成文件夹,创建集合的好处主要有以下几点:
统一化: 将对应的请求集合在一个文件夹下,以便统一化的执行、调用、修改等
文档 : 增删改查文件夹的内容,可以备注
测试套件: 将测试脚本附加到请求并构建集成测试套件
条件工作流程: 脚本可以在API请求之间传递数据,并构建反馈实际用例API的工作流。
点击Postman左侧的集合创建按钮(+号),则可进行集合创建:
我们可以通过右键新创建的合集进行名称修改,右键集合名 → Rename:
右键集合后我们可以新建下一个层级,点击Add Folder
我们可以在文件夹下新建一个请求,这样这个请求就隶属于这个合集下对应文件夹,右键文件夹或总合集,点击Add Request新建请求
可以直接在下图红框处修改名称,也可以直接右键重命名,方式与集合一致
通常而言接口地址为固定地址,修改的只需要是模块名称,但每次新建又会很麻烦,可以右击请求title,并选择Duplicate Tab 来复制一个请求,在复制的基础上进行修改,,需要提前将复制出的接口保存到文件夹下(复制是完全复制前一个请求接口所填写的信息)
复制完成后能看到名称也是一致的,并会有橘色提醒,即代表着未进行保存,快捷键ctrl+s可进行保存,也可以通过点击Save进行保存
5
接口collection集合执行
collection集合执行顾名思义是将集合下的所有请求统一执行,点击集合右侧的三个点,再次选择Run collection:
打开后会展示如下界面:(图中只有一个请求,举例子,目的是让大家清楚工具使用,真实测试时有多个请求即可)
►►►
设置变量
1collection集合变量设置
接口collection变量可以理解成集合专用变量,则在集合下可使用的全局变量,在对应的请求中调用对应变量,则可以使用全集合专用变量,当collection集合变量修改时,对应调用请求的变量也会一同修改,选择3个点,选择Edit打开界面:
ps:变量则是让接口与接口之间存在关联性的联系,例如注册某网站,那么注册与登录必定是使用同一个用户名进行登录,那么在用户名这里,两个变量则是相同变量,此时我们就可以使用collection集合变量进行设置并调用
选择Variables后进行一个变量的设置,设置完成后进入单个请求中进行调用
将原变量替换掉,使用两个花括号进行变量的调用,这里格外需要注意的是集合修改后务必需要保存,保存后才能够调用到变量,否则会默认当成保存前的数据
2全局变量设置
全局变量可针对集合、某个接口进行的变量设置,在任何情况下不受到特定环境因素的影响下,也同样可以使用全局变量,全局变量针对所有集合、接口生效,点击任意一个请求,在界面最右侧点击眼睛的图标:
点击后会展开一个下拉界面,Globals则是全局变量,点击该界面右侧的Add进行全局变量的设置:
点击Add后会打开Globals窗口,进行变量设置(特别需要了解的是集合中的变量名称不能与全局变量名称一致,要时刻注意,设置完成后在传参处调用即可,调用方式同collection集合调用):
3环境变量设置
环境变量是与集合类似,环境变量只能在特定的环境下使用,例如测试环境、正式环境等,在测试环境中的变量则不能用于正式环境,环境中的变量是独立的,查找的方式与全局变量方式一致,点击眼睛图标,找到环境变量后,点击Add,进入到界面后可以设置一个新的变量,最后进行调用,调用同collection集合方式:
这里设置了2个环境变量,分别是测试环境与正式环境,正式环境与测试环境的变量是独立的,使用方式仍然与集合变量的方式一样,使用两个花括号并填写变量名即可(下面的URL是演示使用,大家用自己的接口地址即可)
在右侧这里默认是No Environment,没有环境变量,我们自己设置好环境变量后,可以自主的选择环境,例如正式环境,而后修改对应的内容为环境变量即可
4Tests设置变量
通过Tests,将接口的返回结果取出后设置为对应的变量,后续的相关接口就可以通过变量值进行接口关联,图中的例子是取token值,取出后选择好对应的环境变量并点击send,在小“眼睛”处可以查看到对应的token信息:
5接口Tests断言
Tests属于Postman内置的强大断言功能,可以通过内置的脚本直接进行调用,不需要过多的学习JavaScript的内容,非常方便且对新手友好,常见Tests响应断言的几种方式:
1、Response body:Contains string (校验返回结果中是否包含某个字符串)
2、Response body:Is equal to a string (校验返回结果是否等于该字符串)
3、Response body:JSON value check (校验返回结果中某个字段值是否等于某个值)
4、Response header:Content-type header check(检查响应头是否包含某个值)
5、Response time is less than 200ms (检查响应时间是否少于200ms)
6、Status code:Code is 200(检查状态码是否为200)
我们也可以选择Tests后在右侧看到相关的说明,点击后会直接在Tests中生成内容,具体的用法,大家可以百度自行查询,这里有很多相关的Tests断言,不逐一讲解:
6接口参数化
在接口测试时,部分请求参数都是重复的,那么我们就可以使用接口参数化,接口参数化可以很大程度上减少重复工作时间,常用的接口参数化有三种方式:csv、txt、json文档参数化(本次以txt进行举例):
1、举例前需要一个必要的前置条件,接口参数化必须在集合中进行操作,故此我们需要先创建个集合并把相关接口放置集合中(上面有提到如何创建集合以及把接口放置对应集合下,这里省略图片~)
2、在本地可以创建个对应的txt文档,参数间隔使用英文逗号:
3、关闭txt文档上传txt,点击按钮后,选择对应的文本文档并点击打开按钮上传:
4、上传文档后选择txt文本格式,点击右侧的Preview可以进行预览,一切安排好后,点击Run即可(效果类似上面的集合执行结果,这里不在放图说明了,小伙伴们快自己尝试一下吧~):
7接口随机数
在日常的接口测试、自动化接口测试时会出现大量的重复参数,即对同一个不允许重复的参数进行传参时,可以确保参数内容不重复,最典型的例子就是注册,注册的手机号在第一次注册时为注册成功,如果第二次使用同一个手机号,势必会提示手机号已注册,在这类场景下,我们需要使用接口随机数以确保参数不重复,随机数主要有以下3个方式:
{{$guid}}:添加一个v4风格GUID
{{$timestamp}}:将当前的时间戳,精确到秒、毫秒时,后面增加000即可(执行结果也是个随机数,这里就不放图撩~)
{{$randomInt}}:随机整数,添加0到1000之间的随机整数
效果大同小异,输出的结果例如:“ename”:“CSDNmengxiaotian156”
8Monitor监视器
Monitor监视器是Postman内置的监控模块,作用类似于Jinkens,可以设置按照分钟、小时、周等单位进行监控且在接口出现错误的情况下可以设置邮件通知(最多支持5个),非常重要且强大的功能(用过的都说好,手动滑稽)
Monitor也必须要依赖集合运行,所以小伙伴们在测试的时候还需要有个集合,日常集合3个点,选择Monitor,然后:
注:上文内容不用于商业目的,如涉及知识产权问题,请权利人后台留言联系小檬,我们将立即处理。
本文来自CSDN,作者:萌笑天,已获得授权
【postman进阶之路】相关推荐
- 2023最新软件测试学习思维导图(从小白到大师进阶之路)
如下是我工作之余熬夜整理的软件测试学习思维导图,通过回顾多年的从业经验,总结提炼出来的一些东西,希望能对大家有些帮助,特别是刚入门软件测试行业或将要加入软件测试行业的同学,可以认真看一下,可以作为参考 ...
- 一个java高级工程师的进阶之路【转】
一个java高级工程师的进阶之路[转] 宏观方面 一. JAVA.要想成为JAVA(高级)工程师肯定要学习JAVA.一般的程序员或许只需知道一些JAVA的语法结构就可以应付了.但要成为JAVA(高级) ...
- python处理pdf实例_Python实战-从菜鸟到大牛的进阶之路pdf_Python教程
资源名称:Python实战-从菜鸟到大牛的进阶之路 pdf 第1章 Python 处理 cassandra 升级后的回滚脚本 第 2 章 多套方案来提高 python web 框架的并发处理能力 第 ...
- 机器人建模中移动关节如何建立坐标系_机器人工程师进阶之路(八)指数积(PoE)建立机械臂模型及正运动...
梁政:机器人工程师进阶之路(六)旋量法(上)zhuanlan.zhihu.com 梁政:机器人工程师进阶之路(七)旋量法(下)zhuanlan.zhihu.com 从上两篇我们可以了解到,利用旋量 ...
- Scala进阶之路-正则表达式案例
Scala进阶之路-正则表达式案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 废话不多说,正则大家都很清楚,那在Scala如何使用正则了?我们直接上个案例,如下: 1 /* 2 ...
- Python 进阶之路 (九) 再立Flag, 社区最全的itertools深度解析(上)
前言 大家好,今天想和大家分享一下我的itertools学习体验及心得,itertools是一个Python的自带库,内含多种非常实用的方法,我简单学习了一下,发现可以大大提升工作效率,在sf社区内没 ...
- 工程师进阶之路(二)
转载自 量子恒道官方博客 地址:http://blog.linezing.com 工程师进阶之路 二 谈谈沟通能力--沟通的准则 如果一名工程师要成长为资深专家或者是架构师或者是技术管理者,沟通是必 ...
- Scala进阶之路-面向对象编程之类的成员详解
Scala进阶之路-面向对象编程之类的成员详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Scala中的object对象及apply方法 1>.scala 单例对象 ...
- Python 进阶之路 (十二) 尾声即是开始
Python进阶之路总结 大家好,我的<< Python进阶之路>>到这一期就到此为止了,和 <<Python 基础起步>>不同,在掌握了一些基础知识后 ...
最新文章
- 芯盾时代:致力于身份认证安全的领军者
- PTP NTP kernel 驱动讲解 (未完待续)
- tkinter项目实战_Python GUI项目实战(二)主窗体的界面设计与实现
- 哪里可以找到python的免费教程-哪里有免费的python3教程啊?最好是有例子的视频教学...
- 许式伟:毕业两年成为首席架构师,我的技术学习方法论
- sqlserver安装教程
- python判断字典,列表,元组为空的方法。
- spring cloud 调用接口间歇性返回http 500 - Internal Server Error的错误
- 如何用c#打开文件夹并选择文件夹内的一个文件 open folder and select file
- MyEclipse中使用Junit插件进行单元测试
- adb命令安装apk
- Smarty中文手册
- 爱普生R230打印机故障大全
- php 内存设置无效,内存位置访问无效_php提示 内存位置访问无效 解决方法总结...
- 备案修改域名服务器DNS,免备案域名的DNS改到dnspod教程详解
- Ingenuous Cubrency UVA 11137
- 学堂在线笔记——前端与后台的故事——SQL语言及其编程
- Bug解决-RuntimeError: Sizes of tensors must match except in dimension 2. Got 320 and 160 (The offendin
- rfid射频前端的主要组成部分有_RFID复习题目
- 深入分析一个经典的单片机供电电路
热门文章
- 【Unity3D插件】KGFMapSystem插件分享《快速制作小地图插件》
- shell怎么使用制表符_shell中vi替换特殊字符(制表符\t等)的方法
- 百度之星2017资格赛 1003 度度熊与邪恶大魔王 完全背包
- [MySQL数据库]-基础多表练习题---员工工资
- 孢子气囊 tkinter控制台
- 任正非演讲系列之——华为的冬天
- 第3关:包装类与字符串之间的转换
- 超导计算机国防科技大学,超导材料的性能与应用综述
- android 读取各分区大小,Android8 分区表变化和相关信息
- JavaScript、jQuery、HTML5、Node.js实例大全-读书笔记2