All Projects → zalopay-oss → jmeter-grpc-request

zalopay-oss / jmeter-grpc-request

Licence: Apache-2.0 license
JMeter gRPC Request load test plugin for gRPC

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to jmeter-grpc-request

jmeter-grpc-plugin
A JMeter plugin supports load test gRPC
Stars: ✭ 36 (-73.72%)
Mutual labels:  load-testing, jmeter, jmeter-plugin
jmeter-aci-terraform
Scalable cloud load/stress testing pipeline solution with Apache JMeter and Terraform to dynamically provision and destroy the required infrastructure on Azure.
Stars: ✭ 114 (-16.79%)
Mutual labels:  load-testing, jmeter
jmeter-to-k6
Converts JMeter .jmx files to k6 JS code
Stars: ✭ 57 (-58.39%)
Mutual labels:  load-testing, jmeter
jmeter-plugins
Docker image for Apache JMeter with JMeter plugins - https://jmeter.apache.org & https://jmeter-plugins.org
Stars: ✭ 20 (-85.4%)
Mutual labels:  load-testing, jmeter
TarsJMeter
The bridge connecting JMeter and Tars, it ensures that people can efficiently use JMeter to complete the stress test of Tars microservices
Stars: ✭ 28 (-79.56%)
Mutual labels:  jmeter, jmeter-plugin
jmeter-rmi-plugin
Plugin to add support for recording and playing back RMI calls
Stars: ✭ 14 (-89.78%)
Mutual labels:  jmeter, jmeter-plugin
StressThing
a software testing platform to perform stress test on web of things
Stars: ✭ 12 (-91.24%)
Mutual labels:  load-testing, jmeter
Awesome Jmeter
A collection of resources covering different aspects of JMeter usage.
Stars: ✭ 413 (+201.46%)
Mutual labels:  load-testing, jmeter
Jmeter Maven Plugin
The JMeter Maven Plugin
Stars: ✭ 362 (+164.23%)
Mutual labels:  load-testing, jmeter
Performance Testing Framework
Framework allows to perform load testing with Apache Jmeter, view application/server metrics in real-time with Grafana, analyze errors cause with detailed traces for failed requests, compare different test runs in scripted dashboard and perform frontend performance testing with sitespeed.io+webpagetest
Stars: ✭ 275 (+100.73%)
Mutual labels:  load-testing, jmeter
Jmeter.Plugin.TailSampler
Sampler, performing parallel loading of specified resources.
Stars: ✭ 13 (-90.51%)
Mutual labels:  jmeter, jmeter-plugin
Taurus
Automation-friendly framework for Continuous Testing by
Stars: ✭ 1,566 (+1043.07%)
Mutual labels:  load-testing, jmeter
ltc
Online web application-dashboard for report analyzing,running and online monitoring of load tests started with JMeter
Stars: ✭ 185 (+35.04%)
Mutual labels:  jmeter, jmeter-plugin
fiddler2jmeter
JMeter脚本录制工具:将Fiddler/Charles转换为JMeter 4.0以上的脚本,并支持过滤功能 JMeter script recording tool: converts Fiddler / Charles into scripts above JMeter 4.0, and supports filtering function
Stars: ✭ 20 (-85.4%)
Mutual labels:  jmeter, jmeter-plugin
kloadgen
KLoadGen is kafka load generator plugin for jmeter designed to work with AVRO and JSON schema Registries.
Stars: ✭ 144 (+5.11%)
Mutual labels:  load-testing, jmeter-plugin
Jmeter Ec2
Automates running Apache JMeter on Amazon EC2
Stars: ✭ 448 (+227.01%)
Mutual labels:  load-testing, jmeter
Performance Plugin
Performance Test Running and Reporting for Jenkins CI
Stars: ✭ 176 (+28.47%)
Mutual labels:  load-testing, jmeter
Ali
Generate HTTP load and plot the results in real-time
Stars: ✭ 3,055 (+2129.93%)
Mutual labels:  load-testing
mattermost-load-test-ng
Mattermost next generation loadtest agent
Stars: ✭ 46 (-66.42%)
Mutual labels:  load-testing
Httprunner
One-stop solution for HTTP(S) testing, written in Python.
Stars: ✭ 2,628 (+1818.25%)
Mutual labels:  load-testing

JMeter gRPC Request

Apache JMeter and gRPC logo

This sampler JMeter lets you send an gRPC request to a server.
It's as simple as a HTTP Request.


Javadocs Stack Overflow

简体中文 | English

What is it

This is a simpler of JMeter used to test for any gRPC server, it is not necessary to generate gRPC classes or to compile the protos binary for the service. Just a very simple for input:

  • Host and port of gRPC service.
  • Method of service needs testing.
  • Folder path of proto files.
  • Data request in JSON format.

Same as JMeter HTTP Request but for gRPC. Copy only once file jar to lib/ext of JMeter, select your protobuf folder and start making requests! No extra steps.

The JMeter gRPC Request is available at JMeter Plugins Manager, we can find here https://jmeter-plugins.org/?search=jmeter-grpc-request

Features

  • Supports Blocking Unary Calls.
  • Parses proto files at runtime.
  • Supports plain text and TLS connections.
  • Supports authentication via metadata (JWT/Token).
  • Request data with JSON format.
  • Runs on Mac, Linux and build project by Maven.

Todo:

  • Supports TLS connections.
  • Supports authentication via metadata.
  • Auto list full methods.
  • Count the failed request in the report.
  • Auto generate request data base on proto file.
  • Supports grpc-web protocol (HTTP1.1).

Usage

jmeter-create-testscript-grpc

Requirements

All you need copy jmeter-grpc-request file jar to directory lib/ext of JMeter and restart JMeter GUI (copy once, use forever). Binary are available from the Releases Page.

Making a gRPC request with JMeter

Create test script:

  • Add Thread Group: right-click on the Sample Test (our Test Plan) → Add → Threads (Users) → Thread Group.
  • Add GRPC Request: right-click on the newly created Thread Group → Add → Sampler → GRPC Request.
  • Fill info request: host, port, method, data request, proto folder.
  • Save test script.

Run test:

  • Via JMeter GUI: in top bar click Run → Start.
  • Via command line: bin/jmeter -n -t <test JMX file>.jmx -l <test JMX result>.csv -j <test log file>.log -e -o <Path to output folder>.

Configurations

No. Fields Description
1 Server Name or IP Domain/IP for gRPC server
2 Port Number Port for gRPC server (80/ 443)
3 SSL/TLS SSL/TLS to authenticate the server
4 Disable SSL/TLS Cert Verification Disable SSL/TLS certificate verification (enable this function when using self-signed certificates)
5 Proto Root Directory Root directory contains proto files
6 Library Directory (Optional) Using a different underlying library (googleapis)
7 Full Method Full Method to test
8 Metadata Metadata can be use for Store token, authentication method, etc.
Two Ways to use metadata,

 1. Comma separated Key:Value :
  - key1:value1,key2:value2
  - Value should url encode with utf-8

 2. Json String :
   - {"key1":"Value1", "key2":"value2"}

Note: In gRPC Metadata value is (Key, value) both in format of (String, String), in case of nested Json Objects values, will go to request as a JsonString.
9 Deadline How long gRPC clients are willing to wait for an RPC to complete
10 Send JSON Format With the Request Data request with JSON format

Running the examples

Example invocations can be found in the example directory.

Benchmark

Purpose verify that jmeter-grpc-request is really stable when performing load testing for the gRPC system. Read more Benchmark: jmter-grpc-request

  • CCU: 120 user
  • Duration: 30 min

Build instructions

Build requirements

In order to build JMeter GRPC Request from source, you will need:

Build from source

Build a (fat) jar output in target directory, run:

mvn clean install package

Inspiration...

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].