51Testing软件测试论坛

标题: postman 使用 xmysql 连接 mysql 的使用小结 [打印本页]

作者: 巴黎的灯光下    时间: 2019-6-11 12:35
标题: postman 使用 xmysql 连接 mysql 的使用小结
本帖最后由 巴黎的灯光下 于 2019-6-11 13:59 编辑

在测试过程中我们往往需要校对数据库的数据或者准备一些测试数据,供给接口测试在自动执行时使用。所以就用到了postman对于数据库的操作。因为postman本身没有连接数据库的功能,所以用到的是node.js中的xmysql实现Rest API的生成,然后用postman进行不同的查询、更新请求即可。

1.安装部分:
node.js的安装 : [color=rgb(0, 105, 214) !important]http://www.runoob.com/nodejs/nodejs-install-setup.html

xmysql的安装:在安装完node.js之后,在命令行中输入 npm install -g xmysql 即可进行安装。

2.连接部分:
连接部分也比较简单:-h 是数据库的地址 -u 用户名 -p 密码 -d 数据库的名

这里可能注意的是:需要用root账号才能进行连接
命令行输入:xmysql -h host -u root -p Root@pwd -d test_db_2
可以在浏览器中输入localhost:3000查看获取到数据库内容
注:增加-r 参数,那么访问地址就变成了-r设置的地址。
例: xmysql -h host -u root -p Root@pwd -d test_db_2 -r 112.123.3.22 那么访问地址为112.123.3.22:3000

[color=rgb(0, 105, 214) !important]

[color=rgb(0, 105, 214) !important]


3.对数据库的操作部分:
我这里拿一个小的例子描述最常用的查询和更新操作。
1)问题描述:测试环境下,在测试注册接口的时候,我需要一个手机号的是未注册的状态,所以我这里先准备了一个手机号:18888888888,但是我不能保证这个手机号是否被注册,所以我需要从数据库中查询当前数据是否存在,如果存在需要做相应的处理,使其变为未注册的状态。
2)解决方案:
思路是查询当前手机号是否存在于user表中,如果存在就更新到别的手机号(考虑到数据库中谨慎使用delete操作所以使用update),如果不存在直接执行下一步测试
首先,先从数据库user表中查询当前数据是否已经存在: 请求方式为GET,request name 为getuser-sql
http://localhost:3000/api/user?_where=(phone,eq,18888888888)

然后通过test编写判断数据是否存在以及处理方式

responseData = JSON.parse(responseBody)
//获取到json返回的内容
var text = responseData[0];
//获取当前是否有id
if(text != null){
//判断当前手机号是否被注册 ,如果不为null说明手机号已经注册   
    tests["当前手机号已经注册" = true === true;
    var key = responseData[0].id;
    //将id复制给key
    pm.environment.set("IDkey",key);
    //设置id为环境变量
    postman.setNextRequest("update-sql");
    //执行更新手机号的接口,使手机号为未注册的手机号
}
else{
    tests["当前手机号为未注册账号" = true === true;
    postman.setNextRequest("next-api")
    //当前手机号未注册可以直接执行正常手机号登录注册流程
}

最后进行更新操作的编写,请求方式为 PATCH ,request name 为上个接口中写的 update-sql
http://localhost:3000/api/user/{{IDkey}} //{{IDkey}}是在getuser-sql中设置的环境变量,值为主键ID
另外需要在body中编写需要更新字段,如图所示即可:

[color=rgb(0, 105, 214) !important]

[color=rgb(0, 105, 214) !important]


这样这个问题就完全解决了,另外:patch在使用时只能使用主键为条件进行更新,暂时还没有找到别的方式。

4.数据库基本操作:
第一部分请求方式

[color=rgb(0, 105, 214) !important]

[color=rgb(0, 105, 214) !important]


第二部分基本的数据库操作:

[color=rgb(0, 105, 214) !important]

[color=rgb(0, 105, 214) !important]


第三部分排序操作:[color=rgb(0, 67, 138) !important]

[color=rgb(0, 67, 138) !important]



总结:以上就是我在工作中常用的关于postman+xmysql中的使用,基本满足了对于数据库使用的需求。



作者: msnshow    时间: 2019-6-11 13:34
很好!




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2