您好,欢迎访问一九零五行业门户网

e2e 自动化集成测试 架构 实例 WebStorm Node.js Mocha WebDrive

e2e 自动化集成测试 架构 京东 商品搜索 实例 webstorm node.js mocha webdriverio selenium step by step 二 图片验证码的识别 , 下面讲一下node.js中如何访问数据库, 在做自动化测试过程中, 经常可能遇到需要到数据库取值,或是更新值。来验证页面上的
e2e 自动化集成测试 架构 京东 商品搜索 实例 webstorm node.js mocha webdriverio selenium step by step 二 图片验证码的识别”,
      下面讲一下node.js中如何访问数据库, 在做自动化测试过程中, 经常可能遇到需要到数据库取值,或是更新值。来验证页面上的数据正确性。 之前,在google, baidu.com上找了非常多的文章关于node.js如何访问sql server的文章, 都是不行的, 我想是因为, node.js的开源性, 对于mongodb, mysql, 等数据库访问是有请多的模块支持。但对于sql server就只有微软写的驱动, 但是由于安装非常复杂, 我就没安装成功过。 最后,在baidu.com的时候,找到了一个牛人写的模块叫 mssqlhelper https://www.npmjs.org/package/mssqlhelper,  虽然有蛮多的不支持, 但是对于一些简单的sql操作,还是可以的。 
如下是node.js使用, 我将它们做了一下封装,可以提供select, add, delete,update操作
var db = require('./dbhelper'); 
function select(sqlscript, entityname, topnum, callback)
{
if(topnum == null)
{
topnum = '';
}
if(topnum == '')
{
sqlscript = sqlscript.replace('select', 'select @param1 parmal1, ')
}
else
{
sqlscript = sqlscript.replace('select', 'select top '+ topnum +' @param1 parmal1, ')
}
db.config({
host: 数据库地址
,port: 1433
,username: 用户名
,password: 密码
,database: 数据库名
});
console.log('执行 sql ' + sqlscript.green);
db.query( sqlscript
,{
param1: { type : 'nvarchar', size: 7,value : 'systemdefault' }
}
,function(res){
if(res.err)throw new error('database error:'+res.err.msg);
if(res.tables.length == 0){
console.log('无任何记录返回');
//hrow new error('无任何记录返回');
return;
}
var rows = res.tables[0].rows;
if(rows.length == 0){
callback('');
}
else {
var jsonstring = tojson(res.tables[0], entityname);
var result = json.parse(jsonstring);
console.log('数据库查询结果' + jsonstring.green);
callback(result);
// var columnlength = rows[0].metadata.columns.length;
// for (var i = 0; i // console.log(rows[i].getvalue('name'));
// }
}
}
);
};
function exescript(sqlscript, callback){
db.query(
sqlscript
,{
}
,function(res){
if(res.err)throw new error('database error:'+res.err.msg);
callback();
}
);
};
function del(sqlscript,callback){
exescript(sqlscript,callback);
}
function update(sqlscript,callback){
exescript(sqlscript,callback);
}
function add(sqlscript,callback){
exescript(sqlscript,callback);
}
//convert table to json
function tojson(data, entityname)
{
var jsonstring;
if (data != undefined && data.rows.length > 0)
{
var rowlen=data.rows.length;
var collen=data.rows[0].metadata.columns.length;
jsonstring={;
jsonstring+=\+entityname+\:[;
for (var i = 0; i {
jsonstring+={;
for (var j = 1; j {
if (j {
jsonstring+=\ + data.rows[0].metadata.columns[j].name + \: + \ + data.rows[i].getvalue(j)+ \,;
}
else if (j == collen - 1)
{
//console.log(j + ' ' + i );
jsonstring+=\ + data.rows[0].metadata.columns[j].name + \: + \ + data.rows[i].getvalue(j) + \;
}
}
if (i == rowlen - 1)
{
jsonstring+=};
}
else
{
jsonstring+=},;
}
}
jsonstring+=]};
return jsonstring;
}
return jsonstring;
}
exports.add=add;
exports.delete=del;
exports.update=update;
exports.select=select;
其它类似信息

推荐信息