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>"| Arguments | Description |
|---|---|
test_enviroment | Directory that contains the scenario environment file: ./env/<test_environment>/ |
test_name | The test directory where the data/ folder with test data .csv is populated along with the test.yml file |
test_scenario | It 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.ymlPre 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