k6-perf-reporter 1.6.1 → 1.6.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -8,8 +8,10 @@ export declare class SlackReporter {
8
8
  private generateSummary;
9
9
  private generateMetrics;
10
10
  private generateTables;
11
- private tableToMarkdown;
11
+ private formatTable;
12
12
  private formatDuration;
13
+ private sendMessages;
14
+ private splitIntoMessages;
13
15
  private sendMessage;
14
16
  }
15
17
  //# sourceMappingURL=slack-reporter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"slack-reporter.d.ts","sourceRoot":"","sources":["../../src/reporters/slack-reporter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAErD,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,OAAO,CAAS;gBAEZ,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAQpC,MAAM,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAKnD,OAAO,CAAC,gBAAgB;IAsBxB,OAAO,CAAC,eAAe;IA2BvB,OAAO,CAAC,eAAe;IAyCvB,OAAO,CAAC,cAAc;IAkGtB,OAAO,CAAC,eAAe;IAevB,OAAO,CAAC,cAAc;YAUR,WAAW;CAmB1B"}
1
+ {"version":3,"file":"slack-reporter.d.ts","sourceRoot":"","sources":["../../src/reporters/slack-reporter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAGrD,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,OAAO,CAAS;gBAEZ,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAQpC,MAAM,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAKnD,OAAO,CAAC,gBAAgB;IAsBxB,OAAO,CAAC,eAAe;IA2BvB,OAAO,CAAC,eAAe;IAyCvB,OAAO,CAAC,cAAc;IAkGtB,OAAO,CAAC,WAAW;IAkCnB,OAAO,CAAC,cAAc;YAUR,YAAY;IAS1B,OAAO,CAAC,iBAAiB;YAuBX,WAAW;CAmB1B"}
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SlackReporter = void 0;
4
4
  const web_api_1 = require("@slack/web-api");
5
+ const table_1 = require("table");
5
6
  class SlackReporter {
6
7
  constructor(token, channel) {
7
8
  this.client = new web_api_1.WebClient(token);
@@ -12,7 +13,7 @@ class SlackReporter {
12
13
  }
13
14
  async report(data) {
14
15
  const markdown = this.generateMarkdown(data);
15
- await this.sendMessage(markdown);
16
+ await this.sendMessages(markdown);
16
17
  }
17
18
  generateMarkdown(data) {
18
19
  const reportData = data.data;
@@ -89,48 +90,48 @@ class SlackReporter {
89
90
  const topSlowUrls = reportData.topSlowUrls;
90
91
  const urls = topSlowUrls.urls;
91
92
  if (urls && urls.length > 0) {
92
- tables += "*Top 10 Slowest URLs*\n\n";
93
+ tables += "*Top 10 Slowest URLs*\n";
93
94
  const tableData = [
94
95
  ["#", "Method", "URL", "p(95)"],
95
96
  ...urls.map((u, i) => [String(i + 1), u.method, u.url, this.formatDuration(u.p95Duration)]),
96
97
  ];
97
- tables += this.tableToMarkdown(tableData) + "\n\n";
98
+ tables += "```\n" + this.formatTable(tableData) + "```\n\n";
98
99
  }
99
100
  }
100
101
  if (reportData.rpsPerUrl) {
101
102
  const rpsPerUrl = reportData.rpsPerUrl;
102
103
  const urls = rpsPerUrl.urls;
103
104
  if (urls && urls.length > 0) {
104
- tables += "*RPS per URL*\n\n";
105
+ tables += "*RPS per URL*\n";
105
106
  const tableData = [
106
107
  ["#", "Method", "URL", "Count", "avg", "p(95)", "max"],
107
108
  ...urls.map((u, i) => [String(i + 1), u.method, u.url, String(u.count), u.rps.avg.toFixed(2), u.rps.p95.toFixed(2), u.rps.max.toFixed(2)]),
108
109
  ];
109
- tables += this.tableToMarkdown(tableData) + "\n\n";
110
+ tables += "```\n" + this.formatTable(tableData) + "```\n\n";
110
111
  }
111
112
  }
112
113
  if (reportData.successRequests) {
113
114
  const successRequests = reportData.successRequests;
114
115
  const requests = successRequests.requests;
115
116
  if (requests && requests.length > 0) {
116
- tables += "*Top Successful Requests*\n\n";
117
+ tables += "*Top Successful Requests*\n";
117
118
  const tableData = [
118
119
  ["#", "Method", "URL", "Status", "Count", "Min", "Avg", "p(95)"],
119
120
  ...requests.map((r, i) => [String(i + 1), r.method, r.url, String(r.status), String(r.count), this.formatDuration(r.min), this.formatDuration(r.avg), this.formatDuration(r.p95)]),
120
121
  ];
121
- tables += this.tableToMarkdown(tableData) + "\n\n";
122
+ tables += "```\n" + this.formatTable(tableData) + "```\n\n";
122
123
  }
123
124
  }
124
125
  if (reportData.errorRequests) {
125
126
  const errorRequests = reportData.errorRequests;
126
127
  const errors = errorRequests.errors;
127
128
  if (errors && errors.length > 0) {
128
- tables += "*Top Error Requests*\n\n";
129
+ tables += "*Top Error Requests*\n";
129
130
  const tableData = [
130
131
  ["#", "Method", "URL", "Code", "Count"],
131
132
  ...errors.map((e, i) => [String(i + 1), e.method, e.url, String(e.status), String(e.count)]),
132
133
  ];
133
- tables += this.tableToMarkdown(tableData) + "\n\n";
134
+ tables += "```\n" + this.formatTable(tableData) + "```\n\n";
134
135
  }
135
136
  }
136
137
  if (reportData.errorResponsesText) {
@@ -154,7 +155,7 @@ class SlackReporter {
154
155
  });
155
156
  }
156
157
  });
157
- tables += "*Error Responses*\n\n";
158
+ tables += "*Error Responses*\n";
158
159
  const tableData = [
159
160
  ["#", "Method", "URL", "Status", "Error", "Count"],
160
161
  ...Array.from(groupedErrors.values()).map((r, i) => {
@@ -169,22 +170,41 @@ class SlackReporter {
169
170
  return [String(i + 1), r.method, url, String(r.status), r.error, String(r.count)];
170
171
  }),
171
172
  ];
172
- tables += this.tableToMarkdown(tableData) + "\n\n";
173
+ tables += "```\n" + this.formatTable(tableData) + "```\n\n";
173
174
  }
174
175
  }
175
176
  return tables;
176
177
  }
177
- tableToMarkdown(tableData) {
178
+ formatTable(tableData) {
178
179
  if (tableData.length === 0) {
179
180
  return "";
180
181
  }
181
- const [headers, ...rows] = tableData;
182
- let markdown = "| " + headers.join(" | ") + " |\n";
183
- markdown += "|" + headers.map(() => " --- ").join("|") + "|\n";
184
- rows.forEach((row) => {
185
- markdown += "| " + row.join(" | ") + " |\n";
182
+ const columnCount = tableData[0].length;
183
+ const columnConfig = {};
184
+ for (let i = 0; i < columnCount; i++) {
185
+ columnConfig[i] = { alignment: "left" };
186
+ }
187
+ return (0, table_1.table)(tableData, {
188
+ border: {
189
+ topBody: "─",
190
+ topJoin: "┬",
191
+ topLeft: "┌",
192
+ topRight: "┐",
193
+ bottomBody: "─",
194
+ bottomJoin: "┴",
195
+ bottomLeft: "└",
196
+ bottomRight: "┘",
197
+ bodyLeft: "│",
198
+ bodyRight: "│",
199
+ bodyJoin: "│",
200
+ joinBody: "─",
201
+ joinLeft: "├",
202
+ joinRight: "┤",
203
+ joinJoin: "┼",
204
+ },
205
+ drawHorizontalLine: (index) => index === 1,
206
+ columns: columnConfig,
186
207
  });
187
- return markdown;
188
208
  }
189
209
  formatDuration(ms) {
190
210
  if (ms < 1) {
@@ -195,6 +215,33 @@ class SlackReporter {
195
215
  }
196
216
  return `${(ms / 1000).toFixed(2)}s`;
197
217
  }
218
+ async sendMessages(markdown) {
219
+ const MAX_BLOCK_LENGTH = 3000;
220
+ const messages = this.splitIntoMessages(markdown, MAX_BLOCK_LENGTH);
221
+ for (const message of messages) {
222
+ await this.sendMessage(message);
223
+ }
224
+ }
225
+ splitIntoMessages(text, maxLength) {
226
+ const messages = [];
227
+ const sections = text.split(/(\n\n)/);
228
+ let currentMessage = "";
229
+ for (const section of sections) {
230
+ if ((currentMessage + section).length <= maxLength) {
231
+ currentMessage += section;
232
+ }
233
+ else {
234
+ if (currentMessage) {
235
+ messages.push(currentMessage);
236
+ }
237
+ currentMessage = section;
238
+ }
239
+ }
240
+ if (currentMessage) {
241
+ messages.push(currentMessage);
242
+ }
243
+ return messages;
244
+ }
198
245
  async sendMessage(markdown) {
199
246
  try {
200
247
  await this.client.chat.postMessage({
@@ -1 +1 @@
1
- {"version":3,"file":"slack-reporter.js","sourceRoot":"","sources":["../../src/reporters/slack-reporter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"slack-reporter.js","sourceRoot":"","sources":["../../src/reporters/slack-reporter.ts"],"names":[],"mappings":";;;AAAA,4CAA2C;AAE3C,iCAA8B;AAE9B,MAAa,aAAa;IAIxB,YAAY,KAAa,EAAE,OAAe;QACxC,IAAI,CAAC,MAAM,GAAG,IAAI,mBAAS,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;QACnE,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAsB;QACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAC7C,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IACpC,CAAC;IAEO,gBAAgB,CAAC,IAAsB;QAC7C,MAAM,UAAU,GAAG,IAAI,CAAC,IAA+B,CAAC;QACxD,IAAI,QAAQ,GAAG,EAAE,CAAC;QAElB,SAAS;QACT,QAAQ,IAAI,gCAAgC,CAAC;QAC7C,QAAQ,IAAI,eAAe,IAAI,CAAC,KAAK,IAAI,CAAC;QAC1C,QAAQ,IAAI,cAAc,IAAI,CAAC,SAAS,IAAI,CAAC;QAC7C,QAAQ,IAAI,YAAY,IAAI,CAAC,OAAO,MAAM,CAAC;QAE3C,kBAAkB;QAClB,QAAQ,IAAI,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;QAE7C,eAAe;QACf,QAAQ,IAAI,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;QAE7C,SAAS;QACT,QAAQ,IAAI,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;QAE5C,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEO,eAAe,CAAC,UAAmC;QACzD,IAAI,OAAO,GAAG,aAAa,CAAC;QAE5B,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,IAAI,YAAY,GAAG,CAAC,CAAC;QAErB,IAAI,UAAU,CAAC,aAAa,EAAE,CAAC;YAC7B,MAAM,MAAM,GAAG,UAAU,CAAC,aAAuC,CAAC;YAClE,YAAY,GAAG,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QACjF,CAAC;QAED,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;YACtB,MAAM,MAAM,GAAG,UAAU,CAAC,MAAgC,CAAC;YAC3D,YAAY,GAAG,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACrE,CAAC;QAED,MAAM,SAAS,GAAG,YAAY,GAAG,CAAC,IAAI,YAAY,KAAK,CAAC,CAAC;QACzD,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC/C,MAAM,WAAW,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QAE1C,OAAO,IAAI,GAAG,WAAW,KAAK,MAAM,OAAO,CAAC;QAC5C,OAAO,IAAI,iBAAiB,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;QACzD,OAAO,IAAI,oBAAoB,YAAY,MAAM,CAAC;QAElD,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,eAAe,CAAC,UAAmC;QACzD,IAAI,OAAO,GAAG,cAAc,CAAC;QAE7B,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;YACtB,MAAM,MAAM,GAAG,UAAU,CAAC,MAAgC,CAAC;YAC3D,MAAM,QAAQ,GAAG,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3E,OAAO,IAAI,aAAa,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;QACpH,CAAC;QAED,IAAI,UAAU,CAAC,aAAa,EAAE,CAAC;YAC7B,MAAM,MAAM,GAAG,UAAU,CAAC,aAAwC,CAAC;YACnE,MAAM,GAAG,GAAG,OAAO,MAAM,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5D,MAAM,GAAG,GAAG,OAAO,MAAM,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5D,MAAM,GAAG,GAAG,OAAO,MAAM,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5D,OAAO,IAAI,cAAc,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;QAC9F,CAAC;QAED,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;YACxB,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAkC,CAAC;YAC/D,OAAO,IAAI,oBAAoB,QAAQ,CAAC,KAAK,KAAK,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;QACpF,CAAC;QAED,IAAI,UAAU,CAAC,UAAU,EAAE,CAAC;YAC1B,MAAM,UAAU,GAAG,UAAU,CAAC,UAAoC,CAAC;YACnE,OAAO,IAAI,iBAAiB,UAAU,CAAC,KAAK,KAAK,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;QACrF,CAAC;QAED,IAAI,UAAU,CAAC,eAAe,EAAE,CAAC;YAC/B,MAAM,QAAQ,GAAG,UAAU,CAAC,eAAyC,CAAC;YACtE,OAAO,IAAI,wBAAwB,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC,WAAW,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC;QACjI,CAAC;QAED,IAAI,UAAU,CAAC,GAAG,EAAE,CAAC;YACnB,MAAM,GAAG,GAAG,UAAU,CAAC,GAA6B,CAAC;YACrD,OAAO,IAAI,UAAU,GAAG,CAAC,OAAO,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,KAAK,CAAC;QACxE,CAAC;QAED,OAAO,IAAI,IAAI,CAAC;QAChB,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,cAAc,CAAC,UAAmC;QACxD,IAAI,MAAM,GAAG,EAAE,CAAC;QAEhB,IAAI,UAAU,CAAC,WAAW,EAAE,CAAC;YAC3B,MAAM,WAAW,GAAG,UAAU,CAAC,WAAsC,CAAC;YACtE,MAAM,IAAI,GAAG,WAAW,CAAC,IAAmE,CAAC;YAC7F,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5B,MAAM,IAAI,yBAAyB,CAAC;gBACpC,MAAM,SAAS,GAAG;oBAChB,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC;oBAC/B,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;iBAC5F,CAAC;gBACF,MAAM,IAAI,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC;YAC9D,CAAC;QACH,CAAC;QAED,IAAI,UAAU,CAAC,SAAS,EAAE,CAAC;YACzB,MAAM,SAAS,GAAG,UAAU,CAAC,SAAoC,CAAC;YAClE,MAAM,IAAI,GAAG,SAAS,CAAC,IAA6G,CAAC;YACrI,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5B,MAAM,IAAI,iBAAiB,CAAC;gBAC5B,MAAM,SAAS,GAAG;oBAChB,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC;oBACtD,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC3I,CAAC;gBACF,MAAM,IAAI,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC;YAC9D,CAAC;QACH,CAAC;QAED,IAAI,UAAU,CAAC,eAAe,EAAE,CAAC;YAC/B,MAAM,eAAe,GAAG,UAAU,CAAC,eAA0C,CAAC;YAC9E,MAAM,QAAQ,GAAG,eAAe,CAAC,QAAwH,CAAC;YAC1J,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpC,MAAM,IAAI,6BAA6B,CAAC;gBACxC,MAAM,SAAS,GAAG;oBAChB,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC;oBAChE,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;iBACnL,CAAC;gBACF,MAAM,IAAI,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC;YAC9D,CAAC;QACH,CAAC;QAED,IAAI,UAAU,CAAC,aAAa,EAAE,CAAC;YAC7B,MAAM,aAAa,GAAG,UAAU,CAAC,aAAwC,CAAC;YAC1E,MAAM,MAAM,GAAG,aAAa,CAAC,MAA+E,CAAC;YAC7G,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChC,MAAM,IAAI,wBAAwB,CAAC;gBACnC,MAAM,SAAS,GAAG;oBAChB,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC;oBACvC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;iBAC7F,CAAC;gBACF,MAAM,IAAI,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC;YAC9D,CAAC;QACH,CAAC;QAED,IAAI,UAAU,CAAC,kBAAkB,EAAE,CAAC;YAClC,MAAM,kBAAkB,GAAG,UAAU,CAAC,kBAA6C,CAAC;YACpF,MAAM,SAAS,GAAG,kBAAkB,CAAC,SAAkF,CAAC;YACxH,IAAI,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtC,MAAM,aAAa,GAAG,IAAI,GAAG,EAAyF,CAAC;gBAEvH,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;oBACtB,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;oBAC1D,IAAI,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;wBAC3B,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC;wBACtC,KAAK,CAAC,KAAK,EAAE,CAAC;oBAChB,CAAC;yBAAM,CAAC;wBACN,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE;4BACrB,MAAM,EAAE,CAAC,CAAC,MAAM;4BAChB,GAAG,EAAE,CAAC,CAAC,GAAG;4BACV,MAAM,EAAE,CAAC,CAAC,MAAM;4BAChB,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE;4BACpB,KAAK,EAAE,CAAC;yBACT,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC,CAAC,CAAC;gBAEH,MAAM,IAAI,qBAAqB,CAAC;gBAChC,MAAM,SAAS,GAAG;oBAChB,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC;oBAClD,GAAG,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;wBACjD,IAAI,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC;wBAChB,IAAI,CAAC;4BACH,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;4BAC5B,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC;wBACxB,CAAC;wBAAC,MAAM,CAAC;4BACP,+BAA+B;wBACjC,CAAC;wBACD,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;oBACpF,CAAC,CAAC;iBACH,CAAC;gBACF,MAAM,IAAI,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC;YAC9D,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,WAAW,CAAC,SAAqB;QACvC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,WAAW,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QACxC,MAAM,YAAY,GAA+D,EAAE,CAAC;QACpF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,YAAY,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;QAC1C,CAAC;QAED,OAAO,IAAA,aAAK,EAAC,SAAS,EAAE;YACtB,MAAM,EAAE;gBACN,OAAO,EAAE,GAAG;gBACZ,OAAO,EAAE,GAAG;gBACZ,OAAO,EAAE,GAAG;gBACZ,QAAQ,EAAE,GAAG;gBACb,UAAU,EAAE,GAAG;gBACf,UAAU,EAAE,GAAG;gBACf,UAAU,EAAE,GAAG;gBACf,WAAW,EAAE,GAAG;gBAChB,QAAQ,EAAE,GAAG;gBACb,SAAS,EAAE,GAAG;gBACd,QAAQ,EAAE,GAAG;gBACb,QAAQ,EAAE,GAAG;gBACb,QAAQ,EAAE,GAAG;gBACb,SAAS,EAAE,GAAG;gBACd,QAAQ,EAAE,GAAG;aACd;YACD,kBAAkB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,CAAC;YAC1C,OAAO,EAAE,YAAY;SACtB,CAAC,CAAC;IACL,CAAC;IAEO,cAAc,CAAC,EAAU;QAC/B,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;YACX,OAAO,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;QACvC,CAAC;QACD,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC;YACd,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;QAC9B,CAAC;QACD,OAAO,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IACtC,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,QAAgB;QACzC,MAAM,gBAAgB,GAAG,IAAI,CAAC;QAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;QAEpE,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAEO,iBAAiB,CAAC,IAAY,EAAE,SAAiB;QACvD,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACtC,IAAI,cAAc,GAAG,EAAE,CAAC;QAExB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,CAAC,MAAM,IAAI,SAAS,EAAE,CAAC;gBACnD,cAAc,IAAI,OAAO,CAAC;YAC5B,CAAC;iBAAM,CAAC;gBACN,IAAI,cAAc,EAAE,CAAC;oBACnB,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBAChC,CAAC;gBACD,cAAc,GAAG,OAAO,CAAC;YAC3B,CAAC;QACH,CAAC;QAED,IAAI,cAAc,EAAE,CAAC;YACnB,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAChC,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,QAAgB;QACxC,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;gBACjC,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,IAAI,EAAE,4BAA4B;gBAClC,MAAM,EAAE;oBACN;wBACE,IAAI,EAAE,SAAS;wBACf,IAAI,EAAE;4BACJ,IAAI,EAAE,QAAQ;4BACd,IAAI,EAAE,QAAQ;yBACf;qBACF;iBACF;aACF,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,iCAAiC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC7G,CAAC;IACH,CAAC;CACF;AA5SD,sCA4SC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "k6-perf-reporter",
3
- "version": "1.6.1",
3
+ "version": "1.6.2",
4
4
  "description": "Reporting tool for k6 performance tests with InfluxDB 2 integration",
5
5
  "license": "MIT",
6
6
  "main": "dist/index.js",
@@ -1,5 +1,6 @@
1
1
  import { WebClient } from "@slack/web-api";
2
2
  import { ReporterResponse } from "../data-collector";
3
+ import { table } from "table";
3
4
 
4
5
  export class SlackReporter {
5
6
  private client: WebClient;
@@ -15,7 +16,7 @@ export class SlackReporter {
15
16
 
16
17
  async report(data: ReporterResponse): Promise<void> {
17
18
  const markdown = this.generateMarkdown(data);
18
- await this.sendMessage(markdown);
19
+ await this.sendMessages(markdown);
19
20
  }
20
21
 
21
22
  private generateMarkdown(data: ReporterResponse): string {
@@ -115,12 +116,12 @@ export class SlackReporter {
115
116
  const topSlowUrls = reportData.topSlowUrls as Record<string, unknown>;
116
117
  const urls = topSlowUrls.urls as Array<{ method: string; url: string; p95Duration: number }>;
117
118
  if (urls && urls.length > 0) {
118
- tables += "*Top 10 Slowest URLs*\n\n";
119
+ tables += "*Top 10 Slowest URLs*\n";
119
120
  const tableData = [
120
121
  ["#", "Method", "URL", "p(95)"],
121
122
  ...urls.map((u, i) => [String(i + 1), u.method, u.url, this.formatDuration(u.p95Duration)]),
122
123
  ];
123
- tables += this.tableToMarkdown(tableData) + "\n\n";
124
+ tables += "```\n" + this.formatTable(tableData) + "```\n\n";
124
125
  }
125
126
  }
126
127
 
@@ -128,12 +129,12 @@ export class SlackReporter {
128
129
  const rpsPerUrl = reportData.rpsPerUrl as Record<string, unknown>;
129
130
  const urls = rpsPerUrl.urls as Array<{ method: string; url: string; count: number; rps: { avg: number; p95: number; max: number } }>;
130
131
  if (urls && urls.length > 0) {
131
- tables += "*RPS per URL*\n\n";
132
+ tables += "*RPS per URL*\n";
132
133
  const tableData = [
133
134
  ["#", "Method", "URL", "Count", "avg", "p(95)", "max"],
134
135
  ...urls.map((u, i) => [String(i + 1), u.method, u.url, String(u.count), u.rps.avg.toFixed(2), u.rps.p95.toFixed(2), u.rps.max.toFixed(2)]),
135
136
  ];
136
- tables += this.tableToMarkdown(tableData) + "\n\n";
137
+ tables += "```\n" + this.formatTable(tableData) + "```\n\n";
137
138
  }
138
139
  }
139
140
 
@@ -141,12 +142,12 @@ export class SlackReporter {
141
142
  const successRequests = reportData.successRequests as Record<string, unknown>;
142
143
  const requests = successRequests.requests as Array<{ method: string; url: string; status: number; count: number; min: number; avg: number; p95: number }>;
143
144
  if (requests && requests.length > 0) {
144
- tables += "*Top Successful Requests*\n\n";
145
+ tables += "*Top Successful Requests*\n";
145
146
  const tableData = [
146
147
  ["#", "Method", "URL", "Status", "Count", "Min", "Avg", "p(95)"],
147
148
  ...requests.map((r, i) => [String(i + 1), r.method, r.url, String(r.status), String(r.count), this.formatDuration(r.min), this.formatDuration(r.avg), this.formatDuration(r.p95)]),
148
149
  ];
149
- tables += this.tableToMarkdown(tableData) + "\n\n";
150
+ tables += "```\n" + this.formatTable(tableData) + "```\n\n";
150
151
  }
151
152
  }
152
153
 
@@ -154,12 +155,12 @@ export class SlackReporter {
154
155
  const errorRequests = reportData.errorRequests as Record<string, unknown>;
155
156
  const errors = errorRequests.errors as Array<{ method: string; url: string; status: number; count: number }>;
156
157
  if (errors && errors.length > 0) {
157
- tables += "*Top Error Requests*\n\n";
158
+ tables += "*Top Error Requests*\n";
158
159
  const tableData = [
159
160
  ["#", "Method", "URL", "Code", "Count"],
160
161
  ...errors.map((e, i) => [String(i + 1), e.method, e.url, String(e.status), String(e.count)]),
161
162
  ];
162
- tables += this.tableToMarkdown(tableData) + "\n\n";
163
+ tables += "```\n" + this.formatTable(tableData) + "```\n\n";
163
164
  }
164
165
  }
165
166
 
@@ -185,7 +186,7 @@ export class SlackReporter {
185
186
  }
186
187
  });
187
188
 
188
- tables += "*Error Responses*\n\n";
189
+ tables += "*Error Responses*\n";
189
190
  const tableData = [
190
191
  ["#", "Method", "URL", "Status", "Error", "Count"],
191
192
  ...Array.from(groupedErrors.values()).map((r, i) => {
@@ -199,26 +200,45 @@ export class SlackReporter {
199
200
  return [String(i + 1), r.method, url, String(r.status), r.error, String(r.count)];
200
201
  }),
201
202
  ];
202
- tables += this.tableToMarkdown(tableData) + "\n\n";
203
+ tables += "```\n" + this.formatTable(tableData) + "```\n\n";
203
204
  }
204
205
  }
205
206
 
206
207
  return tables;
207
208
  }
208
209
 
209
- private tableToMarkdown(tableData: string[][]): string {
210
+ private formatTable(tableData: string[][]): string {
210
211
  if (tableData.length === 0) {
211
212
  return "";
212
213
  }
213
214
 
214
- const [headers, ...rows] = tableData;
215
- let markdown = "| " + headers.join(" | ") + " |\n";
216
- markdown += "|" + headers.map(() => " --- ").join("|") + "|\n";
217
- rows.forEach((row) => {
218
- markdown += "| " + row.join(" | ") + " |\n";
219
- });
215
+ const columnCount = tableData[0].length;
216
+ const columnConfig: Record<number, { alignment: "left" | "right" | "center" }> = {};
217
+ for (let i = 0; i < columnCount; i++) {
218
+ columnConfig[i] = { alignment: "left" };
219
+ }
220
220
 
221
- return markdown;
221
+ return table(tableData, {
222
+ border: {
223
+ topBody: "─",
224
+ topJoin: "┬",
225
+ topLeft: "┌",
226
+ topRight: "┐",
227
+ bottomBody: "─",
228
+ bottomJoin: "┴",
229
+ bottomLeft: "└",
230
+ bottomRight: "┘",
231
+ bodyLeft: "│",
232
+ bodyRight: "│",
233
+ bodyJoin: "│",
234
+ joinBody: "─",
235
+ joinLeft: "├",
236
+ joinRight: "┤",
237
+ joinJoin: "┼",
238
+ },
239
+ drawHorizontalLine: (index) => index === 1,
240
+ columns: columnConfig,
241
+ });
222
242
  }
223
243
 
224
244
  private formatDuration(ms: number): string {
@@ -231,6 +251,38 @@ export class SlackReporter {
231
251
  return `${(ms / 1000).toFixed(2)}s`;
232
252
  }
233
253
 
254
+ private async sendMessages(markdown: string): Promise<void> {
255
+ const MAX_BLOCK_LENGTH = 3000;
256
+ const messages = this.splitIntoMessages(markdown, MAX_BLOCK_LENGTH);
257
+
258
+ for (const message of messages) {
259
+ await this.sendMessage(message);
260
+ }
261
+ }
262
+
263
+ private splitIntoMessages(text: string, maxLength: number): string[] {
264
+ const messages: string[] = [];
265
+ const sections = text.split(/(\n\n)/);
266
+ let currentMessage = "";
267
+
268
+ for (const section of sections) {
269
+ if ((currentMessage + section).length <= maxLength) {
270
+ currentMessage += section;
271
+ } else {
272
+ if (currentMessage) {
273
+ messages.push(currentMessage);
274
+ }
275
+ currentMessage = section;
276
+ }
277
+ }
278
+
279
+ if (currentMessage) {
280
+ messages.push(currentMessage);
281
+ }
282
+
283
+ return messages;
284
+ }
285
+
234
286
  private async sendMessage(markdown: string): Promise<void> {
235
287
  try {
236
288
  await this.client.chat.postMessage({