Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
V tomto článku se dozvíte, jak předat tajné kódy a prostředí jako parametry zátěžovým testům ve službě Azure Load Testing. Pomocí parametrů můžete změnit chování zátěžového testu, aniž byste museli upravovat skript Apache JMeter nebo Locust. Pokud chcete například otestovat webovou aplikaci, zadejte adresu URL koncového bodu jako parametr pro opakované použití testovacího skriptu ve více prostředích. Parametry můžete použít také k tomu, abyste nemuseli pevně kódovat citlivé informace v testovacím skriptu.
Služba Azure Load Testing podporuje dva typy parametrů:
Tajné kódy: Obsahují citlivé informace a bezpečně se předávají do modulu zátěžového testu. Tajné kódy například poskytují přihlašovací údaje webové služby místo jejich pevného kódování v testovacím skriptu. Další informace najdete v tématu Konfigurace zátěžových testů s tajnými kódy.
Proměnné prostředí: Obsahují necitlivé informace a jsou k dispozici jako proměnné prostředí v modulu zátěžového testu. Například proměnné prostředí umožňují konfigurovat adresu URL koncového bodu aplikace. Další informace najdete v tématu Konfigurace zátěžových testů s proměnnými prostředí.
Parametry v konfiguraci zátěžového testu můžete zadat při vytváření nového testu nebo aktualizaci existujícího testu. Pokud spustíte zátěžový test v pracovním postupu CI/CD, definujete parametry v konfiguračním souboru zátěžového testu nebo v definici pracovního postupu CI/CD.
Požadavky
Účet Azure s aktivním předplatným. Pokud nemáte předplatné Azure, vytvořte si bezplatný účet před zahájením.
Prostředek zátěžového testování Azure. Pokud potřebujete vytvořit prostředek azure Load Testing, přečtěte si rychlý start Vytvoření a spuštění zátěžového testu.
Konfigurace zátěžových testů s tajemstvími
V této části se dozvíte, jak předat tajné kódy do skriptu zátěžového testu ve službě Azure Load Testing. Můžete například použít tajný klíč k předání klíče rozhraní API do koncového bodu webové služby, který testujete. Místo uložení klíče rozhraní API v konfiguraci nebo jeho pevném kódování ve skriptu ho můžete uložit do úložiště tajných kódů, abyste mohli pevně řídit přístup k tajnému kódu.
Azure Load Testing umožňuje ukládat tajné kódy ve službě Azure Key Vault. Alternativně můžete při spuštění zátěžového testu v kanálu CI/CD použít také úložiště tajných kódů, které je přidružené k technologii CI/CD, jako jsou Azure Pipelines nebo GitHub Actions.
Pokud chcete používat tajné kódy se službou Azure Load Testing, proveďte následující kroky:
- Uložte hodnotu tajného kódu do úložiště tajných kódů (Azure Key Vault nebo úložiště tajných kódů CI/CD).
- Předejte odkaz na tajný kód do testovacího skriptu Apache JMeter.
- Pro testy založené na JMeteru použijte tajnou hodnotu v testovacím skriptu Apache JMeter pomocí
GetSecretvlastní funkce. Pro testy založené na Locustu použijte tajnou hodnotu tím, že ji přečtete z proměnných prostředí.
Důležité
Vlastní funkci můžete použít pouze při spuštění testovacího GetSecret skriptu JMeter pomocí služby Azure Load Testing. Pokud testovací skript spustíte místně, musíte testovací skript aktualizovat a číst tajné hodnoty jiným způsobem.
Použití služby Azure Key Vault k ukládání tajných kódů zátěžového testu
Službu Azure Key Vault můžete použít k předání tajných kódů do testovacího skriptu ve službě Azure Load Testing. Do konfigurace azure Load Testing přidáte odkaz na tajný kód. Azure Load Testing pak pomocí tohoto odkazu načte tajnou hodnotu v testovacím skriptu.
Abyste mohli načíst hodnotu tajného kódu, musíte také službě Azure Load Testing udělit přístup ke službě Azure Key Vault.
Poznámka:
Pokud v rámci procesu CI/CD spustíte zátěžový test, můžete také použít související úložiště tajných kódů. Přeskočte na Použít skryté úložiště CI/CD.
Vytvoření tajného kódu ve službě Azure Key Vault
Pokud jste to ještě neudělali, přidejte do trezoru klíčů hodnotu tajného kódu.
Důležité
Pokud jste omezili přístup ke službě Azure Key Vault bránou firewall nebo virtuálními sítěmi, pomocí těchto kroků udělte přístup k důvěryhodným službám Azure.
Načtěte identifikátor tajné položky trezoru pro váš tajný údaj. Tento identifikátor tajného kódu použijete ke konfiguraci zátěžového testu.
Tajný identifikátor je úplná URI tajného identifikátoru ve službě Azure Key Vault. Volitelně můžete také zahrnout číslo verze. Například
https://myvault.vault.azure.net/secrets/mysecret/nebohttps://myvault.vault.azure.net/secrets/mysecret/abcdef01-2345-6789-0abc-def012345678.
Přidejte tajemství do zátěžového testu
Odkazujte na tajný údaj v konfiguraci zátěžového testu.
Definujete tajný parametr zátěžového testu pro každé tajemství, na které odkazujete v testovacím skriptu. Název parametru by měl odpovídat názvu tajného kódu, který používáte v testovacím skriptu. Hodnota parametru je identifikátor zabezpečení trezoru klíčů.
Parametry tajného kódu můžete zadat jedním z následujících způsobů:
Na webu Azure Portal vyberte zátěžový test, vyberte Konfigurovat, vyberte kartu Parametry a zadejte podrobnosti o parametru.
Pokud konfigurujete pracovní postup CI/CD a používáte Azure Key Vault, můžete pomocí vlastnosti zadat tajný kód v konfiguračním souboru
secretsYAML. Další informace o syntaxi najdete v referenční příručce YAML konfigurace testování.
Zadejte identitu, kterou Azure Load Testing používá pro přístup k tajným kódům ve službě Azure Key Vault.
Identitou může být identita přiřazená systémem prostředku zátěžového testování nebo jedna z identit přiřazených uživatelem. Ujistěte se, že používáte stejnou identitu, ke které jste dříve přidělili přístup.
Referenční identitu trezoru klíčů můžete zadat jedním z následujících způsobů:
Na webu Azure Portal vyberte zátěžový test, vyberte Konfigurovat, vyberte kartu Parametry a pak nakonfigurujte referenční identitu služby Key Vault.
Pokud konfigurujete pracovní postup CI/CD a používáte Azure Key Vault, můžete pomocí vlastnosti zadat referenční identitu v konfiguračním
keyVaultReferenceIdentitysouboru YAML. Další informace o syntaxi najdete v referenční příručce YAML konfigurace testování.
Udělení přístupu ke službě Azure Key Vault
Při ukládání tajných kódů nebo certifikátů zátěžového testu ve službě Azure Key Vault používá váš prostředek zátěžového testování spravovanou identitu pro přístup k trezoru klíčů. Po konfiguraci spravované identity je nutné udělit této identitě vašeho prostředku zátěžového testování oprávnění k tomu, aby mohla číst tyto hodnoty z klíčového trezoru.
Udělit oprávnění vašim zátěžovým zdrojům Azure ke čtení tajemství nebo certifikátů ze služby Azure Key Vault:
Na webu Azure portal přejděte k prostředku Azure Key Vault.
Pokud trezor klíčů nemáte, vytvořte ho podle pokynů v rychlém startu pro Azure Key Vault.
V levém podokně vyberte Zásady přístupu a pak vyberte + Vytvořit.
Na kartě Oprávnění v části Tajná oprávnění vyberte Získat a potom vyberte Další.
Poznámka:
Azure Load Testing načte certifikáty jako secret , aby byl k dispozici privátní klíč certifikátu.
Na kartě Hlavní vyhledejte a vyberte spravovanou identitu zátěžového testovacího prostředku a pak vyberte Další.
Pokud používáte spravovanou identitu přiřazenou systémem, název spravované identity odpovídá názvu spravované identity prostředku zátěžového testování Azure.
Znovu vyberte Další .
Když se test spustí, spravovaná identita přidružená k vašemu prostředku zátěžového testování teď může číst tajné kódy nebo certifikáty pro zátěžový test z vašeho trezoru klíčů.
Teď, když jste do služby Azure Key Vault přidali tajný kód, nakonfigurovali jste tajný kód pro zátěžový test, teď můžete přejít na Použití tajných kódů v Apache JMeteru.
Uložení tajných kódů zátěžového testu pomocí úložiště tajných kódů CI/CD
Pokud v pracovním postupu CI/CD používáte Zátěžové testování Azure, můžete také použít přidružené úložiště tajných kódů. Můžete například použít tajné kódy úložiště GitHub nebo proměnné tajných kódů ve službě Azure Pipelines.
Poznámka:
Pokud už trezor klíčů používáte, můžete ho použít také k uložení tajných kódů zátěžového testu. Přeskočte na používání služby Azure Key Vault.
Použití tajných kódů v úložišti tajných kódů CI/CD a jejich předání do zátěžového testu v CI/CD:
Pokud ještě neexistuje, přidejte hodnotu tajného kódu do úložiště tajných kódů CI/CD.
V Azure Pipelines můžete kanál upravit a přidat proměnnou.
Na GitHubu můžete použít tajné kódy úložiště GitHub.
Poznámka:
Nezapomeňte jako hodnotu použít skutečnou hodnotu tajného kódu, nikoli identifikátor tajného klíče trezoru klíčů.
Předejte tajemství jako vstupní parametr pro úkol či akci zátěžového testování v pracovním postupu CI/CD.
Následující fragment kódu YAML ukazuje, jak předat tajemství akci GitHub pro zátěžové testování.
- name: 'Azure Load Testing' uses: azure/load-testing@v1 with: loadtestConfigFile: 'SampleApp.yaml' loadtestResource: 'MyTest' resourceGroup: 'loadtests-rg' secrets: | [ { "name": "appToken", "value": "${{ secrets.MY_SECRET }}" } ]Následující fragment kódu YAML ukazuje, jak předat tajný kód úloze Azure Pipelines:
- task: AzureLoadTest@1 inputs: azureSubscription: 'MyAzureLoadTestingRG' loadTestConfigFile: 'SampleApp.yaml' loadTestResource: 'MyTest' resourceGroup: 'loadtests-rg' secrets: | [ { "name": "appToken", "value": "$(mySecret)" } ]Důležité
Název vstupního parametru tajného kódu musí odpovídat názvu použitému ve skriptu Apache JMeter.
Teď jste zadali tajný kód v úložišti tajných kódů CI/CD a předali jste odkaz na Azure Load Testing. Teď můžete tajný kód použít ve skriptu Apache JMeter.
Použití tajných kódů v testovacím skriptu
Dále aktualizujete testovací skript tak, aby používal tajný kód, který jste zadali dříve.
Nejprve vytvoříte uživatelem definovanou proměnnou, která načte hodnotu tajného kódu. Tuto proměnnou pak můžete použít v testu (například k předání tokenu rozhraní API v hlavičce požadavku HTTP).
Vytvořte v souboru JMX uživatelsky definovanou proměnnou a přiřaďte k ní tajnou hodnotu pomocí vlastní funkce
GetSecret.Funkce
GetSecret(<my-secret-name>)přebírá název tajného kódu jako argument. Stejný název použijete při konfiguraci zátěžového testu v pozdějším kroku.Proměnnou definovanou uživatelem můžete vytvořit pomocí integrovaného vývojového prostředí Apache JMeter, jak je znázorněno na následujícím obrázku:
Případně můžete přímo upravit soubor JMX, jak je znázorněno v tomto ukázkovém fragmentu kódu:
<Arguments guiclass="ArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> <collectionProp name="Arguments.arguments"> <elementProp name="appToken" elementType="Argument"> <stringProp name="Argument.name">udv_appToken</stringProp> <stringProp name="Argument.value">${__GetSecret(appToken)}</stringProp> <stringProp name="Argument.desc">Value for x-secret header </stringProp> <stringProp name="Argument.metadata">=</stringProp> </elementProp> </collectionProp> </Arguments>Odkazujte na uživatelsky definovanou proměnnou v testovacím skriptu.
Můžete použít syntaxi
${}k odkazování na proměnnou ve skriptu. V následujícím příkladuudv_appTokenpoužijete proměnnou k nastavení hlavičky HTTP.<HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true"> <collectionProp name="HeaderManager.headers"> <elementProp name="" elementType="Header"> <stringProp name="Header.name">api-key</stringProp> <stringProp name="Header.value">${udv_appToken}</stringProp> </elementProp> </collectionProp> </HeaderManager>
Konfigurace zátěžových testů s proměnnými prostředí
V této části použijete proměnné prostředí k předání parametrů zátěžového testu.
Aktualizujte skript Apache JMeter tak, aby používal proměnnou prostředí (například ke konfiguraci názvu hostitele koncového bodu aplikace).
Nakonfigurujte zátěžový test a předejte proměnnou prostředí do testovacího skriptu.
Použití proměnných prostředí v Apache JMeteru
V této části aktualizujete skript Apache JMeter tak, aby používal proměnné prostředí k řízení chování skriptu.
Nejprve definujete uživatelsky definovanou proměnnou, která čte proměnnou prostředí, a pak ji můžete použít při testovacím spuštění (například k aktualizaci domény HTTP).
Vytvořte v souboru JMX uživatelsky definovanou proměnnou a pomocí funkce jí
System.getenvpřiřaďte hodnotu proměnné prostředí.Funkce
System.getenv("<my-variable-name>")přebírá název proměnné prostředí jako argument. Stejný název použijete při konfiguraci zátěžového testu.Proměnnou definovanou uživatelem můžete vytvořit pomocí integrovaného vývojového prostředí Apache JMeter, jak je znázorněno na následujícím obrázku:
Případně můžete přímo upravit soubor JMX, jak je znázorněno v tomto ukázkovém fragmentu kódu:
<Arguments guiclass="ArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> <collectionProp name="Arguments.arguments"> <elementProp name="appToken" elementType="Argument"> <stringProp name="Argument.name">udv_webapp</stringProp> <stringProp name="Argument.value">${__BeanShell( System.getenv("webapp") )}</stringProp> <stringProp name="Argument.desc">Web app URL</stringProp> <stringProp name="Argument.metadata">=</stringProp> </elementProp> </collectionProp> </Arguments>Odkazujte na uživatelsky definovanou proměnnou v testovacím skriptu.
Můžete použít syntaxi
${}k odkazování na proměnnou ve skriptu. V následujícím příkladu použijete proměnnouudv_webappke konfiguraci adresy URL koncového bodu aplikace.<stringProp name="HTTPSampler.domain">${udv_webapp}</stringProp>
Konfigurace proměnných prostředí ve službě Azure Load Testing
Pokud chcete předat proměnné prostředí do testovacího skriptu, můžete zátěžový test nakonfigurovat na webu Azure Portal, v konfiguračním souboru testu YAML nebo přímo v pracovním postupu CI/CD.
Důležité
Při definování proměnné prostředí pro zátěžový test musí jeho název odpovídat názvu proměnné, kterou jste použili v testovacím skriptu.
Pokud chcete zadat proměnnou prostředí pro zátěžový test pomocí webu Azure Portal, postupujte takto:
Na stránce konfigurace testu vyberte kartu Parametry .
V části Proměnné prostředí zadejte název a hodnotu proměnné prostředí a pak vyberte Použít.
Pokud zátěžový test spustíte v pracovním postupu CI/CD, můžete definovat proměnné prostředí v konfiguračním souboru testu YAML. Další informace o syntaxi najdete v referenční příručce YAML konfigurace testování.
Případně můžete přímo zadat proměnné prostředí v definici pracovního postupu CI/CD. Vstupní parametry pro akci Azure Load Testing nebo úlohu Azure Pipelines použijete k předání proměnných prostředí do testovacího skriptu.
Následující fragment kódu YAML ukazuje příklad GitHub Actions:
- name: 'Azure Load Testing'
uses: azure/load-testing
with:
loadtestConfigFile: 'SampleApp.yaml'
loadtestResource: 'MyTest'
resourceGroup: 'loadtests-rg'
env: |
[
{
"name": "webapp",
"value": "myapplication.contoso.com"
}
]
Následující fragment kódu YAML ukazuje příklad služby Azure Pipelines:
- task: AzureLoadTest@1
inputs:
azureSubscription: 'MyAzureLoadTestingRG'
loadTestConfigFile: 'SampleApp.yaml'
loadTestResource: 'MyTest'
resourceGroup: 'loadtests-rg'
env: |
[
{
"name": "webapp",
"value": "myapplication.contoso.com"
}
]
časté otázky
Ukládá služba Azure Load Testing mé tajné hodnoty?
Ne. Služba Azure Load Testing neukládá hodnoty tajných kódů. Při použití URI tajného klíče služba ukládá pouze tento URI a načte hodnotu tajemství pro každé testovací spuštění. Pokud zadáte hodnotu tajných kódů v pracovním postupu CI/CD, nebudou hodnoty tajných kódů po testovacím spuštění dostupné. Tyto hodnoty zadáte pro každé testovací spuštění.
Co se stane, když mám parametry v konfiguračním souboru YAML i pracovním postupu CI/CD?
Pokud parametr existuje v konfiguračním souboru YAML i v akci Azure Load Testing nebo v úloze Azure Pipelines, použije se hodnota pracovního postupu CI/CD pro testovací běh.
Vytvořil(a) jsem a spustil(a) test z pracovního postupu CI/CD předáním parametrů pomocí úlohy nebo akce Azure Load Testing. Můžu tento test spustit na webu Azure Portal se stejnými parametry?
Hodnoty parametrů se neukládají, když jsou předány z pracovního postupu CI/CD. Při spuštění testu z webu Azure Portal musíte hodnoty parametrů zadat znovu. Zobrazí se výzva k zadání chybějících hodnot. Pro tajné hodnoty zadáte URI tajného trezoru tajemství. Hodnoty zadané na testovacím běhu nebo na stránce opětovného spuštění jsou platné pouze pro toto testovací spuštění. Pokud chcete provést změny na úrovni testu, přejděte na Konfigurovat test a zadejte hodnoty parametrů.
Související obsah
- Použijte tajné informace k zátěžovému testování zabezpečených koncových bodů.
- Další informace o čtení souborů CSV najdete v tématu Čtení souborů CSV v zátěžových testech.