我已经在NodeJS中编写了Mongo db连接代码,它工作正常,但在Jmeter中失败

时间:2019-10-25 11:25:29

标签: javascript java mongodb jmeter

我正在尝试使用Java脚本作为脚本语言将Jmeter连接到MongoDB,但是失败。

我在节点JS中尝试了相同的代码,但效果很好,但在Jmeter中失败了

var mongo = require('mongodb');

var MongoClient = mongo.MongoClient;

var url = 'mongodb://10.80.47.101:27017';

 MongoClient.connect(url, { useNewUrlParser: true }, (err, client) => {

 if (err) throw err;

const db = client.db("scorecard");

db.listCollections().toArray().then((docs) => {

    console.log('Available collections:');
    docs.forEach((doc, idx, array) => { console.log(doc.name) });

}).catch((err) => {

    console.log(err);
}).finally(() => {

    client.close();
});

});

我在Jmeter中遇到此错误:

响应码:500 响应消息:javax.script.ScriptException::9:6预期的:,但是找到了(    如果(err)抛出err;       ^ in在第9行的第6列

1 个答案:

答案 0 :(得分:0)

  1. JMeter执行JavaScript的可能性仅限于Nashorn engine,因为您的脚本将在第一行失败,因为require不是JavaScript API的一部分,这是Node.js中的内容
  2. Since JMeter 3.1 it's not recommended to use languages other than Groovy用于任何形式的脚本

因此,与其尝试使用JavaScript代码进行Mongo实例的负载测试,不如:

  1. 下载与您的Mongo版本匹配的MongoDB Java Driver并将其放入JMeter Classpath
  2. 重新启动JMeter以拾取.jar
  3. JSR223 Sampler添加到您的测试计划中
  4. Write your logic in Groovy,请检查您特定的Mongo Java驱动程序版本的JavaDoc以获取正确的语法

更多信息:MongoDB Performance Testing with JMeter