Postman如何通过xmysql工具的Restful API 接口访问MySQL

Only1You1
发布于 2022-8-23 16:21
浏览
0收藏

导语


有时候用 Postman 接口测试需要获取MySQL的查询结果做接口输出的校验,这里介绍下 Postman 通过 Restful API 接口访问 MySQL 的工具xmysql的使用方法。

 

步骤


一、使用nmp安装xmysql


注:npm的安装和配置自行百度,这里主要讲xmysql,就不赘述了

C:\Users\wmp>node -v
v12.16.3
C:\Users\wmp>
C:\Users\wmp> npm install -g xmysql
C:\Users\wmp\AppData\Roaming\npm\xmysql -> C:\Users\wmp\AppData\Roaming\npm\node_modules\xmysql\bin\index.js

> es5-ext@0.10.59 postinstall C:\Users\wmp\AppData\Roaming\npm\node_modules\xmysql\node_modules\es5-ext
> node -e "try{require('./_postinstall')}catch(e){}"

+ xmysql@0.5.1
added 131 packages from 68 contributors in 22.806s

安装完输入xmysql可以查看具体参数,同时也表示安装成功

C:\Users\wmp>xmysql
Usage: index [options]

Options:
  -V, --version            output the version number
  -h, --host <n>           hostname of database / localhost by default
  -u, --user <n>           username of database / root by default
  -p, --password <n>       password of database / empty by default
  -d, --database <n>       database schema name
  -r, --ipAddress <n>      IP interface of your server / localhost by default
  -n, --portNumber <n>     port number for app / 3000 by default
  -o, --port <n>           port number for mysql / 3306 by default
  -S, --socketPath <n>     unix socket path / not used by default
  -s, --storageFolder <n>  storage folder / current working dir by default / available only with local
  -i, --ignoreTables <n>   comma separated table names to ignore
  -a, --apiPrefix <n>      api url prefix / "/api/" by default
  -y, --readOnly           readonly apis / false by default
  -c, --useCpuCores <n>    use number of CPU cores (using cluster) / 1 by default
  -h, --help               output usage information

  Examples:

    $ xmysql -u username -p password -d databaseSchema

Error: password for database is missing
Error: database name is missing

C:\Users\wmp>

连接数据库:

xmysql -h host_name -o port -u user_name -p user_password -d database_name

C:\Users\wmp>xmysql -h 192.168.5.103 -u root -p 123456 -o 3301 -d test

          Generating REST APIs at the speed of your thought..

 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

          Database              :    test
          Number of Tables      :    3   【test库表的数量】

          REST APIs Generated   :    62  【生成的api数量】

          Xmysql took           :    0 seconds
          API's base URL        :    localhost:3000   【api的访问方式,端口3000可以通过参数 -n进行修改为其他】

 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

xmysql的默认端口是3000,下面用postman调用api的方式试下数据库的增删改查(注: 在postman中执行sql语句时,cmd窗口和MySQL都不可以关闭)

API Overview

Postman如何通过xmysql工具的Restful API 接口访问MySQL-鸿蒙开发者社区

Postman如何通过xmysql工具的Restful API 接口访问MySQL-鸿蒙开发者社区

Postman如何通过xmysql工具的Restful API 接口访问MySQL-鸿蒙开发者社区

查看对象表下所有可用的接口,可以参数调用并查看结果 http://localhost:3000/ 以下是t1表可用的接口:

Postman如何通过xmysql工具的Restful API 接口访问MySQL-鸿蒙开发者社区Postman如何通过xmysql工具的Restful API 接口访问MySQL-鸿蒙开发者社区

用t1表做一个简单的查询测试:

Postman如何通过xmysql工具的Restful API 接口访问MySQL-鸿蒙开发者社区1、查询t1的整表数据

GET /api/t1
SQL: select  *  from `t1` ;

Postman如何通过xmysql工具的Restful API 接口访问MySQL-鸿蒙开发者社区

2、带条件查询

GET /api/t1?_where=(ida,eq,1)
SQL: select  *  from `t1`  where `ida`=1;

Postman如何通过xmysql工具的Restful API 接口访问MySQL-鸿蒙开发者社区

3、分页查询

Postman如何通过xmysql工具的Restful API 接口访问MySQL-鸿蒙开发者社区

4、in查询

GET /api/t1/bulk?_ids=1,2,3
SQL: select  *  from `t1`  where `ida` in (1,2,3)  limit 0,20;

Postman如何通过xmysql工具的Restful API 接口访问MySQL-鸿蒙开发者社区

其他的增删改参考上述的API Overview,下面演示下xmysql在postman接口测试中的应用:

 
应用一:接口测试数据校验


1.启动xmysql服务:(测试时保持服务启动状态不要关闭)

xmysql -h 192.168.5.103 -u root -p Great@123 -o 3306 -d SCOTT

Postman如何通过xmysql工具的Restful API 接口访问MySQL-鸿蒙开发者社区2.创建postman测试collection,包含测试接口和xmysql获取mysql数据接口

#测试接口1:获取全国行政区划
http://127.0.0.1:8369/query?fid={{pregion_code}}
#接口2:xmysql获取mysql数据接口
http://localhost:3000/api/AREAS?_where=(parent_region_code,eq,{{pregion_code}})

接口参数化,可在postman collection中设置全局参数并赋值

//定义变量做接口的输入传参并设置为全局变量
var pregion_code=110100;
pm.environment.set("pregion_code", pregion_code);

Postman如何通过xmysql工具的Restful API 接口访问MySQL-鸿蒙开发者社区

接口输出参数化设置:

在接口1Tests中用js脚本对接口输出结果需要断言的部分转参数并设置环境变量,以便在接口2的数据库输出中进行比较

//返回body转json
var jsonData = JSON.parse(responseBody);
var list=jsonData.result;
var regionCode=[];

num=list.length;

for (let i=0;i<num;i++){
    regionCode.push(list[i].id);

}
//设置为全局变量,用于数据库查询接口的数据校验
pm.environment.set("regionCode", regionCode);

//console.log(regionCode)

Postman如何通过xmysql工具的Restful API 接口访问MySQL-鸿蒙开发者社区接口2Tests中用js脚本对数据库查询到的json脚本进行处理,获取需要的数据,参数化后与接口1的输出进行比较

//返回body转json
var jsonData = JSON.parse(responseBody);
var res_id=[];
num=jsonData.length;

//获取数据库查询结果的region_code列
for (let i=0;i<num;i++){
    res_id.push(jsonData[i].region_code+'');

}

//获取接口1输出的结果参数regionCode
var regionCode=pm.environment.get("regionCode");

//断言 比较接口和数据库的输出结果
tests["接口断言成功!!"] = res_id.sort().toString === regionCode.sort().toString ; 


//console.log(res_id);

Postman如何通过xmysql工具的Restful API 接口访问MySQL-鸿蒙开发者社区

3.运行测试collection

Postman如何通过xmysql工具的Restful API 接口访问MySQL-鸿蒙开发者社区

应用二:利用postman+xmysql实现MySQL快速生成大量测试数据
建表脚本

drop table if exists t1;

CREATE TABLE  t1
(
id int NOT NULL AUTO_INCREMENT PRIMARY KEY comment '用户ID', 
person_name varchar(30) comment '用户名称'

) 

这里演示插入10000条:

1.创建insert 接口

Postman如何通过xmysql工具的Restful API 接口访问MySQL-鸿蒙开发者社区Postman如何通过xmysql工具的Restful API 接口访问MySQL-鸿蒙开发者社区2.设置collection并执行

Postman如何通过xmysql工具的Restful API 接口访问MySQL-鸿蒙开发者社区3、执行完毕,查看表数量

Postman如何通过xmysql工具的Restful API 接口访问MySQL-鸿蒙开发者社区调用表行数查询接口查询结果:

Postman如何通过xmysql工具的Restful API 接口访问MySQL-鸿蒙开发者社区Postman如何通过xmysql工具的Restful API 接口访问MySQL-鸿蒙开发者社区

声明:xmysql工具主要用于测试环境,结合接口测试等,主要用于内部测试,在生产还是不建议使用,因为这款工具会造成严重的数据安全问题。

参考文档
https://gitee.com/thinkyoung/xmysql

分类
标签
已于2022-8-23 16:21:04修改
收藏
回复
举报
回复
    相关推荐