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

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

1. 环境变量,全局变量

- 全局变量

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

fe11e69627cddac8cdb60ad5a530d42a.png

-环境变量

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

7147db5cf3da71a8c192ad44217e7d4d.png

2. 添加接口

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

b8c7871bdb8d161b5528f00b3f470202.png

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

3. 前置脚本-Pre-request Script

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

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

pm.environment.set("today", getNowFormatDate());functiongetNowFormatDate() {var date = newDate();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;returncurrentdate;

}

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

ab51a5dba58faca22030fc4ba08d5ccb.png

4. 测试脚本-Test

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

6be981f6a87d2a8a0ca3cd77f6760b2a.png

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

7. 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中添加相应的解析脚本判断查出的结果中是否包含期望的数据:

3ef2539c1d1488788e56f53d8ab3a361.png

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);

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值