运行 火炮(使用 npm)在 CentOS 7 上失败

Running artillery (using npm) fails on CentOS 7

我正在尝试 运行 在我的 AeroGear UnifiedPush Server running on CentOS 7 using the guide provided here. I did this once on my ubuntu desktop machine and everything worked well. However, I get syntax error while trying to run artillery 上进行负载测试。

安装结果如下:

[root@ddn-srv ~]# npm install -g artillery
npm WARN deprecated nomnom@1.5.2: Package no longer supported. Contact support@npmjs.com for more info.
/usr/bin/artillery -> /usr/lib/node_modules/artillery/bin/artillery

> jsonpath@1.0.0 postinstall /usr/lib/node_modules/artillery/node_modules/jsonpath
> node lib/aesprim.js > generated/aesprim-browser.js

/usr/lib
└─┬ artillery@1.6.0-26 
  ├─┬ arrivals@2.1.2 
  │ ├─┬ debug@4.1.1 
  │ │ └── ms@2.1.1 
  │ └── nanotimer@0.3.14 
  ├─┬ artillery-plugin-statsd@2.2.1 
  │ ├── debug@3.2.6 
  │ └─┬ lynx@0.2.0 
  │   ├── mersenne@0.0.4 
  │   └── statsd-parser@0.0.4 
  ├── async@1.5.2 
  ├─┬ chalk@1.1.3 
  │ ├── ansi-styles@2.2.1 
  │ ├── escape-string-regexp@1.0.5 
  │ ├─┬ has-ansi@2.0.0 
  │ │ └── ansi-regex@2.1.1 
  │ ├── strip-ansi@3.0.1 
  │ └── supports-color@2.0.0 
  ├─┬ cheerio@1.0.0-rc.2 
  │ ├─┬ css-select@1.2.0 
  │ │ ├── boolbase@1.0.0 
  │ │ ├── css-what@2.1.2 
  │ │ ├── domutils@1.5.1 
  │ │ └── nth-check@1.0.2 
  │ ├─┬ dom-serializer@0.1.0 
  │ │ └── domelementtype@1.1.3 
  │ ├── entities@1.1.2 
  │ ├─┬ htmlparser2@3.10.0 
  │ │ ├── domelementtype@1.3.1 
  │ │ ├── domhandler@2.4.2 
  │ │ ├── inherits@2.0.3 
  │ │ └─┬ readable-stream@3.1.1 
  │ │   ├── string_decoder@1.2.0 
  │ │   └── util-deprecate@1.0.2 
  │ └─┬ parse5@3.0.3 
  │   └── @types/node@10.12.21 
  ├─┬ commander@2.9.0 
  │ └── graceful-readlink@1.0.1 
  ├── csv-parse@4.3.1 
  ├─┬ debug@2.6.9 
  │ └── ms@2.0.0 
  ├── deep-equal@1.0.1 
  ├─┬ driftless@2.0.3 
  │ └── present@0.0.3 
  ├── esprima@4.0.1 
  ├── filtrex@0.5.4 
  ├─┬ js-yaml@3.12.1 
  │ └─┬ argparse@1.0.10 
  │   └── sprintf-js@1.0.3 
  ├── jsck@0.3.2 
  ├─┬ jsonpath@1.0.0 
  │ ├── esprima@1.2.2 
  │ ├─┬ jison@0.4.13 
  │ │ ├── cjson@0.2.1 
  │ │ ├── ebnf-parser@0.1.10 
  │ │ ├─┬ escodegen@0.0.21 
  │ │ │ ├── esprima@1.0.4 
  │ │ │ ├── estraverse@0.0.4 
  │ │ │ └── source-map@0.7.3 
  │ │ ├── esprima@1.0.4 
  │ │ ├── jison-lex@0.2.1 
  │ │ ├── JSONSelect@0.4.0 
  │ │ ├── lex-parser@0.1.4 
  │ │ └─┬ nomnom@1.5.2 
  │ │   ├── colors@0.5.1 
  │ │   └── underscore@1.1.7 
  │ ├─┬ static-eval@2.0.0 
  │ │ └─┬ escodegen@1.11.0 
  │ │   ├── esprima@3.1.3 
  │ │   ├── estraverse@4.2.0 
  │ │   ├── esutils@2.0.2 
  │ │   ├─┬ optionator@0.8.2 
  │ │   │ ├── deep-is@0.1.3 
  │ │   │ ├── fast-levenshtein@2.0.6 
  │ │   │ ├── levn@0.3.0 
  │ │   │ ├── prelude-ls@1.1.2 
  │ │   │ ├── type-check@0.3.2 
  │ │   │ └── wordwrap@1.0.0 
  │ │   └── source-map@0.6.1 
  │ └── underscore@1.7.0 
  ├── lodash@4.17.11 
  ├── moment@2.24.0 
  ├── nanotimer@0.3.15 
  ├─┬ opn@5.4.0 
  │ └── is-wsl@1.1.0 
  ├─┬ ora@1.4.0 
  │ ├─┬ chalk@2.4.2 
  │ │ ├─┬ ansi-styles@3.2.1 
  │ │ │ └─┬ color-convert@1.9.3 
  │ │ │   └── color-name@1.1.3 
  │ │ └─┬ supports-color@5.5.0 
  │ │   └── has-flag@3.0.0 
  │ ├─┬ cli-cursor@2.1.0 
  │ │ └─┬ restore-cursor@2.0.0 
  │ │   ├─┬ onetime@2.0.1 
  │ │   │ └── mimic-fn@1.2.0 
  │ │   └── signal-exit@3.0.2 
  │ ├── cli-spinners@1.3.1 
  │ └─┬ log-symbols@2.2.0 
  │   └─┬ chalk@2.4.2 
  │     ├── ansi-styles@3.2.1 
  │     └── supports-color@5.5.0 
  ├── pidusage@1.2.0 
  ├─┬ rc@1.2.8 
  │ ├── deep-extend@0.6.0 
  │ ├── ini@1.3.5 
  │ ├── minimist@1.2.0 
  │ └── strip-json-comments@2.0.1 
  ├─┬ request@2.88.0 
  │ ├── aws-sign2@0.7.0 
  │ ├── aws4@1.8.0 
  │ ├── caseless@0.12.0 
  │ ├─┬ combined-stream@1.0.7 
  │ │ └── delayed-stream@1.0.0 
  │ ├── extend@3.0.2 
  │ ├── forever-agent@0.6.1 
  │ ├─┬ form-data@2.3.3 
  │ │ └── asynckit@0.4.0 
  │ ├─┬ har-validator@5.1.3 
  │ │ ├─┬ ajv@6.8.1 
  │ │ │ ├── fast-deep-equal@2.0.1 
  │ │ │ ├── fast-json-stable-stringify@2.0.0 
  │ │ │ ├── json-schema-traverse@0.4.1 
  │ │ │ └── uri-js@4.2.2 
  │ │ └── har-schema@2.0.0 
  │ ├─┬ http-signature@1.2.0 
  │ │ ├── assert-plus@1.0.0 
  │ │ ├─┬ jsprim@1.4.1 
  │ │ │ ├── extsprintf@1.3.0 
  │ │ │ ├── json-schema@0.2.3 
  │ │ │ └─┬ verror@1.10.0 
  │ │ │   └── core-util-is@1.0.2 
  │ │ └─┬ sshpk@1.16.1 
  │ │   ├── asn1@0.2.4 
  │ │   ├── bcrypt-pbkdf@1.0.2 
  │ │   ├── dashdash@1.14.1 
  │ │   ├── ecc-jsbn@0.1.2 
  │ │   ├── getpass@0.1.7 
  │ │   ├── jsbn@0.1.1 
  │ │   ├── safer-buffer@2.1.2 
  │ │   └── tweetnacl@0.14.5 
  │ ├── is-typedarray@1.0.0 
  │ ├── isstream@0.1.2 
  │ ├── json-stringify-safe@5.0.1 
  │ ├─┬ mime-types@2.1.21 
  │ │ └── mime-db@1.37.0 
  │ ├── oauth-sign@0.9.0 
  │ ├── performance-now@2.1.0 
  │ ├── qs@6.5.2 
  │ ├── safe-buffer@5.1.2 
  │ ├─┬ tough-cookie@2.4.3 
  │ │ └── punycode@1.4.1 
  │ ├── tunnel-agent@0.6.0 
  │ └── uuid@3.3.2 
  ├─┬ socket.io-client@2.2.0 
  │ ├── backo2@1.0.2 
  │ ├── base64-arraybuffer@0.1.5 
  │ ├── component-bind@1.0.0 
  │ ├── component-emitter@1.2.1 
  │ ├─┬ debug@3.1.0 
  │ │ └── ms@2.0.0 
  │ ├─┬ engine.io-client@3.3.2 
  │ │ ├── component-inherit@0.0.3 
  │ │ ├─┬ debug@3.1.0 
  │ │ │ └── ms@2.0.0 
  │ │ ├─┬ engine.io-parser@2.1.3 
  │ │ │ ├── after@0.8.2 
  │ │ │ ├── arraybuffer.slice@0.0.7 
  │ │ │ └── blob@0.0.5 
  │ │ ├── ws@6.1.3 
  │ │ ├── xmlhttprequest-ssl@1.5.5 
  │ │ └── yeast@0.1.2 
  │ ├─┬ has-binary2@1.0.3 
  │ │ └── isarray@2.0.1 
  │ ├── has-cors@1.1.0 
  │ ├── indexof@0.0.1 
  │ ├── object-component@0.0.3 
  │ ├─┬ parseqs@0.0.5 
  │ │ └─┬ better-assert@1.0.2 
  │ │   └── callsite@1.0.0 
  │ ├── parseuri@0.0.5 
  │ ├─┬ socket.io-parser@3.3.0 
  │ │ └─┬ debug@3.1.0 
  │ │   └── ms@2.0.0 
  │ └── to-array@0.1.4 
  ├── socketio-wildcard@2.0.0 
  ├─┬ stats-lite@2.2.0 
  │ └── isnumber@1.0.0 
  ├─┬ tmp@0.0.28 
  │ └── os-tmpdir@1.0.2 
  ├─┬ tough-cookie@2.5.0 
  │ ├── psl@1.1.31 
  │ └── punycode@2.1.1 
  ├── traverse@0.6.6 
  ├── try-require@1.2.1 
  ├─┬ update-notifier@2.5.0 
  │ ├─┬ boxen@1.3.0 
  │ │ ├── ansi-align@2.0.0 
  │ │ ├── camelcase@4.1.0 
  │ │ ├─┬ chalk@2.4.2 
  │ │ │ ├── ansi-styles@3.2.1 
  │ │ │ └── supports-color@5.5.0 
  │ │ ├── cli-boxes@1.0.0 
  │ │ ├─┬ string-width@2.1.1 
  │ │ │ ├── is-fullwidth-code-point@2.0.0 
  │ │ │ └─┬ strip-ansi@4.0.0 
  │ │ │   └── ansi-regex@3.0.0 
  │ │ ├─┬ term-size@1.2.0 
  │ │ │ └─┬ execa@0.7.0 
  │ │ │   ├─┬ cross-spawn@5.1.0 
  │ │ │   │ ├─┬ lru-cache@4.1.5 
  │ │ │   │ │ ├── pseudomap@1.0.2 
  │ │ │   │ │ └── yallist@2.1.2 
  │ │ │   │ ├─┬ shebang-command@1.2.0 
  │ │ │   │ │ └── shebang-regex@1.0.0 
  │ │ │   │ └─┬ which@1.3.1 
  │ │ │   │   └── isexe@2.0.0 
  │ │ │   ├── get-stream@3.0.0 
  │ │ │   ├── is-stream@1.1.0 
  │ │ │   ├─┬ npm-run-path@2.0.2 
  │ │ │   │ └── path-key@2.0.1 
  │ │ │   ├── p-finally@1.0.0 
  │ │ │   └── strip-eof@1.0.0 
  │ │ └── widest-line@2.0.1 
  │ ├─┬ chalk@2.4.2 
  │ │ ├── ansi-styles@3.2.1 
  │ │ └── supports-color@5.5.0 
  │ ├─┬ configstore@3.1.2 
  │ │ ├─┬ dot-prop@4.2.0 
  │ │ │ └── is-obj@1.0.1 
  │ │ ├── graceful-fs@4.1.15 
  │ │ ├─┬ make-dir@1.3.0 
  │ │ │ └── pify@3.0.0 
  │ │ ├─┬ unique-string@1.0.0 
  │ │ │ └── crypto-random-string@1.0.0 
  │ │ └─┬ write-file-atomic@2.4.2 
  │ │   └── imurmurhash@0.1.4 
  │ ├── import-lazy@2.1.0 
  │ ├─┬ is-ci@1.2.1 
  │ │ └── ci-info@1.6.0 
  │ ├─┬ is-installed-globally@0.1.0 
  │ │ ├── global-dirs@0.1.1 
  │ │ └─┬ is-path-inside@1.0.1 
  │ │   └── path-is-inside@1.0.2 
  │ ├── is-npm@1.0.0 
  │ ├─┬ latest-version@3.1.0 
  │ │ └─┬ package-json@4.0.1 
  │ │   ├─┬ got@6.7.1 
  │ │   │ ├─┬ create-error-class@3.0.2 
  │ │   │ │ └── capture-stack-trace@1.0.1 
  │ │   │ ├── duplexer3@0.1.4 
  │ │   │ ├── is-redirect@1.0.0 
  │ │   │ ├── is-retry-allowed@1.1.0 
  │ │   │ ├── lowercase-keys@1.0.1 
  │ │   │ ├── timed-out@4.0.1 
  │ │   │ ├── unzip-response@2.0.1 
  │ │   │ └─┬ url-parse-lax@1.0.0 
  │ │   │   └── prepend-http@1.0.4 
  │ │   ├── registry-auth-token@3.3.2 
  │ │   └── registry-url@3.1.0 
  │ ├─┬ semver-diff@2.1.0 
  │ │ └── semver@5.6.0 
  │ └── xdg-basedir@3.0.0 
  ├── uuid@2.0.3 
  └─┬ ws@5.2.2 
    └── async-limiter@1.0.0 

这是 运行宁大炮的结果:

[root@ddn-srv wiremock]# artillery run ups-artillery.yml
/usr/lib/node_modules/artillery/node_modules/csv-parse/lib/index.js:19
    super({...{readableObjectMode: true}, ...opts})
               ^^^
    SyntaxError: Unexpected token ...
        at createScript (vm.js:56:10)
        at Object.runInThisContext (vm.js:97:10)
        at Module._compile (module.js:549:28)
        at Object.Module._extensions..js (module.js:586:10)
        at Module.load (module.js:494:32)
        at tryModuleLoad (module.js:453:12)
        at Function.Module._load (module.js:445:3)
        at Module.require (module.js:504:17)
        at require (internal/module.js:20:19)
        at Object.<anonymous> (/usr/lib/node_modules/artillery/lib/commands/run.js:12:13)

如果你分享你对这个问题的评论,我将不胜感激。

我只是设法通过删除 nojdejs 和 npm 并按照说明重新安装它们来解决问题 in this link。然后我又安装了 artilerry,现在它就像一个魅力。