Groovy Jmeter获取与MongoDb的连接错误

Groovy Jmeter获取与MongoDb的连接错误,groovy,jmeter,jmeter-5.0,jsr223,Groovy,Jmeter,Jmeter 5.0,Jsr223,我想在我的mongodb数据库上执行负载测试,所以我将mongodb驱动程序添加到bin/ext文件夹并重新启动jmeter。我选择JSR223采样器,选择groovy作为我的语言,并添加了如下连接代码 import com.mongodb.* import com.mongodb.client.MongoClients; import com.mongodb.client.MongoClient; import com.mongodb.MongoClientSettings; import

我想在我的mongodb数据库上执行负载测试,所以我将mongodb驱动程序添加到bin/ext文件夹并重新启动jmeter。我选择JSR223采样器,选择groovy作为我的语言,并添加了如下连接代码

import com.mongodb.*

import com.mongodb.client.MongoClients;
import com.mongodb.client.MongoClient;
import com.mongodb.MongoClientSettings;
import com.mongodb.ServerAddress;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;

import org.bson.Document;

import java.util.Arrays;

try {
    MongoClientSettings settings = MongoClientSettings.builder()
        .applyToClusterSettings {builder -> 
            builder.hosts(Arrays.asList(new ServerAddress(vars.get("mongoHost"),vars.get("mongoPort").toInteger())))}
        .build();

    MongoClient mongoClient = MongoClients.create(settings);

    MongoDatabase database = mongoClient.getDatabase(vars.get("databaseName"));
    MongoCollection<Document> collection = database.getCollection(vars.get("collectionName"));

    vars.putObject("collection", collection);

    return "Connected to " + vars.get("collectionName");
}
catch (Exception e) {
    SampleResult.setSuccessful(false);
    SampleResult.setResponseCode("500");
    SampleResult.setResponseMessage("Exception: " + e);
}

您需要将以下库添加到:

  • 库版本必须与您的MongoDB版本匹配(或至少兼容),可以在MongoDB shell中运行

    需要重新启动JMeter才能提取库


    更多信息:

    您需要将以下库添加到:

  • 库版本必须与您的MongoDB版本匹配(或至少兼容),可以在MongoDB shell中运行

    需要重新启动JMeter才能提取库


    更多信息:

    我更新了mongo java驱动程序版本,并添加了bson库连接正在建立,但在读取和插入时出现未经授权的错误。响应代码:500响应消息:异常:com.mongodb.MongoCommandException:命令失败,错误为13(未经授权)服务器xx.xxx.xx.xxx:27017上的“命令插入需要身份验证”。完整的响应是{“operationTime”:{“$timestamp”:{“t”:158012230,“i”:1},“ok”:0.0,“errmsg”:“命令插入需要身份验证”,“code”:13,“codeName”:“Unauthorized”,“$clusterTime”:{“clusterTime”:{“t”:1580126230,“i”:1},“签名:{“hash”:{“$binary”:“$binary”:“j7ylgmDSaPsZQRX/SwPTo4ZSTII=”,“$type”:“00”,“keyId”:{“$numberLong”:“678507478788310018”}}}}}}您需要像
    MongoCredential credential=MongoCredential.createCredential(“mongoUser”、“userDB”、“password.tocharray())那样实例化
    并将其传递给MongoClient初始化行,我只是这样配置的。如果我这样配置MongoClient MongoClient=MongoClient.create(“mongodb://user:password@xx.xxx.xx.xxx:27017/?authSource=mysyt&ssl=true“;我更新了mongo java驱动程序版本,并添加了bson库连接正在建立,但在读取和插入时出现未经授权的错误。响应代码:500响应消息:异常:com.mongodb.MongoCommandException:命令失败,错误13(未经授权):“命令插入需要身份验证”在服务器xx.xxx.xx.xxx:27017上。完整的响应是{“operationTime”:{“$timestamp”:{“t”:158012230,“i”:1},“ok”:0.0,“errmsg”:“命令插入需要身份验证”,“code”:13,“codeName”:“Unauthorized”,“$clusterTime”:{“clusterTime”:{“t”:1580126230,“i”:1},“签名:{“hash”:{“$binary”:“$binary”:“j7ylgmDSaPsZQRX/SwPTo4ZSTII=”,“$type”:“00”,“keyId”:{“$numberLong”:“678507478788310018”}}}}}}您需要像
    MongoCredential credential=MongoCredential.createCredential(“mongoUser”、“userDB”、“password.tocharray())那样实例化
    并将其传递给MongoClient初始化行,我只是这样配置的。如果我这样配置MongoClient MongoClient=MongoClient.create(“mongodb://user:password@xx.xxx.xx.xxx:27017/?authSource=mysyt&ssl=true“;
    Thread Name:myThread Group 1-1
    Sample Start:2020-01-27 15:57:35 IST
    Load time:39
    Connect Time:0
    Latency:0
    Size in bytes:0
    Sent bytes:0
    Headers size in bytes:0
    Body size in bytes:0
    Sample Count:1
    Error Count:1
    Data type ("text"|"bin"|""):text
    Response code:500
    Response message:javax.script.ScriptException: org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
    Script3.groovy: 6: unable to resolve class com.mongodb.ServerAddress
     @ line 6, column 1.
       import com.mongodb.ServerAddress;
       ^
    
    Script3.groovy: 5: unable to resolve class com.mongodb.MongoClientSettings
     @ line 5, column 1.
       import com.mongodb.MongoClientSettings;
       ^
    
    Script3.groovy: 10: unable to resolve class org.bson.Document
     @ line 10, column 1.
       import org.bson.Document;
       ^
    
    3 errors
    
    
    
    SampleResult fields:
    ContentType: 
    DataEncoding: null