Postman使用环境变量、全局变量做断言【一】

前些日子在使用Postman做断言的时候,我想把【某个搜索的接口】返回值 和 参数传的值 做个断言,但这个值是用的环境变量,就不会了。特地解决这个问题后,来分享下经验,总结下我遇到的坑:1.JS中,str转换int 2.全局变量、环境变量、变量获取后 值的数据类型是否固定。3.如何更好得确定值的类型

【我的Postman是64位 6.2.5版本】
【这篇分享是我真实不停掉坑、爬坑的顺序】

获取预定义变量 Fetching a pre-defined variable

我最初的思路:我的传参有个vendorId【实际此接口就是请求这个vendorId的信息】,我把 返回值的vendorId 和传参vendorId的值(100000) 做了个断言。

下图是返回Body(有马赛克)
【后面会加一部分vendorName的断言,"7u"是str】
在这里插入图片描述
就根据 Check for a JSON value 设置 断言:

pm.test("Your test name", function () { var jsonData = pm.response.json(); pm.expect(jsonData.data.list[0].vendorId).to.eql(100000); });

在这里插入图片描述
突然想到 我的vendorId就是用{{abc}} 全局变量。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
那我可不可以使用环境变量、全局变量来做断言呢?

问题就是如何把{{变量}}成功扔进断言呢?

搜了搜,好像没找到这类似的分享 。。。
找我导师,给了我一个思路,关于 Getting an environment variable;

思路:把环境变量获取后,再把这个值来做断言,我就开始尝试。
感觉思路是对的,但是test1写的断言就是有问题。

实际看报错的是 AssertionError: expected 100000 to deeply equal ‘100000’,两个值不能完全相等。
总感觉是因为类型的原因,一个是int,一个是str。

找到的方法: 字符串数字转数字 Number(),所以test12成了。
在这里插入图片描述

到了这一步,感觉自己萌萌哒,已经完全明白了,和我导师说了说我的感悟 不准确,请不要当真

  1. 返回的是整数,所以需要使用Number()转换下。
  2. 如果返回值是字符串 ,就可以获取变量的值后 直接做断言

get变量的值后 此数据类型是否固定

无意尝试的时候,发现abc1这条断言居然是pass的,也就是说获取环境变量的值 根本不需要使用Number()转换
在这里插入图片描述

所以我之前的结论就错了。
同时我发现Tests[Test Scripts]的Snippets 里面有 Get an environment variable、Get a global variable、Get a variable 三种,我就知道我全错了。


postman官网介绍的environments_and_globals
看到了一些资料:
在这里插入图片描述

我的理解就是 : 使用pm.environment.get()或者pm.global.get() 根据合适的范围 使用方法来获取变量。变量的类型被保存为strings。

好像和我刚才得出的结论也不同啊!

那就多试试
在这里插入图片描述

在这里插入图片描述

可以确定返回值的 jsonData.data.list[0].vendorName 是"7u",字符串格式;jsonData.data.list[0].vendorId是100000,数字格式。

可以猜测 pm.environment.get() 获取环境变量"id"的时候 新变量的值为100000,数字格式;pm.environment.get()获取环境变量"name"的时候 新变量的值是"7u",字符串格式。

在这里插入图片描述

在这里插入图片描述

这次验证了: global variables are always be stored as strings.

pm.global.get() 获取全局变量"abc"的时候 新变量的值为100000,字符串格式;pm.global.get()获取全局变量"abcd"的时候 新变量的值是"7u",字符串格式。

此时的结论就是 get环境变量好像比较智能,分int、str;而get全局变量就只是str。但和官网的说明好像有了分歧,还得继续确定下。

【未完待续】

交流技术 欢迎+QQ 153132336 zy
个人博客 https://blog.csdn.net/zyooooxie

发布了78 篇原创文章 · 获赞 24 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/zyooooxie/article/details/91555498