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

Я успешно вставил новый документ в свою коллекцию. Теперь я хочу прочитать тот же документ и извлечь его "_id", сохранить его в переменной для использования в моем следующем сэмплере. Мой скрипт завершается ошибкой

    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("EmployeeOID",12345)
            //.append("EmployeeOID",12345)
            .append("EmployeeName", "Test Automation through Jmeter")
            .append("Employee_Type_OID",4)
            .append("Rank",0)
            .append("Rating",0)
            .append("Score",0)
            .append("Supervisor_OID",56789)
            .append("TRGEmpID","012345T");

        collection.insertOne(document);


    Document result = collection.find(eq("EmployeeOID",12345)).first();

    def ID = result.get("_id").toString()); 
        return "Document inserted"+result.get(ID);

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

ОШИБКА:

Response code: 500
Response message: javax.script.ScriptException: 
org.codehaus.groovy.control.MultipleCompilationErrorsException:
startup failed:
Script219.groovy: 31: expecting '}', found ')' @ line 31, column 38.
   def ID = result.get("_id").toString());  
                                        ^

1 Ответ

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

Просто измените эту строку:

def ID = result.get("_id").toString());

на эту:

def ID = result.get("_id").toString()

, если вы хотите дополнительно сохранить значение в переменную JMeter , которую вы можетесделайте это следующим образом:

vars.put('ID', ID)

После этого вы сможете получить значение обратно как vars.get('ID') в скриптах JSR223 или просто ${ID} в других тестовых элементах

Демо:

enter image description here

Дополнительная информация: Тестирование производительности MongoDB с JMeter

...