Automazione con Lua
Lo Scripting Lua è la funzionalità che trasforma Solo da un semplice client HTTP a un potente strumento di automazione. Grazie a Lua, un linguaggio leggero e facile da imparare, puoi manipolare le richieste prima dell’invio e validare le risposte in tempo reale.
I Due Momenti dello Scripting
Section titled “I Due Momenti dello Scripting”In Solo, puoi inserire la tua logica in due punti critici del ciclo di vita di una richiesta:
1. Pre-request Script (Prima dell’invio)
Section titled “1. Pre-request Script (Prima dell’invio)”Usa questa sezione per preparare i dati. Puoi calcolare firme di sicurezza dinamiche (HMAC, SHA256), aggiungere header personalizzati basati sull’orario corrente o generare ID univoci (UUID) per tracciare le tue transazioni.
2. Post-response Script (Dopo la risposta)
Section titled “2. Post-response Script (Dopo la risposta)”Usa questa sezione per analizzare i risultati. Puoi estrarre un token o un ID dalla risposta, eseguire test di asserzione (es. controllare se lo status è 200) o loggare messaggi personalizzati nella console per il debug.
Variabili di Sessione: Il Ponte Dinamico
Section titled “Variabili di Sessione: Il Ponte Dinamico”Le Variabili di Sessione sono il modo in cui Solo permette alle tue richieste di “parlarsi”. A differenza delle variabili d’ambiente (che sono statiche e salvate su disco), le variabili di sessione esistono solo nella memoria di Solo e vengono popolate dinamicamente durante i tuoi test.
Come utilizzarle
Section titled “Come utilizzarle”Se estrai un valore con env.set("mi_token", valore) in una richiesta, potrai usarlo come {{mi_token}} in qualsiasi altra tab o richiesta della tua collezione.
Visualizzare e Gestire le Variabili
Section titled “Visualizzare e Gestire le Variabili”Puoi monitorare lo stato attuale della tua sessione direttamente nel builder:
- Vai nel tab “Scripts”.
- Consulta l’elenco “Session Vars” nella barra laterale dell’editor.
- Per resettare la sessione, usa il pulsante “Clear” accanto all’intestazione.
Librerie Native Incluse
Section titled “Librerie Native Incluse”Solo estende Lua con moduli pronti all’uso per le operazioni più comuni nelle API:
| Modulo | Funzionalità | Esempio |
|---|---|---|
env | Gestione variabili e log. | env.set("key", "val"), env.log("msg") |
json | Parsing e generazione JSON. | data = json.parse(response.body) |
crypto | Hashing e codifica. | hash = crypto.sha256("test"), crypto.base64_encode("...") |
uuid | Identificativi univoci. | id = uuid.v4() |
time | Gestione orari e date. | now = time.now() |
Esempio Pratico: Estrarre un Token
Section titled “Esempio Pratico: Estrarre un Token”Ecco come appare un tipico script Post-response per salvare un token di accesso:
-- 1. Trasforma il body della risposta in un oggetto Lualocal data = json.parse(response.body)
-- 2. Estrai il token dal campo "access_token"local token = data.access_token
-- 3. Salvalo nelle variabili di sessione di Soloif token then env.set("auth_token", token) env.log("Token salvato con successo!")else env.log("Errore: token non trovato nella risposta")end