无法读取炮兵脚本文件中的 CSV 文件

Posted

技术标签:

【中文标题】无法读取炮兵脚本文件中的 CSV 文件【英文标题】:Can't read CSV file in an artillery script file 【发布时间】:2019-01-04 02:20:37 【问题描述】:

我正在对微服务进行负载测试,并在使用 Artillery 时遇到问题。读取 csv 文件时脚本失败。尝试从文件导入输入数据以创建 json 请求。

最简单的script.yml

config:
  target: "http://localhost:8080"
  phases:
    - duration: 1
      arrivalRate: 1
  payload:
    path: "input.csv"
    fields:
     - "flow"
scenarios:
  - flow:
     - log: "this yml log, flow:  flow "

input.csv 文件在同一文件夹中:

"flow"
"SomeFlow"

最简单的执行命令:

DEBUG=* artillery run script.yml

错误堆栈跟踪:

  artillery:cli Artillery Pro is not installed +0ms
  commands:run defaultOptions:  
    "_": [
        "run",
        "script.yml"
    ]
 +4ms
/Users/someUser/node_modules/csv-parse/lib/index.js:124
          throw new Error(`Invalid Option: from_line must be a     positive integer greater than 0, got $JSON.stringify(opts.from_line)`)
      ^
Error: Invalid Option: from_line must be a positive integer greater     than 0, got at new Parser (/Users/someUser/node_modules/csv-    parse/lib/index.js:124:17)
    at parse (/Users/someUser/node_modules/csv-parse/lib/index.js:838:18)
    at readPayloadFile (/Users/someUser/node_modules/artillery/lib/commands/run.js:257:7)
    at /Users/someUser/node_modules/async/lib/async.js:356:13
    at async.forEachOf.async.eachOf (/Users/someUser/node_modules/async/lib/async.js:233:13)
    at _asyncMap (/Users/someUser/node_modules/async/lib/async.js:355:9)
    at Object.map (/Users/someUser/node_modules/async/lib/async.js:337:20)
    at readPayload (/Users/someUser/node_modules/artillery/lib/commands/run.js:245:9)
    at fn (/Users/someUser/node_modules/async/lib/async.js:746:34)
    at /Users/someUser/node_modules/async/lib/async.js:1213:16

最初我认为这是 Windows 平台特定的问题。然后在 OSX 上遇到了同样的问题。 我肯定错过了一些小而重要的事情。

【问题讨论】:

对我来说,这只是打印this is a log of the request body: flow...应该打印“Someflow”吗? 【参考方案1】:

看起来是最新版本的问题。当我降级到 1.6.0-24 时,它起作用了

【讨论】:

浪费一天时间真是太愚蠢了。非常感谢你。附:我被告知版本 25 也可以正常工作

以上是关于无法读取炮兵脚本文件中的 CSV 文件的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Spark 正确读取 S3 中的 .csv 文件? - 无法读取文件的页脚

如何通过读取shell脚本中的csv文件来将2列的总和添加到新列中

python3中使用使用read_csv( )读取csv文件,文件路径中含有中文,无法读取怎么处理?

jmeter能不能随机读取csv文件中的参数?

如何使用bash脚本从csv文件中读取特定的整数?

读取 csv 文件时出错(unicode 错误)“unicodeescape”编解码器无法解码位置 2-3 中的字节:截断 \UXXXXXXXX 转义 [重复]