当前位置:网站首页>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;
});
总结
部分内容,明天还有!
边栏推荐
猜你喜欢
《Greenplum构建实时数据仓库实践》简介
nodejs installation and environment configuration
html select标签赋值数据库查询结果
通用的测试用例编写大全(登录测试/web测试等)
持续投入商品研发,叮咚买菜赢在了供应链投入上
idea中diagram使用
Continuing to invest in product research and development, Dingdong Maicai wins in supply chain investment
esp32发布机器人电池电压到ros2(micro-ros+CoCube)
Example 035: Setting the output color
flask框架初学-06-对数据库的增删改查
随机推荐
哎,又跟HR在小群吵了一架!
Analysis of usage scenarios of mutex, read-write lock, spin lock, and atomic operation instructions xaddl and cmpxchg
MongoDB数据接入实践
安全至上:落地DevSecOps最佳实践你不得不知道的工具
JS 保姆级贴心,从零教你手写实现一个防抖debounce方法
【正则表达式】笔记
Summary of GNSS Articles
Is there any jdbc link to Youxuan database documentation and examples?
esp32 releases robot battery voltage to ros2 (micro-ros+CoCube)
Slipper —— 虚点,最短路
TensoFlow学习记录(二):基础操作
Continuing to invest in product research and development, Dingdong Maicai wins in supply chain investment
Continuing to invest in product research and development, Dingdong Maicai wins in supply chain investment
多线程 之 JUC 学习篇章一 创建多线程的步骤
循环绕过问题
GNSS【0】- 专题
C 学生管理系统_添加学生
多渠道打包
idea中diagram使用
Please refer to dump files (if any exist) [date].dump, [date]-jvmRun[N].dump and [date].dumpstream.