一、背景
使用postman进行接口自动化测试时,除了要验证接口的返回,有时候还要同时验证数据库的数据,或者将接口返回的数据与数据库的数据做对比,检验数据的正确性。
有的时候还需要在执行自动化case之前,造一些测试数据,或者在跑完自动化之后,删除测试数据。
所以,我们需要在postman里连接并操作数据库,才能实现真正的完全自动化。
经查阅资料,可以通过安装node.js和xmysql,实现Postman与数据库的连接,生成Rest API,对数据库的数据进行增删改查操作。
具体实现如下:
二、下载安装node.js
1、下载
nodejs下载地址:https://nodejs.org/en/
2、安装
这一步是选择安装哪些模块,默认是全部安装,对于新手来说建议全部安装。
npm package manager:
表示npm包管理器
online documentation shortcuts:
在线文档快捷方式
Add to PATH:
添加node安装路径到环境变量
点开那个add path选项前面的+号,我们看到,会主动把NodeJS和NPM这两个模块的命令路径添加到系统路径里,对于我们来说就非常方便了。
点击next继续下一步,确认信息,点击Install开始安装,程序开始复制文件等一系列步骤。一直到安装完毕。
3、测试是否安装成功
node -v
可以看到,已经安装成功。
三、连接数据库
1、安装用来连接数据库的xmysql插件
npm install -g xmysql
2、通过xmysql命令连接数据库
xmysql -h 主机ip -u 用户名-p 密码 -d 数据库名
注意:需要root账号才能连接,连接成功后,如下图:
可以看到Database为sousou,表的数量为53。
四、操作数据库
连接成功后,我们就可以通过http://localhost:3000/api/表名来操作数据库。
1、查询数据【GET】
其中,where参数是条件,不加where则是查询所有记录。
如下例子,是指查询【package】表中【id=11】的记录(【eq】代表数据库里的【=】,其他运算符见下文【数据库操作合集】):
http://localhost:3000/api/package?_where=(id,eq,11)
2、删除数据【DELETE】
其中,id是数据库中的记录的唯一标识。
如下例子,删除【banner】表中【id=155】的记录:
http://localhost:3000/api/banner/:id
可以看出,一行受影响,证明已经删除成功。
另:
可以对结果加断言(检查点)进行校验,例如判断受影响行数为1。
//校验HTTP状态码为200 pm.test("Status code is 200", function () { pm.response.to.have.status(200); }); var jsonData = pm.response.json(); //校验受影响行数为1 pm.test("affectedRows = 1", function () { pm.expect(jsonData.affectedRows).to.eql(1); });
可以在Test Results中看到,状态码及受影响行数的断言均通过。
点击查看详细加断言(检查点)的方式
3、修改数据【PATCH】
其中,id是数据库中的记录的唯一标识,更新的数据以json的格式放在body里
如下例子是将【package】表中【id=11】的记录的【name】改为“测试修改”
http://localhost:3000/api/package/:id
通过结果response可以看出,有一行受影响,说明已经更新成功了,可根据自身情况设置响应的断言进行校验。
4、插入数据【POST】
插入记录的数据以json的格式放在body里。
如下例子,向【banner】表中添加一条记录:
http://localhost:3000/api/banner
可以看出,受影响行数为1,说明已经添加成功。
五、数据库操作合集
1、请求方式
2、条件中的运算符
3、排序操作
更全面的详解请参考官方:https://github.com/o1lab/xmysql#api-overview
初入职场热爱分享的打工人一枚,请大家多多指教~~