mocha 测试 mysql_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 < rows.length; 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 < rowLen; i++)
{
jsonString+="{";
for (var j = 1; j < colLen; j++)
{
if (j < colLen - 1)
{
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;
本文原創發布php中文網,轉載請注明出處,感謝您的尊重!
總結
以上是生活随笔為你收集整理的mocha 测试 mysql_e2e 自动化集成测试 架构 实例 WebStorm Node.js Mocha WebDrive的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 11选5多少钱啊?
- 下一篇: mysql 帐号开启远程_两大步骤教您开