GRPC Core  4.0.0
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Stress Test framework for gRPC

(Sree Kuchibhotla - sreek@)

Status: This is implemented. More details at https://github.com/grpc/grpc/blob/master/tools/run_tests/stress_test/README.md "README.md"

I. GOALS

1) Build a stress test suite for gRPC:

2) Make it generic enough (i.e build a generic test framework) that can be used for:

The implementation effort is divided into two parts:

Terminology:

GCE - Google compute engine GKE - Google Container engine Kubernetes - Google's open source service scheduler / orchestrator.

Note: The terms GKE and Kubernetes are used interchangeably in this document

II. STRESS TEST FRAMEWORK

(The details of each step are explained below))

image

Figure 1

Step 1 Read the test config, generate base docker images

**_Test Config:_** The test configuration contains the following information:

The first step is to read the test config and build the docker images

**_Stress server docker image:_** The following are the main files in the server docker images

**_Stress client docker image:_**

Step 2) Upload the docker images to GKE

The docker images are uploaded to the GKE registry

Step 3) Launch the tests in GKE

The test driver reads the test matrix (described in step 1) and creates the necessary server and client pods in GKE.

Step 4) Tests are run in GKE

GKE starts running the tests by calling the entry points in each docker image (i.e run_server.py or run_client.py depending on whcih docker image it is)

Step 5) Upload the status to GKE and Monitor the status in GKE

Step 6) Create a summary report

The test driver creates a final summary report containing details about any test failures and information about how to connect the failed pods in GKE for debugging.