Skip to main content

Smoke Test

The Smoke Test source generates synthetic data for destination regression testing. It produces records across predefined scenarios that cover common destination failure patterns: type variations, null handling, naming edge cases, schema variations, and batch sizes.

This connector is a thin wrapper around PyAirbyte's smoke test module. All business logic lives in the airbyte.cli.smoke_test_source module.

note

This connector is intended for internal testing and development. It does not connect to any external API.

Prerequisites

None. This connector generates data locally and requires no external services or credentials.

Setup guide

No authentication or external setup is required. Add the connector and optionally adjust the configuration options described below.

Configuration

All configuration fields are optional. With default settings, the connector emits all 14 fast scenarios and excludes the slow large_batch_stream scenario.

ParameterTypeDefaultDescription
All Fast StreamsbooleantrueInclude all fast, non-high-volume predefined streams.
All Slow StreamsbooleanfalseInclude high-volume streams such as large_batch_stream. Excluded by default to keep syncs fast.
Scenario Filterarray of strings[]Specific scenario names to include. Combined with the streams enabled by the boolean flags. If empty, only the boolean flags control selection.
Large Batch Record Countinteger1000Number of records to generate for the large_batch_stream scenario. Set to 0 to emit no records for this stream.
Custom Test Scenariosarray of objects[]Additional test scenarios to inject at runtime. Each scenario requires a name and json_schema. You can optionally include records, primary_key, and description.

Supported streams

All streams support full refresh sync only. Incremental sync is not supported.

Fast scenarios (included by default)

StreamDescriptionRecords
basic_typesString, integer, number, boolean columns3
timestamp_typesDate, datetime, and epoch values3
large_decimals_and_numbersHigh-precision decimals, large integers, boundary values3
nested_json_objectsNested objects, arrays, and deep nesting2
null_handlingNull values across all types, including always-null columns3
column_naming_edge_casesCamelCase, dashes, dots, spaces, and SQL reserved words in column names1
table_naming_edge_casesSpecial characters in the stream name1
CamelCaseStreamNameCamelCase stream name handling1
wide_table_50_columns50-column table with nullable strings2
empty_streamZero records, testing empty dataset handling0
single_record_streamExactly one record1
unicode_and_special_stringsEmoji, CJK, Cyrillic, and escape sequences4
schema_with_no_primary_keyNo primary key, testing append-only behavior3
long_column_namesColumn names exceeding typical database limits1

Slow scenarios (excluded by default)

StreamDescriptionRecords
large_batch_streamConfigurable record count for batch and flush testing1,000

To enable slow streams, set All Slow Streams to true, or include large_batch_stream in the Scenario Filter list.

Features

FeatureSupported
Full Refresh SyncYes
Incremental SyncNo
NamespacesNo

Reference

Config fields reference

Field
Type
Property name
boolean
all_fast_streams
boolean
all_slow_streams
array<object>
custom_scenarios
integer
large_batch_record_count
stringnull
namespace
array<string>
scenario_filter

Changelog

Expand to review
VersionDatePull RequestSubject
0.1.02026-03-1975181Initial release: smoke test source for destination regression testing