Skip to content

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.

L'editor di script Lua di Solo con un esempio di script pre-request che aggiunge un header personalizzato.

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.


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.

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.

Puoi monitorare lo stato attuale della tua sessione direttamente nel builder:

  1. Vai nel tab “Scripts”.
  2. Consulta l’elenco “Session Vars” nella barra laterale dell’editor. Il pannello delle Session Variables che mostra l'elenco delle chiavi e dei valori correnti in memoria.
  3. Per resettare la sessione, usa il pulsante “Clear” accanto all’intestazione.

Solo estende Lua con moduli pronti all’uso per le operazioni più comuni nelle API:

ModuloFunzionalitàEsempio
envGestione variabili e log.env.set("key", "val"), env.log("msg")
jsonParsing e generazione JSON.data = json.parse(response.body)
cryptoHashing e codifica.hash = crypto.sha256("test"), crypto.base64_encode("...")
uuidIdentificativi univoci.id = uuid.v4()
timeGestione orari e date.now = time.now()

Ecco come appare un tipico script Post-response per salvare un token di accesso:

-- 1. Trasforma il body della risposta in un oggetto Lua
local 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 Solo
if token then
env.set("auth_token", token)
env.log("Token salvato con successo!")
else
env.log("Errore: token non trovato nella risposta")
end