一、背景

在使用 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 等非关系型数据库,我们可以通过代码方式去实现。


↙↙↙阅读原文可查看相关链接,并与作者交流