Postman在软件测试的面试中,可以说是必考题了,既然是高频考题,当然得为粉丝宝宝们整理一波题库喽~
一、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 你使用过哪些内置变量?
randomUUID 随机的36个字符的UUID
guid 一个uuid-v4风格GUID
randomPrice 100.00至999.00之间的随机价格
randomLoremText 随机数量的文本
十、Postman 如何做持续集成?
导出Postman脚本、环境变量、全局变量等到指定的文件夹
安装Newman,并执行对应的命令newman run 用例文件路径 -e 环境变量 -g 全局变量 -r生成报告
创建Jenkins任务,并配置Newman执行命令