当前位置:网站首页>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;
});
总结
部分内容,明天还有!
边栏推荐
- html select tag assignment database query result
- Please refer to dump files (if any exist) [date].dump, [date]-jvmRun[N].dump and [date].dumpstream.
- FeatureNotFound( bs4.FeatureNotFound: Couldn‘t find a tree builder with the features you requested:
- GNSS文章汇总
- halcon自定义函数基本操作
- Continuing to invest in product research and development, Dingdong Maicai wins in supply chain investment
- C 学生管理系统_分析
- JS 从零教你手写节流throttle
- Continuing to pour money into commodities research and development, the ding-dong buy vegetables in win into the supply chain
- 持续投入商品研发,叮咚买菜赢在了供应链投入上
猜你喜欢
随机推荐
nodejs install multi-version version switching
Flink jdbc connector 源码改造sink之 clickhouse多节点轮询写与性能分析
2022年上半年各大厂Android面试题整理及答案解析(持续更新中......)
Continuing to pour money into commodities research and development, the ding-dong buy vegetables in win into the supply chain
TensoFlow学习记录(二):基础操作
C 学生管理系统_分析
【store商城项目01】环境准备以及测试
网页三维虚拟展厅为接入元宇宙平台做基础
在Activity中获取另一个XML文件的控件
boot issue
SAP SD模块前台操作
FeatureNotFound( bs4.FeatureNotFound: Couldn't find a tree builder with the features you requested:
Promise solves blocking synchronization and turns asynchronous into synchronous
观察者模式
What is SVN (Subversion)?
Variable string
flask框架初学-06-对数据库的增删改查
nodejs installation and environment configuration
有没有jdbc 链接优炫数据库文档及示例?
Example 040: Reverse List