1、下载mongo-java-driver驱动

官方驱动:

https://mongodb.github.io/mongo-java-driver/

或者Maven:

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

<!-- https://mvnrepository.com/artifact/org.mongodb/mongo-java-driver -->
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>3.8.2</version>
</dependency>

把mongo-java-driver-3.8.2.jar放到/usr/local/jmeter/apache-jmeter-5.1.1/lib/ext目录下

rm -rf mongo-java-driver-2.11.3.jar

# 删除/usr/local/jmeter/apache-jmeter-5.1.1/lib目录中旧版本的mongo-java-driver jar包

2、在MongoDB中创建jmeter_test库与blazemeter_tutorial集合

3、编写脚本,采用JSR223 Sampler

名称
mongoHost 192.168.1.111
mongoPort 27017
databaseName jmeter_test
collectionName blazemeter_tutorial

import com.mongodb.client.MongoClients;
import com.mongodb.client.MongoClient;
import com.mongodb.MongoClientSettings;
import com.mongodb.ServerAddress;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase; import org.bson.Document; import java.util.Arrays; try {
MongoClientSettings settings = MongoClientSettings.builder()
.applyToClusterSettings {builder ->
builder.hosts(Arrays.asList(new ServerAddress(vars.get("mongoHost"),vars.get("mongoPort").toInteger())))}
.build(); MongoClient mongoClient = MongoClients.create(settings); MongoDatabase database = mongoClient.getDatabase(vars.get("databaseName"));
MongoCollection<Document> collection = database.getCollection(vars.get("collectionName")); vars.putObject("collection", collection); return "Connected to " + vars.get("collectionName");
}
catch (Exception e) {
SampleResult.setSuccessful(false);
SampleResult.setResponseCode("500");
SampleResult.setResponseMessage("Exception: " + e);
}

import com.mongodb.client.MongoCollection;

import org.bson.Document;

import java.util.Arrays;

try {
MongoCollection<Document> collection = vars.getObject("collection"); Document document = new Document("firstName", "Expert")
.append("lastName", "Protocolson")
.append("age", 37)
.append("occupation", "DevOps")
.append("skills", Arrays.asList("System Administration", "Linux"))
.append("adress", new Document("city", "Systemberg")
.append("street", "Data Line")
.append("house", 42)); collection.insertOne(document); return "Document inserted";
}
catch (Exception e) {
SampleResult.setSuccessful(false);
SampleResult.setResponseCode("500");
SampleResult.setResponseMessage("Exception: " + e);
}

import com.mongodb.client.MongoCollection;
import static com.mongodb.client.model.Filters.*; import org.bson.Document;
import org.bson.types.ObjectId; try {
MongoCollection<Document> collection = vars.getObject("collection"); Document result = collection.find(eq("firstName", "Expert")).first(); vars.put("exampleDocumentId", result.get("_id").toString()); return "Document with id=" + result.get("_id") + " found";
}
catch (Exception e) {
SampleResult.setSuccessful(false);
SampleResult.setResponseCode("500");
SampleResult.setResponseMessage("Exception: " + e);
}

import com.mongodb.client.MongoCollection;
import static com.mongodb.client.model.Filters.*;
import static com.mongodb.client.model.Updates.*; import org.bson.Document;
import org.bson.types.ObjectId; try {
MongoCollection<Document> collection = vars.getObject("collection"); collection.updateOne(
eq("_id", new ObjectId(vars.get("exampleDocumentId"))),
combine(set("occupation", "Project Manager"), set("adress.city", "New Codeshire"), currentDate("lastModified"))); return "Document with id=" + vars.get("exampleDocumentId") + " modified";
}
catch (Exception e) {
SampleResult.setSuccessful(false);
SampleResult.setResponseCode("500");
SampleResult.setResponseMessage("Exception: " + e);
}

import com.mongodb.client.MongoCollection;
import static com.mongodb.client.model.Filters.*; import org.bson.Document; try {
MongoCollection<Document> collection = vars.getObject("collection"); collection.deleteOne(eq("occupation", "Project Manager")); return "Document deleted";
}
catch (Exception e) {
SampleResult.setSuccessful(false);
SampleResult.setResponseCode("500");
SampleResult.setResponseMessage("Exception: " + e);
}

最新文章

  1. git/github学习笔记
  2. Http状态码(转)
  3. 【vbs】vbs写ini文件
  4. Delphi Form的释放和隐藏:free,hide,close
  5. Netty4.x中文教程系列(二) Hello World !
  6. jvm 参数调优
  7. cocos2d-x中文显示:加字库
  8. wpf listview 行变色
  9. 每日java基础知识(01)
  10. 《孵化twitter》读书笔记
  11. 用DataRelation给多个DataTable建立关系并显示到TreeView
  12. C++第三章复习与总结(思维导图分享)
  13. redis的入门篇---五种数据类型及基本操作
  14. js闭包之应用场景
  15. IDEA环境设置
  16. Spring中BeanFactory与ApplicationContext的区别
  17. 查看 js对象
  18. Thinkphp5笔记三:创建基类
  19. JavaScript学习总结(十八)——JavaScript获取浏览器类型与版本
  20. LeetCode301. Remove Invalid Parentheses

热门文章

  1. Iperf 网络性能测试
  2. 大数四则运算之加法运算--------C语言版(未考虑负数)
  3. 【转载】wav文件格式分析与详解
  4. 搭建Linux(Ubuntu)系统下的Differential Datalog运行环境
  5. opencv —— minEnclosingCircle、fitEllipse 寻找包裹轮廓的最小圆、点集拟合椭圆
  6. javaSE学习笔记(17)---锁
  7. The Ether 靶场
  8. Q函数和值函数
  9. H5网页布局+css代码美化
  10. PTA 1005 Spell It Right