le mie informazioni di contatto
Posta[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
I parametri utente delle espressioni regolari (parametri utente RegEx) è un pre-processore (pre-processore) che consente agli utenti di estrarre valori dai dati di risposta in base alle espressioni regolari e applicarli e passare questi valori come parametri ai successiviRichiesta HTTP o altri posti necessari. Questa funzionalità è altamente flessibile per la gestione di contenuto dinamico, ID di sessione, token, ecc. ed è un componente chiave per l'implementazione di script di test automatizzati.
Usiamo SpringBoot per scrivere il seguente codice di interfaccia
@PostMapping(value = "/login",produces = "application/json;charset=UTF-8")
public String authenticate(@RequestBody JSONObject request) {
String validUsername = "admin";
String validPassword = "password";
String response = "{"total":2,"data":[{"id":123,"name":"John Doe","email":"[email protected]","phone":"123-456-7890","address":{"street":"123 Main St","city":"New York","state":"NY","zip":"10001"},"interests":["sports","music","travel"]},{"id":456,"name":"Jane Smith","email":"[email protected]","phone":"987-654-3210","address":{"street":"456 Elm St","city":"Los Angeles","state":"CA","zip":"90001"},"interests":["reading","cooking","hiking"]}]}";
if (request.getString("username").equals(validUsername) && request.getString("password").equals(validPassword)) {
return response;
} else {
return response;
}
}
Quindi scriviamo il seguente script
Gruppo di thread: Mantieni predefinito
Richiesta HTTP 1: protocollo http, nome server o IP127.0.0.1, numero porta 8091, metodo POST, percorso/login, codifica contenuto utf-8, dati corpo messaggio
{
"username": "admin",
"password": "password"
}
Estrazione di espressioni regolari器:设置的参数为引用名称var,正则表达式"id"😦.?),"nome":"(.?)", "email" (può essere riconosciuto dal contenuto del codice di esempio) e il nostro scopo è estrarre l'ID e il nome, il numero corrispondente è impostato su -1 e il valore predefinito è NotFound
A questo punto possiamo prima disabilitare la richiesta HTTP 2 e i parametri utente dell'espressione regolare, quindi eseguire lo script e visualizzare il campionatore di debug dell'albero dei risultati. Puoi vedere i seguenti risultati nel corpo della risposta dei dati della risposta.
Variabili JMeter:
JMeterThread.last_sample_ok=false
Pacchetto di esempio JMeterThread.pack=org.apache.jmeter.threads.SamplePackage@4fa1cf1
INIZIO.HMS=165132
START.MS=1720515092259
INIZIO.YMD=20240709
TESTSTART.MS=1720578466746
_jm__threadgroup__idx=0
_misuratore j.U_T=gruppo di discussioni 1-1
var=Non trovato
var_1=
var_1_g=2
var_1_g0="id":123,"nome":"John Doe","email"
var_1_g1=123
var_1_g2=Giovanni Rossi
var_2=
var_2_g=2
var_2_g0="id":456,"nome":"Jane Smith","email"
var_2_g1=456
var_2_g2=Giovanni Battista
var_matchNr=2
Dal contenuto di cui sopra, possiamo vedere il valore della variabile var estratta dall'espressione regolare corrispondente. A questo punto, possiamo continuare a verificare l'applicazione del preprocessore dei parametri utente dell'espressione regolare e continuare a impostare gli altri parametri del componente.
Richiesta HTTP 2: protocollo http, nome server o IP127.0.0.1, numero porta 8091, metodo POST, percorso/login, codifica contenuto utf-8, quindi aggiungi due parametri ai parametri, inserisci rispettivamente i nomi 123, 456, non usarli ora Indipendentemente dal significato specifico, proviamo prima.
Parametri utente dell'espressione regolare: il nome di riferimento dell'espressione regolare è impostato su var, il nome del parametro qui deve essere coerente con il nome del parametro nell'espressione regolare precedente, il numero del gruppo regexp dei nomi dei parametri è impostato su 1, il numero del gruppo regex dei valori dei parametri è impostato a 2, perché Come configurarlo in questo modo? Possiamo capirlo in questo modo. Non abbiamo impostato 123 e 456 nella richiesta HTTP 2? L'impostazione del numero del gruppo regexp dei nomi dei parametri su 1 può essere intesa come prendere i parametri di var_1_g1 e var_2_g1 nei parametri var nella richiesta HTTP 2 Dopo che i parametri sono coerenti con i parametri qui, corrisponderemo alla relazione tra parametri e dati, aprendo la strada affinché il numero del gruppo regex dei valori dei parametri sia impostato su 2. Possiamo ben capire che quando i valori dei parametri il numero del gruppo regex è impostato su 2, ciò che si ottiene I parametri diventano var_1_g2 e var_2_g2.
Il passaggio successivo consiste nel verificare i nostri risultati. Eseguire lo script per visualizzare i dati del post del corpo della richiesta nella richiesta HTTP 2 nell'albero dei risultati. Nel complesso, la nostra richiesta non è riuscita, ma non ha importanza. Abbiamo appena verificato ciò di cui abbiamo bisogno da verificare. Il risultato è irrilevante
POSTARE http://127.0.0.1:8091/login
Dati POST:
123=Giovanni+Rossi&456=Jane+Smith
[niente biscotti]
Dai dati POST sopra, puoi vedere che i dati corrispondenti sono stati riflessi nella richiesta.
● Ambito: i parametri utente delle espressioni regolari hanno effetto solo sulla seguente richiesta HTTP o campionatore. Se è necessario applicarli a livello globale, considerare l'utilizzo dell'"estrattore di espressioni regolari" insieme alle variabili.
● Debug: utilizzare il listener "Visualizza albero dei risultati" per verificare la corrispondenza delle espressioni regolari per garantire la corretta estrazione dei dati.
I parametri utente delle espressioni regolari sono una potente funzionalità di JMeter, che semplifica l'elaborazione dei dati dinamici e migliora la flessibilità e l'automazione degli script di test. Configurare e utilizzare correttamente questa funzione può far fronte in modo efficace alle esigenze di test delle prestazioni di sistemi complessi.