diff --git a/docs/how_to_use.md b/docs/how_to_use.md
index 5c0db16ec..94b05a4a2 100644
--- a/docs/how_to_use.md
+++ b/docs/how_to_use.md
@@ -1,7 +1,7 @@
# How To Use
-Create a test file in the tests folder
+1. Create a test file in the tests folder
```python
from pytest_splunk_addon.standard_lib.addon_basic import Basic
@@ -10,6 +10,10 @@ class Test_App(Basic):
pass
```
+2. Create sample files and pytest-splunk-addon-data.conf
+
+- For detailed information on how to create samples and pytest-splunk-addon-data.conf, please refer [here](./sample_generator.md).
+
## Test Execution
There are three ways to execute the tests:
@@ -34,7 +38,6 @@ There are three ways to execute the tests:
ARG SPLUNK_APP_ID=TA_UNKNOWN
ARG SPLUNK_APP_PACKAGE=$SPLUNK_APP_PACKAGE
RUN echo Splunk VERSION=$SPLUNK_VERSION
- COPY deps/apps /opt/splunk/etc/apps/
COPY $SPLUNK_APP_PACKAGE /opt/splunk/etc/apps/$SPLUNK_APP_ID
```
@@ -438,6 +441,6 @@ def splunk_setup(splunk):
How can this be achieved :
- - Make json representation of the data models, which satisfies this [DataModelSchema](https://github.com/splunk/pytest-splunk-addon/blob/main/pytest_splunk_addon/standard_lib/cim_tests/DatamodelSchema.json).
+ - Make json representation of the data models, which satisfies this [DataModelSchema](https://github.com/splunk/pytest-splunk-addon/blob/main/pytest_splunk_addon/cim_tests/DatamodelSchema.json).
- Provide the path to the directory having all the data models by adding `--splunk_dm_path path_to_dir` to the pytest command
- - The test cases will now be generated for the data models provided to the plugin and not for the [default data models](https://github.com/splunk/pytest-splunk-addon/tree/main/pytest_splunk_addon/standard_lib/data_models).
+ - The test cases will now be generated for the data models provided to the plugin and not for the [default data models](https://github.com/splunk/pytest-splunk-addon/tree/main/pytest_splunk_addon/data_models).
diff --git a/docs/sample_generator.md b/docs/sample_generator.md
index ba3d48ce0..e892da339 100644
--- a/docs/sample_generator.md
+++ b/docs/sample_generator.md
@@ -5,6 +5,90 @@ The sample generation & ingestion takes place before executing the testcases.
For index-time test cases, there are multiple metadata required about the sample file for which `pytest-splunk-addon-data.conf` must be created and provided to the pytest command.
+## Generate sample files
+Pytest splunk addon supports 2 different formats of sample files
+
+**1. Text format**
+
+- Sample events can be generated from the live events by replacing the field values with the tokens. Token name should be enclosed with ##.
+- Token replacement setting for this samples should be added to pytest-splunk-addon-data.conf to generate events
+- For example,
+ ```
+ Example live event:
+ <111> 2020-02-12T03:27:09+10:00 10.0.0.3 RT_FLOW: RT_FLOW_SESSION_CREATE: action=allowed transport=ICMP dest=10.0.0.1 dest_ip=10.0.0.1 dest_port=5048 dest_zone=DUMMY_ZONE app=app1
+
+ Sample created from live event:
+ <111> ##timestamp_token## ##src_ip_token## RT_FLOW: RT_FLOW_SESSION_CREATE: action=##action_token## transport=##transport_type_token## dest=##dest_ip_token## dest_ip=##dest_ip_token## dest_port=##dest_port_token## dest_zone=##dest_zone_token## app=##app_token##
+ ```
+
+**2. XML format**
+
+- Generate sample xml file using the format provided [here](https://github.com/splunk/pytest-splunk-addon/blob/main/pytest_splunk_addon/sample_generation/schema.xsd)
+- Using xml format for the sample events, user can also execute requirement tests for the event for fields mentioned in the cim_fields and other_mappings
+- For example,
+
+```
+Example live event:
+<111> 2020-02-12T03:27:09+10:00 10.0.0.3 RT_FLOW: RT_FLOW_SESSION_CREATE: action=allowed transport=ICMP dest=10.0.0.1 dest_ip=10.0.0.1 dest_port=5048 dest_zone=DUMMY_ZONE app=app1
+```
+
+
+Sample xml created from live event:
+```xml
+
+
+ Test
+ Test product
+
+
+
+
+
+ 2020-02-12T03:27:09+10:00 10.0.0.3 RT_FLOW: RT_FLOW_SESSION_CREATE: action=allowed transport=ICMP dest=10.0.0.1 dest_ip=10.0.0.1 dest_port=5048 dest_zone=DUMMY_ZONE app=app1]]>
+
+
+
+ Network Traffic
+
+
+
+
+
+
+
+
+
+
+
+ bytes
+ bytes_in
+ bytes_out
+ dvc
+ rule
+ session_id
+ src
+ src_ip
+ src_port
+ src_zone
+ src_interface
+ user
+ protocol
+ vendor_product
+
+
+
+
+
+
+
+
+
+
+```
+
+
## pytest-splunk-addon-data.conf.spec
**Default Values**:
@@ -18,6 +102,7 @@ sourcetype = pytest-splunk-addon
source = pytest-splunk-addon:{{input_type}}
sourcetype_to_search = {{sourcetype}}
sample_count = 1
+requirement_test_sample = 1
timestamp_type = event
count = 0
earliest = now
@@ -78,6 +163,11 @@ host_prefix = {{host_prefix}}
- This parameter will be used to calculate the total number of events which will be generated from the sample file.
- If `input_type = modinput`, do not provide this parameter.
+**requirement_test_sample = 1**
+
+- This parameter is used to run requirement tests for the provided sample xml file
+- only supported with the xml sample file
+
**expected_event_count = **
- The no. of events this sample stanza should generate.