web.customRequest
Consente di creare una richiesta HTTP personalizzata con qualsiasi metodo supportato da HTTP.
Sintassi
web.customRequest( {oggetto} );
Oggetto JavaScript
{ stepName:"<string>", url:"<string>", method:"<string>", targetFrame:"<string>", encType:"<string>", recContentType:"<string>", referer:"<string>", bodyUnicode:"<string>", bodyBinary:"<string>", body:"<string>", bodyFilePath:"<string>", resource:"<string>", resourceByteLimit:"<string>", snapshot:"<string>", mode:"<string>", extraResBaseDir:"<string>", userAgent:"<string>", contentEncoding:"<string>", rawBody:{ content:"<string>", length:"<string>" }, "extraRes":}
Nome della Proprietà |
Descrizione
|
---|---|
nomepasso | Il nome di passaggio. |
url | L’indirizzo della pagina web da caricare. L’URL può essere uno dei seguenti protocolli: HTTP, HTTPS o FTP. Ai fini dell’autenticazione, includere sia il nome utente che la password nell’attributo URL utilizzando il seguente formato: ftp://username:password@server/dir/path. |
metodo | Qualsiasi metodo HTTP. |
targetFrame | Il nome del frame contenente il collegamento o la risorsa corrente. Vedere targetframe per ulteriori informazioni. |
encType | Il metodo di codifica. Vedi i dettagli di seguito. |
recContentType | Il valore dell’intestazione della risposta “Content-Type” come registrato, ad esempio, text/html, application/x–javascript. Il valore recContentType viene utilizzato quando l’attributo resource non è specificato per determinare se l’URL di destinazione è una risorsa o meno. Per i dettagli, vedere reccontentType e resource |
referer | La pagina web che si riferiva alla pagina corrente. Se la posizione è stata espressa esplicitamente, questo attributo viene omesso. |
bodyUnicode | Il corpo è in Latin1 UTF–16LE (little–endian) Unicode. Vedi “Corpo” sotto. |
bodyBinary | Il corpo è in codice binario. Vedi “Corpo” sotto. |
corpo | Il corpo della richiesta. Vedi “Corpo” sotto. |
bodyFilePath | Il percorso di un file da passare come corpo della richiesta. bodyFilepath non può essere utilizzato insieme a nessun altro attributo body. |
resource | Uno di:
|
resourceByteLimit | Vedere resourceByteLimit. |
snapshot | Il nome del file dello snapshot. |
modalità | Il livello di registrazione: HTML o HTTP. Vedere Livello di registrazione / modalità (Web). |
extraResBaseDir | L’URL di base per la risoluzione degli URL relativi all’interno del gruppo extraRes. Per ulteriori informazioni, vedi sotto. |
userAgent | L’intestazione HTTP che identifica l’applicazione che rappresenta l’utente nell’interazione con il server. Per ulteriori informazioni, vedi sotto. |
contentEncoding | Codifica per il corpo della richiesta. Ad esempio, gzip o sgonfiare. |
rawBody | Il corpo della richiesta viene passato come puntatore ai dati. |
extraRes | Risorse generate da meccanismi non HTML nella pagina web. |
Valori di ritorno
Non applicabile
Parametrizzazione
Tutte le proprietà possono essere parametrizzate utilizzando la parametrizzazione standard tranne il nome passo.
Informazioni generali
Il web.Funzione customRequest è una funzione di azione che consente di creare una richiesta HTTP personalizzata utilizzando qualsiasi metodo o corpo. (Ogni funzione di azione Web in uno script fa sì che il browser visualizzi una nuova pagina Web o un frame. Tutte le funzioni di azione web possono essere registrate da VuGen.) Per impostazione predefinita, VuGen genera questa funzione solo per richieste che non possono essere interpretate con altre funzioni web.
Per inserire questa funzione manualmente, utilizzare la finestra di dialogo Aggiungi passo. Per specificare un’intestazione HTTP da inviare prima della richiesta personalizzata, aggiungere un web.addHeader o web.Funzione addAutoHeader.
L’intestazione HTTP può essere modificata per passare ulteriori informazioni sulla richiesta al server. Utilizzando le intestazioni HTTP è possibile, ad esempio, consentire altri tipi di contenuto nella risposta, come i file compressi, oppure è possibile richiedere una pagina Web solo a determinate condizioni. Per modificare l’intestazione HTTP nella richiesta, vedere web.addHeader. Per modificare tutte le richieste successive, vedere web.addAutoHeader.
Body
Il corpo di una richiesta viene passato come valore di uno degli argomenti body, bodyBinary o bodyUnicode, a seconda del contenuto. Puoi passare solo un argomento body*.
Esempi di specifiche del corpo:
bodyUnicode:" REPRICE"bodyBinary:"\x08\\x00\\xCC\\x02\\x00\\x00"body:".\r\n–dxjjtbw/(.tp?eg:ch / 6-- \ r \ n "
Tutti i valori del corpo sono ASCII, stringhe terminate null .
body-indica un testo normale e stampabile. Impossibile rappresentare i byte null. Tutti i caratteri sono specificati con una barra rovesciata.
bodyBinary-indica il codice binario. I caratteri non stampabili sono codificati in esadecimale nella forma \ \ xHH, dove HH specifica il valore esadecimale. I byte NULLI sono specificati da “\\00”
bodyUnicode-US-English, in particolare Latin1 UTF-16LE (little–endian) Unicode solo. Il parametro effettivo viene rimosso dal byte zero aggiuntivo che aggiunge ogni carattere per consentire una lettura più semplice del testo. È ri-aggiunto da web.customRequest prima di inviare al server web.
Per i caratteri non stampabili utilizzare una singola barra rovesciata. Impossibile rappresentare i byte null.
Per un corpo la cui lunghezza è superiore a 100K, viene visualizzato un nome di variabile al posto dell’attributo. La variabile è definita in lrw_custom_body.h.
encType
encType specifica un tipo di contenuto, ad esempio “text/html”, da specificare come valore dell’intestazione della richiesta “Content–Type” per la riproduzione corrente. web.customRequest non esegue alcuna codifica del corpo. L’argomento body specifica il corpo da utilizzare così com’è (o dopo aver applicato l’elaborazione “binaria”), con qualsiasi codifica già applicata. Pertanto, la specifica di un encType che non corrisponde al corpo può causare un errore lato server. In generale, si consiglia di non modificare l’encType come registrato.
Qualsiasi specifica encType sovrascrive silenziosamente qualsiasi web_add_header per il tipo di contenuto. Se viene specificato” encType= “(valore vuoto), non viene generata alcuna intestazione di richiesta” Content–Type”. Se” encType ” viene omesso, viene utilizzato qualsiasi web_add_header applicabile. Se non ci sono intestazione e “method = POST”, “application/x–www–form–urlencoded” viene utilizzato come predefinito. In caso contrario, non viene generata alcuna intestazione di richiesta di tipo contenuto.
extraRes
Gli attributi delle risorse extra vengono inseriti solo quando si esegue la registrazione basata su HTML e l’opzione di registrazione avanzata “Elementi non generati da HTML” è impostata per registrare all’interno del passaggio corrente dello script. Questa è l’impostazione predefinita. Per ulteriori informazioni, consultare il Centro assistenza Virtual User Generator (selezionare la versione pertinente).
extraResBaseDir è l’URL di base per la risoluzione degli URL relativi all’interno del gruppo extraRes. Gli URL possono essere assoluti (come “http://weather.abc.com/weather/forecast.jsp?loccode=LFPO”) o relativi (come “forecast.jsp?loccode=LFPO”). Il download effettivo degli URL viene sempre eseguito utilizzando URL assoluti, in modo che gli URL relativi debbano essere risolti utilizzando un altro URL (assoluto) come “base”. Ad esempio, risolvendo la relativa “previsione.jsp?loccode = LFPO “usando” http://weather.abc.com/weather/”come base produrrà”http://weather.abc.com/weather/forecast.jsp?loccode=LFPO”. Per impostazione predefinita, quando “extraResBaseDir” non è specificato, viene utilizzato l’URL principale della funzione.
userAgent
L’userAgent è l’intestazione HTTP che identifica l’applicazione, solitamente un browser, che rappresenta l’utente nell’interazione con il server.
Ad esempio, l’intestazione “User–Agent: Mozilla/4.0 (compatibile; MSIE 6.0; Windows NT 5.0)” identifica Microsoft Internet Explorer 6.0 per Windows NT. Altre stringhe User-Agent vengono utilizzate per browser diversi e per altre applicazioni non browser. Di solito, tutte le richieste da un’applicazione utilizzano lo stesso valore User–Agent, che il registratore specifica come impostazione di runtime. Tuttavia, anche all’interno di una normale sessione del browser, potrebbero esserci componenti non del browser (ad esempio, Active–X) che interagiscono direttamente con un server e di solito hanno una stringa User–Agent diversa dal browser.
La specifica di un agente utente indica che si tratta di una richiesta non del browser. La stringa specificata viene utilizzata nell’intestazione HTTP” User–Agent: “e influisce sul comportamento del Replay in alcuni punti, ad esempio, non utilizzando la cache del browser, supponendo che gli URL specificati siano risorse, ecc. Non viene effettuato alcun controllo per verificare che il valore specificato sia diverso da quello del browser.
Utilizzo del codice binario
È possibile utilizzare il seguente formato per includere il codice binario nel parametro body di un web.Funzione customRequest:
\x
Rappresenta il valore esadecimale rappresentato da .
Per esempio: \ x24 is 16*2+4=36, che è un segno;; \ x2B è + segno.
Le sequenze che non rappresentano sequenze esadecimali a 2 caratteri valide vengono trattate da VuGen come testo ASCII. Non utilizzare sequenze esadecimali a 1 carattere. Ad esempio, “\x2” non è una sequenza esadecimale a 2 caratteri valida. Usa invece “\ x02”.
Si noti che i valori binari appaiono in uno script come \\x, cioè la “x” è preceduta da due barre rovesciate. Tuttavia, quando si genera un web.Funzione customRequest utilizzando VuGen, è necessario digitare solo una barra rovesciata.
Se si utilizza la parametrizzazione all’interno di un web.Funzione customRequest, include solo una barra rovesciata all’interno della definizione del parametro.
Esempio
web.customRequest ({nome: 'click_for_next.gif', url: 'http://kalimanjaro/Correlation_ASP_Project/click_for_next.gif', metodo: 'GET', risorsa: 1, recContentType : 'image / gif', referer: 'http://kalimanjaro/Correlation_ASP_Project/Correlation_ASP_business_process.asp?first_field_is=param1&change_first_sessionid_each=three_times&links_forms_usage=links_only&step=1&form_method=GET&sessionid_in_cookie=&use_frameset=&frame_target_is=mainframe&first_sessionid_is_large=&type_of_frame=use_frameset&second_field_is=praram2&change_second_sessionid_each=three_times&second_sessionid_is_large=', snapshot: 't9.inf'});