Ruční konfigurace pracovního postupu CI/CD pro spouštění zátěžových testů
Článek
Zátěžový test ve službě Azure Load Testing můžete automatizovat vytvořením kanálu CI/CD. V tomto článku se dozvíte, jak ručně nakonfigurovat GitHub Actions, Azure Pipelines nebo jiné nástroje CI pro vyvolání existujícího testu ve službě Azure Load Testing. Automatizujte zátěžový test, abyste nepřetržitě ověřili výkon a stabilitu vaší aplikace při zatížení.
Přidání existujícího zátěžového testu do kanálu CI/CD:
Nakonfigurujte ověřování služby, aby se nástroj CI mohl připojit k vašemu prostředku zátěžového testování Azure.
Přidejte do úložiště vstupní soubory zátěžového testu, například testovací skript JMeter a konfiguraci YAML zátěžového testu.
Aktualizujte definici kanálu CI/CD tak, aby vyvolala zátěžové testování Azure.
Organizace a projekt Azure DevOps Pokud nemáte organizaci Azure DevOps, můžete si ji zdarma vytvořit. Pokud potřebujete pomoc se zahájením práce se službou Azure Pipelines, přečtěte si téma Vytvoření prvního kanálu.
Účet GitHub. Pokud nemáte účet GitHubu, můžete si ho zdarma vytvořit.
Úložiště GitHub pro ukládání vstupních souborů zátěžového testu a vytvoření pracovního postupu GitHub Actions Pokud ho chcete vytvořit, přečtěte si téma Vytvoření nového úložiště.
Oprávnění k vytvoření nebo úpravě kanálu CI
Úložiště zdrojového kódu pro uložení vstupních souborů zátěžového testu.
Konfigurace ověřování služby
Pokud chcete spustit zátěžový test v pracovním postupu CI/CD, musíte udělit oprávnění pracovnímu postupu CI/CD pro přístup k vašemu prostředku zátěžového testování. Vytvořte instanční objekt pro pracovní postup CI/CD a přiřaďte roli Přispěvatel zátěžového testu Azure RBAC.
V Azure Pipelines vytvoříte v projektu Azure DevOps připojení služby pro přístup k prostředkům ve vašem předplatném Azure. Při vytváření připojení služby vytvoří Azure DevOps objekt instančního objektu Microsoft Entra.
Přihlaste se ke své organizaci Azure DevOps (https://dev.azure.com/<your-organization>) a vyberte svůj projekt.
<your-organization> Zástupný text nahraďte identifikátorem projektu.
Vyberte Připojení> služby Projectu>+ Připojení k nové službě.
V podokně Připojení k nové službě vyberte Azure Resource Manager a pak vyberte Další.
Vyberte metodu ověřování instančního objektu (automatické) a pak vyberte Další.
Zadejte podrobnosti o připojení služby a pak výběrem možnosti Uložit vytvořte připojení služby.
Pole
Hodnota
Úroveň oboru
Předplatné
Předplatné
Vyberte předplatné Azure, které hostuje váš prostředek zátěžového testování.
Skupina prostředků
Vyberte skupinu prostředků, která obsahuje váš prostředek zátěžového testování.
Název připojení služby
Zadejte jedinečný název připojení služby.
Udělení oprávnění k přístupu všem kanálům
Zaškrtnuto.
V seznamu připojení služeb vyberte připojení, které jste vytvořili dříve, a pak vyberte Spravovat instanční objekt.
Azure Portal se otevře na samostatné kartě prohlížeče a zobrazí podrobnosti instančního objektu.
Na webu Azure Portal zkopírujte hodnotu zobrazovaného názvu .
Tuto hodnotu použijete v dalším kroku k udělení oprávnění pro spouštění zátěžových testů instančnímu objektu.
Udělení přístupu k zátěžovým testováním Azure
Azure Load Testing pomocí Azure RBAC uděluje oprávnění k provádění konkrétních aktivit u vašeho prostředku zátěžového testování. Pokud chcete spustit zátěžový test z kanálu CI/CD, udělíte roli Přispěvatel zátěžového testu instančnímu objektu.
Na webu Azure Portal přejděte k prostředku azure Load Testing.
Vyberte Řízení přístupu (IAM)>Přidat>přiřazení role.
Na kartě Role vyberte Přispěvatel zátěžového testu v seznamu rolí funkcí úloh.
Na kartě Členové vyberte Vybrat členy a pak pomocí zobrazovaného názvu, který jste zkopírovali dříve, vyhledejte instanční objekt.
Vyberte instanční objekt a pak vyberte Vybrat.
Na kartě Revize a přiřazení vyberte Zkontrolovat a přiřadit a přidejte přiřazení role.
K přístupu k prostředku zátěžového testování Azure teď můžete použít připojení služby v definici pracovního postupu Azure Pipelines.
Pokud chcete získat přístup k prostředku Azure Load Testing z pracovního postupu GitHub Actions, nejprve vytvoříte instanční objekt Microsoft Entra. Tento instanční objekt představuje váš pracovní postup GitHub Actions v MICROSOFT Entra ID.
Dále udělíte instančnímu objektu oprávnění k vytvoření a spuštění zátěžového testu pomocí prostředku azure Load Testing.
Vytvoření instančního objektu služby
Vytvořte instanční objekt v předplatném Azure a přiřaďte roli Přispěvatel zátěžového testu, aby váš pracovní postup GitHub Actions získal přístup k vašemu prostředku zátěžového testování Azure pro spouštění zátěžových testů.
Vytvořte instanční objekt a přiřaďte Load Test Contributor roli:
# Get the resource ID for the load testing resource - replace the text place holders.
loadtest=$(az resource show -g <resource-group-name> -n <load-testing-resource-name> --resource-type "Microsoft.LoadTestService/loadtests" --query "id" -o tsv)
echo $loadtest
# Create a service principal and assign the Load Test Contributor role - the scope is limited to the load testing resource.
az ad sp create-for-rbac --name "my-load-test-cicd" --role "Load Test Contributor" \
--scopes $loadtest \
--json-auth
Výstup je objekt JSON, který představuje instanční objekt. Tyto informace použijete k ověření v Azure v pracovním postupu GitHub Actions.
Creating 'Load Test Contributor' role assignment under scope
{
"clientId": "00000000-0000-0000-0000-000000000000",
"clientSecret": "00000000-0000-0000-0000-000000000000",
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"tenantId": "00000000-0000-0000-0000-000000000000",
"activeDirectoryEndpointUrl": "https://login.microsoftonline.com",
"resourceManagerEndpointUrl": "https://management.azure.com/",
"activeDirectoryGraphResourceId": "https://graph.windows.net/",
"sqlManagementEndpointUrl": "https://management.core.windows.net:8443/",
"galleryEndpointUrl": "https://gallery.azure.com/",
"managementEndpointUrl": "https://management.core.windows.net/"
}
Poznámka:
Při spuštění tohoto příkazu se může zobrazit --sdk-auth upozornění na vyřazení. Alternativně můžete použít ověřování založené na OpenID Connect (OIDC) pro ověřování GitHubu v Azure. Naučte se používat akci přihlášení k Azure s OpenID Connect.
Zkopírujte výstupní objekt JSON do schránky.
V dalším kroku uložíte informace instančního objektu jako tajný kód GitHub Actions.
Uložení přihlašovacích údajů Azure v tajném kódu GitHub Actions
Vytvořte tajný kód GitHub Actions pro bezpečné uložení informací instančního objektu. Tento tajný kód v definici pracovního postupu použijete pro připojení k ověřování pomocí Azure a přístupu k prostředku zátěžového testování Azure.
Vyberte Nastavení> tajných kódů a akcí proměnných.>
Vyberte Nový tajný klíč úložiště, zadejte informace o tajných klíčích a pak vyberte Přidat tajný kód a vytvořte nový tajný kód.
Pole
Hodnota
Název
AZURE_CREDENTIALS
Tajný kód
Vložte výstup JSON z příkazu pro vytvoření instančního objektu, který jste zkopírovali dříve.
Teď můžete přistupovat ke svému předplatnému Azure a prostředku zátěžového testování z pracovního postupu GitHub Actions pomocí uložených přihlašovacích údajů.
Pokud používáte jiný nástroj CI/CD, použijete Azure CLI k interakci s prostředky Azure. Provedením následujících kroků autorizujete přístup nástroje CI k vašemu prostředku zátěžového testování:
Vytvořte instanční objekt Microsoft Entra pro připojení k vašemu předplatnému Azure a přístup k prostředku zátěžového testování Azure.
Udělte instančnímu objektu oprávnění k vytvoření a spuštění zátěžového testu přiřazením role Přispěvatel zátěžového testu.
Bezpečně ukládejte přihlašovací údaje Azure v nástroji CI.
Provedením následujících kroků nakonfigurujte autorizaci služby pro nástroj CI:
Vytvořte instanční objekt a přiřaďte roli Přispěvatel zátěžového testu:
Zástupné <resource-group-name> symboly a <load-testing-resource-name> zástupné symboly textu nahraďte.
# Get the resource ID for the load testing resource - replace the text place holders.
loadtest=$(az resource show -g <resource-group-name> -n <load-testing-resource-name> --resource-type "Microsoft.LoadTestService/loadtests" --query "id" -o tsv)
echo $loadtest
# Create a service principal and assign the Load Test Contributor role - the scope is limited to the load testing resource.
az ad sp create-for-rbac --name "my-load-test-cicd" --role "Load Test Contributor" \
--scopes $loadtest \
--json-auth
Výstup je objekt JSON, který představuje instanční objekt.
Creating 'Load Test Contributor' role assignment under scope
{
"clientId": "00000000-0000-0000-0000-000000000000",
"clientSecret": "00000000-0000-0000-0000-000000000000",
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"tenantId": "00000000-0000-0000-0000-000000000000",
"activeDirectoryEndpointUrl": "https://login.microsoftonline.com",
"resourceManagerEndpointUrl": "https://management.azure.com/",
"activeDirectoryGraphResourceId": "https://graph.windows.net/",
"sqlManagementEndpointUrl": "https://management.core.windows.net:8443/",
"galleryEndpointUrl": "https://gallery.azure.com/",
"managementEndpointUrl": "https://management.core.windows.net/"
}
clientIdZkopírujte , clientSecreta hodnoty a tenantId bezpečně je uložte jako tajné kódy v nástroji CI.
Tyto hodnoty použijete k přihlášení k předplatnému Azure pomocí příkazu Azure CLI az login .
Přidání souborů zátěžového testu do úložiště
Pokud chcete spustit zátěžový test s Využitím zátěžového testování Azure v pracovním postupu CI/CD, musíte do úložiště správy zdrojového kódu přidat všechny vstupní soubory zátěžového testu.
Pokud nemáte existující zátěžový test, přidejte do úložiště zdrojového kódu následující soubory:
Soubor testovacího plánu. Pro testy založené na JMeter přidejte testovací skript JMeter (JMX soubor). Pro testy založené na adrese URL přidejte soubor JSON požadavků.
Všechny vstupní datové soubory, které váš testovací plán používá. Například datové soubory CSV.
Pokud máte existující zátěžový test, můžete si stáhnout nastavení konfigurace a všechny vstupní soubory přímo z webu Azure Portal. Pomocí následujících kroků stáhněte vstupní soubory pro stávající zátěžové testování na webu Azure Portal:
Na webu Azure Portal přejděte k prostředku azure Load Testing.
V levém podokně vyberte Testy , abyste zobrazili seznam zátěžových testů a pak ho vybrali.
Vyberte tři tečky (...) vedle testovacího spuštění, se kterým pracujete, a pak vyberte Stáhnout vstupní soubor.
Prohlížeč stáhne zazipovanou složku, která obsahuje vstupní soubory zátěžového testu.
Pomocí libovolného nástroje ZIP extrahujte vstupní soubory.
Složka obsahuje následující soubory:
config.yaml: konfigurační soubor YAML zátěžového testu. Na tento soubor odkazujete v definici pracovního postupu CI/CD.
.jmx: testovací skript JMeter
Všechny další vstupní soubory, například soubory CSV nebo soubory vlastností uživatele potřebné ke spuštění zátěžového testu.
Potvrďte všechny extrahované vstupní soubory do úložiště správy zdrojového kódu.
Použijte úložiště zdrojového kódu, ve kterém konfigurujete kanál CI/CD.
Aktualizace definice pracovního postupu CI/CD
Azure Load Testing podporuje GitHub Actions i Azure Pipelines pro spouštění zátěžových testů.
Instalace rozšíření Azure Load Testing pro Azure DevOps
K vytvoření a spuštění zátěžového testu se v definici pracovního postupu Azure Pipelines používá rozšíření úlohy Zátěžové testování Azure z Azure DevOps Marketplace.
Otevřete rozšíření úlohy Zátěžové testování Azure v Azure DevOps Marketplace a vyberte Získat zdarma.
Vyberte svoji organizaci Azure DevOps a pak vyberte Nainstalovat a nainstalujte rozšíření.
Pokud nemáte oprávnění správce pro vybranou organizaci Azure DevOps, vyberte Požádat správce o instalaci rozšíření.
Aktualizace pracovního postupu Azure Pipelines
Aktualizujte pracovní postup Azure Pipelines tak, aby se spustil zátěžový test pro prostředek zátěžového testování Azure.
Přihlaste se ke své organizaci Azure DevOps (https://dev.azure.com/<your-organization>) a vyberte svůj projekt.
V levém navigačním panelu vyberte Kanály , vyberte kanál a pak vyberte Upravit a upravte definici pracovního postupu.
Případně vyberte Vytvořit kanál a vytvořte nový kanál v Azure Pipelines.
AzureLoadTest Pomocí úlohy spusťte zátěžový test.
Zadejte konfigurační soubor zátěžového testu, který jste vyexportovali dříve ve loadTestConfigFile vlastnosti.
<load-testing-resource> Zástupné symboly a <load-testing-resource-group> text nahraďte názvem vašeho prostředku zátěžového testování Azure a skupiny prostředků.
azure/load-testing Pomocí akce spusťte zátěžový test.
Zadejte konfigurační soubor zátěžového testu, který jste vyexportovali dříve ve loadTestConfigFile vlastnosti.
<load-testing-resource> Zástupné symboly a <load-testing-resource-group> text nahraďte názvem vašeho prostředku zátěžového testování Azure a skupiny prostředků.
Aktualizujte pracovní postup CI tak, aby se spustil zátěžový test pro prostředek zátěžového testování Azure pomocí Azure CLI. Pomocí specifik nástroje CI přidejte do pracovního postupu CI následující příkazy:
Přihlaste se k předplatnému Azure pomocí instančního objektu.
clientIdPoužijte hodnoty , clientSecreta tenantId hodnoty, které jste uložili dříve.
az login --service-principal -u $AZURE_CLIENT_ID -p $AZURE_CLIENT_SECRET -t $AZURE_TENANT_ID
az account set -s $AZURE_SUBSCRIPTION_ID
Vytvořte zátěžový test pomocí souboru YAML konfigurace zátěžového testu.
<load-testing-resource>Nahraďte zástupné symboly , <load-testing-resource-group>a <load-test-config-yaml> text názvem prostředku zátěžového testování, názvem skupiny prostředků a názvem souboru konfiguračního souboru YAML zátěžového testu, který jste přidali do úložiště dříve.
az load test create --load-test-resource <load-testing-resource> --resource-group <load-testing-resource-group> --test-id sample-test-id --load-test-config-file <load-test-config-yaml>
Spusťte zátěžový test.
testRunId="run_"`date +"%Y%m%d%_H%M%S"`
displayName="Run"`date +"%Y/%m/%d_%H:%M:%S"`
az load test-run create --load-test-resource <load-testing-resource> --test-id sample-test-id --test-run-id $testRunId --display-name $displayName --description "Test run from CLI"
Načtěte a zobrazte metriky na straně klienta pro spuštění zátěžového testu.
az load test-run metrics list --load-test-resource <load-testing-resource> --test-run-id $testRunId --metric-namespace LoadTestRunMetrics
Zobrazení výsledků zátěžového testu
Když spustíte zátěžový test z kanálu CI/CD, můžete zobrazit souhrnné výsledky přímo ve výstupním protokolu CI/CD. Pokud jste výsledky testu publikovali jako artefakt kanálu, můžete si také stáhnout soubor CSV pro další generování sestav.
Vyčištění prostředků
Pokud nechcete používat žádné prostředky, které jste vytvořili, odstraňte je, abyste za ně nemuseli účtovat žádné další poplatky.