Modifica gruppo thread di un piano di test JMeter esterno (file JMX)

Aug 18 2020

La mia applicazione prenderà il file jmx come piano di test dall'utente e lo eseguirà. Ho una configurazione distribuita JMeter sul back-end della mia applicazione (1 client JMeter e più server JMeter).

La sfida che sto affrontando è con i #thread necessari per eseguire il piano di test.

  1. Se prendo #istanze (server JMeter che eseguono il test) e #threads esplicitamente dall'utente, come faccio a configurare il piano di test fornito dall'utente con questo gruppo di thread prima dell'esecuzione? Ciò mi consentirà di verificare in anticipo questi valori con il mio cluster e la capacità della macchina.

Avevo letto di Include Controller, ma ciò richiede necessariamente che il piano di test utente abbia Test Fragment.

  1. Se non è esplicito, come posso verificare la configurazione del gruppo Thread nel piano di test utente? Supponiamo che l'utente abbia inserito #thread di grandi dimensioni nel piano di test che potrebbero sovraccaricare la mia macchina server JMeter, come posso verificare questo valore e probabilmente avvisare l'utente di limitare i #thread?

Risposte

1 DmitriT Aug 18 2020 at 15:47
  1. Non esiste una cosa come "#threads_per_instance" nel mondo di JMeter, se esegui JMeter in modalità distribuita ogni server (o slave o generatore di carico) esegue il piano di test .jmx fornito dal client come è così se l'utente carica il file con 100 thread in un gruppo di thread e hai 1 slave - avrai 100 utenti. Se hai 2 slave, avrai 200 utenti, ecc.

    Un'altra cosa è che non puoi dire quanti thread sarai in grado di simulare in anticipo da un singolo slave JMeter poiché dipende principalmente dalla natura del test: dimensione della richiesta / risposta, numero di pre / post processori, asserzioni, ascoltatori, ecc. Suggerirei di implementare una qualche forma di monitoraggio della salute degli slave JMeter e avvisare l'utente se l'utilizzo della CPU o della RAM o della rete inizia a superare l'80%. Può essere facilmente ottenuto utilizzando JMeter PerfMon Plugin

  2. Non sappiamo quali tecnologie vengono utilizzate nella "tua applicazione", quindi questa domanda è troppo ampia. Gli script .jmx di JMeter sono solo file XML, quindi dovresti essere in grado di utilizzare il parser XML per estrarre il numero di thread in tutti i gruppi di thread e "convalidarlo" in qualche modo.