【最佳实践】MeterSphere 如何连接 MongoDB


朱飞鸽
飞致云 发布于 2023-09-05 / 475 阅读 / 0 评论 /

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 等非关系型数据库,可在前后置操作中通过脚本的方式去实现。



是否对你有帮助?