只会postman单接口测试?这些高级功能你必须掌握

01 前言

在日常测试过程中,经常遇到需求涉及到多个系统,但是其他系统进度减慢无法进行测试,此时就需要“mock”,也就是模拟接口数据来达到测试的目的。通过postman的collection,可以将相同类型或者同一个流程下的需要mock的接口请求保存下来,以便实时调用。

另外,可以设置一个全局变量来存储不同测试环境地址,那么在需要的时候,直接在run运行collection内的接口请求时,可直接切换变量来达到切换环境的目的。

02 初始化接口请求

接口请求地址已设置好变量:

变量node_name:已设置环境变量和全局变量

断言:在tests编辑两个断言,一个是状态码200,一个是响应数据的name字段=变量node_name的值

03 接口请求保存到collection里面

1、点击save按钮,打开保存页面

2、编辑请求的名称和描述

3、创建新的collection文件夹(也可以选择已有的文件夹)

4、创建collection后,选择该collection

5、点击save to XXX(collection名称)

Collection保存成功后,可以在postman-collection面板上找到,如下图:

04 运行collection

一、运行界面文字说明

运行界面部分功能说明:

Iterations:运行几次

Delay:每轮运行的间隔时间,默认0ms

Log response :请求日志,保持默认 fror all requests(所有的请求都记录日志)

Data:选择测试数据

Run v2ex:运行名称为“v2ex”的collection

二、变量使用环境变量时运行

对应的tests断言内的node_name要设置成获取环境变量,断言才会通过

运行collection时选择环境变量(环境变量node_name=python)

运行结果:运行结果2个断言都通过

变量使用全局变量时运行

对应的tests断言内的node_name要设置成获取全局变量,断言才会通过

运行collection时选择no environment(此时默认是使用全局变量node_name=php)

运行结果:

三、数据data驱动测试

Data数据文件常用格式:json、csv、txt三种格式,一般常用json格式

Json格式数据文件编写:

格式:[{“变量名1”:” 变量名1的值”},{“变量名2”:” 变量名2的值”}]

文件格式:文件名.json

运行collection时选择no environment,然后选择data文件,如下图:

运行结果:

总结说明:

断言部分跟 Postman 隔离开的,在断言部分不能直接获取 Postman 中的变量值,运行时会提示变量未定义,此时需要使用pm.environment.get(“变量”)、pm.globals.get("变量 ")、data[“变量”]来获取postman里面的变量值

05 常见错误

1、变量未定义:

使用data数据运行时,tests的断言要记得从postman的data数据内获取,语法:

变量名=data[“测试数据文件内的变量名称”]

否则会出现node_name未定义而运行失败的情况;

如下图:

2、变量获取错误

Tests断言使用从postman的环境变量取值,而运行collection时选择no environment(使用全局变量),导致变量值与实际运行结果的值不一致,运行结果fail

软件测试工程师自学教程:

经验分享 程序员 微信小程序 职场和发展