我们如果在命令行发送post请求,会很麻烦,效率不高。同时也不方便接口的管理,所以一些优秀的接口测试工具应运而出,Postman就是绕不开的话题之一。
主要功能
Postman主要帮我们干了三件事:
1.把相关集合放到一个集合当中方便管理。
2.对指定接口发送请求。
下面我们使用Postman工具操作getList接口。
新建一个集合TestDemo,用来管理相关用例:
添加一条请求(addRequest):
编辑请求,修改url,请求方式和参数:
发送请求查看结果:
以上步骤,是Postman的主要功能,也是我们前三个小节一直叨念的部分,只不过通过Postman来完成,下面是前面没有讲到过的东西----断言。
3.断言。
按照截图打开断言区域:
我们按照用例来设置断言:
设计用例(功能):
-
是否按照创建时间倒序排列
-
是否返回指定的条数
-
pm.test("是否含有create_time节点", function () {
-
pm.expect(pm.response.text()).to.include("create_time");
-
});
-
pm.test("返回2条数据", function () {
-
var jsonData = pm.response.json();
-
var num = jsonData.result.length;
-
pm.expect(num).to.eql(2);
-
});
-
pm.test("时间倒序排列", function () {
-
var jsonData = pm.response.json();
-
var time1 = jsonData.result[0].create_time;
-
var time2 = jsonData.result[1].create_time;
-
pm.expect(time2).to.be.below(time1);
-
});
发送请求后,店家Test Results查看结果如下:
红色的提示表示断言失败,这个时候我们需要修改接口代码(getList_fix.php):
-
<?php
-
// 告诉浏览器返回为json类型
-
header('Content-Type:application/json; charset=utf-8');
-
// 获取参数
-
$page = $_GET['page'];
-
$size = $_GET['size'];
-
/**
-
* 在真正的开发过程中,会操作数据库,我们暂时用一个多维数组代替
-
*/
-
$data_list = array(
-
array('id'=>1,'name'=>'成龙','create_time'=>1587890857000),
-
array('id'=>2,'name'=>'周润发','create_time'=>1587804457000),
-
array('id'=>3,'name'=>'周星驰','create_time'=>1587690857000),
-
array('id'=>4,'name'=>'李连杰','create_time'=>1587590857000),
-
array('id'=>5,'name'=>'梁朝伟','create_time'=>1587490857000),
-
array('id'=>6,'name'=>'张曼玉','create_time'=>1587390857000),
-
array('id'=>7,'name'=>'惠英红','create_time'=>1587290857000),
-
array('id'=>8,'name'=>'林青霞','create_time'=>1587190857000),
-
array('id'=>9,'name'=>'王祖贤','create_time'=>1587090857000),
-
array('id'=>10,'name'=>'巩俐','create_time'=>1586890857000)
-
);
-
foreach($data_list as $key=>$value){
-
if($key >= ($page -1) * $size && $key < $page * $size){
-
$temp[] = $value;
-
}
-
}
-
// 组织的数据
-
$data = array(
-
'code' => 200,
-
'msg' => '请求成功',
-
'result' => $temp
-
);
-
// PHP数组转json
-
$rst = json_encode($data,JSON_UNESCAPED_UNICODE);
-
// 打印结果
-
echo $rst;
按照上面的流程,创建一个请求,添加断言,在此访问返回结果如下:
返回绿色说明测试通过。
文中的断言代码是由js编写,大家书写断言的时候不要被代码吓到,因为Postman已经提供了比较丰富的断言片段,直接点击即可生成。
感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取