0

我正在使用 newman 运行一些测试,我试图将这个结果发布到不和谐或松弛。

这是我控制台中的输出(我无法控制格式,它只是以这种方式打印......)

┌─────────────────────────┬──────────┬──────────┐
│                         │ executed │   failed │
├─────────────────────────┼──────────┼──────────┤
│              iterations │        2 │        0 │
├─────────────────────────┼──────────┼──────────┤
│                requests │       52 │        0 │
├─────────────────────────┼──────────┼──────────┤
│            test-scripts │       52 │        0 │
├─────────────────────────┼──────────┼──────────┤
│      prerequest-scripts │        0 │        0 │
├─────────────────────────┼──────────┼──────────┤
│              assertions │     1813 │       36 │
├─────────────────────────┴──────────┴──────────┤
│ total run duration: 10.1s                     │
├───────────────────────────────────────────────┤
│ total data received: 146KB (approx)           │
├───────────────────────────────────────────────┤
│ average response time: 157ms                  │
└───────────────────────────────────────────────┘

我正在尝试做的事情:

# call newman
local output=$(newman run mycollection.postman_collection.json)

# output verbose file
echo "$output"

curl -i  -H "Content-Type: application/json; charset=UTF-8"  -X POST -d '{"content":"```'"$output"'```"}'  https://discordapp.com/api/webhooks/blablabla

虽然echo "$output"在控制台上打印表格,但我得到:

{"code": 50006, "message": "无法发送空消息"}

但是,如果我更换

"content":"这是一个字符串"

它按预期工作。

在此处输入图像描述

如何在 curl 正文中发送此输出表

4

1 回答 1

1

第一步是将引用简化为

... -d "{\"content\": \"$output\"}" ...

第二种是使用jq(或类似的 JSON 工具)正确生成 JSON(意思是,结果中的任何内容都$output将被正确引用):

... -d "$(jq --arg data "$output" '{content: $data}')" ...
于 2017-08-30T23:28:14.673 回答