【Web接口测试_Postman接口工具】Google_postman接口测试工具的入门和进阶笔记整理

本文详细介绍Postman工具的基础操作及高级功能,包括RESTful API测试、自动化测试、抓包技巧和环境变量设置,适用于初学者及希望提升技能的测试工程师。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【postman的入门】

1.1 工具的应用:目前大部分系统都是部分遵循了REST的风格规范,也可简称为REST full系统。

REST full系统,主要是基于HTTP的CRUD?(增删查改)的操作,分别使用了HTTP协议的POST、GET、UPDATE、DELETE方法的请求。

 

1.2 工具的组成:

①顶部Headerbar工具栏。

②左边的sidebar请求侧边栏:主要分为History历史标签(默认)和Collections集合标签(便于管理)。

③右边的Request Builder请求构建和解析栏:主要用于管理API请求详情的,模拟HTTP请求的构建和查看服务器响应内容解析的。

 

1.3 流程:

我们输入url地址,选择Method(请求方法)和Headers(请求头)和消息体,点击发送。

Postman就发出请求给百度网站服务器,百度网站服务器随后接到请求就响应了这个请求,给我们返回响应信息。Postman接收到响应信息后,显示出消息的结构,展示给我们看。

 

1.4 拆解URL:

http://www.baidu.com/?action=list_course&pagenum=1&pagesize=20

?后面的内容,专业术语叫“query string“。

&分隔符,表示每一个单独的参数。

/请求行里面的url地址如果是“/”,表示根目录

 

1.5 注意事项:

①参数转义处理:如果参数中带有特殊字符,比如&、空格、百分号等,鼠标移动到参数值,右键选择“encodeURIcomponent”,替换成相应的转义字符。

②content-type(必填项,请求域):请求头里面的该字段,表示发送请求的消息体的类型,接口参数填写时需要根据type类型,选择在哪个模块(form-data、x-www-urlencoded、raw-jason或者raw-XML、binary)下填写参数。

③生成测试用例文档:选择左侧请求的folder目录,写好备注,点击右键,选中“publish docs”,生成文档。

 

1.6 接口用例。

测试方法:等价类、边界值、条件组合、错误猜测等方法。

模块名称:比如添加课程

Case编号:TestCase_001

测试步骤:

1.使用postman工具,调用创建课程API接口,新增一门课程,课程名称不存在。

2.使用postman工具,调用列出课程API,查看最新课程列表。

预期结果:

1.返回创建成功,code:0,massage:创建成功。

2.返回结果包含新赠的课程信息。

执行测试时:

1.调用查看课程清单API,查看老的课程列表。

2.调用创建课程API,新增一门课程。

3.再次调用查看课程清单API,查看新的课程列表。

 

Case课程:TestCase_002

测试步骤:同上。修改条件(课程名称已存在)

预期结果:

1.返回创建失败,消息体内容为{”recode“:2,”reason“:”同名课程已经存在“}

2.返回结果中,没有步骤1新增的课程信息。

 

1.7 测试环境和变量。

定义:{{变量名称}},变量就是一个字符串标识符,用来对于一个多次出现的值。

分为:全局变量和部分变量。

场景:

比如测试环境的服务器地址、端口号,内外测不一致,可以单独设置一个变量当前环境使用。

 

 

【接口工具使用】

2. postman抓包

流程:

①postman,点击右上角的卫星图标,让其高亮显示,记录端口号,选择history历史标签。

②postman,配置falter的过滤条件,比如填入/api,可以只抓取api接口请求,点击确定。(这里容易报警,请关闭防火墙或者360警告)

③火狐浏览器,安装浏览器插件foxyproxy,设置代理地址为postman的代理监听地址和端口。

 

 

6.postman自动化方法

①利用postman自带的js代码执行沙盒:Pre-request Script标签、Tests断言标签

请求:比如发送请求之前,设置发送消息的代码,产生随机数字、或者填入当前日期时间到参数中。

响应:接收到响应后,编写代码判断,某个字段是否存在、某个值是否正确、接收数据是否正确等。

比如:设置全局变量环境代码:postman.setEnvironmentvariable('timestampHeader',new Date());

解释:所有用到{{timestampheader}}变量的地方,都自动使用当前时间,函数为new date()。

执行顺序:执行Pre-request脚本→发送request请求→接收response响应信息→执行Test脚本。

优点:方便快捷,解决日常接口测试,可以使用此方法。

②利用postman生成其他编程语言代码:

 

请求和响应:使用requests库的python代码,直接发送相应的HTTP请求消息,并对消息加入python动态的数值,并且检验接收的响应消息。

优点:完全自动化,方法1明显不够定制化需求,需要开发一些其他功能配合使用,比如与测试用例管理系统的集成,和持续集成系统的融合,执行自动化时的环境初始化数据清除等。

比如:如果熟悉python语言的requests库的发送请求和解析响应的方法,不用postman,可以通过python直接写代码完成自动化测试,缺点就是时间周期较长。

***代码导出:

右上角的Code按钮,可以以各种代码形式导出已经构建成功的collection、folder和API请求。

注意的事情,导出后的代码,如果import requests库,需要在python环境安装对应的库才可以使用。

【进阶沙箱1】

//获取当前时间,并设置环境变量
eval(globals.format_time);
pm.globals.set("timeNow",timeNow);
console.log(timeNow)

【进阶沙箱2】

//获取当前时间,并设置环境变量 
eval(globals.format_time); 
pm.globals.set("timeNow",timeNow);

//获取当前时间到时分秒
var dateNow = pm.globals.get("timeNow");

//切割当前时间,获取年月日,不要时分秒(8位)
var date = dateNow.split(" ")[0].split("-")[0]+
dateNow.split(" ")[0].split("-")[1]+dateNow.split(" ")[0].split("-")[2];

//切割当前时间,获取时分秒,不要年月日(6位)
var time = dateNow.split(" ")[1].split(":")[0]+
dateNow.split(" ")[1].split(":")[1]+dateNow.split(" ")[1].split(":")[2];

//切割当前时间,获取年月日+固定时分秒
var datetime = dateNow.split(" ")[0]+" 23:59:59";

//设置环境变量开始时间和结束时间
pm.globals.set("date",date);pm.globals.set("time",time);pm.globals.set("datetime",datetime);
console.log(timeNow);console.log(date);console.log(time);console.log(datetime);

沙箱部分,详细用法参考地址:https://www.jb51.net/article/159886.htm

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值