【问题标题】:how to export environment variable using newman API如何使用 newman API 导出环境变量
【发布时间】:2017-02-17 04:23:39
【问题描述】:

我正在使用 newman api 运行邮递员测试服。它按预期正确执行,但我想在文件中导出测试执行期间生成的环境变量,在命令行中可以使用--export-environment:

newman run collectionPreReq.json -e Environment.json -k --export-environment newmanExport.json 

同样,我正在编写 javascript 以获取由 collectionPreReq 导出的环境,但没有得到我想要的,代码是

var newman = require('newman');

newman.run({
    collection: require('./collectionPreReq.json'),
    //reporters: 'cli',
    environment: require('./Environment.json'),
    insecure: true
}).on('start', function (err, args) {
    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.:');
        console.log("summary environment :");
        console.log(summary.environment);
    }
});

输出:

running a collection...
collection run completed.:
summary environment :
{ object: [Function], toJSON: [Function] }

【问题讨论】:

    标签: node.js automated-tests postman newman


    【解决方案1】:

    要在控制台记录实际环境变量,您需要首先对 JSON 进行字符串化: .....

    .on('done', function (err, summary) {
    if (err || summary.error) {
    console.error('collection run encountered an error.');
    }
    else {
    console.log('collection run completed.:');
    console.log("summary environment :");
    console.log(JSON.stringify(summary.environment))
    }
    });
    

    【讨论】:

      【解决方案2】:

      请尝试在 javascript 文件中使用这个 newman 选项 exportEnvironment: require('./Environment.json')

      newman.run({
         collection: require('./collectionPreReq.json'),
         //reporters: 'cli',
         environment: require('./Environment.json'),
         exportEnvironment: require('./Environment.json'),
         insecure: true 
      })....
      

      当然,这句话会奏效。

      【讨论】:

      • 如果环境不存在,邮递员可以在没有它的情况下运行。如果我们将其留空,它会运行吗?我在问,因为我正在创建一个通用节点 js 脚本来运行邮递员集合,有或没有环境文件。谢谢
      【解决方案3】:

      NodeJS documentation 不可能。

      process.env 属性返回一个包含用户的对象 环境。参见环境(7)。

      此对象的示例如下所示:

      { 
        TERM: 'xterm-256color', 
        SHELL: '/usr/local/bin/bash', 
        USER: 'maciej', 
        PATH: '~/.bin/:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin', 
        PWD: '/Users/maciej', 
        EDITOR: 'vim', 
        SHLVL: '1', 
        HOME: '/Users/maciej',   
        LOGNAME: 'maciej',   
        _: '/usr/local/bin/node' 
      }
      

      可以修改这个对象,但这样的修改不会 反映在 Node.js 进程之外。换句话说,以下 示例不起作用:

      $ node -e 'process.env.foo = "bar"' && echo $foo

      【讨论】:

        猜你喜欢
        • 2019-01-23
        • 2022-01-09
        • 1970-01-01
        • 1970-01-01
        • 2021-12-02
        • 2015-12-30
        • 2011-05-31
        • 1970-01-01
        相关资源
        最近更新 更多