Testbed is a controlled environment and tools for conducting end-to-end tests for the Otel Collector, including reproducible short-term benchmarks, correctness tests, long-running stability tests and maximum load stress tests.
For each type of tests that should have a summary report create a new directory and then a test suite function
which utilizes *testing.M
. This function should delegate all functionality to testbed.DoTestMain
supplying
a global instance of testbed.TestResultsSummary
to it.
Each test case within the suite should create a testbed.TestCase
and supply implementations of each of the various
interfaces the NewTestCase
function takes as parameters.
DataProvider
- Generates test data to send to receiver under test.PerfTestDataProvider
- Implementation of theDataProvider
for use in performance tests. Tracing IDs are based on the incremented batch and data items counters.GoldenDataProvider
- Implementation ofDataProvider
for use in correctness tests. Provides data from the "Golden" dataset generated using pairwise combinatorial testing techniques.
DataSender
- Sends data to the collector instance under test.JaegerGRPCDataSender
- Implementation ofDataSender
which sends tojaeger
receiver.OCTraceDataSender
- Implementation ofDataSender
which sends toopencensus
receiver.OCMetricsDataSender
- Implementation ofDataSender
which sends toopencensus
receiver.OTLPTraceDataSender
- Implementation ofDataSender
which sends tootlp
receiver.OTLPMetricsDataSender
- Implementation ofDataSender
which sends tootlp
receiver.ZipkinDataSender
- Implementation ofDataSender
which sends tozipkin
receiver.
DataReceiver
- Receives data from the collector instance under test and stores it for use in test assertions.OCDataReceiver
- Implementation ofDataReceiver
which receives data fromopencensus
exporter.JaegerDataReceiver
- Implementation ofDataReceiver
which receives data fromjaeger
exporter.OTLPDataReceiver
- Implementation ofDataReceiver
which receives data fromotlp
exporter.ZipkinDataReceiver
- Implementation ofDataReceiver
which receives data fromzipkin
exporter.
OtelcolRunner
- Configures, starts and stops one or more instances of otelcol which will be the subject of testing being executed.ChildProcess
- Implementation ofOtelcolRunner
runs a single otelcol as a child process on the same machine as the test executor.InProcessCollector
- Implementation ofOtelcolRunner
runs a single otelcol as a go routine within the same process as the test executor.
TestCaseValidator
- Validates and reports on test results.PerfTestValidator
- Implementation ofTestCaseValidator
for test suites usingPerformanceResults
for summarizing results.CorrectnessTestValidator
- Implementation ofTestCaseValidator
for test suites usingCorrectnessResults
for summarizing results.
TestResultsSummary
- Records itemized test case results plus a summary of one category of testing.PerformanceResults
- Implementation ofTestResultsSummary
with fields suitable for reporting performance test results.CorrectnessResults
- Implementation ofTestResultsSummary
with fields suitable for reporting data translation correctness test results.