Verifica del contenuto della risposta (facoltativo)

È possibile creare un'espressione regolare (REGEX) per verificare il contenuto della stringa di risposta che un monitoraggio in Monitoraggio disponibilità può restituire quando crea un monitoraggio.

Durante il passo Crea un monitoraggio è disponibile una casella di controllo facoltativa: Verifica contenuto risposta per verificare la risposta che un monitoraggio può restituire creando un REGEX.

Informazioni su REGEX

  • REGEX deve corrispondere al contenuto della risposta (corpo risposta e intestazioni risposta) dall'URL fornito nel monitoraggio.
  • Se la ricerca REGEX contiene virgolette singole (') o doppie ("), è necessario anteporre al preventivo quanto segue:
    .*,

    Il prefisso precedente corrisponde a qualsiasi carattere di escape preceduto dalle virgolette che gestisce determinati casi in cui il formato JSON della risposta non è corretto e può aggiungere una barra rovesciata alle virgolette nel corpo della risposta.

  • A causa della formattazione dei dati, potrebbero essere presenti spazi nella risposta che si sta tentando di trovare una corrispondenza. In questo caso, provare ad aggiungere \s* nel REGEX. Questo gestirà zero o più spazi nella risposta.
  • È possibile utilizzare https://regex101.com/ per convalidare il REGEX nella risposta (stringa di test) prima di utilizzarlo nel monitoraggio. Assicurarsi di selezionare ECMAScript (JavaScript) nel sapore.

Campioni REGEX

  • Esempio REGEX 1
    /"noOfSuccess":\s*(?!0\b)\d+/
    /.*noOfSuccess.*:\s*(?!0\b)\d+/
    Risposta:
    {
    "mepType": "MEP00",
    "noOfAborted": 0,
    "noOfErrors": 0,
    "noOfMsgsProcessed": 46,
    "noOfMsgsReceived": 46,
    "noOfSuccess": 1,
    "successRate": 100,
    "version": "01.00.0000"
    }
  • Esempio REGEX 2:
    /"server":\s*("envoy")/
    Risposta:
    {
       "cache-control":"no-store, no-cache, must-revalidate, proxy-revalidate",
       "content-type":"text/html; charset=utf-8",
       "date":"Fri, 16 Jun 2023 07:08:49 GMT",
       "expires":"Sat, 01 Jan 2000 00:00:00 GMT",
       "pragma": "no-cache",
       "server": "envoy",
       "vary":"Accept-Encoding",
       "via":"1.1 net-idcs-config", 
       "x-content-type-options":"nosniff", 
       "x-download-options":"noopen"}

REGEX per tipo di monitoraggio REST

Quando si utilizza il programma di convalida REGEX per il tipo di monitoraggio REST, l'utente può convalidare la stringa/REGEX con la risposta in linea. Il risultato verrà restituito come corrispondente o non corrispondente.

Di seguito è riportato un elenco di operatori comuni supportati dal monitoraggio della disponibilità APM.

Operatore descrizione; Esempio
Operatore Match-any-character (.) Il carattere punto rappresenta questo operatore. a.b corrisponde a qualsiasi stringa di tre caratteri che inizia con a e termina con b.
Operatore corrispondenza zero o più (*) Questo operatore ripete l'espressione regolare precedente più piccola possibile quante volte è necessario (incluso zero) per corrispondere al pattern. a* corrisponde a qualsiasi stringa composta da zero o più stringhe a. In un altro esempio, fo* ha un o ripetuto, non un fo ripetuto. Pertanto, fo* corrisponde a f, fo, foo e così via.
Operatore di corrispondenza uno o più (+) Questo operatore è simile all'operatore match-zero-or-more, ad eccezione del fatto che ripete almeno una volta l'espressione regolare precedente. ca+r corrisponde a car e caaaar, ma non a cr.
Operatore di corrispondenza zero o uno (?) Questo operatore è simile all'operatore match-zero-or-more, tranne per il fatto che ripete l'espressione regolare precedente una volta o non la ripete affatto. ca?r corrisponde sia a car che a cr, ma non a nessun altro.
Nega (^) Nega un'espressione. ^a corrisponde a un carattere qualsiasi ad eccezione di a
Operatori di raggruppamento ((...)) REGEX tratta le espressioni all'interno della parentesi così come la matematica e i linguaggi di programmazione trattano un'espressione parentesi come un'unità. Le espressioni vengono elaborate prima dell'espressione al di fuori delle parentesi. f(a|b)a corrisponde a faa e fba, ovvero l'operazione a|b viene elaborata prima del resto.
Operatore di alternativa (|) Le alternative corrispondono a una delle espressioni regolari scelte: se si inseriscono uno o più caratteri che rappresentano l'operatore di alternanza tra due espressioni regolari a e b, il risultato corrisponde all'unione delle stringhe che a e b corrispondono.

foo|bar|quux corrisponde a uno qualsiasi dei valori foo, bar o quux.

Come altro esempio, ( e ) sono gli operatori open e close-group, quindi fo(o|b)ar corrisponde a fooar o fobar. D'altra parte, foo|bar corrisponde a foo o bar.

Operatori lista ([ ... ] e [^ ... ])

Un elenco corrispondente corrisponde a un singolo carattere rappresentato da uno degli elementi dell'elenco. Un elemento è un carattere, un'espressione di classe di caratteri o un'espressione di intervallo.

Gli elenchi non corrispondenti sono simili agli elenchi corrispondenti, tranne che corrispondono a un singolo carattere non rappresentato da uno degli elementi dell'elenco.

[ab] corrisponde a a o b. [ad]* corrisponde alla stringa vuota e a qualsiasi stringa composta solo da a e d in qualsiasi ordine.

Come esempio non corrispondente, [^ab] corrisponde a qualsiasi carattere ad eccezione di a o b.

Operatore intervallo (-) Rappresenta i caratteri che rientrano tra due elementi nella sequenza di ordinamento corrente. [a-f] rappresenta tutti i caratteri compresi tra a e f.
Cifra (\d) Corrisponde a qualsiasi carattere di cifra (0-9). Sinonimo di [0-9].
Cifra non specificata (\D) Corrisponde a qualsiasi carattere che non sia una cifra (0-9). Come [^0-9].
Fuga (\) Il carattere successivo nell'espressione indica il carattere stesso, ma non un operatore. \. indica il periodo, non l'operatore di corrispondenza con qualsiasi carattere.
Ad esempio, se si desidera consentire l'accesso solo agli utenti autenticati per qualsiasi pagina dell'applicazione che inizia con my e si trova nel percorso /mybank, è possibile utilizzare l'espressione regolare:
\/mybank/my.*

Il punto (.) e la stella (*) insieme rappresentano qualsiasi sequenza di zero o più caratteri consecutivi dopo il prefisso my.

In questo esempio, gli URL seguenti: /mybank/myCredits e /mybank/myDebits corrispondono a REGEX riportato sopra: \/mybank/my.*, ma l'URL: /mybank/about non corrisponde.