Registry / testing / artillery-engine-grpc

artillery-engine-grpc

JSON →
library0.0.9jsnpmunverified

A plugin for Artillery.io that enables load testing of gRPC services. Version 0.0.9 is the latest stable release, with development on GitHub. It allows users to define gRPC scenarios using YAML configuration, supporting proto file definitions, custom channel options, and metadata. This plugin differentiates itself by integrating gRPC load testing directly into Artillery's existing workflow, leveraging its phase-based load generation and reporting. Release cadence is irregular; the package is relatively new and may have breaking changes between minor versions.

npm install artillery-engine-grpc
INSTALL
IMPORT
SIG · ARTILLERY-ENGINE-G
A
artillery-engine-grpc
testingjavascriptv0.0.9
harness data pending
Install & Compatibility
Where this runs

No compatibility data collected yet for this library.

Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

default
npm install -g artillery-engine-grpc
npm install artillery-engine-grpc (without -g if artillery is installed globally)
Plugin is used as a global module with Artillery, not imported in code.

Installs the plugin globally, creates a proto file and scenario YAML, then runs the Artillery load test against a gRPC service.

npm install -g artillery-engine-grpc cat << 'EOF' > hello.proto syntax = "proto3"; package backend.services.v1; service HelloService { rpc Hello (HelloRequest) returns (HelloResponse) {} } message HelloRequest { int32 id = 1; string name = 2; } message HelloResponse { string message = 1; } EOF cat << 'EOF' > my-scenario.yml config: target: 127.0.0.1:8080 phases: - duration: 10 arrivalRate: 10 engines: grpc: channelOpts: grpc.client_idle_timeout_ms: 1000 protobufDefinition: filepath: hello.proto package: backend.services.v1 service: HelloService scenarios: - name: test gRPC engine: grpc flow: - Hello: id: 1 name: Alice EOF artillery run my-scenario.yml
Debug
Known issues
breakingPlugin version 0.x.y may have breaking changes between minor versions without warning.
fix
Pin to a specific version in package.json or use a lockfile.
affects: <1.0.0
gotchaThe plugin requires Artillery to be installed globally; otherwise, the engine will not be found.
fix
Install artillery globally with 'npm install -g artillery'.
affects: >=0.0.1
gotchaProto file paths in the YAML config are relative to the working directory, not the YAML file location.
fix
Use absolute paths or ensure proto files are in the directory where 'artillery run' is executed.
affects: >=0.0.1
breakingThe 'protoLoaderConfig' options are passed directly to '@grpc/proto-loader'; changes in that library can break things.
fix
Review '@grpc/proto-loader' release notes and adjust config accordingly.
affects: >=0.0.1
Errors
Common errors & fixes
Error: Cannot find module 'artillery-engine-grpc'
Artillery cannot locate the plugin, likely because it is installed locally instead of globally.
fix
Run 'npm install -g artillery-engine-grpc' to install globally.
Error: ENOENT: no such file or directory, open 'path/to/proto.proto'
Proto file path specified in YAML is incorrect or file does not exist.
fix
Ensure the proto file path in the YAML 'protobufDefinition.filepath' is correct relative to the working directory.
TypeError: proto.loadSync is not a function
Incompatible version of '@grpc/proto-loader' or incorrect proto file syntax.
fix
Update '@grpc/proto-loader' to latest version and validate proto file syntax.
Error: 14 UNAVAILABLE: DNS resolution failed for target
The gRPC target URL is incorrect or the service is not reachable.
fix
Verify the 'target' field in config points to a valid gRPC endpoint with port.
Upgrade
Version history
0.0.9latest on npm
Audit
Dependencies
@grpc/grpc-jsrequiredRequired for gRPC client connectivity
@grpc/proto-loaderrequiredNeeded to load .proto files at runtime
Agent activity
20 hits · last 30 days
node
18
OpenAI (training)
2
Resources
artillery-engine-grpc — npm install artillery-engine-grpc · libregistry