JMeter Note4: Groovy脚本调用MongoDB

JMeter Note4: Groovy脚本调用MongoDB

0. 环境

MongoDB服务器的版本,因为JMeter自带的mongo-java-driver版本过低,如果你的mongo版本比较高,用自带的是不能正常运行脚本的。
notion image
notion image

1. 下载

或者
notion image
下载MongoDB的驱动包mongo-java-driver-3.12.14.jar,并放入jmeter安装目录lib目录下,这里原来的是【mongo-java-driver-3.11.3.jar】,备份一下。
  • 这里下载最新的不能运行,使用原来的可以
notion image
重启JMeter

2. 创建

2.1 创建线程组

notion image

2.2 添加用户变量

notion image
这里定义3个变量(数据库名、集合、查询条件),因为数据库地址和端口变化的可能性不大,后面可以直接写死,这里不做变量设置
notion image

2.3 JSR223 Sampler

在线程组下,新增[ JSR223 Sampler], 语言选择 groovy {Groovy 3.0.17 / Groovy Scripting Engine 2.0}
notion image
import com.mongodb.*; import java.util.Set; vars.get("db_name"); vars.get("collections"); MongoClient mongoClient = new MongoClient("192.168.92.159",20000); //根据IP、端口连mongo DB db = mongoClient.getDB("${db_name}"); //选择数据库 Set <String> Set<String> collectionNames = db.getCollectionNames(); log.info(db.getName() + "包含如下集合:" + collectionNames.size()); for (String collectionName : collectionNames) { log.info(collectionName);} log.info("数据库连接成功"); DBCollection dbCollection = db.getCollection("${collections}"); //选择集合 log.info("集合连接成功"); BasicDBObject searchObj = new BasicDBObject(); vars.get("thread_id"); searchObj.put("thread_id", "${thread_id}"); DBObject result = dbCollection.findOne(searchObj); log.info("==============================>>>"); log.info(result.toString()); vars.putObject("result", result);
上面输出的变量为result

2.4 添加调试取样器拿到结果

notion image
将调试取样器器的名称命名为"${resutl}”
notion image

2.5 添加查看树

notion image
运行脚本,得到的响应数据如下
notion image