十、collection的作用+变量

一、collection作用?容器

  • 组织业务逻辑
  • 导入导出
  • 其他功能,比如监控和mock server

二、为什么要使用变量

假设我们需要测试n个api,这些api的domain都是相同的,比如

  • api.itest.info/tasks
  • api.itest.info/tasks/:task_id

如果有一天,api的domain变化了,不再是api.itest.info,那么就麻烦了

  • {{itest_domain}}/tasks
  • {{itest_domain}}/tasks/:task_id

三、postman变量作用域

  • Global:全局,比如可以将错误提示信息设置成全局变量
  • Environment:环境变量,比如可以在sandbox中定义
  • Local:本地变量,一般可以在sandbox中定义
  • Data:测试数据中导入的变量,也就是所谓的参数化

四、变量的引用

我们可以在builder里引用变量

{{variable}}

五、管理环境变量和全局变量

演示

https://www.v2ex.com/api/nodes/show.json?name=python

node_name:php/python/qna

六、运行collection

演示

如何创建json格式的data

如何在postman中运行

七、为什么要在命令行中运行

  • 可以在无ui界面的服务器上运行
  • 可以在ci持续集成系统上运行

1、运行准备

  • 导出collection
  • 安装nodejs和npm
  • 安装newman

2、运行及生成测试报告

  • CLI reporter
  • JSON reporter
  • HTML reporter
  • JUnit reporter

演示:生成html报告

https://postman-echo.com/get?test=123

try{
    responseJSON =JSON.parse(responseBody);
    tests['response is valid JSON']  = true;
}
catch (e) {
    responseJSON = {};
    tests['responser is valid JSON'] = false;
}
tests['response json contains headers'] = _.has(responseJSON,'headers');
tests['response json contains args'] = _.has(responseJSON,'args');
tests['response json contains url'] = _.has(responseJSON,'url');
tests['args key contains argument passed as url parameter'] = ('test' in responseJSON.args);

 

posted @ 2019-07-28 15:52  李清欣  阅读(370)  评论(0编辑  收藏  举报