使用jmeter的JSR223 Sampler操作MongoDB

一、下载需要的jar

下载最新的gmongo-1.5.jar

https://mvnrepository.com/artifact/com.gmongo/gmongo

下载后放到jmeter的lib下

2.同理将mongo-java-driver-3.12.7.jar下载 也放到lib下

https://mvnrepository.com/artifact/org.mongodb/mongo-java-driver

二、启动jmeter,添加控件

1.创建一个线程用户---线程组

2.添加配置原件---用户配置 

 (改个名字 例:配置信息)

点下面的add按钮,添加MongoDB的配置信息(一定要写对o..)

mongoIp	xxx.xxx.xxx.xxx	
mongoPort	27017	
userName	用户名
password	密码	
db	数据库
admin_db	admin	

 

3. 添加取样器---JSR223 Sampler(groovy)

选择groovy

(我添加了4个 分别是插入、查询、更新、删除)

4.添加监听器---结果树(可以看执行结果)

 三、编写操作MongoDB的脚本

1.插入操作

插入前

脚本内容

import com.mongodb.*
import com.gmongo.GMongoClient
import com.mongodb.MongoCredential
import com.mongodb.ServerAddress
//配置数据库
credentials =MongoCredential.createCredential('${userName}', '${admin_db}', '${password}' as char[])
//创建一个Client连接
GMongoClient client = new GMongoClient(new ServerAddress("${mongoIp}",${mongoPort}), [credentials])
//连接数据库
def DB=client.getDB("${db}")
//带时间的插入操作
def dataDB=DB.getCollection("test").insert(["Id" : "6666", "Flg" : "0", "create_date" : new Date(), "update_date" : new Date()])
//将操作转化为变量
String ReData=dataDB
//将结果保存在Respond Data里
SampleResult.setResponseData(ReData)

执行脚本

 查看结果

查看数据库

 

2.查询操作

import com.mongodb.*
import com.gmongo.GMongoClient
import com.mongodb.MongoCredential
import com.mongodb.ServerAddress
//配置数据库
credentials =MongoCredential.createCredential('${userName}', '${admin_db}', '${password}' as char[])
//创建一个Client连接
GMongoClient client = new GMongoClient(new ServerAddress("${mongoIp}",${mongoPort}), [credentials])
//连接数据库
def DB=client.getDB("${db}")
//查询第一条数据 测试是否连接成功
def dataDB= DB.getCollection("test").findOne()
//将操作转化为变量
String ReData=dataDB
//将结果保存在Respond Data里
SampleResult.setResponseData(ReData)

执行结果

 

3.更新操作

import com.mongodb.*
import com.gmongo.GMongoClient
import com.mongodb.MongoCredential
import com.mongodb.ServerAddress
//配置数据库
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 执行操作  test:集合名  Id:查询的字段 Flg:更新的字段
def dataDB=DB.getCollection("test").update([Id: '2333'], [$set: [Flg: '0']])
//将操作转化为变量
String ReData=dataDB
//将结果保存在Respond Data里
SampleResult.setResponseData(ReData)

执行结果

数据库Flg改变

4.删除操作

 

import com.mongodb.*
import com.gmongo.GMongoClient
import com.mongodb.MongoCredential
import com.mongodb.ServerAddress
//配置数据库
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 执行操作  test:集合名  Id:查询的字段 Flg:更新的字段
def dataDB=DB.getCollection("test").remove(["Id":"6666"])
//将操作转化为变量
String ReData=dataDB
//将结果保存在Respond Data里
SampleResult.setResponseData(ReData)

执行结果

 

 数据库没了 删除成功。。。

 

 

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
JMeter提供了JSR223 Sampler,它允许使用各种脚本语言编写测试逻辑。在JSR223 Sampler中,可以使用内置的对象来访问JMeter的功能和数据。 以下是一些常用的内置对象及其使用介绍: 1. vars:这是一个JMeter内置的变量对象。可以使用vars对象来读取和写入JMeter的变量。示例用法如下: ```groovy // 读取变量 String value = vars.get("myVariable"); // 设置变量 vars.put("myVariable", "myValue"); ``` 2. props:这是一个JMeter内置的属性对象。可以使用props对象来读取和写入JMeter的属性。示例用法如下: ```groovy // 读取属性 String value = props.get("myProperty"); // 设置属性 props.put("myProperty", "myValue"); ``` 3. prev:这是一个JMeter内置的前一个SampleResult对象。可以使用prev对象来访问前一个Sampler的结果信息。示例用法如下: ```groovy // 获取前一个Sampler的响应时间 long responseTime = prev.getTime(); // 获取前一个Sampler的响应数据 String responseData = prev.getResponseDataAsString(); ``` 4. ctx:这是一个JMeter内置的JMeterContext对象。可以使用ctx对象来访问JMeter的上下文信息。示例用法如下: ```groovy // 获取当前线程组的名称 String threadGroupName = ctx.getThreadGroup().getName(); // 获取当前线程的线程编号 int threadNumber = ctx.getThreadNum(); ``` 这些内置对象可以在JSR223 Sampler中使用,通过脚本语言来编写测试逻辑。你可以根据需要灵活使用这些对象来实现自定义的测试场景和数据处理。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值