PostMan连接mysql数据库并获取数据库数据(nodejs)

PostMan连接MySql数据库

        一、安装nodejs

        二、安装xmysql

        三、连接数据库

        四、获取数据库的相关信息的API

        五、关于Postman+xmysql+nodeJs的实践分享

一、安装nodejs

[下载地址] https://nodejs.org/en/
二、安装xmysql

命令行安装xmysql:npm install xmysql -g:
三、连接数据库

连接数据库的命令:xmysql -h localhost -u mysqlUser -p mysqlPassword -d databaseName
四、获取数据库的相关信息的API

调用http://localhost:3000获取数据库的相关信息

图片1:

《PostMan连接mysql数据库并获取数据库数据(nodejs)》

图片2:

《PostMan连接mysql数据库并获取数据库数据(nodejs)》

图片3:

《PostMan连接mysql数据库并获取数据库数据(nodejs)》

 

 

在postman中获取数据库数据

在postman中获取数据库数据

公司用的是mysql数据库,本想看看postman能不能连接数据库,搜了半天好像是没办法,那有时候我们的测试又需要拿接口返回值与数据库中的值进行比对,怎么办,在网上看到了一个方法,对数据库实现restful API,以http request的方式获取数据库中的数据,http request不就是postman在做的吗,搞起。

下载nodejs,安装xmysql,或者另外有一个mysql-to-rest,nodejs这块就不多讲,我也才刚拿来耍,网上资料很多。
mysql-to-rest看教程还需要node安装express和mysql,再写个连接的js文件,再执行,博主实现了,但是感觉略麻烦。
xmysql就比较直接

《PostMan连接mysql数据库并获取数据库数据(nodejs)》
《PostMan连接mysql数据库并获取数据库数据(nodejs)》
命令设好数据库连接信息,几秒就生成了
《PostMan连接mysql数据库并获取数据库数据(nodejs)》
postman发送http请求,拿到API

《PostMan连接mysql数据库并获取数据库数据(nodejs)》
获取了aaaa表的数据,搞定
数据库数据已经到手,剩下的就是在tests中用js代码进行操作了就不写了,可以单独去了解xmysql的文档。
至此,从文件获取数据,发送请求,响应断言,流程化,数据库数据获取都已实现了

nodejs连接mysql实例

1、在工程目录下运行npm install mysql安装用于nodejs的mysql模块;

2、创建db.js模块用于连接mysql,同时定义query查询方法;

var mysql = require('mysql');

// 创建一个数据库连接池
var pool = mysql.createPool({
  connectionLimit: 50,
  host: 'localhost',
  user: 'admin',
  password: '123456',
  database: 'rp-test'
});

// SELECT * FROM users
// 让我们的方法支持两种模式
// 一种是只传入SQL语句和回调函数
// 一种是传入SQL语句、参数数据、回调函数

exports.query = function (sql, P, C) {
  var params = [];
  var callback;

  // 如果用户传入了两个参数,就是SQL和callback
  if (arguments.length == 2 && typeof arguments[1] == 'function') {
    callback = P;
  } else if (arguments.length == 3 && Array.isArray(arguments[1]) && typeof arguments[2] == 'function') {
    params = P;
    callback = C;
  } else {
    throw new Error('对不起,参数个数不匹配或者参数类型错误');
  }


  // 如果用户传入了三个参数,那么就是SQL和参数数组、回调函数


  // 从池子里面拿一个可以使用的连接
  pool.getConnection(function (err, connection) {
    // Use the connection
    connection.query(sql, params, function () {
      // 使用完毕之后,将该连接释放回连接池
      connection.release();
      callback.apply(null, arguments);
    });
  });
};

3、查询示例

var express = require('express');
var db = require('./db');
var router = express.Router();

router.get('/',function(req, res, next){
    db.query("select * from app",function(err,result){
         //console.log(result);
        res.send(JSON.stringify (result));
    });
});
module.exports=router;

关于Postman+xmysql+nodeJs的实践分享

Postman是一款接口测试工具,相对Jmeter接口扁平简洁,很方便开发调试接口使用,如果想要用来做测试,实现批量接口管理,单个接口断言,以及特殊字符处理,甚至批量回归测试,生成报表,结合jenkins实现CI集成都是可以做到的。

  1. 环境变量,全局变量

    • 全局变量

      全局变量可用于postman 所有接口,设置方式如下图,其中Initial value是一个初始值到处是可用于分享于他人,current Value是至当前工程所使用的value

《PostMan连接mysql数据库并获取数据库数据(nodejs)》

image

-环境变量
环境变量可添加多个,构建接口时可选择其中一个环境变量设置,如下图,可添加多组不同环境变量信息用于不同环境下的测试,也可直接导入同事导出的环境变量json文件

《PostMan连接mysql数据库并获取数据库数据(nodejs)》

image

  1. 添加接口

postman对单个接口的支持相当丰富,可以按需选择,结构比较扁平化,基本测试一个接口所需的东西在一个页面都可以找到

《PostMan连接mysql数据库并获取数据库数据(nodejs)》

image

填入参数时Bulk Edit比较方便,特别是有多组值的时候先点击Bulk Edit,贴入多组key:value值然后点击key-value edit可自动转换成表格格式。

  1. 前置脚本-Pre-request Script

在做批量回归测试的时候,有很多接口是需要类似于随机字符串/随机数字 或者时间戳等参数的,这种情况我们可以通过脚本来实现。Pre-request Script支持JS,如下脚本实现随机字符与特定格式时间戳并赋给环境变量:


pm.environment.set("randomname","测试计划"+Math.random());

pm.environment.set("today", getNowFormatDate());

function getNowFormatDate() {

        var date = new Date();

        var seperator1 = "-";

        var year = date.getFullYear();

        var month = date.getMonth() + 1;

        var strDate = date.getDate();

        if (month >= 1 && month <= 9) {

            month = "0" + month;

        }

        if (strDate >= 0 && strDate <= 9) {

            strDate = "0" + strDate;

        }

        var currentdate = year + seperator1 + month + seperator1 + strDate;

        return currentdate;

    }

上面pre-request脚本设置了两个环境变量,使用的时候用两层大括号括起来就好了,如下图:

《PostMan连接mysql数据库并获取数据库数据(nodejs)》

image

  1. 测试脚本-Test

测试脚本可用于设计接口测试断言,可以分析response内容或者判断请求结果及状态等。右边提用了很多snippets可供参考使用,支持JS语言,也可以自己写一些辅助脚本来使用

《PostMan连接mysql数据库并获取数据库数据(nodejs)》

image

5.导入导出

postman支持环境变量,全局变量及接口组合(Collection)的到如何导出,Collection右侧的小箭头点进去可以看到share/run以及export相关的功能,导入及导出的格式为json,可以放在相应的工程里方便管理与分享

6.newman,报表

确定机器上安装了NodeJs,然后通过npm安装newman:

npm install newman -g

安装newman之后可通过命令行直接跑collection:

newman run mycollection.json

带上导出的环境变量文件跑10遍:

newman run mycollection.json -e myenv.json -n 10

生成固定格式的报表(下面的命令会生成json,html,junit不同格式的报表):

newman run mycollection.json -e myenv.json –reporterscli,json,html,junit

  1. xmysql

有不少接口测试需要结合数据库验证,jmeter有提供专门的jdbc连接模块,postman却没有,但也不是完全不可做。对于mysql数据库有一个One command to generate REST APIs for any MySql Database的小工具xmysql非常的神奇好用:

安装:npm install xmysql -g

使用:xmysql -h localhost -u mysqlUser -p mysqlPassword -d databaseName

然后打开:http://localhost:3000就可以看到上面数据库相关的一堆json,找到你要查选的对应表,然后在postman中起一个get请求即可查询该表所有数据,可以在Test中添加相应的解析脚本判断查出的结果中是否包含期望的数据:

《PostMan连接mysql数据库并获取数据库数据(nodejs)》

image

8.关于添加cookie

newman作为一个nodejs module可以很方便的放入到一个js工程中,例如我测试的产品,cookie构造的方式很复杂,只能通过模拟登陆的方式获取,如是我通过python写了一个简单的脚本通过页面模拟登陆获取cookie然后存入到导出的postman 环境变量json文件中,在通过newman js脚本来跑collection中的case,贴出newman js 部分脚本如下(生成html,junit格式报表用于跟jenkins集成)


var newman = require("newman");

newman.run({

    collection: require('./testAdvance.postman_collection.json'),

    environment:require('./TestFeatured.postman_environment.json'),

    reporters:['cli','html','junit']

}).on('start', function (err, args) { // on start of run, log to console

    console.log('running a collection...');

}).on('done', function (err, summary) {

    if (err || summary.error) {

        console.error('collection run encountered an error.');

    }

    else {

        console.log('collection run completed.');

    }

},process.exit);

    原文作者:Augnita
    原文地址: https://blog.csdn.net/Augnita/article/details/96739449
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞