[if !supportLists]一. [endif]测试用例的管理
1.创建测试用例集、子集
如下图,点击postman左侧Collections下面有个添加文件夹图标,就可以创建测试用例集啦~一个系统、模块或其他分类粒度的测试用例可以存放在该目录下。
另外,该目录下还可以创建子目录,进行测试用例的细分,如下图
2.创建测试用例,添加到测试集
创建接口测试用例,即新建http请求,选择请求方式、写好url、请求头、请求体。点击“Send”右边的 “Save” 按钮,输入 Request 的名称、描述,选中我们刚才的新建的 “TestCollection” 收藏夹,就可以了,如下图所示
选择新增测试集还是保存到已有的测试集:
随着放入Collection的请求越来越多,混乱就又出现了,在找一个请求时,要找半天,于是将collection中的请求分门类别就很重要了,于是,在collection中就可以添加Folder了,将相同场景的请求放入同一个Folder中,于是就实现了模块化的管理了。
点击下图中的Add Folder后,即可创建Folder
添加上Folder name,即模块名称后,点击Create,创建成功一个Folder。
接下来,只需要把相同场景的请求拖入相同的Folder即可,这样就实现了模块化的管理了。模块化以后的结构。
3.运行Collections
将工程模块化的用例管理起来后,借着这个管理起来的东风,也可以将工程模块化的用例执行起来,即一次执行一整个collection里的用例,或者执行一个collection里的某一个Folder里的用例。
Environment,即运行环境,是开发环境还是测试环境,需事先配置,大家可以下去自已尝试一下。
Iterations,即重复运行次数。会将选择好的collection中folder重复运行。
Delay,间隔时间。用例与用例间的间隔时间。
Data,外部数据加载,即用例的参数化,可以与Iterations结合起来用,实现参数化,也就是数据驱动。之后有机会再讲这个。
Run agileOne,点击运行,运行完成后,即可得出一个简易的聚合报告。
查看测试集的运行结果。
二、批量执行用例
1.设置变量
postman的变量和Jmeter的参数化相似,即把若干处出现多次的数值用一个变量表示,达到一次修改、多处生效的效果,便于修改和管理。
点击postman上方一个按钮,点击“Manage Ebvironments”,
选择Globals添加全局变量
Key值写变量名称,Value值写变量对应的数值,点击Update按钮进行保存
把Value值出现过的地方用{{key}}代替,比如以上面的截图为例,出现http://172...57:8080的位置使用“{{baseURL}}”代替.
2.添加响应处理--断言
响应处理有点类似Jmeter里的检查点,即通过检查响应数据是否符合预期来判断test是否通过。在Tests中添加检查条件,postman提供了一些常用的检查条件的代码,直接添加或稍加修改即可。如:响应数据的状态码为200,则判断测试通过,则在代码片中选择“status code:code is 200”。
一个完整的接口测试,包括:请求->获取响应正文->断言,利用postman进行断言。
Tests
这个”Tests”就是我们需要处理断言的地方,postman很人性化的帮我们把断言所用的函数全给准备好了:
SNIPPETS
举例说明:首先设置一个断言场景,根据断言场景来举例说明Postman断言如何使用。
1、判断HTTP返回状态码为200
2、判断响应正文中是否包含:"statusCode":200
3、解析响应正文,并判断statusCode的值是200,message的值是”Success”
第一步:在SNIPPETS中,往下拉,有一项”Status code:Code is 200”,这个就是为场景中的第 1 条准备的,判断HTTP返回状态码是否为200。点击这一项,可以看到在其左边,断言代码自动添加,见下图:
status code
解释一下这句代码的意思:
tests["Status code is 200"]中的tests是一个内置对象,tests["Status code is 200"]是指为这个断言起个名称叫”Status code is 200”,这个名称可以自行修改。
responseCode.code === 200中的responseCode是内置对象,responseCode对象中有个属性是code,是指HTTP状态码的code,判断code是否为200.
综合起来,这句代码的意思是:名称为”Status code is 200”的断言中,判断responseCode对象的code属性值(HTTP状态码)是否为200。
第二步:同样在SNIPPETS中,找到一项”Response body:Contains string”,这个就是为场景中的第2条准备的,判断响应正文中的字段。点击后,在其左边,断言代码自动添加,见下图: