继续分享robotframework 对数据库中的MongoDB的详细操作。
MongoDB是非常常用的一个非关系型数据库,在RobotFramework中,也提供了对MongoDB数据库测试操作的支持。我们可以通过在浏览器中访问github的网站地址
https://github.com/iPlantCollaborativeOpenSource/Robotframework-MongoDB-Library 即可以看到该库的相关安装说明和API介绍,如下图2-2-1所示。
图2-2-1
作者的原创文章,转载须注明出处。原创文章归作者所有,欢迎转载,但是保留版权。对于转载了博主的原创文章,不标注出处的,作者将依法追究版权,请尊重作者的成果,转载请注明链接:
。
安装完成后,在使用MongoDBLibrary库时,需要在测试套件中,预先导入该库,才可以在用例中使用MongoDBLibrary库中的关键字,如下图2-2-2所示。
图2-2-2
2.1.1 MongoDB数据库的连接和断开
在MongoDB Libray中通过Connect To Mongodb 关键字来连接到MongoDB数据库,该关键字接收[ dbHost=localhost | dbPort=27017 | dbMaxPoolSize=10 | dbNetworkTimeout=None | dbDocClass= | dbTZAware=False ]
这六个参数,dbHost参数指的是MongoDB数据库的IP地址,dbPort参数指的是MongoDB数据库的端口号,不输入时默认为27017,dbMaxPoolSize参数指的是数据库连接的最大线程池大小,不输入时默认大小为10。
示例1:我们连接到本地电脑上一个已经启动好的MongoDB数据库上,这里预先启动了一个3.2版本的MongoDB数据库,如下图2-2-3所示。
图2-2-3
在RIDE中,使用Connect To Mongodb来连接刚刚启动好的数据库,如下图2-2-4所示。
图2-2-4
运行结果如下:
Starting test: RobotFrameworkTest1.TestSute13.TestCase001
20180825 17:47:32.470 : INFO :
| Connect To MondoDB | dbHost | dbPort | dbMaxPoolSize | dbNetworktimeout | dbDocClass | dbTZAware |
| Connect To MondoDB | 127.0.0.1 | 27017 | 2 | None | <type 'dict'> | False |
Ending test: RobotFrameworkTest1.TestSute13.TestCase001
我们执行完成后,然后我看下MongoDB服务端的日志,从如下的MongoDB服务端的日志可以看到,已经成功和MongoDB数据库建立了连接。
2018-08-25T17:45:30.134+0800 I CONTROL [main] Hotfix KB2731284 or later update is not installed, will zero-out data files
2018-08-25T17:45:30.138+0800 I CONTROL [initandlisten] MongoDB starting : pid=8964 port=27017 dbpath=D:\MongoDB\Server\3.2\data 64-bit host=yongqing-PC
2018-08-25T17:45:30.138+0800 I CONTROL [initandlisten] targetMinOS: Windows Vista/Windows Server 2008
2018-08-25T17:45:30.139+0800 I CONTROL [initandlisten] db version v3.2.4
2018-08-25T17:45:30.139+0800 I CONTROL [initandlisten] git version: e2ee9ffcf9f5a94fad76802e28cc978718bb7a30
2018-08-25T17:45:30.140+0800 I CONTROL [initandlisten] allocator: tcmalloc
2018-08-25T17:45:30.140+0800 I CONTROL [initandlisten] modules: none
2018-08-25T17:45:30.140+0800 I CONTROL [initandlisten] build environment:
2018-08-25T17:45:30.161+0800 I CONTROL [initandlisten] distarch: x86_64
2018-08-25T17:45:30.162+0800 I CONTROL [initandlisten] target_arch: x86_64
2018-08-25T17:45:30.162+0800 I CONTROL [initandlisten] options: { storage: { dbPath: "D:\MongoDB\Server\3.2\data" }, systemLog: { destination: "file", path: "D:\MongoDB\Server\3.2\logs\log.log" } }
2018-08-25T17:45:30.164+0800 I STORAGE [initandlisten] wiredtiger_open config: create,cache_size=4G,session_max=20000,eviction=(threads_max=4),config_base=false,statistics=(fast),log=(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000),checkpoint=(wait=60,log_size=2GB),statistics_log=(wait=0),
2018-08-25T17:45:31.202+0800 I FTDC [initandlisten] Initializing full-time diagnostic data capture with directory 'D:/MongoDB/Server/3.2/data/diagnostic.data'
2018-08-25T17:45:31.202+0800 I NETWORK [HostnameCanonicalizationWorker] Starting hostname canonicalization worker
2018-08-25T17:45:31.359+0800 I NETWORK [initandlisten] waiting for connections on port 27017
2018-08-25T17:46:53.205+0800 I NETWORK [initandlisten] connection accepted from 127.0.0.1:2621 #1 (1 connection now open)
2018-08-25T17:46:53.730+0800 I NETWORK [conn1] end connection 127.0.0.1:2621 (0 connections now open)
2018-08-25T17:47:32.471+0800 I NETWORK [initandlisten] connection accepted from 127.0.0.1:2650 #2 (1 connection now open)
2018-08-25T17:47:33.031+0800 I NETWORK [conn2] end connection 127.0.0.1:2650 (0 connections now open)
在MongoDB Libra中通过Disconnect From Mongodb 关键字来断开已经建立的MongoDB数据库连接。
示例2:通过Disconnect From Mongodb关键字断开MongoDB的数据库连接,如下图2-2-5所示。