0

我有一个电话回复是这样的。

{
  "status":0,
  "message":"Prescription Created",
  "jsonResponse":{},
  "cid":"C5975K",
  "pid":"Rx5975K-175A",
  "prescriptionSource":"GO_RX_CTO",
  "imageStatus":[]
}

通过使用这个 pid ,我必须再查询一条记录。例如:

db.order.find({"pid":"Rx5975K-175A"})

并且此查询的结果应该再传递一个 jmeter 请求。

我已经使用了 MongoDB 脚本(已弃用)..但这不会像它已弃用的那样工作..

尝试使用 JSR223 Sampler,但它不适用于新的 jmeter 3.2

import com.mongodb.*
import com.mongodb.BasicDBObject

    MongoCredential coreCredential = MongoCredential.createCredential("${mongodb_user}", "${mongodb_database}", "${mongodb_password}".toCharArray());
    MongoClient coreMongoClient = new MongoClient(new ServerAddress("${mongodb_server}", 13017), Arrays.asList(coreCredential));
    DB coreDB = coreMongoClient.getDB("${mongodb_database}");
    DBCollection coll = coreDB.getCollection("order");
    coll.find();
4

1 回答 1

0

您必须根据“pid”找到您的结果,而您无处通过它。找到您的集合后,您需要创建一个查询并使用该查询进行搜索。

导入 com.mongodb.* 导入 com.mongodb.BasicDBObject

MongoCredential coreCredential = MongoCredential.createCredential("${mongodb_user}", "${mongodb_database}", "${mongodb_password}".toCharArray());
MongoClient coreMongoClient = new MongoClient(new ServerAddress("${mongodb_server}", 13017), Arrays.asList(coreCredential));
DB coreDB = coreMongoClient.getDB("${mongodb_database}");
DBCollection coll = coreDB.getCollection("order");
BasicDBObject query = new BasicDBObject();
query.put("pid", "Rx5975K-175A");
DBObject  getData= coll.findOne(query);

这会给你想要的结果

于 2018-06-01T09:12:19.813 回答