您当前的位置: 首页 >  Java

lichong951

暂无认证

  • 2浏览

    0关注

    131博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

【接口工具ApiPost】断言详解(6)-阅读本章需要编程基础(最好是JavaScript)

lichong951 发布时间:2022-04-28 16:51:32 ,浏览量:2

使用流程

  1. 定义测试用例
  2. 验证测试用例

以示例接口 新闻列表为例,新闻列表返回响应数据如下:

{
	"code": 10000,
	"msg": "success",
	"data": {
		"cur_page": "1",
		"last_page": 2,
		"page_size": "20",
		"total": 30,
		"list": [
			{
				"id": 3,
				"title": "前后仅用了4分钟,16枚洲际导弹应声而出,美航母也不敢轻举妄动",
				"author": "烽火杂志",
				"url": "https://open.apipost.cn/",
				"content": "世界上哪个国家可与美军抗衡?国际社会上关于这一问题的答案千奇百怪,但有一个国家用行动让美军闭嘴,短短4分钟连续发射16枚洲际导弹,场面十分壮观,让西方国家畏惧不已,即便是美航母也不敢轻举妄动。"
			}
		]
	}
}

在这里插入图片描述

一、定义测试用例

定义入口在后执行脚本里;

特别注意:每个测试用例是一行,不能换行。

通用和常用的测试用例定义如下:

apt.assert('response.raw.responseText=="test"');
apt.assert('response.raw.status==200');
apt.assert('response.raw.type=="json"');
apt.assert('response.raw.responseTime>=100');
apt.assert('response.json.errcode==1');
apt.assert('response.json.errcode!=1');
apt.assert('response.json.errcode>=1');
apt.assert('response.json.errcode==null');
apt.assert('response.json.errcode!=null');
apt.assert('response.headers["server"] == "nginx"');
apt.assert('response.headers["content-encoding"] == "gzip"');
apt.globals.set("key", "value");
apt.globals.get("key");
apt.globals.delete("key");
apt.globals.clear();
apt.variables.set("key", "value");
apt.variables.get("key");
apt.variables.delete("key");
apt.variables.clear();
$.ajax({
	"url":"https://echo.apipost.cn/token.php",
	"method":"POST",
	"async":false,
	"content-type":"appicateion-json",
	"data":JSON.stringify({
		"email":"admin@admin.com", 
		"password":"密码"
	}),
	"success":function(response){
		response = typeof response == "object" ? response : JSON.parse(response);
		console.log(response);
		apt.variables.set("token", response.token);
	}
});

在这里插入图片描述 针对新闻列表这个接口测试用例定义如下:

apt.assert('response.raw.status==200');
apt.assert('response.raw.type=="json"');
apt.assert('response.raw.responseTime>=100');
apt.assert('response.json.code==10000');
apt.assert('response.json.msg=="success"');

apt.assert('response.raw.responseText.indexOf("data") > -1');  // 检查响应文本是否含有data字符串
apt.assert('response.json.hasOwnProperty("data")'); // 检测返回json对象的是否含有data字段

apt.assert('response.json.data.cur_page=="1"');
apt.assert('response.json.data.last_page==2');
apt.assert('response.json.data.page_size=="20"');
apt.assert('response.json.data.total==30');

下图为运行效果图 在这里插入图片描述

二、验证测试用例

绿色表示测试通过,红色表示测试不通过 再加一个明显不通过的定义:apt.assert(‘response.raw.responseText==“test”’);

apt.assert('response.raw.responseText=="test"');

apt.assert('response.raw.status==200');
apt.assert('response.raw.type=="json"');
apt.assert('response.raw.responseTime>=100');
apt.assert('response.json.code==10000');
apt.assert('response.json.msg=="success"');

apt.assert('response.raw.responseText.indexOf("data") > -1');  // 检查响应文本是否含有data字符串
apt.assert('response.json.hasOwnProperty("data")'); // 检测返回json对象的是否含有data字段

apt.assert('response.json.data.cur_page=="1"');
apt.assert('response.json.data.last_page==2');
apt.assert('response.json.data.page_size=="20"');
apt.assert('response.json.data.total==30');

结果如图: 在这里插入图片描述

三、集合(list)验证(官网里并没有这个示例,笔者是结合js语法特点然后一点点调试出来的,如有不足请谅解)

定义如下:

//验证集合list测试用例定义;  
// 笔者暂时还没有找到添加断言业务描述的参数方法,一般断言有断言描述和断言表达式。但这个语法上好像不支持。
// 后期如果找到一并补充上
if(response.json.hasOwnProperty("data")){
    // apt.assert('response.raw.responseText=="test"');
    if(response.json.data.hasOwnProperty("list")
        && response.json.data.list.length>0){
        //  apt.assert('response.raw.responseText=="test"');
         for(var i=0;i            
关注
打赏
1659512212
查看更多评论
0.0739s