2011-08-23 7 views
27

Esiste un modo per configurare l'autenticazione di base HTTP per tutte le richieste in un progetto SoapUI?Impostazione dell'autenticazione di base HTTP per tutte le richieste

So che può essere fatto per tutte le richieste all'interno di un TestSuite ma non riesco a capire come farlo per tutte le richieste in tutti i TestSuites.

+0

C'è qualche ragione particolare per cui non si configura l'autenticazione di base HTTP tramite la configurazione del server Web? – Oswald

+0

L'autenticazione è stata abilitata sul server e non posso autenticarmi usando SoapUI come client. Tuttavia devo impostare l'autenticazione per ogni richiesta/TestSuite singolarmente ogni volta. Mi piacerebbe essere in grado di configurarlo una volta per tutte le richieste nel progetto – DisscCoder

risposta

7

C'è un paio di modi per farlo:

  1. impostare le credenziali a livello endpoint. Naturalmente questo viene poi utilizzato per tutti i passaggi del test in cui viene utilizzato quell'endpoint.

  2. Impostare le credenziali sul livello del caso di test (fare clic sull'icona della chiave). Le credenziali si propagano in ogni fase del test.

  3. Usano Proprietà progetto personalizzato per memorizzare le credenziali, quindi utilizzare espansione proprietà nella scheda Auth di ciascuna fase di test per afferrare la vostra proprietà personalizzate (username/password) http://www.soapui.org/Scripting-Properties/working-with-properties.html
    http://www.soapui.org/Scripting-Properties/property-expansion.html

+2

Come viene eseguito il passaggio 1? Come si aggiungono le credenziali direttamente all'endpoint? –

+2

2 e 3 funzionano solo in una suite di test, non negli oggetti richiesta nella definizione del servizio. E 1 non funziona senza entrare ancora in ogni metodo e nella configurazione di auth. Praticamente inutile metterlo nella definizione dell'endpoint quando devi ancora attivarlo in ogni metodo. Non so perché non abbia un meccanismo per fare sempre l'autenticazione se sono fornite le credenziali di autenticazione, ma sono abbastanza convinto che nessuno a SB usi effettivamente il proprio prodotto. –

40

In SoapUI 5.0 o superiore, puoi impostarlo sul BasicHttpBinding del tuo servizio dalla finestra di navigazione a sinistra (penso che sia l'interfaccia) (è il genitore di tutti i tuoi metodi e figlio diretto del progetto).

Fare clic con il pulsante destro del mouse sul nome dell'interfaccia e selezionare "Mostra visualizzatore interfaccia". Quindi vai alla scheda "Service Endpoint". Metti qui le tue informazioni di autenticazione. Ora non devi specificare l'autenticazione per ogni metodo nel tuo servizio.

+3

Questa è la risposta più semplice. Grazie! Non so perché questo non è più ovvio in SoapUI ... – Tim

+2

Chiunque conferma che funziona per un progetto/endpoint REST? Sto ottenendo un 'ClientProtocolException' se metto qui le informazioni di autenticazione, mentre la stessa auth funziona bene se la aggiungo a ogni messaggio di richiesta individualmente. – dbreaux

+0

Lo sto usando per accedere all'API REST di Redmine e funziona. Nel riquadro di navigazione, fare clic con il tasto destro del mouse sul nodo del servizio (quello con l'URL del servizio), selezionare "Mostra Visualizzatore servizi". Nel Service Viewer, selezionare la scheda "Service Endpoint" e compilare i campi username e password. Non sono sicuro della "modalità", ma sto usando COMPLEMENT. Dopodiché, per ogni richiesta, seleziona la scheda "Auth" e specifica "Basic". Lascia vuoti i campi username e password. Fai clic su "Autentica pre-preventivamente" per forzare l'intestazione di autenticazione (senza attendere una richiesta dal server). – jramos

0

In ReadyAPI (SOAP UI Pro) versione 2.2.0:

in progetti Tab, nella parte superiore, c'è un Auth Manager

In questo manager, creare un profilo di autenticazione nella scheda Auth Repository, con il corretto username e password. Lasciare Domain vuota e impostare Authenticate Pre-emptively

Nella scheda Auth Manager, selezionare il livello superiore richiesto da cui si desidera applicare le proprie credenziali (io ho usato quella superiore) e, nella colonna authorization method, selezionare il profilo. Nella richiesta 'estensione ai bambini' dire 'si', devono passare tutti allo stato 'Eredita da padre'.

Quando si genera TestSuite dal progetto, tutte le richieste verranno ereditate dal padre e verranno applicate le credenziali impostate nel profilo.