mongodb 输出数组字段_JMeter之Groovy对MongoDB操作

5189f0b1e89fa5d508e3231a2bd703df.gif

背景

  使用Jmeter做接口测试时需要初始数据,需要连接数据库,然而我们的后端使用的是MongoDB。

操作步骤

  2.1 导入将连接MongoDB 所涉及的jar包导入jmeter的扩展lib   1)扩展lib的地址:\works\apache-jmeter-3.3\lib\ext   涉及jar如下:

gmongo-1.5.jar

mongo-java-driver-3.4.0-rc1.jar

mongodb-driver-3.4.0.rc1.jar

  2)重新启动jmeter   2.2 添加JSR请求or前、后置处理器   2.2.1 添加JSR请求采样器   操作步骤:右击【线程组】》点击【添加】》点击【Sampler】》点击【JSR223 Sampler】。 eb84b2a4c3709c142b16502f69cd9a8b.png   2.2.2 添加前,后置处理器-JSR   点击【线程组】or 【Sampler】》点击【添加】》点击【前置/后置处理器】》点击【JSR223 preprocessor】 ad526d012839c16b69cfd5668ca6fdd8.png   2.3 JSR请求or 前、后置处理器   2.3.1 添加连接MongoDB自定义参数 68ca6f33327ba0a47df23aeb3b5577df.png   2.3.1 JSR请求   1)不需要通过帐号&密码连接 5b06ae9c71d5ded3df3290bad0d1e7b5.png   内容如下:

importcom.mongodb.*

  importcom.gmongo.GMongoClient

  importcom.mongodb.MongoCredential

  importcom.mongodb.ServerAddress

  //创建mongoClient连接 无密码

  GMongoClientclient = new GMongoClient(new ServerAddress("${IP}",${Port}));

  //连接指定的数据库,使用已经定义的参数

  defDB=client.getDB("${AuthDB}");

  //find()出来的是一个数组对象

  DB.table1.find();

  //出来的是查到的第一个对象

  DB.table1.findOne([:]);

  //插入数据

  DB.table1.insert([Appid:'E8CUJW99',AppName:'TEST', Desc:111, Status:1, AppKey:'1111', Creater:'tester',Updater:'tester', TextEnabled:true, ImageEnabled:true, VedioEnabled:true,AudioEnabled:true]);

  //删除数据

  DB.table1.remove({'Appid':'E8CUJW99'});

  2)通过帐号密码连接 d68a7d1ae30ba3cc15c0b2c3a7e5b8fc.png   内容如下:

importcom.mongodb.*

  importcom.gmongo.GMongoClient

  importcom.mongodb.MongoCredential

  importcom.mongodb.ServerAddress

  //创建mongoClient连接 有密码

  credentials =MongoCredential.createCrdential('${userName}','${pwd}','${AuthDB}' as char[])

  GMongoClientclient = new GMongoClient(new ServerAddress("${IP}",${Port}),[credentials])

  log.info("test============================");

  //连接指定的数据库,使用已经定义的参数

  defDB=client.getDB("${AuthDB}");

  //find()出来的是一个数组对象

  DB.table1.find();

  //出来的是查到的第一个对象

  DB.table1.findOne([:]);

  //插入数据

  DB.table1.insert([Appid:'E8CUJW99',AppName:'TEST', Desc:111, Status:1, AppKey:'1111', Creater:'tester',Updater:'tester', TextEnabled:true, ImageEnabled:true, VedioEnabled:true,AudioEnabled:true]);

  //删除数据

  DB.table1.remove({'Appid':'E8CUJW99'});

踩过的坑

  3.1 写入mongoDB 报javax.script.ScriptException: 

javax.script.ScriptException: groovy.lang.MissingMethodException: 

No signature of

  截图: 8716cce8f22e596e4e0a5c935ac0c37a.png   原因:   1)写入格式不对   2)写入数据不完整,有5个字段不能为空,但只写了2个。   解决方法:   1)  查询表中已有数据并输出到日志   例如:

log.info("===test==="+ DB.table1.findOne([:]));

  查询结果: ce472d2d627f3efa768ce1bb64eef1f9.png   2)  将查询的数据放入insert(注: 要将id,写入时间,修改时间字段去掉)   例如:

DB.table1.insert([Appid:'E8CUJW99',AppName:'TEST', Desc:111, Status:1, AppKey:'1111', Creater:'tester', Updater:'tester',TextEnabled:true, ImageEnabled:true, VedioEnabled:true, AudioEnabled:true]);

 3.2 写入MongoDB报javax.script.ScriptException: 

groovy.lang.MissingPropertyException:No

  such property:XXXX for class:ScriptXX   原因: 字符没有加单引号(‘’)   解决方法: 写入MongoDB时含字符串的字段值加上单引号(‘’)即可。 d8f4ab12c9dded48808ab0f0abe60b83.png

928f9d8d25b3014eab606c20334a2454.png

原文链接:https://www.jianshu.com/p/1566d3487880

本文为51Testing经授权转载,转载文章所包含的文字来源于作者。如因内容或版权等问题,请联系51Testing进行删除。

推荐阅读

点击阅读☞测试行业的点滴感悟……

点击阅读☞Jmeter接口测试之用例数据分离

点击阅读☞初学者如何编写Jmeter测试脚本?

点击阅读☞关于Jmeter长时间压测的可视化监控报告

点击阅读☞初学者如何编写Jmeter测试脚本?

80b80663a64534dafcb8953e6e9d8e63.gif02d5dbb6694611f98096c6d6ec19b07f.gif 1a96b41465a5134fa7a3948faf26f6a8.png爱我请给我好看! 02d5dbb6694611f98096c6d6ec19b07f.gif
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值