Postman学习摘抄笔记
Postman学习笔记
时间:2021/10/6
学习资料:
Postman使用详解
一、Get 请求
点击Params,可输入value;请求头和请求参数也可不填。
Get响应框右上角显示HTTP状态码及请求耗时。
注意区别响应正文状态码与HTTP状态码。
二、Post 请求
需填写请求方法、请求URL、请求参数。
请求头与请求参数格式相关。
POST请求:二进制文件提交
Body下,选择binary,在这里你可以发送视频、音频、文本等文件。
三、Postman断言
示例:
1、判断HTTP返回状态码为200
2、判断响应正文中是否包含:"statusCode":200
3、解析响应正文,并判断statusCode的值是200,message的值是”Success
第一步:在SNIPPETS中,往下拉,有一项”Status code:Code is 200”,这个就是为场景中的第 1 条准备的,判断HTTP返回状态码是否为200。点击这一项,可以看到在其左边,断言代码自动添加,见下图:
解释一下这句代码的意思:
tests["Status code is 200"]中的tests是一个内置对象,tests["Status code is 200"]是指为这个断言起个名称叫”Status code is 200”,这个名称可以自行修改。
responseCode.code === 200中的responseCode是内置对象,responseCode对象中有个属性是code,是指HTTP状态码的code,判断code是否为200.
综合起来,这句代码的意思是:名称为”Status code is 200”的断言中,判断responseCode对象的code属性值(HTTP状态码)是否为200。
第二步:同样在SNIPPETS中,找到一项”Response body:Contains string”,这个就是为场景中的第2条准备的,判断响应正文中的字段。点击后,在其左边,断言代码自动添加,见下图:
第三步:我们需要解析JSON串了,所以,在SNIPPETS中找到”Response body:JSON value check”并点击,在其左边,断言代码自动添加,见下图:
tests["response statusCode"] = jsonData.statusCode === 200; //判断statusCode的值是200
tests["response message"] = jsonData.message === 'Success'; //判断message的值是”Success”
Final
这样一来,我们可以看到一共有Tests的断言4个,点击Send,发送请求,在响应区内可以看到如下图:表示断言全部通过。
四、管理用例---Collections
Collections集合:也就是将多个接口请求可以放在一起,并管理起来。
第一步:创建Collections
第二步:在Collections里添加请求
在右侧准备好接口请求的所有数据,并验证后,点击save按钮。
第三步:Collection精细化---Folder
接下来,只需要把相同场景的请求拖入相同的Folder即可,这样就实现了模块化的管理了。
第四步:运行Collection
第五步:Collection运行参数化
在Iterations重复运行时,如果某个用例希望每次运行时,使用不同的数据,那么应该满足如下2个条件:
1、脚本中要用到数据的地方参数化,即用一个变量来代替,每次运行时,重新获取当前的运行数据。
2、需要有一个数据池,这个数据池里的数据条数,要与重复运行的次数相同。
为了表示两条数据,这个json应该是一个list结构(如下图),同时,由于脚本要用到数据的地方需要参数化,需要变量,所以,每一条数据应该就是一个map,map的key对应脚本中的变量。
一个msg的变量,每次运行对应不同的值,预示着在脚本中可以用到msg这个变量,那在脚本中如何用?
五、设置环境变量
有时需要在不同的环境下跑相同的测试,此时可以通过设置环境变量来动态选择。
设置:
填写环境变量名称及key/value
使用:
使用这些键值的时候只需要加上两个花括号引用key,例如: {{url_base}}/admin/offer/
引用key
建立多个环境时,key通常都是相同的,只是value不同。创建好所有环境后,在跑用例的时候在右上角下拉列表选择需要的环境就可以了。
五、生成自动化代码---Codes
点击右侧边栏<>(老版postman有 Codes 按钮)可生成任意语言的自动化代码,例如C# 代码(基于restsharp库)。如果代码语法版本过老,可适当调整。
总结
postman竟然如此之强大!我们还有什么理由去拒绝?介绍完之后,可能新的问题又来了,如何与jenkins结合实现持续集成?
所以,可以使用newman,作为命令行运行postman请求。