51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 2904|回复: 1
打印 上一主题 下一主题

[资料] postman 使用 xmysql 连接 mysql 的使用小结

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-6-11 12:35:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 巴黎的灯光下 于 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中的使用,基本满足了对于数据库使用的需求。


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-4-23 15:00 , Processed in 0.067782 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表