Run Test

Overview

The run_test binary program allows users to execute JSON tests against a N2SVCD TesterApp interface. The default installation location for this binary is /usr/share/n2svcd/bin/n2svcd.

Running run_test --help will show the program usage.

usage: run_test <json-file> [... <json-file>]
        --host <json-rpc-host>          Default = 'localhost'.
        --port <json-rpc-port>          Default = 9009.
        --quiet                         (suppress progress noise)
        --echo                          (echo JSON RPC request content)

        --dpc <point-code>              Default = 4114.
        --no-dpc                        (don't send a DPC)
        --dssn <subsystem-number>       Default = 106.
        --no-dssn                       (don't send DSSN)
        --dgt_digits <digits>           Default = ''.
        --dgt_noa <nature-of-address>   Default = ''.
        --dgt_np <numbering-plan>       Default = ''.
        --dgt_tt <translation-type>     Default = ''.
        --ssp_ac <camel1|camel2|camel3|camel4|cs1|etsi|ussd2|a.b...>
                                        Default = 'camel3'.

        --smpp <smpp-app-name>          Default = 'default'.
        --pi <pi-app-name>              Default = 'default'.
        --osd <osd-app-name>            Default = 'default'.
        --diameter <diameter-app-name>  Default = 'default'.
        --sigtran <sigtran-app-name>    Default = 'default'.
        --rest <rest-app-name>          Default = 'default'.

        --cps <cps>
        --backlog <backlog>
        --ramp <ramp-seconds>           (requires --cps and/or --backlog)
        --total <total>                 (requires --cps and/or --backlog)

        --trace_level <0|1|2|3>         (request n2svcd to return debug traces)
        --trace <0|1|2|3>               (request n2svcd to return debug traces)
        --debug                         (--trace_level = 1)
        --dump                          (--trace_level = 2)
        --spam                          (--trace_level = 3)

        --load-details                  (track test details under load)

        --globals                       (Print $g at the end of the run)

Usage

run_test can be used to run a single JSON test definition, in which case a single test summary will be output.

./run_test ../test/regression/set2-INAP/tester_app/gb001_a_party_hangup.json

[START ../test/regression/set2-INAP/tester_app/gb001_a_party_hangup.json]
[STARTED...]
[COMPLETED 1(1) of 1 instances in 0.208 seconds.  Aborted = 0, Failed = 0, Cancelled = 0, Rate = 4.815/sec]
>>> FIRST CALL CHECKS
... [S=01/O=01] [PASS] Received operation inap.ssp_from_scp.FurnishChargingInformation as expected.
... [S=01/O=01] [PASS] String 'FCI.[0].tag_hex' is present and has expected value '001c'.
... [S=01/O=01] [PASS] String 'FCI.[0].value_hex' is present and has expected value '0100ffffffffffffffffffffffffffffffffffff'.
... [S=01/O=01] [PASS] String 'FCI.[1].tag_hex' is present and has expected value '002c'.
... [S=01/O=01] [PASS] String 'FCI.[1].value_hex' is present and has expected value '0200000000000000001000000000000000000000'.
... [S=01/O=01] [PASS] String 'FCI.[2].tag_hex' is present and has expected value '004c'.
... [S=01/O=01] [PASS] String 'FCI.[2].value_hex' is present and has expected value '0000000000000017228700000049300000005042'.
... [S=01/O=01] [PASS] String 'FCI.[3].tag_hex' is present and has expected value '999c'.
... [S=01/O=01] [PASS] String 'FCI.[3].value_hex' is present and has expected value '0000000000000000000000000000000000000000'.
... [S=02/O=02] [PASS] Received operation inap.ssp_from_scp.ApplyCharging as expected.
... [S=02/O=02] [PASS] Integer 'R1.maxConversationTime' is present and has expected value 120.
... [S=02/O=02] [PASS] Integer 'R1.treatmentForFirstWarning.warningTimeBeforeExpiry' is present and has expected value 110.
... [S=02/O=02] [PASS] Integer 'R1.treatmentForFirstWarning.informationToSend.inbandInfo.messageID.elementaryMessageID' is present and has expected value 500.
... [S=02/O=02] [PASS] Integer 'R1.treatmentForFirstWarning.informationToSend.inbandInfo.numberOfRepetitions' is present and has expected value 1.
... [S=02/O=02] [PASS] Integer 'R1.treatmentForFirstWarning.informationToSend.inbandInfo.duration' is present and has expected value 0.
... [S=02/O=02] [PASS] Integer 'R1.treatmentForFirstWarning.informationToSend.inbandInfo.interval' is present and has expected value 0.
... [S=03/O=03] [PASS] Received operation inap.ssp_from_scp.RequestReportBCSMEvent as expected.
... [S=03/O=03] [PASS] Integer 'BCSM(5,2)monitorMode' is present and has expected value 0.
... [S=03/O=03] [PASS] Integer 'BCSM(6,2)monitorMode' is present and has expected value 0.
... [S=03/O=03] [PASS] Integer 'BCSM(6,2)dPSpecificCriteria.applicationTimer' is present and has expected value 300.
... [S=03/O=03] [PASS] Integer 'BCSM(10,1)monitorMode' is present and has expected value 1.
... [S=03/O=03] [PASS] Integer 'BCSM(4)monitorMode' is present and has expected value 0.
... [S=03/O=03] [PASS] Integer 'BCSM(9,2)monitorMode' is present and has expected value 0.
... [S=03/O=03] [PASS] Integer 'BCSM(9,1)monitorMode' is present and has expected value 1.
... [S=04/O=04] [PASS] Received operation inap.ssp_from_scp.Connect as expected.
... [S=04/O=04] [PASS] String 'destinationRoutingAddress_digits' is present and has expected value '049340221'.
... [S=04/O=04] [PASS] Integer 'destinationRoutingAddress_noa' is present and has expected value 3.
... [S=05/O=05] [PASS] This is a static pass string.
... [S=06/O=06] [PASS] Correctly received DRA digits 049340221.
>>> First Instance all tests returned PASS.

run_test may also be run using multiple test definitions. This will output a summary of each individual test (see above), as well as a final summary of all the tests when complete.

./run_test ../test/regression/set2-INAP/tester_app/*
...

SUMMARY OF 16 RUNS.
  IDX 1st-PASS/FAIL : #START #FINISH #ABORT #FAILED #CANCEL : JSON Filename
    0       29    0        1       1      0       0       0   ../test/regression/set2-INAP/tester_app/gb001_a_party_hangup.json
    1       27    0        1       1      0       0       0   ../test/regression/set2-INAP/tester_app/gb002_b_party_hangup.json
    2       32    0        1       1      0       0       0   ../test/regression/set2-INAP/tester_app/gb003_timer_expires.json
    3       39    0        1       1      0       0       0   ../test/regression/set2-INAP/tester_app/gb004_post_call_interaction.json
    4       27    0        1       1      0       0       0   ../test/regression/set2-INAP/tester_app/gb100_simple_charged.json
    5        5    0        1       1      0       0       0   ../test/regression/set2-INAP/tester_app/inap001_idp_ext_rc_logic.json
    6       15    0        1       1      0       0       0   ../test/regression/set2-INAP/tester_app/inap002_ctr_pa_pacui.json
    7       11    0        1       1      0       0       0   ../test/regression/set2-INAP/tester_app/inap003_sinap_fci.json
    8       22    0        1       1      0       0       0   ../test/regression/set2-INAP/tester_app/inap004_etc_pa_pacui_double.json
    9       11    0        1       1      0       0       0   ../test/regression/set2-INAP/tester_app/inap004_etc_pa_pacui.json
   10       11    0        1       1      0       0       0   ../test/regression/set2-INAP/tester_app/inap005_etc_pa_pacui_error.json
   11       10    0        1       1      0       0       0   ../test/regression/set2-INAP/tester_app/inap006_etc_pa_pacui_abort.json
   12       13    0        1       1      0       0       0   ../test/regression/set2-INAP/tester_app/inap007_connect_bcsm_cir.json
   13        3    0        1       1      0       0       0   ../test/regression/set2-INAP/tester_app/inap100_simple_connect.json
   14        3    0        1       1      0       0       0   ../test/regression/set2-INAP/tester_app/inap101_vars_connect.json
   15       11    0        1       1      0       0       0   ../test/regression/set2-INAP/tester_app/inap200_intester_camel.json

Common Options

The following common options may be specified when executing run_test.

Option Type Description
--host String Allows for the specification of a non standard JSON REST RPC interface host.
(Default: localhost)
--port String Allows for the specification of a non standard JSON REST RPC interface port.
(Default: 9009)
--quiet Switch Specifying --quiet will suppress the more verbose output logging of each assertion statement from the generated output.
--echo Switch Outputs the JSON result message from the JSON REST RPC after running each test.
--trace_level Number Sets the global trace level that N2SVCD will pass to all executing applications during the test.
--trace Number Increments the global trace level to match that of the provided--trace level. This is effectively an alias for --trace_level.
--debug Switch Sets the global trace level to DEBUG. This is the same as setting trace_level = 1.
--dump Switch Sets the global trace level to DUMP. This is the same as setting trace_level = 2.
--spam Switch Sets the global trace level to SPAM. This is the same as setting trace_level = 3.
--globals Switch Outputs any stored global variables that were generated during the test run.
--space Switch Inserts whitespace between test results when executing multiple tests.

Load Testing Options

The following load testing options may be specified when executing run_test. Using these options will automatically execute run_test in performance testing mode, which will disable some standard output.

Option Type Description
--cps Number Executes a concurrent number of calls equal to the --cps value. If no --total is provided the total number of calls will be ten times the value of --cps.
--backlog Number Instructs run_test to process tests as fast as possible, having a minimum of the --backlog specified value in progress at one time. If no --total flag is provided, the total number of calls will be ten times the value of --backlog.
--ramp Number Increments the concurrent number of calls by the specified value of --ramp over the duration of the performance test. This is intended to be used with --total and a combination of either --cps or --backlog, otherwise only one test will be performed.
--total Number Determines the number of total test iterations that run_test will perform. If specified, at least one of --cps or --backlog must also be specified.
--load-details Switch Allows the matching of inner JSON test operation content under load test conditions.

SCCP Protocol Options

The following SCCP protocol options may be specified when executing run_test.

Option Type Description
--dpc Number Specifies the Destination Point Code when sending outbound SCCP messages.
(Default: 4114)
--no-dpc Switch Disables the inclusion of the Destination Point Code when sending outbound SCCP messages. If specified, the value of --dpc will be ignored.
--dssn Number Specifies the Destination Sub-System Number when sending outbound SCCP messages.
(Default: 106)
--no-dssn Switch Disables the inclusion of the Destination Sub-System Number when sending outbound SCCP messages. If specified, the value of --dssn will be ignored.
--dgt_digits String Specifies the Destination Global Title Digits when sending outbound SCCP messages. If not specified, this message parameter will not be sent.
--dgt_noa Number Specifies the Destination Global Title Nature of Address Indicator when sending outbound SCCP messages. If not specified, this message parameter will not be sent.
--dgt_np Number Specifies the Destination Global Title Numbering Plan when sending outbound SCCP messages. If not specified, this message parameter will not be sent.
--dgt_tt Number Specifies the Destination Global Title Translation Type when sending outbound SCCP messages. If not specified, this message parameter will not be sent.
--ssp_ac String Specifies the Application Context to use when sending INAP encoded messages.
(Default: camel3)

Application Options

The following application options may be specified when executing run_test.

Option Type Description
--smpp String Specifies the SMPP application to utilize when executing a test that has SMPP operations. The value must be either a real or virtual named application defined in the N2SVCD configuration file.
(Default: default)
--pi String Specifies the PI application to utilize when executing a test that has PI operations. The value must be either a real or virtual named application defined in the N2SVCD configuration file.
(Default: default)
--osd String Specifies the OSD application to utilize when executing a test that has OSD operations. The value must be either a real or virtual named application defined in the N2SVCD configuration file.
(Default: default)
--diameter String Specifies the Diameter application to utilize when executing a test that has Diameter operations. The value must be either a real or virtual named application defined in the N2SVCD configuration file.
(Default: default)
--sigtran String Specifies the SIGTRAN application to utilize when executing a test that has SIGTRAN operations. The value must be either a real or virtual named application defined in the N2SVCD configuration file.
(Default: default)
--rest String Specifies the REST application to utilize when executing a test that has REST operations. The value must be either a real or virtual named application defined in the N2SVCD configuration file.
(Default: default)