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中查看到刚插入的数据












浙公网安备 33010602011771号