小伙伴们好,欢迎来到小葵花课堂第二课。大家都知道不管什么用例都有一个3A原则,没有assert的用例是不完整的,测试宝宝我今天就给大家来介绍postman中断言的使用。
写在前面:
断言其实就是对预期结果与实际结果的判断,预期==实际,就通过;预期!=通过则失败。
Postman的断言是JavaScript语言编写的,写在tests标签页里,在sandbox中运行,postman预置了很多公共库,如
cheerio(解析html)、lodash(简化JSON操作)、CryptoJS(加密解密)、chai(断言框架)等。sandbox链接:https://www.getpostman.com/docs/v6/postman/scripts/postman_sandbox_api_reference但由于它是独立的隔离的运行环境,所以没有办法引用自己预置的JS库。
tests在发送请求之后执行(而Pre-request Script则与之相反,在请求之前执行),并以断言的pass/fail形式体现在最终测试结果中。
一、发送请求
今天,我们以登录第四方运营管理平台为例来介绍断言。
1.首先找到登录入口路径
新建一个请求,依次输入以下请求信息
Request URL: http://uat.jifenmy.com/zfs_merchant_boss/login.do
Request Method: POST
Content-Type: application/json
在Body中传入用户名、密码以及验证码{userName: "admin", smsCode: "k8y8F8", password: "admin"}
2.第二步,发送send,看看我们的接口通了没有。
OK,访问成功。
二、设置断言
架子已经搭好了,下面我们愉快的开始写断言吧~打开Tests和Test Results,界面如下,分别表示请求和结果部分。
未经处理的tests界面是空的。右侧依然配置了一些常用的代码片段以照顾编程能力不是那么好的同学。(感恩!)
1.首先,要先确认我们到底要检查什么,打开我们的响应。
显然"rspCd": "00000"就是我们的开发哥哥设置的成功状态码,要想登录成功就必然少不了他,OK,目标锁定。
2.写断言。
我们找到右边的程序片段,
(检查body包含字符串,正是我们需要的)单击一下,生成代码如下
【Body matches string】是该条测试的名字,可自行定义,我们改为【校验是否有00000状态码】;
【string_you_want_to_search】是我们要校验的字符串,这里我们修改为【00000】。
3.执行,查看结果
老规矩,点击sand执行。
大大的PASS送给你!
套路就是这样,噢不,是框架如此,怎么样,不难吧。
三、常用方法介绍
聪明的你一定不会满足于示例中的一个方法,接下来我们逐个介绍tests中常用方法的使用,大家根据自己的实际需求选择相应的来用就好。
1.清除环境变量
2.设置一个全局变量
3.得到一个环境变量
4.检查response body中是否包含某个string
5.检测JSON中的某个值是否等于预期的值
6.转换XML body为JSON对象
7.检查response body是否与某个string相等
8.测试response Headers中的某个元素是否存在(如:Content-Type)
9.验证Status code的值
10.验证Response time是否小于某个值
PS:有一位前辈告诉我,学习一个东西最好的途径就是查看官方文档。今天我也推荐给大家。
以下是官方大大的【Test examples】,非常之清晰详细,看过都说好:https://www.getpostman.com/docs/v6/postman/scripts/test_examples