Procedures

Setup

Set up the test run directory and create test execution scripts according to the configuration.

Pre-processing

Fetch test data and process it

Starting

Start the test tool, with the option to run tcpdump or a log analyzer if needed

Monitoring

Check the process status of the tools, dumper, or analyzer

Stoppping

Stop the running processes

Post-processing

Post-process the statistical data to generate graphs and statistical reports


Setup


# login to sg-runner container as sg_dev or sg_exec user
cd /opt/sea/sg-runner

#setup particlar scenario           
./sbin/setup.sh -e "<test_enviroment>" -t "<test_name>" -s "<test_scenario>"  

#setup all scenarios
./sbin/setup.sh -e "<test_enviroment>" -t "<test_name>" 

#setup scenarios mathing them by regex
./sbin/setup.sh -e "<test_enviroment>" -t "<test_name>" -s "<test_scenario_regex>"
ArgumentsDescription
test_enviromentDirectory that contains the scenario environment file: ./env/<test_environment>/.yml
test_nameThe test directory where the data/ folder with test data .csv is populated along with the test.yml file
test_scenarioIt is the ScenName defined in the test.yml configuration, where each scenario points to ./scens/<scen_store>/scen.yml

Example:


[root@SEA_01 sg-runner]# ./sbin/setup.sh -e "Lab01" -t "SEA-OCS-01" -s "sg_data_normal"
INFO: Test -setup started /opt/sea/sg-runner
-----------------------------------------------------------------
INFO: setup run direcotry
INFO: new test run direcotry -- /opt/sea/sg-runner/shared/runs/te-SEA-OCS-01-20260210T222329-bb501ca4 -- and links are created
INFO: Test=SEA-OCS-01
INFO: Name=SEA-OCS-01 --
INFO: Desc=data,voice,sms and prov xxx
INFO: Env=Lab01 TestEnv=Lab01
INFO: Scens=sg_data_normal sg_ims_voice_normal sg_ims_sms_normal mtx_prov_high mtx_prov_test01 sg_ims_sms_test_01 sg_ims_sms_test_02
INFO: Selected Scens=sg_data_normal
INFO: Scen=sg_data_normal ------------------------------------------------
INFO: setup current directory is /opt/sea/sg-runner/run/SEA-OCS-01/sg_data_normal/
INFO: test /opt/sea/sg-runner/store/tests/SEA-OCS-01/ configation and test data applied
INFO: Seagull setup - Env=Lab01 Name=SEA-OCS-01 Engine=SG Scen=sg_data_normal scenEnv=sea_pgw Store=sg_data
INFO: Seagull setup Att=logLevel: 'WUTE' backgroundExec: 'true' callRate: '50' waitMs: '166667' numberCalls: '770000' maxSimultaneousCalls: '50000' callTimeoutMs: '1000' pcapEnabled: "false" externalDataFile: 'msisdn.csv' sourceDataFile: 'data/profile_C.csv' sourceDataConf: 'data/profile_C.yml' noOfccrU: '2' ratingGroup: '2'
INFO: enviroment /opt/sea/sg-runner/store/env/Lab01/sea_pgw.yml applied
INFO: scenarios test attributes applied
INFO: current test run attributes applied
INFO: seagull ----------------------------------------------------
INFO: seagull conf temaplate /opt/sea/sg-runner/store/scens/sg_data/sg_conf_c2ip_ADJ.j2 applied
INFO: seagull scenario temaplate /opt/sea/sg-runner/store/scens/sg_data/sea_scen_gysy2c_slr_ccrIU_snr_ccrUT_str.j2 applied
INFO: seagull dictionary /opt/sea/sg-runner/store/scens/sg_data/sg_dico_cxgysy.xml applied
INFO: Report Conf /opt/sea/sg-runner/sbin/web/sg/report_data.yml applied
INFO: Report Html Report /opt/sea/sg-runner/sbin/web/sg/report.html.j2 applied
INFO: Setup Attr engine=SG test=SEA-OCS-01 scen=sg_data_normal sg_dico=sg_dico_cxgysy.xml sg_conf=sg_data_normal_conf.xml sg_scen=sg_data_normal_scen.xml
INFO: setup -------------------------------------------------
INFO: Seagull templates sg_conf=sg_data_normal_conf.xml sg_dico=sg_dico_cxgysy.xml sg_scen=sg_data_normal_scen.xml sg_log=sg_data_normal.log
INFO: scenarios setup is merged for Lab01 / sea_pgw.yml testAttr.yml runAttr.yml scen.yml
INFO: report -------------------------------------------------
INFO: report setup is merged and /opt/sea/sg-runner/sbin/web/sg/report_data.yml and reportAttr.yml to report.yml
INFO: Templating ------------------------------------------------
INFO: SEAGULL
INFO: seagull configuration sg_conf_c2ip_ADJ.j2 to sg_data_normal_conf.xml is setup
INFO: seagull scenario sea_scen_gysy2c_slr_ccrIU_snr_ccrUT_str.j2 to sg_data_normal_scen.xml is setup
INFO: REPORT
INFO: Report Template /opt/sea/sg-runner/sbin/web/sg/report.html.j2 to report.html
INFO: EXECUTION
INFO: Execution pre-proc.sh,start,sh , status.sh, post-proc.sh are created
INFO: ------------------------------------------------------------
INFO: Setup Info --------------------------------------------------
INFO: Test Run directory /opt/sea/sg-runner/shared/runs/te-SEA-OCS-01-20260210T222329-bb501ca4
INFO: Test Run Scenario directory /opt/sea/sg-runner/run/SEA-OCS-01/sg_data_normal/
...
INFO: Test Run data directory /opt/sea/sg-runner/run/SEA-OCS-01/data/
INFO:  --data--  total 0
INFO:  --data--  lrwxrwxrwx. 1 root root 49 Feb 10 22:23 profile_C.csv -> /opt/sea/sg-runner/store/tests/data/profile_C.csv
INFO: Test Runs /opt/sea/sg-runner/shared/runs with 4 runs !!!
INFO: Test Runs /opt/sea/sg-runner/shared/runs where disk usage is 2028 Kb
INFO: Setup cleanup
INFO: Setup cleanup /opt/sea/sg-runner/run tn=SEA-OCS-01 sn=sg_data_normal
INFO: Seagull setup - done
INFO: Setup done -- - - sg_data_normal --
INFO: Setup result real path is /opt/sea/sg-runner/shared/runs/te-SEA-OCS-01-20260210T222329-bb501ca4
INFO: Result Text object is SETUP_RESULT=FFFF{ "env": "Lab01", "test": "SEA-OCS-01", "scens": "sg_data_normal", "run_dir": "/opt/sea/sg-runner/shared/runs/te-SEA-OCS-01-20260210T222329-bb501ca4" }FFFF
SETUP_RESULT=FFFF{ "env": "Lab01", "test": "SEA-OCS-01", "scens": "sg_data_normal", "run_dir": "/opt/sea/sg-runner/shared/runs/te-SEA-OCS-01-20260210T222329-bb501ca4" }FFFF
INFO: Setup -- DONE --

Test Execution directory

There are several ways to locate the test execution directory:

  • Run Link: A link to the most recent test execution setup.

    • /opt/sea/sg-runner/run → /opt/sea/sg-runner/shared/runs/te---

    • /opt/sea/sg-runner/shared/last also points to the same directory

  • Shared Runs: The main directory is /opt/sea/sg-runner/shared/runs/, where directories in the format te--- are created

The test execution directory contains the following files:

#at te-<test name>-<datestamp>-<uuid> direcory

└── <test_name>
   ├── data
   │         └── profile_C.csv -> /opt/sea/sg-runner/store/tests/data/profile_C.csv # refering to test data
   ├── sg_data_normal                    # scenario directory
   │         ├── post-proc.sh                  # generates .png files
   │         ├── pre-proc.sh                   # mixing up test data and setting msisdn.csv file 
   │         ├── report.html
   │         ├── sg_data_normal_conf.xml
   │         ├── sg_data_normal_scen.xml
   │         ├── sg_dico_cxgysy.xml
   │         ├── start.sh                     # provide logs and output; starting up can take a few minutes
   │         ├── status.sh                    # expectation are SEAGULL-OKAY and PCAP-OKAY(if pcap is true ) status
   │         ├── stop.sh                      # killing seagull and tcpdump process
   │         └── web
   │             ├──...  # report html/css files
   ├── sg_voice_ims_normal 
   │	...
   ├── sg_sms_ims_normal 
   │ 	...
   └── test.yml

Pre processing

The pre-processing step collects and organizes the test data. For Diameter or SIP test data, it maintains the data order to prevent clustering of subscriber profiles.


[root@SEA_01 sg_data_normal]# pwd
/opt/sea/sg-runner/run/SEA-OCS-01/sg_data_normal

[root@SEA_01 sg_data_normal]# ./pre-proc.sh 
INFO: Test Pre-Proc --------------------------------------------------------
INFO: Test scenario --SEA-OCS-01 --sg_data_normal-- -- 2026-02-10T22:29:19 --
INFO: Scenario Engine=SG
INFO: Pre-proc mixer start ----------------------------------------------------
INFO: Scenario running directory /opt/sea/sg-runner/run/SEA-OCS-01/sg_data_normal
INFO: Scenario src=data/profile_C.csv ext=msisdn.csv headerLines=2
INFO: Mixer source=/opt/sea/sg-runner/run/SEA-OCS-01/sg_data_normal/../data/profile_C.csv ext=/opt/sea/sg-runner/run/SEA-OCS-01/sg_data_normal/msisdn.csv
Input is loaded Size=998
total 164
drwxr-xr-x. 6 root root    72 Feb 10 22:23 web
-rw-r--r--. 1 root root 48169 Feb 10 22:23 sg_dico_cxgysy.xml
-rw-r--r--. 1 root root  3928 Feb 10 22:23 sg_data_normal_conf.xml
-rw-r--r--. 1 root root 40142 Feb 10 22:23 sg_data_normal_scen.xml
-rw-r--r--. 1 root root  5091 Feb 10 22:23 report.html
-rwxr-xr-x. 1 root root   588 Feb 10 22:23 pre-proc.sh
-rwxr-xr-x. 1 root root  2103 Feb 10 22:23 start.sh
-rwxr-xr-x. 1 root root   542 Feb 10 22:23 status.sh
-rwxr-xr-x. 1 root root   532 Feb 10 22:23 stop.sh
-rwxr-xr-x. 1 root root   803 Feb 10 22:23 post-proc.sh
drwxr-xr-x. 2 root root  4096 Feb 10 22:23 bak
-rw-r--r--. 1 root root 33967 Feb 10 22:29 msisdn.csv
INFO: Mixer no= --done--
INFO: Pre-proc mixer start --done --------------------------------------------
INFO: Test Pre-Proc --DONE-- -------------------------------------------------

Start

Start the test tool, with optional PCAP capture and Seagull log analysis.


[root@SEA_01 sg_data_normal]# ./start.sh 
INFO: Test Start ---------------------------------------------------------
INFO: Scenario running directory --/opt/sea/sg-runner/run/SEA-OCS-01/sg_data_normal --
INFO: Test scenario started --SEA-OCS-01--sg_data_normal--
INFO: Scenario Engine=SG
INFO: Env=Lab01 Test=SEA-OCS-01 Scenario=sg_data_normal
INFO: dico=sg_dico_cxgysy.xml conf=sg_data_normal_conf.xml scen=sg_data_normal_scen.xml
INFO: log=sg_data_normal.log loglevel=WUTE backgroundExec=true
INFO: Pcap pcapEnabled=false inf=any file=sg.%Y%m%dT%H%M%S.pcap rotationPeriod=1800 filter=port 3868
WARN: Pcap pcapEnabled=false is disable
INFO: Started seagull in background
INFO: Seagull -BG start ----------------------------------------------------
INFO: Scenario running direcotry /opt/sea/sg-runner/run/SEA-OCS-01/sg_data_normal
INFO: Scenario dico=sg_dico_cxgysy.xml conf=sg_data_normal_conf.xml scen=sg_data_normal_scen.xml log=sg_data_normal.log llevel=WUTE
INFO: export PATH=$PATH:/opt/sea/sg-runner/bin
INFO: export LD_LIBRARY_PATH=/usr/local/bin:/opt/sea/sg-runner/lib
INFO: seagull -conf /opt/sea/sg-runner/run/SEA-OCS-01/sg_data_normal/sg_data_normal_conf.xml -dico /opt/sea/sg-runner/run/SEA-OCS-01/sg_data_normal/sg_dico_cxgysy.xml -scen /opt/sea/sg-runner/run/SEA-OCS-01/sg_data_normal/sg_data_normal_scen.xml -log /opt/sea/sg-runner/run/SEA-OCS-01/sg_data_normal/sg_data_normal.log -llevel WUTE -bg
Background mode - PID [978565]
INFO: --seagull status -- root      978574  978305  0 22:30 pts/0    00:00:00 grep 978565
INFO: Seagull -BG started Pid=978565 pidOf=978565 ExitCode=0 --SEAGULL-START--
cat: ./tcpdump.pid: No such file or directory
INFO: Test Start -- seagull-pid-file=978565 -- pcap-pid-file=
INFO: Seagull start --done --------------------------------------------------
INFO: Test scenario started --SEA-OCS-01 --sg_data_normal-- --2026-02-10T22:30:42--
cat: ./tcpdump.pid: No such file or directory
INFO: Test Start -- seagull-pid-file=978565 -- pcap-pid-file=
INFO: Test Start -- Done -- --------------------------------------------

Status

Provides the status of the running test tool and any optional processes.


[root@SEA_01 sg_data_normal]# ./status.sh 
INFO: Test Status --------------------------------------------------------
INFO: Test scenario --SEA-OCS-01 --sg_data_normal-- -- 2026-02-10T22:32:53 --
INFO: Scenario Engine=SG
INFO: Pcap status --------------------------------------------------
INFO: Scenario running direcotry /opt/sea/sg-runner/run/SEA-OCS-01/sg_data_normal
WARN: Pcap pid file does not exists
INFO: Pcap status --done ----------------------------------------------
INFO: Seagull status --------------------------------------------------
INFO: Scenario running direcotry /opt/sea/sg-runner/run/SEA-OCS-01/sg_data_normal
INFO: --any seagull pid=978565 status -- root      978565       1 99 22:30 pts/0    00:02:10 seagull -conf /opt/sea/sg-runner/run/SEA-OCS-01/sg_data_normal/sg_data_normal_conf.xml -dico /opt/sea/sg-runner/run/SEA-OCS-01/sg_data_normal/sg_dico_cxgysy.xml -scen /opt/sea/sg-runner/run/SEA-OCS-01/sg_data_normal/sg_data_normal_scen.xml -log /opt/sea/sg-runner/run/SEA-OCS-01/sg_data_normal/sg_data_normal.log -llevel WUTE -bg
DEBUG: Seagull seagullPsAcc=1 , process for pid=978565
INFO: Seagull pid=978565, processes is running --SEAGULL-OK--
INFO: Seagull status --done ------------------------------------------------
cat: ./tcpdump.pid: No such file or directory
INFO: Test Status seagull-pid-file=978565 -- pcap pid-file=
INFO: Test Status --DONE-- -------------------------------------------------
[root@SEA_01 sg_data_normal]# 

Stop

Stops the test tool (Seagull or JMeter) along with all optionally started processes.


[root@SEA_01 sg_data_normal]# ./stop.sh 
INFO: Test Stop --------------------------------------------------------
INFO: Test scenario --SEA-OCS-01 --sg_data_normal-- -- 2026-02-10T22:33:53 --
INFO: Scenario Engine=SG
INFO: Pcap stop -------------------------------------------------------
INFO: Scenario running direcotry /opt/sea/sg-runner/run/SEA-OCS-01/sg_data_normal
INFO: --any tcpdump status -- root      980584  980553  0 22:33 pts/0    00:00:00 xargs -I{} echo INFO: --any tcpdump status -- {}
WARN: Pcap pid file does not exists
INFO: Pcap stop --done ------------------------------------------------
INFO: Seagull stop ----------------------------------------------------
INFO: Scenario running direcotry /opt/sea/sg-runner/run/SEA-OCS-01/sg_data_normal
INFO: Seagull pid=978565 is killed --SEAGULL-STOP--
INFO: Seagull stop --done --------------------------------------------------
cat: ./tcpdump.pid: No such file or directory
INFO: Test Stop seagull-pid-file=978565 -- pcap pid-file=
INFO: Test Stop --DONE-- -------------------------------------------------
[root@SEA_01 sg_data_normal]# 

Post Processing

Post-processing generates statistics and graphs, and compiles them into HTML reports.


[root@SEA_01 sg_data_normal]# ./post-proc.sh 
INFO: Test Pre-Proc --------------------------------------------------------
INFO: Test scenario --SEA-OCS-01 --sg_data_normal-- -- 2026-02-10T22:34:42 --
INFO: Scenario Engine=SG
INFO: Report index reportIndexTmpl=/opt/sea/sg-runner/run/SEA-OCS-01/web/index.html.j2 reportIndexDir=/opt/sea/sg-runner/run/SEA-OCS-01
INFO: Report reportTmpl=report.html.j2
INFO: Seagull Post-processing statistics --------------------------------------
INFO: Scenario running direcotry /opt/sea/sg-runner/run/SEA-OCS-01/sg_data_normal
INFO: Statistics file stat-global.csv for RTT is processed
INFO: Statistics file stat-global.csv for TSP is processed
INFO: Statistcs file stat-global.csv for CALL is processed
INFO: Statistics graph is generated
INFO: Statistics html report is made -------------------------------------------
INFO: Seagull Post-proc --done ------------------------------------------------
INFO: Reporting start ----------------------------------------------------
INFO: Report template reportTemplate=./report.html.j2
INFO: Report Template /opt/sea/sg-runner/ to report.html
INFO: Reporting --done ------------------------------------------------
INFO: Reporting Index start -------------------------------------------
INFO: Report Index template reportIndexDir=/opt/sea/sg-runner/run/SEA-OCS-01 reportTemplate=/opt/sea/sg-runner/run/SEA-OCS-01/web/index.html.j2
INFO: Report web directory is setup
INFO: Report Template /opt/sea/sg-runner/ to report.html is generated
INFO: Reporting Index --done ------------------------------------------
INFO: Test Pre-Proc --done-- -------------------------------------------------

Result

More details can be found at Test Result

See also