在测试过程中我们往往需要校对数据库的数据或者准备一些测试数据,供给接口测试在自动执行时使用。所以就用到了postman对于数据库的操作。因为postman本身没有连接数据库的功能,所以用到的是node.js中的xmysql实现Rest API的生成,然后用postman进行不同的查询、更新请求即可。
1、安装部分
- node.js的安装 :Node.js安装教程
- xmysql的安装:在安装完node.js之后,在命令行中输入
npm install -g xmysql
即可进行安装 - 如果安装太慢了,可以使用
cnpm npm install -g cnpm --registry=https://registry.npm.taobao.org
命令安装cnpm,再执行cnpm install -g xmysql
- mac电脑安装可能有权限问题,使用
sudo cnpm install -g xmysql
命令即可
2、连接部分
连接数据库命令:-h 数据库的地址 -u 用户名 -p 密码 -d 数据库的名 -o 数据库端口号
- 这里需要注意的是:需要用root账号才能进行连接
- 命令行输入:xmysql -h host -u root -p Root@pwd -d test_db
- 可以在浏览器中输入localhost:3000查看获取到数据库内容
- 注意:增加-r 参数,那么访问地址就变成了-r设置的地址
- 例如: xmysql -h host -u root -p Root@pwd -d test_db -r 123.123.3.12 那么访问地址为123.123.3.12:3000
备注:-h,-u,-p,-o是要连接的数据库的信息, -r,-n是想要启动xmysql服务机器的信息
3、执行sql语句
启动xmysql后,即可通过http://localhost:3000/api/ 访问 xmysql 自动生成的 Rest API,详细的使用方法可通过https://github.com/o1lab/xmysql查看
备注:localhost是mysql服务要启动的机器的ip,3000是xmysql服务默认端口,二者都可在启动时通过-r修改
(1)查询某表的数据,get请求:http://localhost:3000/api/表名
(2)按某种条件查询,get请求:http://localhost:3000/api/表名?_where=(条件)
(3)查询几列/几行:get请求:http://localhost:3000/api/表名?_fields=username,password;特殊的,分页http://localhost:3000/api/表名?_p=x&_size=x
(4)插入数据,post请求:http://localhost:3000/api/表名
(5)更新数据,patch请求:http://localhost:3000/api/表名/id
(6)删除数据,delete请求:http://localhost:3000/api/表名/id
4、xmysql对数据库的操作
(1)请求方法
序号 | mysql中 | Rest API中 | Rest API中使用 | 含义 |
---|---|---|---|---|
1 | select | get | http://localhost:3000/api/表名?_where=(条件) | 实现数据库查询操作 |
2 | update | patch | http://localhost:3000/api/表名/id | 实现数据库更新操作 |
3 | insert | post | http://localhost:3000/api/表名 参数 | 实现数据库插入操作 |
4 | delete | delete | http://localhost:3000/api/表名/id | 实现数据库删除操作 |
(2)基本的数据库操作
序号 | mysql中 | Rest API中 | Rest API中使用(A为字段,V为值) |
---|---|---|---|
1 | = | eq | (A, eq, V) |
2 | != | ne | (A, ne, V) |
3 | is | is | (A, is, true/false/null) |
4 | in | in | (A, in, V1, V2, V3) |
5 | between | bw | (A, bw, V1, V2) |
6 | > | gt | (A, gt, V) |
7 | < | lt | (A, lt, V) |
8 | >= | gte | (A, gte, V) |
9 | <= | lte | (A, lte, V) |
10 | or | ~or | (A, eq, V1)~or(A, ne, V2) |
11 | and | ~and | (A, eq, V1)~and(A, ne, V2) |
(3)排序操作
序号 | mysql中 | Rest API中 | Rest API中使用 | 含义 |
---|---|---|---|---|
1 | order by id desc | _sort | http://localhost:3000/api/表名?_sort=-id | 倒序排列 |
2 | order by id asc | _sort | http://localhost:3000/api/表名?_sort=id | 正序排列 |
例如:
- 按照id倒序排序18岁的学生:
api/student?_where=(age, eq, 18)&_sort = -id
- 将sex为女且age大于20的学生按id正序排列:
api/student?_where=(sex, eq, 女)~and(age, gt, 20)&_sort = id