在进行接口测试过程中,我们经常需要通过数据库对比检查来判断接口执行的结果是否正确。
但是 Postman 并没有提供数据库的查询。就无法通过 Postman 去连接数据库验证数据的正确性。
好在,有一款基于 node.js 的工具 Xmysql可以将数据库的表数据转换成 Restful API 接口,返回 JOSN 格式的数据结果。
重度声明:此款工具仅能用于测试环境,因为这款工具会造成严重的数据安全问题。
不过测试本来就在测试环境,所以测试使用在一定的安全性意识前提下,是没有太大问题的。
1. 安装部署
1.1 安装 Node.js
Xmysql 是基于 Node.js 开发的,需要安装 Node.js 环境。Node.js 的安装直接从 [node.js 中文网] 下载无脑安装即可。
建议:不要随便更改其安装目录。
安装完成后,在命令行窗口输入npm --version
npm是 Node.js 的包管理工具,用来安装基于 Node.js 相关的软件。
1.2 安装Xmysql
在 Node.js 安装好后,执行如下命令;
npm install -g xmyql
-g 参数是指全局安装,对当前操作系统所有用户有效。
安装好以后,输入如下命令检查是否安装成功。
xmysql --version
2. Xmysql 基本使用
xmysql 安装好以后,就可以直接在命令行启动 xmysql 服务。启动命令如下:
xmysql -h localhost -u root -p root -r 172.31.18.163 -d ecshop2
参数说明:
-h localhost:指定数据库服务器所在的 IP 地址;
-u root:指定访问数据库的账号(注意,直接使用 root 账号极度危险);
-p root:指定访问数据库的密码,与上面的账号配套;
-r 172.31.18.163:指定访问的 API 的 IP,这样可以跨服务器访问,否则只能使用 localhost 和 127.0.0.1 进行本机访问;
-d ecshop2:指定具体的数据库,这里的数据库名为 ecshop2。
服务启动后的界面如下,如果没有启动成功,请根据上面的参数逐一检查。我们可以看到 ecshop2 库一共有 88 张表,生成了 1681 个 API 接口
服务器启动成功后,我们就可以通过 http://172.31.18.163:3000 访问,会展示所有的 1681 个 API 接口的地址:
注:如果启动服务后,数据库的 Number of Tables数量为0,那么就是数据库没有连接成功。遇到上图的情况就根据提示信息检查参数值,可通过 Ctrl+C 结束服务,修改参数后再重新启动。
3. Xmysql API 介绍
3.1 常见 API
由 xmysql 提供最常用的一些 API。包括获取整张表,获取表中某行数据,修改某行数据,删除某行数据等,也就是常见的增删改查。这些操作的执行都通过指定主键ID来完成。
3.1.1 获取整张表所有数据
通过 GET 请求某一个表名,获取整张表的数据。
GET /api/表名
GET http://172.31.18.163:3000/api/ecs_users
注:这里查询整张 ecs_users 表。
3.1.2 查询某一行数据
通过在 URL 中指定某一行的主键,查询改行的数据。这里的 ecs_users 表的主键为 user_id。
GET /api/表名/id
GET http://172.31.18.163:3000/api/ecs_users/2
注:这个方法和后面的方法 ID 都是直接使用该表的主键。比如 ecs_users 表的主键为 user_id, 那么这里的 ID 就是指user_id, 比如 ecs_goods_type 表的主键为 cat_id ,那么这里的 ID 就是指cat_id
3.1.3 创建一条数据
通过 POST 方法在对应的表中增加一条数据。
POST /api/表名(PUT也是创建)
这里使用 ecs_goods_type 表演示。该表结构如下:
POST http://172.31.18.163