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
感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接免费拿走:
① 2000多本软件测试电子书(主流和经典的书籍应该都有了)
② 软件测试/自动化测试标准库资料(最全中文版)
③ 项目源码(四五十个有趣且经典的练手项目及源码)
④ Python编程语言、API接口自动化测试、web自动化测试、App自动化测试(适合小白学习)
⑤ Python学习路线图(告别不入流的学习)
上图的资料 在我的QQ技术交流群里(技术交流和资源共享,广告进来腿给你打断)
可以自助拿走,群号953306497(备注“csdn111”)群里的免费资料都是笔者十多年测试生涯的精华。还有同行大神一起交流技术哦。