Uruchamianie scenariusza testowego¶
Wybór testów¶
Favorites |
Node |
Network |
Services |
---|---|---|---|
Dodanie testów do scenariusza¶
Wybranie trybu uruchamiania scenariusza¶
Ustawienie nazwy i globalnych lokalizacji scenariusza¶
Ustawienia zaawansowane¶
Ustawienie lokalnych opcji powiadomień¶
Task started - powiadomienia przychodzące na start działania pojedynczego testu,
Task succeeded - powiadomienia przychodzące na koniec działania pojedynczego testu,
Task failed - powiadomienia przychodzące w sytuacji, kiedy test nie wykona się poprawnie,
Threshold exceeded - powiadomienia przychodzące po przekroczeniu progu alarmowego,
Test Suite started - powiadomienia przychodzące na uruchomienie działania całego scenariusza,
Test Suite finished - powiadomienia przychodzące na zakończenie działania całego scenariusza.
Ustawienie limitu priorytetu¶
Przykład nr 1:
Limit priorytetu: 20
Priorytet bloczka nr 1: 30
Priorytet bloczka nr 2: 40
Próg alarmowy został przekroczony dla bloczków nr 1 i 2
Przykład nr 2:
Limit priorytetu: 20
Priorytet bloczka nr 1: 30
Priorytet bloczka nr 2: 40
Próg alarmowy został przekroczony dla bloczka nr 1
Przykład nr 3:
Limit priorytetu: 20
Priorytet bloczka nr 1: 10
Priorytet bloczka nr 2: 30
Próg alarmowy został przekroczony dla bloczka nr 1
Przykład nr 4:
Limit priorytetu: 20
Priorytet bloczka nr 1: 30
Priorytet bloczka nr 2: 30
Próg alarmowy został przekroczony dla bloczka nr 1 i 2
Ustawienie progów alarmowych dla całego scenariusza¶
{
"data": {
<stage_id: int>: {
<test_block_name: str>: [
{
"priority": <int>,
"test_agent": <str>,
"threshold_exceeded": <bool>,
"result": {<test specific results>}
}, ... <- repeats for every task run
]
},
...
}
}
{
"data": {
"1": {
"Ping1": [
{
"priority": 0,
"result": {
"list": [
{
"rtt": 7.17,
"sequence": 1,
"succeeded": true
}
],
"max_rtt": 7.17,
"mean_rtt": 7.17,
"min_rtt": 7.17,
"succeeded_count": 1
},
"test_agent": "europe-west1-c-2b2adae0-3551-432d-88ee-0679d4eadc73",
"threshold_exceeded": null
}
],
},
"2": {
"DNS1": [
{
"priority": 0,
"result": [
{
"domain": "google.com",
"result": [
"173.194.76.138",
"173.194.76.101",
"173.194.76.113",
"173.194.76.102",
"173.194.76.139",
"173.194.76.100"
],
"succeeded": true,
"time_ms": 3.684520721435547
}
],
"test_agent": "europe-west1-c-2b2adae0-3551-432d-88ee-0679d4eadc73",
"threshold_exceeded": null
}
],
"Traceroute1": [
{
"priority": 0,
"result": [
{
"address": "8.8.8.8",
"hops": [],
"succeeded": true
}
],
"test_agent": "europe-west1-c-2b2adae0-3551-432d-88ee-0679d4eadc73",
"threshold_exceeded": null
}
]
}
}
}
exceeded = False
for ta, ta_data in data.items():
rtts = [row['rtt'] for row in ta_data['Ping1'][-1]['result']['list']]
rtts_mean = statistics.mean(rtts)
rtts_std = statistics.stdev(rtts)
ta_exceeded = rtts_mean > 20 or rtts_std < 0.1 * rtts_mean
exceeded |= ta_exceeded
Konfiguracja połączenia z rdzeniem 5G¶
MME Address - adres modułu MME będącego częścią rdzenia 5G,
IMSI - akceptowalny przez sieć 5G numer IMSI,
OPC - akceptowalny przez sieć 5G klucz operatora,
Key - akceptowalny przez sieć 5G klucz abonenta.
Konfiguracja bloczka testowego¶
parametrów uruchomienia testu (zakładka Test Parameters),
progów alarmowych (zakładka Thresholds).
Konfiguracja parametrów testu¶
Task name - nazwa bloczka testowego (pole wymagane),
Override Locations - zaznaczenie tego pola oznacza odblokowanie możliwości podania lokalnych lokalizacji. Odznaczenie tej opcji oznacza powrót do listy globalnych lokalizacji dla tego bloczka,
Select a Location - jeśli chcemy aby dany bloczek wykonywał testy w innych lokalizacjach niż podane w panelu Settings należy zaznaczyć pole Override Locations oraz wybrać lokalizacje, na których mają być uruchamiane testy z tego bloczka. Pole nie może być puste,
Notifications Priority - priorytet powiadomień, jeśli wartość będzie mniejsza niż Priority Limit dla całego scenariusza nie będą generowane powiadomienia o przekroczeniu progu alarmowego, dokładny opis zależności z limitem priorytetu znajdziemy w zakładce Ustawienie limitu priorytetu (pole jest opcjonalne),
5G enabled - flaga oznaczająca, czy dany test ma być przeprowadzony przez skonfigurowany w komponencie Advanced Settings rdzeń sieci 5G (pole jest dostępne tylko dla włączonej dla tego scenariusza konfiguracji połączenia z rdzeniem 5G w komponencie Advanced Settings oraz tylko dla testów: Ping, DNS, Traceroute, Pathping, RFC6349, TWAMP, iperf),
pozostałe opcje dostosowane do typu testu (pola wymagane są oznaczone gwiazdką).
Konfiguracja progów alarmowych¶
standardowa konfiguracja (za pomocą klikalnego komponentu lub obiektów zgodnych z formatem JSON, dostępna tylko dla niektórych testów),
zaawansowana konfiguracja (za pomocą kodu napisanego w języku Python).
Single Threshold - umożliwia proste wybranie jednego progu alarmowego,
Thresholds Tree - umożliwia stworzenie dowolnego drzewka złożonego z wielu progów alarmowych za pomocą grup i ról połączonych łącznikiem or lub and.
type – typ informacji, dozwolone pola: threshold i operator,
- threshold_type (tylko dla typu threshold) – informacja o tym, czy próg został przekroczony powyżej, czy poniżej danej wartości, możliwe typy progów:
gte – próg zostanie przekroczony jeśli wartość parametru będzie większa lub równa niż wartość zadeklarowana,
gt - próg zostanie przekroczony jeśli wartość parametru będzie większa niż wartość zadeklarowana,
lte – próg zostanie przekroczony jeśli wartość parametru będzie mniejsza lub równa niż wartość zadeklarowana,
lt - próg zostanie przekroczony jeśli wartość parametru będzie mniejsza niż wartość zadeklarowana,
value (tylko dla typu threshold) – wartość progu alarmowego,
variable (tylko dla typu threshold) – nazwa mierzonego parametru testu, do którego ma być przypisany próg alarmowy, lista i opis dostępnych parametrów znajduje się w polu Possible threshold variables znajdującym się bezpośrednio nad wiadomością. Pogrubioną czcionką zostały wymienione nazwy parametrów, które możemy wpisać w pole variable, a zwykłą czcionką ich krótkie opisy,
operator_type (tylko dla typu operator) – łącznik między thresholdami, możliwe wartości „and” lub „or”,
thresholds (tylko dla typu operator) - lista thresholdów wg powyższego opisu.
{
"type": "threshold",
"threshold_type": "gt",
"value": 200,
"variable": "max_rtt"
}
{
"type": "operator",
"operator_type": "or",
"thresholds": [
{
"type": "operator",
"operator_type": "and",
"thresholds": [
{
"type": "threshold",
"threshold_type": "gt",
"value": 150,
"variable": "max_rtt"
},
{
"type": "threshold",
"threshold_type": "gte",
"value": 100,
"variable": "mean_rtt"
}
]
},{
"type": "threshold",
"threshold_type": "gt",
"value": 200,
"variable": "max_rtt"
}
]
}
{
"data": {
"results": [
{
"priority": <int>,
"test_agent": <str>,
"threshold_exceeded": <bool>,
"result": {<test specific results>}
}, ... <- repeats for every task run
]
}
}
{
"data": {
"results": [
{
"test_agent": "europe-west2-b-e50f0d29-b430-49dc-a57b-2576f0b4a2e6",
"priority": 0,
"result": {
"min_rtt": 2.09,
"max_rtt": 2.09,
"mean_rtt": 2.09,
"list": [
{
"rtt": 2.09,
"sequence": 1,
"succeeded": true
}
],
"succeeded_count": 1
},
"threshold_exceeded": null
}
]
}
}
if not data['results'][-1]['result'][-1]['succeeded_count'] == len(data['results'][-1]['result'][-1]['list']):
exceeded = True
else:
exceeded = False