一、Postman在工作中使用流程是什么样的?
- 新建集合管理
- 根据接口所属的模块,在集合中不同模块下编写接口测试用例
- 处理接口之间的数据关联操作
- 添加环境变量
- 在tests tab下中增加断言
- 调试接口,确保接口能被正常调用
- 批量运行用例或者导出通过Newman去运行生成html报告
二、你使用过Postman的哪些功能?
-
自动化测试
-
Mock Server
-
请求调试
-
代理抓包
-
环境变量设置
-
用例导入与导出
-
生成在线API文档
三、Postman如何管理测试环境?
可以创建和切换postman里面的environment解决。
1、创建environment
例如创建两个环境environment,测试环境和预发布环境,填好对应的变量名称,初始值initial value和现在的值current value
2、设置environment
根据需要,可在测试环境和预发布环境之间自由切换
ps:environment还可以设置全局变量,作用于Postman所有的文件夹,当“环境变量”和“全局变量”设置同一个变量时,优先走“环境变量”的设置,当环境变量没有设置该变量时,才走全局变量的设置
四、Postman如何实现接口关联?
-
通过正则表达式提取的方式或json取值的方式,提取需要的参数
-
将参数设置为全局变量
-
在后面接口中,使用{{全局变量}}代替要替换的参数值
五、Postman参数化有哪几种方式?
-
环境变量
-
全局变量
-
内置函数
-
pre-scripts编写js脚本
-
Collection 变量
-
批量执行时使用的CSV、txt文本或者Json文件
六、Postman中全局/环境/集合变量的优先级是怎样的?
当变量重名时, 优先级为:环境变量>Collection集合变量>全局变量(Globals)
七、Postman中常见的接口测试断言方法有哪些?
1、断言响应码(最常用)在tests框内输入如下命令 ,验证响应码是否为200
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体时的某个key对应的值
pm.test("Your test name", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.value).to.eql(100);
});
4、断言响应时间(响应时间小于200ms)
pm.test("Response time is less than 200ms", function () { pm.expect(pm.response.responseTime).to.be.below(200);});
八、Postman 自定义变量如何做?
在Pre-request Script中通过JS定义变量,配置成全局变量,所有接口都能使用
九、Postman 你使用过哪些内置变量?
- $randomInt 1至1000之间的随机整数
- $randomUUID 随机的36个字符的UUID
- $timestamp 当前UNIX时间戳(以秒为单位)
- $guid 一个uuid-v4风格GUID
- $randomPassword 随机的15个字符的字母数字密码
- $randomPrice 100.00至999.00之间的随机价格
- $randomWord 随机词
- $randomLoremText 随机数量的文本
十、Postman 如何做持续集成?
-
导出Postman脚本、环境变量、全局变量等到指定的文件夹
-
安装Newman,并执行对应的命令newman run 用例文件路径 -e 环境变量 -g 全局变量 -r生成报告
-
创建Jenkins任务,并配置Newman执行命令
感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取