MeterSphere 如何连接 MongoDB
一、背景
在使用 MeterSphere 做接口测试过程中,有一些接口场景需要去查数据库,然后将查到的数据作为请求参数传递,目前MeterSphere 默认只支持 Mysql 、Oracle、SQLServer 等数据库查询,如果需要查询 Redis 和 MongoDB 等非关系型数据库,可通过脚本写代码方式去实现。以下以MongoDB为例,介绍如何通过代码连接非关系型数据库。
二、具体步骤
1、上传Jar包
连接 MongoDB 是需要用到 MongoDB 的驱动包,可以去附件列表里下载驱动包,进入 【项目设置】-【文件管理】模块,将驱动包上传到平台。
2、添加脚本
在接口的前后置操作中添加前后置脚本,添加连接 MongoDB 的代码,脚本类型选择 groovy 。
脚本内容如下:
import com.mongodb.MongoClient;
import com.mongodb.MongoClientURI;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoCursor;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.model.Filters;
import org.bson.BsonDocument;
import org.bson.BsonString;
import org.bson.Document;
// dbUser:用户名,dbPwd:密码,ip:mongo服务器地址
String mongoUri = "mongodb://dbUser:dbPwd@ip:端口/admin";
MongoClientURI connStr = new MongoClientURI(mongoUri);
MongoClient mongoClient = new MongoClient(connStr);
try {
MongoDatabase database = mongoClient.getDatabase("数据库名");
// 取得集合/表 someonetable 句柄
MongoCollection<Document> collection = database.getCollection("someonetable");
// 准备写入数据
Document doc = new Document();
doc.append("key", "value");
doc.append("username", "jack");
doc.append("age", 31);
// 写入数据
collection.insertOne(doc);
System.out.println("insert document: " + doc);
// 读取数据
BsonDocument filter = new BsonDocument();
filter.append("username", new BsonString("jack"));
MongoCursor<Document> cursor = collection.find(filter).iterator();
while (cursor.hasNext()) {
log.info("find document: " + cursor.next());
log.info("age: " + cursor.next().get("age"));
}
//删除数据
collection.deleteOne(Filters.eq("username","jack"));
log.info("删除成功");
}
finally
{
//关闭连接
mongoClient.close();
}
3、调试脚本
将用户名、密码、ip、端口、数据库名等替换成实际 MongoDB的信息,然后点击调试,结果如下:
总结:MeterSphere 默认只支持 Mysql 、Oracle、SQLServer 等关系型数据库的连接,如果需要连接 Redis 和 MongoDB 等非关系型数据库,可在前后置操作中通过脚本的方式去实现。