当前位置:网站首页>Day13 Postman的使用
Day13 Postman的使用
2022-08-04 01:43:00 【lookout99】
系列文章目录
Day01 软件测试基础总结
Day02 测试用例知识点总结(上)
Day03 测试用例知识点总结(下)
Day04 禅道-从安装到卸载
Day05 MySql的基础使用
Day06 MySql知识点总结
Day07 MySql知识点再总结与多表查询
Day08 redis的基础知识
Day08 VMware的安装、Linux系统安装和Linux基础命令
Day09 Linux常用命令总结
Day10 Linux环境部署和项目构建
Day11 shell脚本基础知识
Day12 接口和协议
Day13 Postman的使用
文章目录
目录
前言
Postman是一个接口测试工具,在做接口测试的时候,Postman相当于一个客户端,它可以模拟用户发起的各类HTTP请求,将请求数据发送至服务端,获取对应的响应结果, 从而验证响应中的结果数据是否和预期值相匹配;并确保开发人员能够及时处理接口中的bug,进而保证产品上线之后的稳定性和安全性。
一、Postman的基本操作
1.Collections
相当于目录或者文件夹,用于区分不同项目
2.新建
点击左上角的new,通常新建请求与集合
3.环境选择

可以自动定义需要的变量名和值。
通常情况下,我们共同使用的部分可以存放在全部变量里,调用的时候只需要{ {变量名}}即可

二、简单的测试
1.get请求方式
GET请求:点击Params,输入参数及value,可输入多个,即时显示在URL链接上,
所以,GET请求的请求头与请求参数如在接口文档中无特别声明时,可以不填。

2.post请求方式
POST请求:点击Body,按照拿到值的格式选择输入方式,常用为键值对写入from-data,json写入raw。
使用from-data,可以点击 Bulk Edit 使用json格式写入
三、接口关联
将第一个接口设置断言,拿到返回体内容转成json对象,通过json表达式提取想要的值,将这个值设置全局变量,在第二个接口中使用{ {变量名}}代替,实现接口关联
描述情景:现在有两个接口,查询号码归属地与天气预报,首先我们通过查询手机号码归属地,得到位置信息,天气预报再通过号码归属地所得地址查询当地天气,这便产生关联。

Tests为响应测试,即在响应后执行。手机归属地响应后返回地区位置,通过将数据变为全局变量的方式,使其他接口公共使用。
变为全局变量的方法有两种:
// 返回值转成json对象
var jsondata = pm.response.json()
console.log(jsondata)
// json表达式提取
var doer = jsondata.result.city
console.log(doer)
// 设置全局变量
pm.globals.set("diqu",doer);// 获取响应体的文本内容
var resbody = responseBody;
console.log(resbody);
// 转成json对象
var jsonobj = JSON.parse(responseBody);
// 通过json表达式提取值
var pro = jsonobj.result.city;
pm.globals.set("diqu", pro);

四、cookie与token
情景描述:登录->查询余额

1.基于cookie的身份验证方式
1.用户输入登陆凭据;
2.服务器验证凭据是否正确,并创建会话,然后把会话数据存储在数据库中;
3.具有会话id的cookie被放置在用户浏览器中;
4.在后续请求中,服务器会根据数据库验证会话id,如果验证通过,则继续处理;
5.一旦用户登出,服务端和客户端同时销毁该会话。
登录产生cookie,查余额仍然使用登录时cookie,多次查询cookie不变,登出销毁cookie

2.基于token的身份验证
1.用户输入登陆凭据;
2.服务器验证凭据是否正确,然后返回一个经过签名的token;
3.客户端负责存储token,可以存在local storage,或者cookie中;
4.对服务器的请求带上这个token;
5.服务器对JWT进行解码,如果token有效,则处理该请求;
6.一旦用户登出,客户端销毁token。
登录产生token,查余额需要获取token值才能成功


3.网页查看token方法(Edge)

五、断言
断言用于预期结果和实际结果的对比
Postman提供的快捷方法有这些:
- // 测试返回状态码
pm.test("Status code is 200", function () {
pm.response.to.have.status(200);
});
2.//测试是否包含某个字段
pm.test("Body matches string", function () {
pm.expect(pm.response.text()).to.include("string_you_want_to_search");
});
3.//测试解析json数据
pm.test("Your test name", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.value).to.eql(100);
});
4.//测试是否等于某个字段
pm.test("Body is correct", function () {
pm.response.to.have.body("response_body_string");
});
5.//检查header
pm.test("Content-Type is present", function () {
pm.response.to.have.header("Content-Type");
});
6.//请求时间校验
pm.test("Response time is less than 200ms", function () {
pm.expect(pm.response.responseTime).to.be.below(200);
});
7.//返回值在某个区间
pm.test("Status code name has string", function () {
pm.response.to.have.status("Created");
});
8.//使用json schema 校验结果
var schema = {
"items": {
"type": "boolean"
}
};
var data1 = [true, false];
var data2 = [true, 123];
pm.test('Schema is valid', function() {
pm.expect(tv4.validate(data1, schema)).to.be.true;
pm.expect(tv4.validate(data2, schema)).to.be.true;
});

总结
部分内容,明天还有!
边栏推荐
- IDEA02:配置SQL Server2019数据库
- JS 从零教你手写节流throttle
- 安全至上:落地DevSecOps最佳实践你不得不知道的工具
- Flask Framework Beginner-06-Add, Delete, Modify and Check the Database
- Kubernetes:(十一)KubeSphere的介绍和安装(华丽的篇章)
- 敏捷交付的工程效能治理
- FeatureNotFound( bs4.FeatureNotFound: Couldn't find a tree builder with the features you requested:
- 持续投入商品研发,叮咚买菜赢在了供应链投入上
- Priority_queue element as a pointer, the overloaded operators
- FileNotFoundException: This file can not be opened as a file descriptor; it is probably compressed
猜你喜欢

循环绕过问题

initramfs详解----添加硬盘驱动并访问磁盘

一篇文章看懂JS闭包,从执行上下文角度解析有趣的闭包

Continuing to invest in product research and development, Dingdong Maicai wins in supply chain investment

一个注解替换synchronized关键字:分布式场景下实现方法加锁

this巩固训练,从两道执行题加深理解闭包与箭头函数中的this

html select标签赋值数据库查询结果

JS 保姆级贴心,从零教你手写实现一个防抖debounce方法

5.scrapy中间件&分布式爬虫

esp32 releases robot battery voltage to ros2 (micro-ros+CoCube)
随机推荐
pygame 中的transform模块
FileNotFoundException: This file can not be opened as a file descriptor; it is probably compressed
KunlunBase 1.0 发布了!
esp32发布机器人电池电压到ros2(micro-ros+CoCube)
SAP SD模块前台操作
Please refer to dump files (if any exist) [date].dump, [date]-jvmRun[N].dump and [date].dumpstream.
SAP SD module foreground operation
sql有关问题,小时粒度,找到前一个小时内的数据
splice随机添加和删除的写法
Summary of GNSS Articles
Simple sorting (summer vacation daily question 14)
计算首屏时间
Snake game bug analysis and function expansion
如何通过API接口从淘宝(或天猫店)复制宝贝到拼多多接口代码对接教程
一个注解替换synchronized关键字:分布式场景下实现方法加锁
nodejs installation and environment configuration
Sky map coordinate system to Gaode coordinate system WGS84 to GCJ02
企业虚拟偶像产生了实质性的价值效益
Web APIs BOM - operating browser: swiper plug-in
静态文件快速建站