- Index

< Previous |  | Next >

# Test with a Feed Simulation

## Feed Simulation Introduction

To test a fragment without manually enqueing tuples, you can let your fragment connect to a live incoming feed of the data stream it is designed to process. However, most of the time, connecting to live data would be expensive, or inappropriate, or or even dangerous. For example, you would never connect a fragment under development to a live feed of actual customer transaction data.

StreamBase instead provides its feed simulation mechanism. This lets you send a stream of generated or recorded data to your fragment's input streams. The feed simulation feature has many features that offer maximum flexibility. Learn more about feed simulations on these pages.

Feed simulations are stored as files with the `.sbfs` extension. Place these files in the `src/main/resources` folder of your Studio project.

## Creating a Feed Simulation File

For this tutorial, we will create and customize a feed simulation that cycles between enumerated values for each field in the `firstapp` module's `TradesIn` Input Stream.

1. There are several ways to start a new feed simulation file, but the most convenient is to open the project in the Project Explorer view and navigate to its `src/main/resources` folder. Do that now for the `firstapp` project.

2. Select the `src/main/resources` folder, right-click and from the context menu, select New → Feed Simulation. This opens a dialog much like the following, with the `resources` folder pre-selected.

3. In the Feed Simulation file name field, enter: `firstapp-enum`. The dialog automatically adds the `.sbfs` extension.

4. Click Finish to create the new feed simulation and close the wizard.

5. Your new file opens in the Feed Simulation Editor.

   In the Simulation Streams area, you must identify a stream for the feed simulation to feed and define its schema. The easiest way to do that is to click Copy from Stream/Named Schema to borrow the stream's schema from the module.

6. In the Stream Selection dialog, open the `firstapp` project and expand folders down until you can select the `firstapp.sbapp` module. Open that down one more level and select the `TradesIn` stream. Click OK.

7. This places the TradesIn stream into the Simulation Streams area. Open the arrow symbol on the left side of the stream's name to see the schema of the imported stream.

## Editing Feed Simulation Values

The default behavior of newly created feed simulation files is to generate random values for all input stream fields, using the appropriate data type for each field. We will instead edit the feed simulation to cycle between enumerated values for both fields in the `TradesIn` Input Stream.

1. You will change the default behavior, which is to generate random values for each field in the input stream. Instead, you will model a set of specific values.

2. In the Feed Simulation Editor, in the Generation Method section, select the Custom option and click Customize Fields.

3. In the Customize Fields dialog, define each field as follows:

   symbol

     1. In the Generation Method column, click and select Enumerated from the drop-down menu.

     2. Select The following values.

     3. Click the Add Row button four times.

     4. Enter these values and weights in the new rows:

        Value | Weight
        --- | ---
        NKE | 1.0
        CMG | 2.0
        GMCR | 1.0
        FSLR | 2.5

   quantity

     1. In the Generation Method column, select Enumerated again.

     2. Again select the The following values option.

     3. Click the Add Row button six times.

     4. Enter these values and weights:

        Value | Weight
        --- | ---
        30000 | 0.1
        10000 | 0.1
        100 | 0.2
        200 | 0.2
        400 | 0.2
        1000 | 0.2

   The weights determine the relative frequency of values generated. By default, all weights are 1.0, meaning all values are equally likely to appear. A fractional weight of 0.2 means that the specified value is to appear 20% of the time.

4. Click OK to close the dialog.

5. Press Ctrl+S (Windows) or command+S (Mac) to save your feed simulation.