Scenariusze testowe¶
Pobieranie listy scenariuszy testowych¶
{
"count": 2,
"next": "http://$host_url/api/user/test_suites/?limit=100&offset=100",
"previous": null,
"results": [
{
"id": 580,
"name": "1",
"test_blocks": [
{
"id": 701,
"name": "Ping1",
"task_type": 20,
"stage_no": 1,
"timeout": null,
"options": {
"params": {
"count": 1,
"address": "8.8.8.8",
"interval": 1
},
"thresholds": {}
},
"on_premise_test_agents": [],
"cloud_locations": []
}
],
"repeat_interval": 0,
"repeat_start": null,
"repeat_end": null,
"paused": false,
"status": 4,
"timestamp_created": "2021-04-21T12:21:42.371546+02:00",
"cloud_locations": [],
"on_premise_test_agents": [
82
],
"options": {
"notifications": {
"1": [1],
"2": [1],
"3": [1],
"4": [1],
"5": [1],
"6": [1]
}
}
},
{
"id": 579,
"name": "ICMP short monitoring",
"test_blocks": [
{
"id": 700,
"name": "Ping1",
"task_type": 20,
"stage_no": 1,
"timeout": null,
"options": {
"params": {
"count": 5,
"address": "netrsr.com",
"interval": 1
},
"thresholds": {
"enabled": true,
"mode": "json",
"configuration": {
"type": "threshold",
"value": 40,
"variable": "mean_rtt",
"threshold_type": "gte"
}
},
"priority": 10
},
"on_premise_test_agents": [],
"cloud_locations": []
}
],
"repeat_interval": 60,
"repeat_start": "2021-04-20T13:45:00+02:00",
"repeat_end": "2021-04-20T14:00:00+02:00",
"paused": false,
"status": 4,
"timestamp_created": "2021-04-20T13:49:38.814888+02:00",
"cloud_locations": [],
"on_premise_test_agents": [
82
],
"options": {}
}
]
}
Filtrowanie scenariuszy testowych¶
search - scenariusze zawierające w nazwie podaną wartość tekstową,
- status - status scenariusza (dozwolone liczby 1-4, możliwość podania wielu wartości):
1 – scenariusz zaplanowany,
2 – scenariusz uruchomiony,
3 – scenariusz wstrzymany,
4 – scenariusz zakończony,
on_premise_test_agents - id test agenta (możliwość podania wielu wartości),
test_blocks__task_type - id typu testu.
„,” w przypadku gdy chcemy połączyć je operatorem logicznym „i”,
„|” w przypadku gdy chcemy połączyć je operatorem logicznym „lub”.
Sortowanie scenariuszy testowych¶
/api/user/test_suites/?ordering=name dla sortowania typu A→Z,
/api/user/test_suites/?ordering=-name dla sortowania typu Z→A,
/api/user/test_suites/?ordering=timestamp_created dla sortowania od najstarszych do najnowszych,
/api/user/test_suites/?ordering=-timestamp_created dla sortowania od najnowszych do najstarszych.
Pobieranie danych scenariusza testowego¶
{
"id": 579,
"name": "Ping",
"test_blocks": [
{
"id": 700,
"name": "Ping1",
"task_type": 20,
"stage_no": 1,
"timeout": null,
"options": {
"params": {
"count": 5,
"address": "netrsr.com",
"interval": 1
},
"thresholds": {
"enabled": true,
"mode": "json",
"configuration": {
"type": "threshold",
"value": 40,
"variable": "mean_rtt",
"threshold_type": "gte"
}
},
"priority": 10
},
"on_premise_test_agents": [],
"cloud_locations": []
}
],
"repeat_interval": 60,
"repeat_start": "2021-04-20T13:45:00+02:00",
"repeat_end": "2021-04-20T14:00:00+02:00",
"paused": false,
"status": 4,
"timestamp_created": "2021-04-20T13:49:38.814888+02:00",
"cloud_locations": [],
"on_premise_test_agents": [
82
],
"options": {}
}
Dodawanie scenariusza testowego (uruchamianie scenariusza)¶
{
"name":"Ping",
"repeat_interval":60,
"repeat_start":"2021-04-22T15:15:00.000Z",
"repeat_end":"2021-04-22T16:15:00.000Z",
"cloud_locations":[],
"on_premise_test_agents":[82],
"options": {
"notifications": {
"1": [1],
"2": [1],
"3": [1],
"4": [1],
"5": [1],
"6": [1]
},
"priority_limit": 20,
"thresholds": {
"enabled": true,
"code": "exceeded = False\r\nfor ta, ta_data in data.items():\r\n\r\n rtts = [row['rtt'] for row in ta_data['ping_block']['results'][-1]['result'][-1]['list']]\r\n rtts_mean = statistics.mean(rtts)\r\n rtts_std = statistics.stdev(rtts)\r\n \r\n ta_exceeded = rtts_mean > 20 or rtts_std < 0.1 * rtts_mean\r\n exceeded != ta_exceeded \r\n"
},
"5g_config": {
"k": "00112233445566778899aabbccddeeff",
"opc": "63BFA50EE6523365FF14C1F45F88737D",
"imsi": "999700123456780",
"mme_address": "172.30.30.209"
}
},
"test_blocks": [
{
"name":"Ping1",
"stage_no":1,
"task_type":20,
"cloud_locations":[],
"on_premise_test_agents":[],
"options": {
"params": {
"address":"www.netrsr.com",
"count":1,
"interval":1
},
"thresholds": {
"enabled": true,
"mode": "json",
"configuration": {
"type": "threshold",
"value": 40,
"variable": "mean_rtt",
"threshold_type": "gte"
}
},
"priority": 10,
"5g_enabled": false,
}
}
]
}
name – nazwa testu,
repeat_interval – czas pomiędzy poszczególnymi uruchomieniami scenariusza, w przypadku pojedynczego testu = 0, w przypadku monitoringu > 0,
repeat_start – data uruchomienia scenariusza (dozwolone są jedynie pełne minuty oraz 0, 15, 30 lub 45 minuta każdej godziny), w przypadku pojedynczego testu null,
repeat_end – data zakończenia scenariusza (dozwolone są jedynie pełne minuty oraz 0, 15, 30 lub 45 minuta każdej godziny), w przypadku pojedynczego testu null,
cloud_locations – globalna lista lokalizacji chmurowych, na których mają się wykonać wszystkie testy w obrębie tego scenariusza (globalna lista zostanie wykorzystana, tylko w tych testach, w których lokalna lista dla testu jest pusta),
on_premise_test_agents - globalna lista test agentów, na których mają się wykonać wszystkie testy w obrębie tego scenariusza (globalna lista zostanie wykorzystana, tylko w tych testach, w których lokalna lista dla testu jest pusta),
- options - dodatkowe opcje scenariusza (pole opcjonalne):
- notifications - lokalne opcje powiadomień scenariusza:
„1” - powiadomienia na start testu, wartością tego pola powinna być tablica identyfikatorów punktów dostarczania powiadomień (Konfiguracje punktów dostarczania powiadomień),
„2” - powiadomienia na koniec testu, wartością tego pola powinna być tablica identyfikatorów punktów dostarczania powiadomień (Konfiguracje punktów dostarczania powiadomień),
„3” - powiadomienia, gdy test nie został wykonany poprawnie, wartością tego pola powinna być tablica identyfikatorów punktów dostarczania powiadomień (Konfiguracje punktów dostarczania powiadomień),
„4” - powiadomienia na przekroczenie progu alarmowego, wartością tego pola powinna być tablica identyfikatorów punktów dostarczania powiadomień (Konfiguracje punktów dostarczania powiadomień),
„5” - powiadomienia na start działania scenariusza, wartością tego pola powinna być tablica identyfikatorów punktów dostarczania powiadomień (Konfiguracje punktów dostarczania powiadomień),
„6” - powiadomienia na zakończenie działania scenariusza, wartością tego pola powinna być tablica identyfikatorów punktów dostarczania powiadomień (Konfiguracje punktów dostarczania powiadomień),
priority_limit - wartość progowa oznaczająca to, że bloki testowe mające ustalony priorytet poniżej tej wartości nie będą generowały powiadomień po przekroczoneniu progu alarmowego,
- thresholds - zaawansowana opcja ustalania progów alarmowych poprzez treść kodu napisanego w języku Python:
enabled - informacja o tym, czy konfiguracja ma być włączona (dozwolone wartości: true oraz false),
code - treść kodu w języku Python,
- 5g_config - konfiguracja połączenia z rdzeniem sieci 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,
k - akceptowalny przez sieć 5G klucz abonenta,
- test_blocks – lista testów do wykonania:
name – nazwa testu,
stage_no – numer kroku scenariusza,
task_type – id testu według danych z api/task_types (Opis pobierania typów testów),
cloud_locations – lista lokalizacji chmurowych, na których ma się wykonać dany test (jeśli chcemy dla tego testu wykorzystać globalną listę, należy podać pustą tablicę [] jako wartość tego pola),
on_premise_test_agents - lista test agentów, na których ma się wykonać dany test (jeśli chcemy dla tego testu wykorzystać globalną listę, należy podać pustą tablicę [] jako wartość tego pola),
- options – opcje testu:
params – parametry unikalne dla każdego typu testu, wszystkie niezbędne dla testu pola oraz opis możliwych wartości są dostępne w /api/task_types/<id> (Pobieranie parametrów testu),
- thresholds – opis progów alarmowych testu:
enabled - informacja, czy progi alarmowe dla danego bloczka mają być włączone (dozwolone wartości: true oraz false),
mode - tryb podania progów alarmowych (dozwolone wartości: „python” - dla kodu w języku Python oraz „json” - dla progów przekazanych w formacie JSON),
- configuration - konfiguracja thresholdów w trybie „json”:
type – przyjmuje wartości „threshold” lub „operator”,
threshold_type – (tylko dla opcji type=”threshold”), typ progu, przyjmuje wartości gt (greater than), gte (greater or equal), lt (less than), lte (less or equal),
variable - (tylko dla opcji type=”threshold”), wartość dotycząca progu, możliwe wartości opisane w /api/task_types/<id> (Pobieranie parametrów testu),
value - (tylko dla opcji type=”threshold”), wartość progu,
operator_type - (tylko dla opcji type=”operator”), przyjmuje wartości „and” lub „or”,
thresholds - (tylko dla opcji type=”operator”), lista thresholdów wg powyższego opisu,
code - konfiguracja thresholdów w trybie „python”,
priority - wartość liczbowa odpowiadająca ważności bloczka testowego,
5g_enabled - flaga oznaczająca, czy dany test ma być przeprowadzony przez skonfigurowaną w scenariuszu sieć 5G.
{
"id": 583,
"name": "Ping",
"test_blocks": [
{
"id": 704,
"name": "Ping1",
"task_type": 20,
"stage_no": 1,
"timeout": null,
"options": {
"params": {
"count": 1,
"address": "netrsr.com",
"interval": 1
},
"thresholds": {
"enabled": true,
"mode": "json",
"configuration": {
"type": "threshold",
"value": 40,
"variable": "mean_rtt",
"threshold_type": "gte"
}
},
"priority": 10,
"5g_enabled": false
},
"on_premise_test_agents": [],
"cloud_locations": []
}
],
"repeat_interval": 60,
"repeat_start": "2021-04-22T15:15:00.000Z",
"repeat_end": "2021-04-22T16:15:00.000Z",
"paused": false,
"status": 4,
"timestamp_created": "2021-04-22T15:19:22.124859+02:00",
"cloud_locations": [],
"on_premise_test_agents": [82],
"options": {
"notifications": {
"1": [1],
"2": [1],
"3": [1],
"4": [1],
"5": [1],
"6": [1]
},
"priority_limit": 20,
"thresholds": {
"enabled": true,
"code": "exceeded = False\r\nfor ta, ta_data in data.items():\r\n\r\n rtts = [row['rtt'] for row in ta_data['ping_block']['results'][-1]['result'][-1]['list']]\r\n rtts_mean = statistics.mean(rtts)\r\n rtts_std = statistics.stdev(rtts)\r\n \r\n ta_exceeded = rtts_mean > 20 or rtts_std < 0.1 * rtts_mean\r\n exceeded != ta_exceeded \r\n"
},
"5g_config": {
"k": "00112233445566778899aabbccddeeff",
"opc": "63BFA50EE6523365FF14C1F45F88737D",
"imsi": "999700123456780",
"mme_address": "172.30.30.209"
}
}
}
Wstrzymywanie działania scenariusza testowego¶
{
"paused": true
}
{
"paused": false
}
{
"id": 583,
"name": "Ping",
"test_blocks": [
{
"id": 704,
"name": "Ping1",
"task_type": 20,
"stage_no": 1,
"timeout": null,
"options": {
"params": {
"count": 1,
"address": "netrsr.com",
"interval": 1
},
"thresholds": {
"enabled": true,
"mode": "json",
"configuration": {
"type": "threshold",
"value": 40,
"variable": "mean_rtt",
"threshold_type": "gte"
}
},
"priority": 10,
"5g_enabled": false
},
"on_premise_test_agents": [],
"cloud_locations": []
}
],
"repeat_interval": 60,
"repeat_start": "2021-04-22T15:15:00.000Z",
"repeat_end": "2021-04-22T16:15:00.000Z",
"paused": true,
"status": 4,
"timestamp_created": "2021-04-22T15:19:22.124859+02:00",
"cloud_locations": [],
"on_premise_test_agents": [82],
"options": {
"notifications": {
"1": [1],
"2": [1],
"3": [1],
"4": [1],
"5": [1],
"6": [1]
},
"priority_limit": 20,
"thresholds": {
"enabled": true,
"code": "exceeded = False\r\nfor ta, ta_data in data.items():\r\n\r\n rtts = [row['rtt'] for row in ta_data['ping_block']['results'][-1]['result'][-1]['list']]\r\n rtts_mean = statistics.mean(rtts)\r\n rtts_std = statistics.stdev(rtts)\r\n \r\n ta_exceeded = rtts_mean > 20 or rtts_std < 0.1 * rtts_mean\r\n exceeded != ta_exceeded \r\n"
},
"5g_config": {
"k": "00112233445566778899aabbccddeeff",
"opc": "63BFA50EE6523365FF14C1F45F88737D",
"imsi": "999700123456780",
"mme_address": "172.30.30.209"
}
}
}
Zapisywanie scenariusza jako preset¶
{
"display_name": "Preset from Test Suite",
"description": "Test Suite set as a new preset."
}
Usuwanie scenariuszy testowych¶
{
"test_suites": [1, 2, 3]
}
{
"test_suites": [1]
}