Jmeter使用Groovy操作MongoDB

下载jar文件

备注:当前使用的Jmeter版本为 apache-jmeter-5.1.1

1、 Gmongo
下载地址:https://mvnrepository.com/artifact/com.gmongo/gmongo/1.5
官网:https://github.com/poiati/gmongo

2、mongo-java-driver
下载地址:https://mvnrepository.com/artifact/org.mongodb/mongo-java-driver/3.11.0

jar文件拷贝存储

将下载好的两个jar文件(gmongo-1.5.jar、mongo-java-driver-3.11.0.jar)存放在Jmeter安装目录的 apache-jmeter-5.1.1\lib\ext 路径下

Jmeter使用Groovy操作MongoDB

1、启动Jmeter,新建Thread Group,这里命名为“MongoDB-测试”

2、右击“MongoDB-测试”,新建JSR223 Sampler 、 User Defined Variables 和 View Results Tree


3、点击“User Defined Variables”,进入配置页面,为MongoDB操作添加常用变量,以下定义了MongoDB集群IP、端口、用户名密码、数据库名等变量。

4、点击“JSR223 Sampler ”,language选择groovy

5、将以下代码粘贴到脚本区域,查找指定collection的一条数据。其中,TEST_ONE 为所指定collection的名称。更多操作,可自行查看Gmongo官网上的说明文档 https://github.com/poiati/gmongo

import com.mongodb.*
import com.gmongo.GMongoClient
import com.mongodb.MongoCredential
import com.mongodb.ServerAddress

//以下这两行是针对包含用户名和密码配置的数据库,MongoDB为加密数据库
credentials =MongoCredential.createCredential('${userName}', '${admin_db}', '${password}' as char[])
//创建一个Client连接
GMongoClient client = new GMongoClient(new ServerAddress("${mongoIp}",${mongoPort}), [credentials])

//连接数据库
def DB=client.getDB("${db}")

//连接coll 执行操作
def dataDB=DB.TEST_ONE.findOne()
//def dataDB=DB.TEST_ONE.remove(["name":"Jmter"])

//将操作转化为变量
String ReData=dataDB

//将结果保存在Respond Data里
SampleResult.setResponseData(ReData)

6、点击“start”执行Jmeter,View Results Tree 查看运行结果,返回的指定collection的第一条数据:

补充:MongoDB之insert操作

插入的数据包含了ISODate时间和时间操作,特在此记录下
** groovy 脚本如下**

import com.mongodb.*
import com.gmongo.GMongoClient
import com.mongodb.MongoCredential
import com.mongodb.ServerAddress

//以下这两行是针对包含用户名和密码配置的数据库,MongoDB为加密数据库
credentials =MongoCredential.createCredential('${userName}', '${admin_db}', '${password}' as char[])
//创建一个Client连接
GMongoClient client = new GMongoClient(new ServerAddress("${mongoIp}",${mongoPort}), [credentials])

//连接数据库
def DB=client.getDB("${db}")

//连接coll 执行操作
def dataDB=DB.TEST_ONE.insert(["phone" : "18200120000", "token" : "332332", "issuedDateTime" :  new Date() + 1 , "from" : "smssend", "createdTime" : new Date(), "updatedTime" : new Date(), "isDeleted" : false])

//将操作转化为变量
String ReData=dataDB

//将结果保存在Respond Data里
SampleResult.setResponseData(ReData)

执行 以上Jmeter脚本执行后,可在MongoDB中查看到刚插入的数据

posted @ 2019-09-12 11:29  angiYang  阅读(959)  评论(0)    收藏  举报