Uso di Business Central Performance Toolkit

Completato

Business Central Performance Toolkit consente di tener traccia e di confrontare le prestazioni tra diverse build della soluzione per assicurare che le modifiche del codice non incidano negativamente sulle prestazioni nei tenant dei clienti.

Business Central spesso funge da piattaforma scalabile su cui ISV e VAR forniscono soluzioni verticali e personalizzazioni per clienti specifici ed è interesse di tutti mantenere alti i livelli di prestazioni. Per mantenere i tenant dei clienti efficienti e aggiornati con gli aggiornamenti principali e secondari di queste soluzioni e personalizzazioni, occorre assicurarsi che le modifiche del codice non influiscano negativamente sulle prestazioni.

Business Central Performance Toolkit consente di tener traccia e confrontare le prestazioni tra diverse build delle soluzioni. Durante l'onboarding di nuovi clienti in Business Central, in particolare dei clienti più grandi, sia il consulente che il cliente devono confidare nel fatto che Business Central sia in grado di supportare i carichi di lavoro attuali e previsti per soddisfare le esigenze aziendali. Con Business Central Performance Toolkit, i consulenti possono simulare ciascun carico e verificare la capacità di Business Central di supportare i carichi specifici del cliente.

Business Central Performance Toolkit rende disponibili gli strumenti ai consulenti sotto forma di due estensioni:

  • Business Central Performance Toolkit

  • Business Central Performance Toolkit Samples

Estensione Performance Toolkit

Questa estensione è progettata per i fornitori di soluzioni indipendenti (ISV) e rivenditori a valore aggiunto (VAR) che sviluppano soluzioni verticali e personalizzano Business Central per i propri clienti. In questo tipo di collaborazione, le cose cambiano spesso tra le versioni rilasciate su entrambi i lati, quindi è importante che ISV e VAR possano garantire che le nuove versioni delle loro soluzioni non introducano peggioramenti delle prestazioni via via che il volume degli utenti cresce. A tal fine, Performance Toolkit consente agli sviluppatori di simulare i carichi di lavoro in scenari realistici per confrontare le prestazioni tra le build delle loro soluzioni.

In breve, Performance Toolkit aiuta a rispondere a domande quali: "La soluzione per Business Central supporta un numero X di utenti che eseguono queste attività, mentre sono in corso altre operazioni?" Non risponde a domande quali: "Quanti ordini Business Central può elaborare all'ora?"

È importante ricordare che è possibile usare il toolkit solo in ambienti sandbox e in immagini Docker. Non è possibile usarlo in un tenant di produzione.

Performance Toolkit è formato da due estensioni: Performance Toolkit, disponibile gratuitamente su AppSource, e BCPT-SampleTests, che può essere scaricato dal repository ALAppExtensions su GitHub.

Per ottenere il massimo vantaggio dal toolkit, si consiglia di scaricare e installare entrambe le estensioni.

Per installare l'estensione Performance Toolkit, effettuare i seguenti passaggi.

  1. Nell'ambiente Sandbox aprire la pagina Gestione estensioni.

  2. Nella pagina Gestione estensioni selezionare Gestisci, Marketplace delle estensioni.

    Screenshot che mostra l'opzione Marketplace delle estensioni.

  3. Nella pagina che viene aperta cercare Performance Toolkit e selezionare Scarica adesso.

    Screenshot che mostra l'opzione Performance Toolkit.

  4. Nella pagina che si apre inserire i propri dati e selezionare Continua.

    Screenshot della pagina in cui immettere i dettagli per il toolkit.

  5. Nella pagina successiva che si apre selezionare Installa.

    Screenshot della pagina Installazione estensioni.

  6. Nella pagina di conferma che viene aperta selezionare Ok.

    Screenshot che mostra che l'installazione del toolkit è riuscita.

  7. Performance Toolkit è ora installato.

    Risultati quando il toolkit è installato correttamente.

Per installare Performance Toolkit Samples, effettuare i seguenti passaggi:

  1. Creare un nuovo progetto AL in VSCode.

  2. In app.json impostare le dipendenze come segue:

    Screenshot che mostra le dipendenze del toolkit.

  3. Dalla posizione GitHub di BCPT-SampleTests scaricare (o estrarre) la cartella src nel proprio progetto.

    Screenshot degli elementi nella cartella src.

  4. Rinumerare gli oggetti nell'intervallo di oggetti, ad esempio [50.000..99.9999].

  5. Nel file TestCodeunitsWithParams.Enum.al assicurarsi di rinumerare i valori di enumerazione in modo che corrispondano ai numeri degli oggetti:

    Screenshot che mostra un'estensione di tipo enumerazione di esempio.

  6. Distribuire l'estensione nella sandbox.

Se si usano entrambe le estensioni, queste forniscono quanto segue:

  • Un framework per definire un set di test o scenari da eseguire in parallelo. Il framework inoltre registra i risultati e consente di importare ed esportare definizioni di suite.

  • Suite di test predefinite che coprono scenari di base e che possono fungere da base per ispirare altre suite adatte agli ambienti dei clienti.

  • Uno strumento da riga di comando che deve essere installato in un computer client. Per simulare più utenti che accedono e usano le pagine, è necessario avviare tali scenari dall'esterno di Business Central. Lo strumento da riga di comando eseguirà il numero di sessioni client simultanee specificato nella suite.

In genere, è opportuno eseguire la suite per più sessioni contemporaneamente. Dopo aver configurato la suite, è possibile fare ciò usando l'azione Avvia. Tuttavia, se si desidera eseguire test leggeri, ad esempio in fase di sviluppo, è possibile scegliere l'azione Avvia in modalità di esecuzione singola per eseguire la suite una sola volta e il più velocemente possibile. La modalità di esecuzione singola consente di monitorare il numero di istruzioni SQL tra le esecuzioni e definire le linee di base, inoltre fornisce un feedback rapido che può aiutare a identificare le regressioni in anticipo.

È possibile eseguire fino a 125 sessioni contemporaneamente per una suite di test. Il campo N. totale di sessioni mostra quante sessioni vengono create quando si esegue la suite.

Nelle righe della suite l'opzione Esegui in primo piano consente di eseguire i test in sequenza anziché in parallelo. È anche possibile usarla in combinazione con attività in background ma ogni sessione verrà eseguita singolarmente. È possibile eseguire una sola sessione in primo piano alla volta.

Configurazione di una suite

Le impostazioni per configurare una suite dipendono dall'ambiente che si desidera simulare. La procedura seguente fornisce un esempio per testare più sessioni, ma i passaggi si applicano anche a una singola esecuzione.

Per configurare una suite, effettuare i seguenti passaggi:

  1. Cercare Suite BCPT e quindi selezionare il collegamento correlate.

    Screenshot della ricerca di Suite BCPT tramite Dimmi.

  2. Selezionare Nuovo per aprire la pagina Suite BCPT.

    Screenshot della pagina Suite BCPT che mostra l'opzione +Nuovo.

  3. Nei campi Codice, Descrizione e Tag fornire un identificatore, alcune informazioni sul test e un tag che è possibile usare per trovare i risultati della suite nella pagina Voci di registro.

    Screenshot della pagina Suite BCPT e impostazione di un test.

  4. Definire i tempi per l'esecuzione. Il campo 1 giorno lavorativo corrisponde a funziona con il campo Durata (minuti) per aggiornare il campo Inizio data di lavoro. Usarlo per testare i processi che hanno scadenze, ad esempio i pagamenti. La durata può essere di un massimo di 240 minuti.

    I campi Ritardo utente minimo predefinito e Ritardo utente massimo predefinito nell'intestazione consentono di simulare pause tra le azioni. È necessario specificare un ritardo. Tra ogni iterazione, ad esempio quando si creano ordini di vendita, è possibile definire un Ritardo (ritardo tra le iterazioni) prima che inizi il test sull'ordine di vendita successivo. Il ritardo può essere Fisso o Casuale. I ritardi non sono inclusi nei risultati per i tempi di esecuzione.

  5. Specificare la versione di base da confrontare. Per modificare il valore nel campo Versione di base, è necessario attivare la modalità Modifica.

    Screenshot con evidenziato il campo Versione di base.

  6. Configurare le righe per la suite. Le righe contengono alcune delle impostazioni dell'intestazione. Aggiornando i valori nelle righe viene aggiornata anche l'intestazione.

    • Nella scheda dettaglio Righe suite BCPT scegliere le codeunit da eseguire.

    • Nel campo Parametri immettere un parametro per definire iterazioni quali, ad esempio, la creazione di righe nei documenti. Ad esempio, il parametro Lines=10 crea 10 righe in un documento.

    • Nel campo N. di sessioni immettere il numero di utenti simultanei da simulare.

    • Facoltativo: se si desidera usare la modalità di esecuzione singola oppure se si desidera eseguire una delle sessioni senza applicare impostazioni quali i ritardi minimo e massimo, selezionare l'opzione Esegui in primo piano.

      Screenshot in cui è evidenziato il campo Esegui in primo piano.

Avvio dell'esecuzione da PowerShell

Dopo aver installato i file binari e gli script e configurato la suite, è possibile creare l'oggetto credenziale ed eseguire i test da PowerShell usando i comandi seguenti.

Per creare l'oggetto credenziale, eseguire il comando seguente:

$Credential = New-Object PSCredential -ArgumentList <user email>,(ConvertTo-SecureString -String <password> -AsPlainText -Force)

Per avviare i test in una sandbox online di Business Central, eseguire il comando seguente:

RunBCPTTests.ps1 -Environment PROD -AuthorizationType AAD -Credential $Credential -SandboxName <sandbox name> -TestRunnerPage 149002 -SuiteCode "TRADE-50U"

Quando si avviano i test da PowerShell, vi è un ritardo di due secondi tra le nuove sessioni. Al completamento di una sessione, è possibile visualizzare i risultati sulle righe nella scheda dettaglio Righe suite BCPT.

Dopo aver eseguito la suite, è possibile scegliere Voci di registro per verificare i risultati. Usare Mostra errori e Mostra sessioni contemporaneamente in esecuzione poiché queste azioni applicano filtri ai risultati. Ad esempio, il filtro può consentire di risolvere gli errori mostrando ciò che un utente stava facendo quando si è verificato un errore. Per impostazione predefinita, la pagina è filtrata per mostrare la versione più recente, ma è possibile modificare o rimuovere il filtro se si desidera confrontare le esecuzioni. È possibile usare l'opzione Apri in Excel per creare dashboard che possono consentire di visualizzare i risultati delle prestazioni.

Le voci di registro sono elencate nell'ordine in cui sono state create, pertanto i diversi scenari sono mescolati. Ogni esecuzione è identificata dal valore nei campi N. versione.

La colonna Operazione mostra le singole misurazioni, dove il termine Scenario viene utilizzato per eseguire la codeunit senza il tempo di attesa dell'utente. La colonna N. di istruzioni SQL include le istruzioni SQL emesse dallo scenario e dalle attività di sistema, quali il recupero di metadati. I conteggi escludono le voci di registro stesse. Per eseguire il drill-down su una singola sessione, filtrare in base al campo N. sessione oppure scegliere Apri in Excel per creare una tabella pivot e un grafico pivot per un'analisi più approfondita.

Esempio: valutazione delle chiamate SQL e dei tempi in modalità di esecuzione singola

Questo esempio mostra come usare la modalità di esecuzione singola per il test di regressione delle prestazioni (PRT) tra le modifiche del codice, per valutare le chiamate SQL e i tempi.

Spesso, quando si sviluppa una nuova estensione, si inizia con un codice limitato e può essere opportuno aspettare a eseguire un test di benchmark più ampio con utenti simultanei simulati fino a quando non si è più vicini ad avere uno scenario completo end-to-end.

È possibile usare l'azione Avvia in modalità di esecuzione singola per eseguire un test limitato, ad esempio su una nuova estensione. La modalità di esecuzione singola offre comunque elementi quali una linea di base, la possibilità di eseguire il test in background e fornisce feedback immediato.

I dati generati dalle esecuzioni vengono mantenuti nel database. Se il database viene mantenuto, è possibile impostare le esecuzioni precedenti come linea di base.

I seguenti passaggi forniscono un esempio di come eseguire un test PRT in modalità di esecuzione singola.

  1. Nella pagina Suite BCPT scegliere Nuovo.

  2. Nel campo Codice immettere un nome per la suite di test. In questo esempio, si userà PreTest.

  3. Nel campo Tag immettere un valore che consenta di identificare agevolmente la suite in seguito, quando si analizzeranno i risultati.

  4. I campi per la durata e i ritardi non vengono usati per la modalità di esecuzione singola, quindi verranno lasciati i loro valori predefiniti.

  5. Nella scheda dettaglio Righe suite BCPT scegliere la suite di test per il componente.

  6. In questo esempio si calcola il peso totale degli elementi in un ordine di vendita, quindi si utilizzerà Test pagina Ordine di vendita con un parametro che crea quattro righe. Il parametro dovrebbe essere il seguente: Lines=4.

    Screenshot che mostra il test con un parametro immesso.

  7. Deselezionare l'opzione Esegui in primo piano. In questo modo la suite test verrà eseguita in un thread in background.

  8. Selezionare Avvia in modalità di esecuzione singola.

    Screenshot che mostra l'opzione Avvia in modalità di esecuzione singola.

  9. Viene aperta la finestra seguente.

    Screenshot della finestra PreTest che mostra la modalità di esecuzione.

  10. Fare clic sul pulsante Aggiorna per aggiornare la pagina.

  11. Al completamento del test, selezionare Voci di registro.

    Screenshot della pagina Voci di registro BCPT.

  12. Per impostare la linea di base al termine dell'esecuzione, nel campo Versione di base immettere 1.