From e15c04216d517458de8c91119f4ee75add898cd2 Mon Sep 17 00:00:00 2001 From: Harsha Nalluru Date: Fri, 29 Jan 2021 14:23:11 -0800 Subject: [PATCH] [Service Bus] Perf tests with the framework (#12993) ### New perf folder - The new "perf" folder uses the perf framework. - With the perf framework, only the send test can be written. - This PR adds the send test for track 1 and track 2. - This would be useful in comparing track 1 and track 2, as well as for the cross-language comparisons. - The track-2 tests depend on the current code on master and would require updates if the source code changes. #### To execute the track 2 tests 1. Build the service-bus package `rush build -t service-bus`. 2. Navigate to `service-bus` folder `cd sdk\servicebus\service-bus\`. 3. Create a service-bus namespace and populate the .env file at `servicebus\service-bus` folder with `SERVICEBUS_CONNECTION_STRING` variables. 4. Run the tests as follows - batch send - `npm run perf-test:node -- BatchSendTest --warmup 2 --duration 7 --parallel 2` #### To execture the track 1 tests 1. Navigate to `test-utils\perfstress` folder `cd sdk\test-utils\perfstress\` 2. Build the package `rush update && rush build -t test-utils-perfstress` 3. Pack the perf package `rushx pack` 4. Navigate to `service-bus\perf\track-1` folder `cd sdk\servicebus\service-bus\perf\track-1`. 5. Install the perf package `npm i ..\..\..\..\..\test-utils\perfstress\azure-test-utils-perfstress-1.0.0.tgz` 6. Run `npm install` to get `service-bus V1`. 7. Create a service-bus namespace and a queue with default options. Populate the .env file at `servicebus\service-bus` folder with `SERVICEBUS_CONNECTION_STRING` and `QUEUE_NAME` variables. 8. Run the tests as follows - batch send - `npm run perf-test:node -- BatchSendTest --warmup 2 --duration 7 --parallel 2` ### Existing perf tests - There is an existing "perf" folder with the tests for send and receive for `azure-sb`, `rhea-promise`, `service-bus-v1`, and `service-bus-v7` libraries. - These tests show the memory consumption too in the report. They do not use the perf framework. (And the perf framework isn't yet capable of handling the receive scenarios.) - Retaining the existing tests for the above reasons. - This PR renames the "perf" folder(with existing tests) to "perf-js-libs". --- eng/.docsettings.yml | 3 +- sdk/servicebus/service-bus/package.json | 2 + .../service-bus/rollup.base.config.js | 6 ++- .../azure-sb-package/receive.ts | 0 .../azure-sb-package/send.ts | 0 .../rhea-promise/receive.ts | 0 .../rhea-promise/send.ts | 0 .../service-bus-v1/package.json | 0 .../service-bus-v1/receive.ts | 0 .../service-bus-v1/receiveBatch.ts | 0 .../service-bus-v1/send.ts | 0 .../service-bus-v7/package.json | 0 .../service-bus-v7/receive.ts | 0 .../service-bus-v7/receiveBatch.ts | 0 .../service-bus-v7/send.ts | 0 .../test/{perf => perf-js-libs}/tsconfig.json | 0 .../service-bus/test/perf/track-1/README.md | 12 +++++ .../test/perf/track-1/index.spec.ts | 11 +++++ .../test/perf/track-1/package.json | 16 +++++++ .../test/perf/track-1/sbBase.spec.ts | 26 +++++++++++ .../test/perf/track-1/sendBatch.spec.ts | 45 +++++++++++++++++++ .../test/perf/track-1/tsconfig.json | 5 +++ .../service-bus/test/perf/track-2/README.md | 11 +++++ .../test/perf/track-2/index.spec.ts | 11 +++++ .../test/perf/track-2/sbBase.spec.ts | 32 +++++++++++++ .../test/perf/track-2/sendBatch.spec.ts | 45 +++++++++++++++++++ sdk/servicebus/service-bus/tsconfig.json | 3 +- 27 files changed, 225 insertions(+), 3 deletions(-) rename sdk/servicebus/service-bus/test/{perf => perf-js-libs}/azure-sb-package/receive.ts (100%) rename sdk/servicebus/service-bus/test/{perf => perf-js-libs}/azure-sb-package/send.ts (100%) rename sdk/servicebus/service-bus/test/{perf => perf-js-libs}/rhea-promise/receive.ts (100%) rename sdk/servicebus/service-bus/test/{perf => perf-js-libs}/rhea-promise/send.ts (100%) rename sdk/servicebus/service-bus/test/{perf => perf-js-libs}/service-bus-v1/package.json (100%) rename sdk/servicebus/service-bus/test/{perf => perf-js-libs}/service-bus-v1/receive.ts (100%) rename sdk/servicebus/service-bus/test/{perf => perf-js-libs}/service-bus-v1/receiveBatch.ts (100%) rename sdk/servicebus/service-bus/test/{perf => perf-js-libs}/service-bus-v1/send.ts (100%) rename sdk/servicebus/service-bus/test/{perf => perf-js-libs}/service-bus-v7/package.json (100%) rename sdk/servicebus/service-bus/test/{perf => perf-js-libs}/service-bus-v7/receive.ts (100%) rename sdk/servicebus/service-bus/test/{perf => perf-js-libs}/service-bus-v7/receiveBatch.ts (100%) rename sdk/servicebus/service-bus/test/{perf => perf-js-libs}/service-bus-v7/send.ts (100%) rename sdk/servicebus/service-bus/test/{perf => perf-js-libs}/tsconfig.json (100%) create mode 100644 sdk/servicebus/service-bus/test/perf/track-1/README.md create mode 100644 sdk/servicebus/service-bus/test/perf/track-1/index.spec.ts create mode 100644 sdk/servicebus/service-bus/test/perf/track-1/package.json create mode 100644 sdk/servicebus/service-bus/test/perf/track-1/sbBase.spec.ts create mode 100644 sdk/servicebus/service-bus/test/perf/track-1/sendBatch.spec.ts create mode 100644 sdk/servicebus/service-bus/test/perf/track-1/tsconfig.json create mode 100644 sdk/servicebus/service-bus/test/perf/track-2/README.md create mode 100644 sdk/servicebus/service-bus/test/perf/track-2/index.spec.ts create mode 100644 sdk/servicebus/service-bus/test/perf/track-2/sbBase.spec.ts create mode 100644 sdk/servicebus/service-bus/test/perf/track-2/sendBatch.spec.ts diff --git a/eng/.docsettings.yml b/eng/.docsettings.yml index 6968de7c2fd8..bf0dfe76de45 100644 --- a/eng/.docsettings.yml +++ b/eng/.docsettings.yml @@ -17,7 +17,8 @@ omitted_paths: - sdk/search/*/test/README.md - sdk/servicebus/*/test/README.md - sdk/servicebus/README.md - - sdk/servicebus/service-bus/test/perf/service-bus-* + - sdk/servicebus/service-bus/test/perf-js-libs/service-bus-* + - sdk/servicebus/service-bus/test/perf/** - sdk/servicebus/service-bus/test/stress/* - sdk/schemaregistry/README.md - sdk/storage/*/test/README.md diff --git a/sdk/servicebus/service-bus/package.json b/sdk/servicebus/service-bus/package.json index ecfbf963e4df..bd52f842be38 100644 --- a/sdk/servicebus/service-bus/package.json +++ b/sdk/servicebus/service-bus/package.json @@ -67,6 +67,7 @@ "lint:fix": "eslint package.json api-extractor.json src test --ext .ts --fix --fix-type [problem,suggestion]", "lint": "eslint package.json api-extractor.json src test --ext .ts -f html -o service-bus-lintReport.html || exit 0", "pack": "npm pack 2>&1", + "perf-test:node": "cross-env TS_NODE_COMPILER_OPTIONS=\"{\\\"module\\\": \\\"commonjs\\\"}\" ts-node test/perf/track-2/index.spec.ts", "prebuild": "npm run clean", "test:browser": "npm run clean && npm run build:test:browser && npm run integration-test:browser", "test:node": "npm run clean && npm run build:test:node && npm run integration-test:node", @@ -117,6 +118,7 @@ "@azure/dev-tool": "^1.0.0", "@azure/eslint-plugin-azure-sdk": "^3.0.0", "@azure/identity": "^1.1.0", + "@azure/test-utils-perfstress": "^1.0.0", "@microsoft/api-extractor": "7.7.11", "@rollup/plugin-commonjs": "11.0.2", "@rollup/plugin-inject": "^4.0.0", diff --git a/sdk/servicebus/service-bus/rollup.base.config.js b/sdk/servicebus/service-bus/rollup.base.config.js index e584691da98e..96b557f743d3 100644 --- a/sdk/servicebus/service-bus/rollup.base.config.js +++ b/sdk/servicebus/service-bus/rollup.base.config.js @@ -67,7 +67,11 @@ export function nodeConfig({ test = false, production = false } = {}) { if (test) { // entry point is every test file - baseConfig.input = "dist-esm/test/**/*.spec.js"; + baseConfig.input = [ + "dist-esm/service-bus/test/internal/*.spec.js", + "dist-esm/service-bus/test/node/*.spec.js", + "dist-esm/service-bus/test/*.spec.js" + ]; baseConfig.plugins.unshift(multiEntry({ exports: false })); // different output file diff --git a/sdk/servicebus/service-bus/test/perf/azure-sb-package/receive.ts b/sdk/servicebus/service-bus/test/perf-js-libs/azure-sb-package/receive.ts similarity index 100% rename from sdk/servicebus/service-bus/test/perf/azure-sb-package/receive.ts rename to sdk/servicebus/service-bus/test/perf-js-libs/azure-sb-package/receive.ts diff --git a/sdk/servicebus/service-bus/test/perf/azure-sb-package/send.ts b/sdk/servicebus/service-bus/test/perf-js-libs/azure-sb-package/send.ts similarity index 100% rename from sdk/servicebus/service-bus/test/perf/azure-sb-package/send.ts rename to sdk/servicebus/service-bus/test/perf-js-libs/azure-sb-package/send.ts diff --git a/sdk/servicebus/service-bus/test/perf/rhea-promise/receive.ts b/sdk/servicebus/service-bus/test/perf-js-libs/rhea-promise/receive.ts similarity index 100% rename from sdk/servicebus/service-bus/test/perf/rhea-promise/receive.ts rename to sdk/servicebus/service-bus/test/perf-js-libs/rhea-promise/receive.ts diff --git a/sdk/servicebus/service-bus/test/perf/rhea-promise/send.ts b/sdk/servicebus/service-bus/test/perf-js-libs/rhea-promise/send.ts similarity index 100% rename from sdk/servicebus/service-bus/test/perf/rhea-promise/send.ts rename to sdk/servicebus/service-bus/test/perf-js-libs/rhea-promise/send.ts diff --git a/sdk/servicebus/service-bus/test/perf/service-bus-v1/package.json b/sdk/servicebus/service-bus/test/perf-js-libs/service-bus-v1/package.json similarity index 100% rename from sdk/servicebus/service-bus/test/perf/service-bus-v1/package.json rename to sdk/servicebus/service-bus/test/perf-js-libs/service-bus-v1/package.json diff --git a/sdk/servicebus/service-bus/test/perf/service-bus-v1/receive.ts b/sdk/servicebus/service-bus/test/perf-js-libs/service-bus-v1/receive.ts similarity index 100% rename from sdk/servicebus/service-bus/test/perf/service-bus-v1/receive.ts rename to sdk/servicebus/service-bus/test/perf-js-libs/service-bus-v1/receive.ts diff --git a/sdk/servicebus/service-bus/test/perf/service-bus-v1/receiveBatch.ts b/sdk/servicebus/service-bus/test/perf-js-libs/service-bus-v1/receiveBatch.ts similarity index 100% rename from sdk/servicebus/service-bus/test/perf/service-bus-v1/receiveBatch.ts rename to sdk/servicebus/service-bus/test/perf-js-libs/service-bus-v1/receiveBatch.ts diff --git a/sdk/servicebus/service-bus/test/perf/service-bus-v1/send.ts b/sdk/servicebus/service-bus/test/perf-js-libs/service-bus-v1/send.ts similarity index 100% rename from sdk/servicebus/service-bus/test/perf/service-bus-v1/send.ts rename to sdk/servicebus/service-bus/test/perf-js-libs/service-bus-v1/send.ts diff --git a/sdk/servicebus/service-bus/test/perf/service-bus-v7/package.json b/sdk/servicebus/service-bus/test/perf-js-libs/service-bus-v7/package.json similarity index 100% rename from sdk/servicebus/service-bus/test/perf/service-bus-v7/package.json rename to sdk/servicebus/service-bus/test/perf-js-libs/service-bus-v7/package.json diff --git a/sdk/servicebus/service-bus/test/perf/service-bus-v7/receive.ts b/sdk/servicebus/service-bus/test/perf-js-libs/service-bus-v7/receive.ts similarity index 100% rename from sdk/servicebus/service-bus/test/perf/service-bus-v7/receive.ts rename to sdk/servicebus/service-bus/test/perf-js-libs/service-bus-v7/receive.ts diff --git a/sdk/servicebus/service-bus/test/perf/service-bus-v7/receiveBatch.ts b/sdk/servicebus/service-bus/test/perf-js-libs/service-bus-v7/receiveBatch.ts similarity index 100% rename from sdk/servicebus/service-bus/test/perf/service-bus-v7/receiveBatch.ts rename to sdk/servicebus/service-bus/test/perf-js-libs/service-bus-v7/receiveBatch.ts diff --git a/sdk/servicebus/service-bus/test/perf/service-bus-v7/send.ts b/sdk/servicebus/service-bus/test/perf-js-libs/service-bus-v7/send.ts similarity index 100% rename from sdk/servicebus/service-bus/test/perf/service-bus-v7/send.ts rename to sdk/servicebus/service-bus/test/perf-js-libs/service-bus-v7/send.ts diff --git a/sdk/servicebus/service-bus/test/perf/tsconfig.json b/sdk/servicebus/service-bus/test/perf-js-libs/tsconfig.json similarity index 100% rename from sdk/servicebus/service-bus/test/perf/tsconfig.json rename to sdk/servicebus/service-bus/test/perf-js-libs/tsconfig.json diff --git a/sdk/servicebus/service-bus/test/perf/track-1/README.md b/sdk/servicebus/service-bus/test/perf/track-1/README.md new file mode 100644 index 000000000000..9e541e65c763 --- /dev/null +++ b/sdk/servicebus/service-bus/test/perf/track-1/README.md @@ -0,0 +1,12 @@ +### Guide + +1. Navigate to `test-utils\perfstress` folder `cd sdk\test-utils\perfstress\` +2. Build the package `rush update && rush build -t test-utils-perfstress` +3. Pack the perf package `rushx pack` +4. Navigate to `service-bus\perf\track-1` folder `cd sdk\servicebus\service-bus\perf\track-1`. +5. Install the perf package `npm i ..\..\..\..\..\test-utils\perfstress\azure-test-utils-perfstress-1.0.0.tgz` +6. Run `npm install` to get `service-bus V1`. +7. Create a service-bus namespace and populate the .env file at `servicebus\service-bus` folder with `SERVICEBUS_CONNECTION_STRING` and `QUEUE_NAME` variables. +8. Run the tests as follows + - batch send + - `npm run perf-test:node -- BatchSendTest --warmup 2 --duration 7 --parallel 2` diff --git a/sdk/servicebus/service-bus/test/perf/track-1/index.spec.ts b/sdk/servicebus/service-bus/test/perf/track-1/index.spec.ts new file mode 100644 index 000000000000..a186da32216a --- /dev/null +++ b/sdk/servicebus/service-bus/test/perf/track-1/index.spec.ts @@ -0,0 +1,11 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +import { PerfStressProgram, selectPerfStressTest } from "@azure/test-utils-perfstress"; +import { BatchSendTest } from "./sendBatch.spec"; + +console.log("=== Starting the perfStress test ==="); + +const perfStressProgram = new PerfStressProgram(selectPerfStressTest([BatchSendTest])); + +perfStressProgram.run(); diff --git a/sdk/servicebus/service-bus/test/perf/track-1/package.json b/sdk/servicebus/service-bus/test/perf/track-1/package.json new file mode 100644 index 000000000000..b4b78364ca45 --- /dev/null +++ b/sdk/servicebus/service-bus/test/perf/track-1/package.json @@ -0,0 +1,16 @@ +{ + "name": "track-1", + "version": "1.0.0", + "description": "1. Build the service-bus package `rush build -t service-bus`. 2. Navigate to `service-bus` folder `cd sdk\\servicebus\\service-bus\\`. 3. Create a service-bus namespace and populate the .env file at `servicebus\\service-bus` folder with `SERVICEBUS_CONNECTION_STRING` variables. 4. Run the tests as follows", + "main": "index.js", + "keywords": [], + "author": "", + "license": "ISC", + "dependencies": { + "@azure/service-bus": "^1.1.10", + "@azure/test-utils-perfstress": "file:../../../../../test-utils/perfstress/azure-test-utils-perfstress-1.0.0.tgz" + }, + "scripts": { + "perf-test:node": "ts-node index.spec.ts" + } +} diff --git a/sdk/servicebus/service-bus/test/perf/track-1/sbBase.spec.ts b/sdk/servicebus/service-bus/test/perf/track-1/sbBase.spec.ts new file mode 100644 index 000000000000..fa106c3aa22f --- /dev/null +++ b/sdk/servicebus/service-bus/test/perf/track-1/sbBase.spec.ts @@ -0,0 +1,26 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +import { PerfStressTest, getEnvVar } from "@azure/test-utils-perfstress"; +import { ServiceBusClient } from "@azure/service-bus"; + +// Expects the .env file at the same level as the "test" folder +import * as dotenv from "dotenv"; +dotenv.config({ path: "../../../.env" }); + +const connectionString = getEnvVar("SERVICEBUS_CONNECTION_STRING"); +const sbClient = ServiceBusClient.createFromConnectionString(connectionString); + +export abstract class ServiceBusTest extends PerfStressTest { + sbClient: ServiceBusClient; + static queueName = getEnvVar("QUEUE_NAME"); + + constructor() { + super(); + this.sbClient = sbClient; + } + + public async globalCleanup() { + await this.sbClient.close(); + } +} diff --git a/sdk/servicebus/service-bus/test/perf/track-1/sendBatch.spec.ts b/sdk/servicebus/service-bus/test/perf/track-1/sendBatch.spec.ts new file mode 100644 index 000000000000..acdd3fbf780c --- /dev/null +++ b/sdk/servicebus/service-bus/test/perf/track-1/sendBatch.spec.ts @@ -0,0 +1,45 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +import { PerfStressOptionDictionary } from "@azure/test-utils-perfstress"; +import { SendableMessageInfo, Sender } from "@azure/service-bus"; +import { ServiceBusTest } from "./sbBase.spec"; + +interface SendTestOptions { + messageBodySize: number; + numberOfMessages: number; +} + +export class BatchSendTest extends ServiceBusTest { + sender: Sender; + batch: SendableMessageInfo[]; + public options: PerfStressOptionDictionary = { + messageBodySize: { + required: true, + description: "Size in bytes", + shortName: "sz", + longName: "size", + defaultValue: 1024 + }, + numberOfMessages: { + required: true, + description: "Number of messages per send", + shortName: "num", + longName: "numberOfMessages", + defaultValue: 10 + } + }; + + constructor() { + super(); + this.sender = this.sbClient.createQueueClient(BatchSendTest.queueName).createSender(); + const sbMessage = { + body: Buffer.alloc(this.parsedOptions.messageBodySize.value!) + }; + this.batch = new Array(this.parsedOptions.numberOfMessages.value!).fill(sbMessage); + } + + async runAsync(): Promise { + await this.sender.sendBatch(this.batch); + } +} diff --git a/sdk/servicebus/service-bus/test/perf/track-1/tsconfig.json b/sdk/servicebus/service-bus/test/perf/track-1/tsconfig.json new file mode 100644 index 000000000000..391488ab17f4 --- /dev/null +++ b/sdk/servicebus/service-bus/test/perf/track-1/tsconfig.json @@ -0,0 +1,5 @@ +{ + "compilerOptions": { + "module": "commonjs" + } +} diff --git a/sdk/servicebus/service-bus/test/perf/track-2/README.md b/sdk/servicebus/service-bus/test/perf/track-2/README.md new file mode 100644 index 000000000000..74d0d1124710 --- /dev/null +++ b/sdk/servicebus/service-bus/test/perf/track-2/README.md @@ -0,0 +1,11 @@ +### Guide + +1. Build the service-bus package `rush build -t service-bus`. +2. Navigate to `service-bus` folder `cd sdk\servicebus\service-bus\`. +3. Create a service-bus namespace and populate the .env file at `servicebus\service-bus` folder with `SERVICEBUS_CONNECTION_STRING` variables. +4. Run the tests as follows + + - simple send + - `npm run perf-test:node -- SimpleSendTest --warmup 2 --duration 7 --iterations 2 --parallel 2` + - batch send + - `npm run perf-test:node -- BatchSendTest --warmup 2 --duration 7 --parallel 2` diff --git a/sdk/servicebus/service-bus/test/perf/track-2/index.spec.ts b/sdk/servicebus/service-bus/test/perf/track-2/index.spec.ts new file mode 100644 index 000000000000..a186da32216a --- /dev/null +++ b/sdk/servicebus/service-bus/test/perf/track-2/index.spec.ts @@ -0,0 +1,11 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +import { PerfStressProgram, selectPerfStressTest } from "@azure/test-utils-perfstress"; +import { BatchSendTest } from "./sendBatch.spec"; + +console.log("=== Starting the perfStress test ==="); + +const perfStressProgram = new PerfStressProgram(selectPerfStressTest([BatchSendTest])); + +perfStressProgram.run(); diff --git a/sdk/servicebus/service-bus/test/perf/track-2/sbBase.spec.ts b/sdk/servicebus/service-bus/test/perf/track-2/sbBase.spec.ts new file mode 100644 index 000000000000..262ac0801e16 --- /dev/null +++ b/sdk/servicebus/service-bus/test/perf/track-2/sbBase.spec.ts @@ -0,0 +1,32 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +import { PerfStressTest, getEnvVar } from "@azure/test-utils-perfstress"; +import { ServiceBusAdministrationClient, ServiceBusClient } from "../../../src"; + +// Expects the .env file at the same level as the "test" folder +import * as dotenv from "dotenv"; +dotenv.config(); + +const connectionString = getEnvVar("SERVICEBUS_CONNECTION_STRING"); +const sbClient = new ServiceBusClient(connectionString); + +export abstract class ServiceBusTest extends PerfStressTest { + sbClient: ServiceBusClient; + static sbAdminClient = new ServiceBusAdministrationClient(connectionString); + static queueName = `newqueue-${Math.ceil(Math.random() * 1000)}`; + + constructor() { + super(); + this.sbClient = sbClient; + } + + public async globalSetup() { + await ServiceBusTest.sbAdminClient.createQueue(ServiceBusTest.queueName); + } + + public async globalCleanup() { + await ServiceBusTest.sbAdminClient.deleteQueue(ServiceBusTest.queueName); + await this.sbClient.close(); + } +} diff --git a/sdk/servicebus/service-bus/test/perf/track-2/sendBatch.spec.ts b/sdk/servicebus/service-bus/test/perf/track-2/sendBatch.spec.ts new file mode 100644 index 000000000000..b3a56c7cf7c5 --- /dev/null +++ b/sdk/servicebus/service-bus/test/perf/track-2/sendBatch.spec.ts @@ -0,0 +1,45 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +import { PerfStressOptionDictionary } from "@azure/test-utils-perfstress"; +import { ServiceBusMessage, ServiceBusSender } from "../../../src"; +import { ServiceBusTest } from "./sbBase.spec"; + +interface SendTestOptions { + messageBodySize: number; + numberOfMessages: number; +} + +export class BatchSendTest extends ServiceBusTest { + sender: ServiceBusSender; + batch: ServiceBusMessage[]; + public options: PerfStressOptionDictionary = { + messageBodySize: { + required: true, + description: "Size in bytes", + shortName: "sz", + longName: "size", + defaultValue: 1024 + }, + numberOfMessages: { + required: true, + description: "Number of messages per send", + shortName: "num", + longName: "numberOfMessages", + defaultValue: 10 + } + }; + + constructor() { + super(); + this.sender = this.sbClient.createSender(BatchSendTest.queueName); + const sbMessage = { + body: Buffer.alloc(this.parsedOptions.messageBodySize.value!) + }; + this.batch = new Array(this.parsedOptions.numberOfMessages.value!).fill(sbMessage); + } + + async runAsync(): Promise { + await this.sender.sendMessages(this.batch); + } +} diff --git a/sdk/servicebus/service-bus/tsconfig.json b/sdk/servicebus/service-bus/tsconfig.json index ef6c2969f1c0..ff7453fcc8c3 100644 --- a/sdk/servicebus/service-bus/tsconfig.json +++ b/sdk/servicebus/service-bus/tsconfig.json @@ -10,7 +10,8 @@ "node_modules", "./types/**/*.d.ts", "./samples/**/*.ts", - "test/perf/*", + "test/perf-js-libs/*", + "test/perf/track-1", "test/stress*" ], "include": ["./src/**/*.ts", "./test/**/*.ts"]