Description

The SegmentDataQueueReceiver morphs Domain data into a set-based XML output format and puts it into Queue. This allows multiple Scenarios to produce their own sets of Domain data while maintaining set-based parent/child relationships across multiple related Domains. 


Note: This Receiver is only available for the nested delimited output file format. 


In This Article


When Should this Receiver be Used?

  • Any time a user wants to generate Domain data segments to queue to merge in real-time and speed up test data generation for large amounts of nested delimited output.

What Receivers Does it Work With?

SegmentDataCreatorReceiver vs. SegmentDataQueueReceiver

  • SegmentDataCreatorReceiver - Used with a Merge Receiver (e.g., DelimitedFileSegmentMergeReceiver) to generate nested Delimited file output. In this setup, the data segment files are generated first to disk and then merged after all segments have been generated.

  • SegmentDataQueueReceiver - Used with DelimitedFileSegmentQueueMergeReceiver to generate data segments to Queue and merge them in real-time to create the nested Delimited file output. This speeds up test data generation for nested delimited output when generating huge volumes of data.
     

Receiver Parameters

The SegmentDataQueueReceiver requires that the following parameters are defined. Items with an asterisk* are required.

  • outputPath* - Defines the location to store the generated segment file. The default value is "#{resource.output.directory}".
  • subDirectory* - Defines the name of a subdirectory defined as the value of the output path. The default value is "segments".
  • fileName* - Defines the name of the generated segment file. The default value is "<DomainName>Segment.xml" (e.g., UserSegment.xml).
  • filesPerDirectory* - Defines the number of files to be generated per output subdirectory. The default value is "100", meaning a new subdirectory will be created for every 100 files. 
  • recordsPerFile* - Defines the number of segments to be generated per file. The default value is "1000", meaning 1000 records (i.e., segments) will be generated per file.



Receiver Attribute Property Keys

The Receiver defines three property keys that can be modified on any of its associated Domain Attributes:

  • aliasName - Can be used to override the Attribute Name on the Receiver output.
  • parentId - Defines a reference to a parent segment. This is set automatically at the Scenario level for the Domain. 
  • include - Determines if the given Attribute will be included in the segment output.



How Does the SegmentDataQueueReceiver Work?


Step 1 - Assign the SegmentDataQueueReceiver to each Domain

The SegmentDataQueueReceiver needs to be assigned to each Domain that requires a data segment to be generated. 


For example, if a tester has four Domains (e.g., Organization, Department, User, Address), they need to assign the SegmentDataQueueReceiver to each. 


Organization Domain



Department Domain


User Domain


Address Domain


Step 2 - Assign the DelimitedFileSegmentQueueMergeReceiver to a Merge Domain

The DelimitedFileSegmentQueueMergeReceiver will need to be assigned to a Merge Domain. Note that the Merge Domain is created automatically for some Domain Import methods. Otherwise, it will have to be created manually within a Project Version of a selected Project. 



Special Notes for Imported Domains

For some import methods, Receivers are automatically assigned to the Domains. The following steps may need to be performed: 

  1. Remove the SegmentDataCreatorReceiver and add the SegmentDataQueueReceiver for each Domain that will generate a data segment.

  2. A Merge Domain is created automatically. Remove the current Merge Receiver for the Merge Domain and add the DelimitedFileSegmentQueueMergeReceiver.  


Full Use Case Example

A complete use case example has been included within the DelitedFileSegmentQueueMergeReceiver article. Click here to view the article.