嘉兴网站建设推广,好的交互网站,福建省城乡建设网站,抓取网站访客数据原理针对一个接口#xff0c;我们在知道参数以及参数对应的结果时#xff0c;可以通过postman进行判断#xff0c;验证返回数据是否与预期数据相等。这样可以使我们的接口测试更加的方便简洁。
1、准备数据。 postman可以接受的文件格式如图所示#xff0c;一般来说可以将我们…针对一个接口我们在知道参数以及参数对应的结果时可以通过postman进行判断验证返回数据是否与预期数据相等。这样可以使我们的接口测试更加的方便简洁。
1、准备数据。 postman可以接受的文件格式如图所示一般来说可以将我们需要进行参数化的数据存储在excel表格中如下图所示postman在读取数据的时候根据第一行的列名读取并且在excel针对多个参数可以使用逗号隔开没有txt那么麻烦。
图中city和income是接口需要的参数Insurance_ability和score是预期的返回的值当然也可以跟接口返回的参数名不对应。 postman中读取数据的时候会将表名默认的认为是data。所以在读取数据的时候比如读取city这一列的数据则书写为data.city。postman会按照data.city的读取方式读取数据直到数据为空。
需要注意的是使用excel保存的数据在保存的时候请另存为csv格式并且使用Notepad将其转换为utf-8的格式不然在postman中识别是乱码格式对数据的判断造成失误。
2、postman参数设置 此接口中我们需要参数化的参数是city和income针对这两个参数使用{{}}包括。
3、请求发送前参数设置 我们是需要对表格中的数据进行参数化所在在发送请求之前我们要让postman能够读取到文件中的数据在postman中Pre-request Script中的语句postman会在请求发送之前执行所以读取语句的操作我们放在这里执行。 代码语句进行读取操作。
var city data.city;
var income data.income;
4、在Tests中进行判断操作 第四步应该是最重要的操作现在我们已经在发送请求之前读取了文件的数据那么该如何进行判断呢这步我们在Tests中进行Tests会在请求之后执行Tests也称之为断言。
如何去判断返回的数据是否正确的思维是
1、将文件中的预期结果设置为环境变量
2、获取返回的数据
3、进行判断 var score(data.score);//获取文件中数据
var Insurance_ability(data.Insurance_ability);//设置成环境变量
pm.environment.set(score,score);
pm.environment.set(Insurance_ability,Insurance_ability);if(tests[code is 200]responseCode.code200){ //[postman断言输出返回200打印code is 200var d JSON.parse(responseBody); //将返回数据解析成json格式
if( d.得分scored.保险能力Insurance_ability){ //将返回数据与环境变量进行对比如果同时满足var a1; //因为pm.test语句中含有function设置满足条件是a1,pm.test(测试通过,function(){ //if中判断为真则断言输入测试通过if(a1);});
}
else{var a0;pm.test(测试不通过,function(){if(a0);});
}}else if(tests[code is 500]responseCode.code500){//状态为500时断言输出}else{tests[code is 400]responseCode.code400 //状态为400时断言输出
} 5、参数化执行
以上工作准备完成之后我们就可以开始正式的参数化执行了
1、点击Runner 2、接口选择环境准备选择文件 3、点击Run,开始执行
4、检查执行结果 在数据跑完之后我们可以直接在页面看到结果其中pass和failed是代码tests中断言通过的数量其中我们可以看到测试通过和code is 200的提示
我们看到failed数量为1我们找到该请求 看到coed is 200 状态为FALLcoed is 500状态为pass 可以判断该请求状态码是500
此时就可以查看该请求的请求地址和返回参数再对比数据查看具体是哪里的错误。 打开请求地址和返回内容可以看到是参数我们传递错了该原因应该是我表格中这行数据为空所以他直接传递的{{ciry}}和{{income}}
总结 以上就是如何使用postman判断返回结果是否正确的左右过程如果有任何写的不好的地方望指教。
除此之外也遇到问题比如在数据量大的时候再去对比结果就会比较麻烦并且tests中的输出只是一个断言输出无法通过该运行的通过或者不通过去判断有多少用例失败所以这个是还需要研究的。
大家也可以通过在tests中的各种操作和打印使得自己能通过判断输出就判断出是哪里数据的问题。
更新 小编写了一个小时的更新按了下谷歌的controls页面就崩 小编很无奈只能重新写。
之前我们已经实现了对预期数据和返回数据做一个基本的判断但是不能简要的从运行结果查看到是通过了多少测试用例数据没有通过多少测试用例数据并且去查找错误数据的时候还是很麻烦。
查阅资料发现针对tests语句我们是可以设置他的结果的就是设置通过或者不通过所以我们新的思路就是
1、对预期结果和返回结果进行判断
2、判断相等则设置tests语句为true
3、判断不相等则设置tests语句为false即失败并且打印参数、预期结果、实际结果这样我们简要的从runner运行界面就知道我们那些数据不对就不用花大量的时间查找那些数据出错。
语句如下 tests[测试通过]true; //设置为true,运行时表示pass
tests[测试不通过]false; //设置为false,运行时表示fail
实现整个判断的语句如下 var city data.city;
var income data.income;
var score(data.score);
var Insurance_ability(data.Insurance_ability);
pm.environment.set(score,score);
pm.environment.set(Insurance_ability,Insurance_ability);var d JSON.parse(responseBody);if(d.得分scored.保险能力Insurance_ability){tests[测试通过]true;}else{tests[测试不通过(输入参数city、income)预期结果得分score、保险能力Insurance_ability实际结果得分d.得分、保险能力d.保险能力)]false;} 如图数据表中存在19个用例通过17个失败两个并且针对失败的用例清晰的可以看到参数、预期结果以及返回结果。 如果数据较多的时候我们可以直接通过运行结果页面的红色方块失败区域展示的用例查找失败的数据。 代码更新
针对接口出现的问题简要的分为三种情况服务器问题、客户端问题、数据校验所以更新了一下验证代码 var stateresponseCode.code;//获取返回状态
var number(state.toString()).substr(0,1);//将返回的number类型转为string类型并获取第一位
switch(number){
case 2:test();break;
case 4:clientQue(); //4开头的状态简单定义为客户端问题break;
case 5:serverQue(); //5开头的状态简单定义为服务器问题break;
default:tests[测试不通过,状态state]false; //如出现其他情况则打印状态并测试不通过break;
}function test(){ //状态为200执行的函数
var city data.city;
var income data.income;
var score(data.score); //可使用request。url获取url解析参数字段
var Insurance_ability(data.Insurance_ability);var result JSON.parse(responseBody);if(result.得分scoreresult.保险能力Insurance_ability){tests[测试通过]true;}else{tests[测试失败(输入参数city、income)预期结果得分score、保险能力Insurance_ability实际结果得分result.得分、保险能力result.保险能力)]false;}
}//客户端问题
function clientQue(){tests[客户端问题(请求参数或方式错误)---测试失败---状态码为state requestURl为request.url]false;
}//服务器或者网关问题
function serverQue(){tests[服务器或网关问题---测试失败---状态码为state requestURl为request.url]false;} 总结
感谢每一个认真阅读我文章的人
我个人整理了我这几年软件测试生涯整理的一些技术资料包含电子书简历模块各种工作模板面试宝典自学项目等。欢迎大家点击下方名片免费领取千万不要错过哦。 Python自动化测试学习交流群全套自动化测试面试简历学习资料获取点击链接加入群聊【python自动化测试交流】http://qm.qq.com/cgi-bin/qm/qr?_wv1027kDhOSZDNS-qzT5QKbFQMsfJ7DsrFfKpOFauthKeyeBt%2BF%2FBK81lVLcsLKaFqnvDAVA8IdNsGC7J0YV73w8V%2FJpdbby66r7vJ1rsPIifgnoverify0group_code198408628