Как я могу получить objectID для моего необходимого документа и сохранить его в переменной с помощью groovy? - PullRequest
0 голосов
/ 06 ноября 2019

Я намереваюсь получить objectID для конкретного документа в mongodb, сохранить его в переменной и распечатать на консоли. Помните, что я хочу получить полное значение в поле _id, т.е.: ObjectId ("5dc2b032da7bec484cc0be5b"), поскольку я собираюсь использовать это значениекак фильтр в моем следующем примере. Я написал следующий код, но он не работает:

import com.mongodb.client.MongoCollection;

import org.bson.Document;

import static com.mongodb.client.model.Filters.*;

import org.bson.Document;
import org.bson.types.ObjectId;

//import java.util.Arrays;

try {


MongoCollection<Document> collection = vars.getObject("collection");

    Document document = new Document("EmployeeID",12345)
        .append("EmployeeName", "Test Automation through Jmeter")
        .append("Employee_Type_OID",4)
        .append("Rank",0)
        .append("Rating",0)
        .append("Score",0)
        .append("BOSS_OID",56789)
        .append("CompanyID","012345T");

    collection.insertOne(document);


Document result = collection.find(eq("EmployeeID",12345)).first();
String ID =result.get("_id");   
ObjectId objectId = new ObjectId(ID);
return "Document inserted"+ objectId; 



    }
catch (Exception e) {
    SampleResult.setSuccessful(false);
    SampleResult.setResponseCode("500");
    SampleResult.setResponseMessage("Exception: " + e);
}

IAm получает следующую ошибку:

 Response code: 500
Response message: Exception: java.lang.NullPointerException: Cannot invoke method get() on null object

1 Ответ

0 голосов
/ 06 ноября 2019

В соответствии с ошибкой, которую вы получаете, переменная result равна null, поэтому я ожидаю, что ваша find операция как-то не удастся. Проверьте наличие подозрительных записей в файле jmeter.log .

После того, как вы решите проблему со вставкой / поиском документа, вы сможете сохранить его, используя сокращение vars что означает JMeterVariables экземпляр класса, например:

vars.put('myID', objectId as String)

Демо:

enter image description here

...