第一次发博客,还请大家多多指教。
目前在做的项目是前后台分离的,使用wiremock造的数据,但是接口一般都是后台推动的(版本经理在后台那边)。很多次后台改动了接口往往没有告知前台,导致联调时候经常出现接口错误,而且很多时候各个接口之间有依赖关系,如果前面的接口没法测试后续的接口也没法进行。基于此,很有必要开发一套能够自动测试接口的方法。
直接上代码,testPortForConsole.js:
var postDatas = [
{
url : '/getStudents.do' ,
portName:'',
description :'',
data:{
serviceName : "getStudents",
class : "six",
grade : "two"
}
},
{
url : "/getScore.do",
portName:'',
description :'',
data:{
serviceName : "getScore",
studentID : "08070146",
subject : "Math"
}
}
//这里每一个元素对应一个接口
];
(function(){
localStorage.removeItem('success');
localStorage.removeItem('failed');
var send = function(url,param,portName){
$.ajax({
url : url,
type: 'POST',
data: JSON.stringify(param),
dataType: 'application/json,text/plain.*/*'
})
.success(function(data){
localStorage.setItem('success',localStorage.getItem('success')
+ portName + '接口返回成功|');
})
.error(function(data){
localStorage.setItem('failed',localStorage.getItem('failed')
+ portName + '接口返回失败|') ;
throw portName + '接口返回失败';
})
};
for(var s = 0,len = postDatas.length;s < len;s++){
send(postDatas[s].url,postDatas[s].data, postDatas[s].portName);
}
})();
如果接口过多的话可以考虑使用grunt命令来从项目中合并各个下发的请求的mock数据,这样便于分模块维护和管理。
module.exports = function (grunt) {
// 项目配置
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
concat: {
options: {
banner: '[\n',
separator:',\n',
footer:']',
stripBanners:'true'
},
build: {
src: 'src/**/*.json',
dest: 'dest/dest.json'
}
}
});
grunt.loadNpmTasks('grunt-contrib-concat');
grunt.registerTask('default', ['concat']);
}
这样直接在原有的项目中直接将testPortForConsole.js中的代码拷贝运行即可自动完成接口的扫描。扫描的结果都保存在localStorage中,通过如下方法可以得到
console.dir(localStorage.getItem('success').split('|'));
console.dir(localStorage.getItem('failed').split('|'));
新手求支持 ~_~.
转载于:https://www.cnblogs.com/xianZJ/p/4534386.html