我正在使用量角器52.2和黄瓜3.2.2。我将selenium grid(selenium-server-standalone-3.14.0.jar)与量角器一起使用,并在4个不同节点的4个浏览器中运行我的脚本。我在数据库中有一个600行的表。最初,我要访问此表中的数据,并通过量角器脚本输入每一行的数据,并在成功输入每一行后更新DB列。但是在成功输入一些行后,量角器脚本突然结束,错误为“ {ConnectionError: Connection lost - read ECONNRESET in protractor
”。我在更新SQL查询中收到一条错误消息,该错误消息为“ RequestError:资源ID:1.”。数据库已达到60,并且已经达到。请参见“ http://go.microsoft.com/fwlink/?LinkId=267637”。”我正在使用的更新查询如下(我正在使用Azure SQL)。我不清楚如何解决此问题。预先感谢。
var Connection = require('tedious').Connection;
var Request = require('tedious').Request;
var config =
{
userName: 'xxx',
password: 'xxxxx',
server: 'xxxxxx',
options:
{
database: 'xxx' ,
encrypt: true,
rowCollectionOnRequestCompletion: true
}
}
var connection = new Connection(config);
defineSupportCode(function ({ setDefaultTimeout, Given, When, Then }) {
setDefaultTimeout(30000 * 1000);
function updatedb(LPAID){
request = new Request("UPDATE COM_Location_Post with (rowlock) SET IsPublished = 1 WHERE Id ="+LPAID,function(err,rowCount, rows) {
if(err){
console.log(err)
}
});
connection.execSql(request);
}
});
答案 0 :(得分:0)
您未在脚本中使用连接关闭。
在遇到最大实例数后,您的问题就清楚了。
尝试每次关闭每笔交易的连接。
(async () => {
const config = {
user: 'User',
password: 'iPg$',
server: 'cp-sql',
database: 'DBI',
options: {
encrypt: true // Use this if you're on Windows Azure
}
}
try {
let pool = await sql.connect(config)
var envcode, testcode;
let result1 = await pool.request()
.query(`query 1 goes here`)
// console.dir(result1)
pool.close();
sql.close();
let pool1 = await sql.connect(config)
let result2 = await pool1.request()
.query(`query 2 goes here`)
// console.dir(result2)
pool1.close();
sql.close();
resolve(result2);
} catch (err) {
console.log(err)
}
})()