I punti di verifica di contenuto consentono di controllare che uno
o più elementi del contenuto XML restituito da un servizio corrispondano
al frammento XML specificato nel punto di verifica.
Informazioni su questa attività
Quando si aggiungono dei punti di verifica, i
risultati da una risposta del servizio vengono confrontati con il contenuto previsto
specificato nell'elemento di test del punto di verifica. I punti di verifica
uguaglianza o
contenuto
consentono di confrontare direttamente il contenuto XML che il servizio restituisce.
- I punti di verifica di contenuto restituiscono uno stato Riuscito quando il
contenuto XML della risposta include il frammento XML previsto.
- I punti di verifica di uguaglianza restituiscono uno stato Riuscito quando il
contenuto XML della risposta corrisponde esattamente all'intero contenuto XML previsto.
Procedura
- Aprire l'editor di test e selezionare un elemento di risposta del servizio.
- Nell'area Dettagli di elementi test,
fare clic sulla scheda Messaggio e selezionare la vista Modulo o Struttura ad albero.
- Espandere la riga di envelope, fare clic con il pulsante destro del mouse sull'elemento
che si desidera controllare, quindi fare clic su Crea punto di verifica
contenuto. Questa azione crea un punto di verifica di contenuto
che include l'elemento XML dalla risposta registrata.
Nota: È possibile anche creare un punto di verifica di contenuto
con la risposta del messaggio selezionando la risposta del messaggio nel riquadro Contenuto test e facendo clic su . Tuttavia, il risultato è sostanzialmente uguale a
quello di un punto di verifica di uguaglianza in quanto il punto di verifica contiene
l'intero contenuto XML della risposta del messaggio.
- Selezionare il punto di verifica e, nel riquadro Dettagli
di elementi test, immettere un nome per il
punto di verifica.
- Selezionare le opzioni di verifica:
- Selezionare la casella di spunta Test mediante spazi dei nomi XML
per eseguire la verifica sulla struttura qualificata del
documento XML, incluse le tag dello spazio dei nomi, invece del nome
semplice. Disabilitare questa opzione per selezionare solo il nome semplice dell'elemento e il valore finale della restituzione.
- Selezionare la casella di spunta Test nodi di testo XML
per includere il contenuto degli elementi di testo nella verifica.
- Selezionare la casella di spunta est attributi XML
per includere il contenuto degli attributi nella verifica.
- Se necessario, selezionare le viste Modulo, Struttura ad albero o Origine per modificare
il frammento XML previsto.
Per un punto di verifica
uguaglianza, i dati XML previsti contengono il documento XML dall'elemento
di test di risposta. Se necessario, è possibile modificare i dati XML previsti.
È possibile specificare espressioni regolari Java™ standard nella pagina Struttura ad albero. Selezionare
la colonna Espressione regolare sulla riga di
un attributo o valore di testo ed immettere l'espressione regolare nella colonna Valore. Ad esempio, la seguente espressione regolare verifica un indirizzo email corretto: /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/
Quando si utilizzano le espressioni regolari, il numero di nodi XML o
di frammenti XML nel punto di verifica deve corrispondere al numero di nodi
previsti. Il punto di verifica restituisce uno stato Riuscito quando vengono
soddisfatte tutte le espressioni regolari nel frammento XML.
Esempio
È possibile utilizzare un punto di verifica di contenuto per controllare che
la risposta del messaggio contenga solo uno specifico elemento con uno
specifico valore. Ad esempio, esaminare la seguente risposta di messaggio:
<s:Envelope
xmlns:a="http://www.w3.org/2005/08/addressing"
xmlns:s="http://www.w3.org/2003/05/soap-envelope">
<s:Header>
<a:Action
s:mustUnderstand="1">http://www.w3.org/2005/08/addressing/soap/fault</a:Action>
<a:RelatesTo>uuid:ed9bc447-d739-452f-989d-cd48344d494a</a:RelatesTo>
</s:Header>
<s:Body>
<s:Fault>
<s:Code>
<s:Value>s:Sender</s:Value>
<s:Subcode>
<s:Value
xmlns:a="http://schemas.xmlsoap.org/ws/2005/02/sc">a:BadContextToken</s:Value>
</s:Subcode>
</s:Code>
<s:Reason>
<s:Text
xml:lang="en-US">The message could not be processed. This is most likely because the action 'http://Samples.ICalculator/Add' is incorrect or because the message contains an invalid or expired security context token or because there is a mismatch between bindings. The security context token would be invalid if the service aborted the channel due to inactivity. To prevent the service from aborting idle sessions prematurely increase the Receive timeout on the service endpoint's binding.</s:Text>
</s:Reason>
<s:Node>http://www.w3.org/1999/xlink</s:Node>
<s:Role>http://www.w3.org/1999/xlink</s:Role>
<s:Detail
xmlns:tns0="http://schemas.com/2003/10/Serialization/"
xmlns:tns15="http://Samples.Windows"
tns0:Id="id"
tns0:Ref="idref">
<tns15:GetCallerIdentityResponse>
<tns15:GetCallerIdentityResult>str</tns15:GetCallerIdentityResult>
</tns15:GetCallerIdentityResponse>
</s:Detail>
</s:Fault>
</s:Body>
</s:Envelope>
Per controllare l'elemento
Subcode, il contenuto previsto del punto di verifica di contenuto
è il seguente frammento XML:
<s:Subcode
xmlns:a="http://www.w3.org/2005/08/addressing"
xmlns:s="http://www.w3.org/2003/05/soap-envelope">
<s:Value
xmlns:a="http://schemas.xmlsoap.org/ws/2005/02/sc">a:BadContextToken</s:Value>
</s:Subcode>
Per impostazione predefinita, il punto di verifica
di contenuto controlla se un elemento denominato
Subcode contiene
un elemento denominato
Value. È possibile utilizzare le seguenti
opzioni:
- Test mediante spazi dei nomi XML: con questa opzione,
il punto di verifica controlla se un elemento denominato "http://www.w3.org/2003/05/soap-envelope":SubCode contiene un elemento denominato "http://www.w3.org/2003/05/soap-envelope":Value.
- Test nodo di testo XML: con questa opzione,
il punto di verifica controlla inoltre se l'elemento denominato Value contiene il testo a:BadContextToken.
- Test attributi XML: con questa opzione,
il punto di verifica controlla anche che gli attributi corrispondano al frammento
XML previsto. In questo esempio, l'opzione Test attributi XML non è necessaria perché l'elemento Subcode
non contiene alcun attributo.
Per controllare che l'elemento
Detail restituisca
correttamente uno specifico valore per
GetCallerIdentityResult, il contenuto previsto del punto di verifica di contenuto è il seguente
frammento XML:
<s:Detail
xmlns:a="http://www.w3.org/2005/08/addressing"
xmlns:s="http://www.w3.org/2003/05/soap-envelope"
xmlns:tns0="http://schemas.com/2003/10/Serialization/"
xmlns:tns15="http://Samples.Windows"
tns0:Id="regular_expression"
tns0:Ref="idref">
<tns15:GetCallerIdentityResponse>
<tns15:GetCallerIdentityResult>IdentityValue</tns15:GetCallerIdentityResult>
</tns15:GetCallerIdentityResponse>
</s:Detail>
È possibile utilizzare le seguenti opzioni:
- Test nodo di testo XML: con questa opzione,
il punto di verifica controlla se l'elemento denominato GetCallerIdentityResult contiene il testo IdentityValue.
- Test attributi XML: con questa opzione,
il punto di verifica controlla che l'attributo Id indicato mediante tns0:Id abbia il valore previsto.
È possibile specificare un'espressione regolare per questo valore utilizzando la colonna Espressione regolare nella vista Struttura ad albero del punto di verifica. Ad esempio, tns0:Id="[a-zA-Z]" controlla che il valore non contenga numeri.
Operazioni successive
È possibile abilitare o disabilitare ogni punto di verifica facendo clic con il pulsante destro del mouse sul
punto di verifica nell'editor di test e facendo clic su
Abilita o
Disabilita.