静,是一种休息,更是一种修行。所有的烦恼,都来自于喧嚣,所有的伤痛,都来自于躁动。身体奔波太久会劳累,灵魂游离太久会成伤。红尘淹没了纯洁,欲望吞噬了安详,经年后,心若一动,泪已千行。 停一停追逐的脚步,缓一缓紧绷的心弦,让心宁静,让伤口复原,让灵魂升华。

基于mongo数据库的express接口自动化测试

王海峰 | 发表于:2016-07-20 23:25:54 | 日志分类:测试开发 | 阅读量:(593)
一、mongo数据库安装
1、安装mongo数据库
打开mongo数据库下载地址:https://www.mongodb.com/download-center#community
点击下载后解压并配置好环境变量,如下图所示:
MONGODB=/Users/chinaskin/Tools/mongo
PATH=$MONGODB/bin:$PATH
export MONGODB
export PATH

2、启动Mongo数据库服务
先来看看mongo的相关介绍
默认启动:


$ ./mongodb
默认数据保存路径:/data/db/
默认端口:27017
MongoDB的数据存储在data目录的db目录下,但是这个目录在安装过程不会自动创建,所以你需要手动创建data目录,并在data目录中创建db目录。
以下实例中我们将data目录创建于根目录下(/)。
注意:/data/db 是 MongoDB 默认的启动的数据库路径(--dbpath)。
修改默认路径:
--dbpath
$ ./mongdb --dbpath /mongodb/
把数据存储位置指向一个自己的目录/mongodb/
修改默认端口:
--port
$ ./mongdb --port 20111


把服务端口修改为20111,这个一方面是为了安全,使用默认端口容易被一些恶意的人发现做手脚

二、接口的开发与测试
1、首先,我们基于Node.js平台下的express框架来开发应用接口
express是基于Node.js平台下的快速的,开放的,极简的,灵活的web开发框架,它提供了一系列强大的特性,帮助你创建各种web和应用设备应用,其中,在API方面,拥有丰富的HTTP快捷方法和任意的排列组合的Connect中间件,让你创建健壮、友好的API变得既快速又简单。
2、开发环境安装
在Github中下载示例源码,然后通过mac版的WebStorm打开下载的源码,其中,主目录下有一个package.json文件,在Terminal窗口中,直接执行npm i命令就可以安装所有的依赖,包括中间件,第三方库等
3、待所有的dependencies都安装完成后,就可以开始启动app.js文件打开服务。
其中,在config.js文件中,我们可以看到,port端口号为3000,那么启动服务后,可以通过http://localhost:3000来访问这个服务。
4、在命令窗口中,执行node app.js,此时服务已经启动,如下图:
wanghaifengdeiMac:node-test-demo-master chinaskin$ node app.js
listening on port  3000
此时,mongo数据中,自动的创建数据库和表,如下图:

5、在命令窗口中,进入到test目录,执行其中的测试用例。


6、查看mongo数据库,查看数据是否被插入到数据库中



错误问题分析处理:
问题一:如下所示,执行命令mongod时,提示报错
wanghaifengdeiMac:~ chinaskin$ mongod
2016-07-20T13:57:14.781+0800 I CONTROL  [initandlisten] MongoDB starting : pid=78667 port=27017 
dbpath=/data/db 64-bit host=wanghaifengdeiMac.local
2016-07-20T13:57:14.781+0800 I CONTROL  [initandlisten] db version v3.2.4
2016-07-20T13:57:14.781+0800 I CONTROL  [initandlisten] git version: e2ee9ffcf9f5a94fad76802e28cc978718bb7a30
2016-07-20T13:57:14.781+0800 I CONTROL  [initandlisten] allocator: system
2016-07-20T13:57:14.781+0800 I CONTROL  [initandlisten] modules: none
2016-07-20T13:57:14.781+0800 I CONTROL  [initandlisten] build environment:
2016-07-20T13:57:14.781+0800 I CONTROL  [initandlisten]     distarch: x86_64
2016-07-20T13:57:14.781+0800 I CONTROL  [initandlisten]     target_arch: x86_64
2016-07-20T13:57:14.781+0800 I CONTROL  [initandlisten] options: {}
2016-07-20T13:57:14.782+0800 I STORAGE  [initandlisten] exception in initAndListen: 98 Unable to create/open lock file:
 /data/db/mongod.lock errno:13 Permission denied Is a mongod instance already running?, terminating
2016-07-20T13:57:14.782+0800 I CONTROL  [initandlisten] dbexit:  rc: 100
解决办法:
sudo chmod a+w /data/db
或
sudo chown -R $(whoami):admin /data/db