当前位置:网站首页>Postman 中级使用教程【环境变量、测试脚本、断言、接口文档等】
Postman 中级使用教程【环境变量、测试脚本、断言、接口文档等】
2022-07-06 09:17:00 【阿杆.】
Postman
首先介绍一个转中文版的方式,GitHub链接:https://github.com/hlmd/Postman-cn
前言
本文为postman中级使用教程,适合有一定的postman基础的小伙伴阅读,如果没有使用过postman或者类似软件,阅读本文可能会有不适。
环境变量
新建环境变量
定义好的全局变量和环境变量,可以在接口中进行引用。
新增环境时你可以点击左上角那个加号,然后在环境中添加你要用到的公共变量。
这个功能一般用于像 url前缀
这种很多地方都会重复使用的变量。
引用方法为两个花括号中间放你要引用的变量,例如:{ {url}}
比如像这样:
当然如果你需要在多个环境下进行切换的话,也不需要总是去修改 url 的值,你可以多建几个环境变量,然后在右上角进行快速切换:
切换环境变量
点击小眼睛可以看到你当前正在使用的环境中有哪些变量:
接口关联
实际上也是利用全局变量
编写测试脚本
预请求脚本和测试脚本都可以写js代码,他们的区别是,预请求脚本是在发送请求之前运行的,而测试脚本是在发送完毕后运行的。
在测试脚本中获取数据并设置为全局变量,例如登录时得到的token:
var result = postman.getResponseHeader("token");
console.log(result);
pm.globals.set("token", result);
这样设置得到的全局变量token就可以被用于其他接口上,使用 { {token}}
来引用变量。
当然,也可以使用正则表达式来获取变量,就跟用js写正则一样,这里不过多介绍。
动态参数
内置动态参数
- { {$timestamp}} 生成当前时间的时间戳
- { {$randomint}} 生成0-1000之间随机数
- { {$guid}} 生成速记GUID字符串
自定义动态参数
在预请求脚本中通过js代码来设置变量,使用时使用 { {times}} 来获取变量,和接口关联中编写的测试脚本差不多。
var times = Date.now();
pm.globals.set("times", times);
获取全局变量的方式:
pm.globals.get("token", result);
global["token"];
global.token;
断言
可以使用断言来判断请求是否成功,用做自动化测试。
postman支持多种断言方式,在测试脚本的右侧可以看到,点击蓝色的字可以直接获取到代码:
下面列举几条常用的:
pm.test("Status code is 200", function () {
pm.response.to.have.status(200);
});
pm.test("Body matches string", function () {
pm.expect(pm.response.text()).to.include("string_you_want_to_search");
});
pm.test("Your test name", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.value).to.eql(100);
});
pm.test("Body is correct", function () {
pm.response.to.have.body("response_body_string");
});
MokeService
创建模拟服务器。在后端接口还没有开发完毕之前,前端想要调用接口,可以先使用postman提供的模拟服务器功能。
创建一个模拟服务器,只需要设置请求名,postman会自动生成一个url提供给你临时使用,该url可以直接使用外网进行访问,但返回的数据是固定的,不过给前端临时使用是足够的。
编写接口文档
在每个接口的右侧都有一个文档的按钮,点击即可对当前接口编辑说明:
测试的接口和编写好的文档可以直接生成文档,在集合的选项里可以查看到:
然后文档的右上角有一个发布的按钮,点击发布好像可以生成在线文档,但是我还没有用过。
保存测试示例
发送完成的请求,可以将请求结果保存起来,提供给其他人参考。
保存好了示例会显示在左侧集合中,被放在该接口下。
结语
以上内容只讲述了大概的使用方法,具体操作大家还是需要自己去动手使用才好,如果本文对你有所帮助,欢迎点赞收藏。
边栏推荐
- AMBA、AHB、APB、AXI的理解
- Detailed explanation of 5g working principle (explanation & illustration)
- Togglebutton realizes the effect of switching lights
- gcc 编译选项
- Pytorch实现简单线性回归Demo
- ESP learning problem record
- 基於Redis的分布式ID生成器
- A possible cause and solution of "stuck" main thread of RT thread
- map文件粗略分析
- js题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。
猜你喜欢
C language callback function [C language]
Cannot change version of project facet Dynamic Web Module to 2.3.
Basic operations of databases and tables ----- classification of data
RT-Thread的main线程“卡死”的一种可能原因及解决方案
Reno7 60W super flash charging architecture
JS数组常用方法的分类、理解和运用
Kaggle competition two Sigma connect: rental listing inquiries
基于Redis的分布式ID生成器
高通&MTK&麒麟 手机平台USB3.0方案对比
Apprentissage automatique - - régression linéaire (sklearn)
随机推荐
Time slice polling scheduling of RT thread threads
VIM command line notes
Kaggle竞赛-Two Sigma Connect: Rental Listing Inquiries(XGBoost)
JS数组常用方法的分类、理解和运用
OSPF message details - LSA overview
C语言函数之可变参数原理:va_start、va_arg及va_end
A possible cause and solution of "stuck" main thread of RT thread
C language callback function [C language]
E-commerce data analysis -- salary prediction (linear regression)
Machine learning -- linear regression (sklearn)
Arduino uno R3 register writing method (1) -- pin level state change
Types de variables JS et transformations de type communes
Kaggle competition two Sigma connect: rental listing inquiries
FreeRTOS 任务函数里面的死循环
Selective sorting and bubble sorting [C language]
The dolphin scheduler remotely executes shell scripts through the expect command
ESP8266通过Arduino IDE连接Onenet云平台(MQTT)
Several declarations about pointers [C language]
关键字 inline (内联函数)用法解析【C语言】
Kconfig Kbuild