在日常测试中经常遇到需求涉及到多个系统,往往因为个别系统进度不一,从而无法进行整体系统功能测试,此时我们就需要“mock”来模拟接口数据来进行测试,实现测试左移。
通过postman的collection合集将相同类型,或同流程下需要mock的接口请求保存下来实时调用。
除此,也可设置全局变量来存储不同测试环境地址,直接运行collection内的接口请求时就直接切换变量,以此达到切换测试环境目的。
01初始化接口请求
先将接口请求地址URL设置成变量:
变量node_name:设置为环境变量或者全局变量
断言Tests:在Tests Tab页添加两个断言,断言状态码200,另一个断言响应数据name字段=变量node_name的值
02接口请求保存至collection集合中
1、点Save保存按钮
2、填写请求名称以及请求描述
3、创建一个新Collection集合文件夹并命名
4、创建后选择该Collection,点击保存按钮Save to collection_name进行保存
Collection集合保存成功后,可查看到该请求集合,如下图:
03Run collection
一、运行弹窗
运行弹窗页面设置项:
Iterations:迭代运行次数
Delay:每迭代运行的间隔时间,一般情况都为0ms
Log response :选择请求日志保存范围,一般情况都选择打印集合请求过程所有日志 For all requests
Data:选择测试数据文件
二、变量选择
2.1 变量使用环境变量时运行
对应Tests断言下node_name要设为获取环境变量
运行Collection时Environment选择production环境变量
运行结果:查看运行结果Run Results,运行结果两个断言均通过
2.2 变量使用全局变量时运行
对应的Tests断言内下node_name要设置成获取全局变量
运行Collection时Environment则选择No Environment(此时默认使用全局变量node_name=php)
查看运行结果:
三、数据data驱动测试
Data数据文件有json、csv、txt三种常用格式,一般情况我们选择json
json数据文件样式:
格式:[{“变量名1”:” 变量名1的值”},{“变量名2”:” 变量名2的值”}]
文件格式:文件名.json
此时运行Collection时Environment选择No Environment,接着选择data文件。
然后是运行结果
总结:
断言部分和 Postman 隔离的,在断言中不能直接获取 Postman 中的变量值,否则运行时会提示变量未定义,我们使用pm.environment.get("变量")、pm.globals.get("变量 ")、data["变量"]来获取Postman中的变量值
04常见错误
1、变量未定义:
选择data数据执行测试时,Tests断言要记得从Postman的data数据内获取,语法格式:
变量名=data[“测试数据文件内的变量名称”]
否则会出现由于node_name未定义而运行失败的情况;
2、变量获取错误
Tests断言使用从Postman的环境变量取值,而运行Collection时Environment选择No Environment(使用全局变量),导致变量值与实际运行结果不一致,运行结果FAIL
上一条:postman什么工具
下一条:GraphPad Prism 如何升级