Proveďte konfigurovatelné zátěžové testy s tajnými kódy a proměnnými prostředí.
Zjistěte, jak změnit chování zátěžového testu, aniž byste úpravy skriptu Apache JMeter úpravy úpravy. S Azure Load Testing Preview můžete použít parametry k nastavení konfigurovatelného testovacího skriptu. Můžete například změnit koncový bod aplikace na parametr, který znovu použije testovací skript napříč několika prostředími.
Služba Azure Load Testing podporuje dva typy parametrů:
Tajné kódy: obsahují citlivé informace a předají se bezpečně modulu zátěžového testu. Například k zadání přihlašovacích údajů webové služby místo 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 pro nastavení konfigurovatelné adresy URL koncového bodu aplikace. Další informace najdete v tématu Konfigurace zátěžových testů pomocí proměnných prostředí.
Důležité
Zátěžové testování Azure je aktuálně ve verzi Preview. Právní podmínky, které platí pro funkce Azure, které jsou ve verzi beta, verzi Preview nebo které zatím nejsou veřejně dostupné, najdete v Dodatečných podmínkách použití pro Microsoft Azure verze Preview.
Požadavky
Účet Azure s aktivním předplatným. Pokud ještě nemáte předplatné Azure, vytvořte si napřed bezplatný účet.
Prostředek Azure Load Testing. Pokud potřebujete vytvořit prostředek Azure Load Testing, podívejte se na rychlý start Vytvoření a spuštění zátěžového testu.
Konfigurace zátěžových testů s tajnými kódy
V této části nakonfigurujete zátěžový test tak, aby vašemu skriptu zátěžového testu předal tajné kódy.
Aktualizujte skript Apache JMeter tak, aby přijímal a používá vstupní parametr tajného klíče. Například ověřovací token webové služby, který předáte do hlavičky PROTOKOLU HTTP.
Uložte hodnotu tajného klíče do úložiště tajných údajů, které umožňuje přísně řídit přístup. Azure Load Testing se integruje s Azure Key Vault nebo s úložištěm tajných klíče propojeným s pracovním postupem CI/CD.
Nakonfigurujte zátěžový test a předejte do testovacího skriptu odkaz na tajný kód.
Použití tajných kódů v Apache JMeteru
V této části aktualizujete skript Apache JMeter tak, aby jako vstupní parametr používá tajný kód.
Nejprve definujete uživatelsky definovanou proměnnou, která načte hodnotu tajného klíče. Tuto proměnnou pak můžete použít při provádění testu, například k nastavení hlavičky požadavku HTTP.
Vytvořte v souboru JMX uživatelsky definovanou proměnnou a přiřaďte k ní hodnotu tajného klíče pomocí
GetSecretvlastní funkce.Funkce
GetSecret(<my-secret-name>)přebírá název tajného klíče jako argument. Stejný název použijete při konfiguraci zátěžového testu v pozdějším kroku.Následující snímek obrazovky ukazuje, jak vytvořit uživatelsky definovanou proměnnou pomocí integrovaného vývojového prostředí Apache JMeter.
Místo toho můžete také přímo upravit soubor JMX, jak je znázorněno v tomto příkladu 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.
Syntaxi můžete
${}použít k odkazování na proměnnou ve skriptu. V následujícím příkladu použijeteudv_appTokenproměnnou k nastavení hlavičky PROTOKOLU 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>
Použití Azure Key Vault
Při vytváření zátěžového testu v Azure Portal nebo konfiguračního souboru testu YAMLpoužijete odkaz na tajný Azure Key Vault klíče.
Poznámka
Pokud zátěžový test spustíte v rámci procesu CI/CD, můžete také použít související úložiště tajných certifikátů. Přeskočte k použití úložiště tajných klíčů CI/CD.
Přidejte tajný kód Azure Key Vault, pokud ještě neexistuje.
Načtěte Key Vault tajného kódu pro váš tajný kód. Tento identifikátor tajného kódu použijete ke konfiguraci zátěžového testu.
Identifikátor tajného kódu je úplný identifikátor URI tajného kódu v Azure Key Vault. Volitelně můžete také zahrnovat číslo verze. Příkladem je
https://myvault.vault.azure.net/secrets/mysecret/nebohttps://myvault.vault.azure.net/secrets/mysecret/abcdef01-2345-6789-0abc-def012345678.Udělte prostředku Azure Load Testing přístup k Key Vault.
Váš prostředek Azure Load Testing nemá oprávnění k načítání tajných kódů z Azure Key Vault. Nejprve povolíte spravovanou identitu přiřazenou systémem pro prostředek zátěžového testování. Pak této spravované identitě udělíte oprávnění ke čtení.
Pokud chcete službě Azure Load Testing poskytnout přístup k vašemu Key Vault najdete v tématu Použití spravovaných identit pro zátěžové testování Azure.
Odkazovat na tajný kód v konfiguraci zátěžového testu.
Pro každý tajný kód, na který odkazujete ve skriptu Apache JMeter, definujete parametr tajného klíče zátěžového testu. Název parametru by se měl shodovat s názvem, který jste použili v testovacím skriptu. Hodnota tajného parametru je Key Vault zabezpečení.
Parametry tajných kódů můžete zadat v Azure Portal nebo v konfiguračním souboru YAML zátěžového testu.
V Azure Portal vyberte zátěžový test, vyberte Konfigurovat a pak zadejte podrobnosti o parametru na kartě Parametry.
Místo toho můžete tajný kód zadat také v konfiguračním souboru YAML. Další informace o syntaxi najdete v referenčních informacích ke konfigurační konfiguraci testů YAML.
Použití úložiště tajných klíčů 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 certifikátů. Můžete například použít tajné GitHub úložištěnebo proměnné tajných kódů v Azure Pipelines.
Poznámka
Pokud už používáte Azure Key Vault, můžete ho také použít k uložení tajných kódů zátěžového testu. Přejděte na stránku Use Azure KeyVault (Použít Azure KeyVault).
Pokud hodnota tajného klíče ještě neexistuje, přidejte ji do úložiště tajných klíčů CI/CD.
V Azure Pipelines můžete kanál upravit a přidat proměnnou.
V GitHub můžete použít GitHub tajných kódů úložiště.
Poznámka
Ujistěte se, že jako hodnotu používáte skutečnou hodnotu tajného Key Vault ne tajný kód.
Předejte tajný kód jako vstupní parametr pro úlohu/akci zátěžového testování v pracovním postupu CI/CD.
Následující fragment kódu YAML ukazuje příklad GitHub Akcí.
- 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 Azure Pipelines příklad.
- task: AzureLoadTest@1 inputs: azureSubscription: 'MyAzureLoadTestingRG' loadTestConfigFile: 'SampleApp.yaml' loadTestResource: 'MyTest' resourceGroup: 'loadtests-rg' secrets: | [ { "name": "appToken", "value": "$(mySecret)", } ]Důležité
Název parametru tajného klíče se musí shodovat s názvem použitým ve skriptu Apache JMeter.
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 se používá proměnná 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í testovacímu skriptu.
Použití proměnných prostředí v Apache JMeteru
V této části aktualizujete skript Apache JMeter tak, aby k řízení chování skriptu používá proměnné prostředí.
Nejprve definujete uživatelsky definovanou proměnnou, která načte proměnnou prostředí. Tuto proměnnou pak můžete použít při provádění testu, například k aktualizaci domény HTTP.
Vytvořte v souboru JMX uživatelsky definovanou proměnnou a přiřaďte k ní hodnotu proměnné prostředí pomocí
System.getenvfunkce .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.Následující snímek obrazovky ukazuje, jak vytvořit uživatelsky definovanou proměnnou pomocí integrovaného vývojového prostředí Apache JMeter.
Místo toho můžete také přímo upravit soubor JMX, jak je znázorněno v tomto příkladu 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.
Syntaxi můžete
${}použít 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 skriptu Apache JMeter, můžete zátěžový test nakonfigurovat v souboru 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 JMeter skriptu Apache.
Chcete-li určit proměnnou prostředí pro zátěžový test pomocí Azure Portal, proveďte následující kroky:
Na stránce konfigurace testu, přejít na kartu parametry .
V části proměnné prostředí zadejte název a hodnotu proměnné prostředí a pak vyberte Apply (použít).
Pokud spustíte zátěžový test v pracovním postupu CI/CD, můžete definovat proměnné prostředí v souboru konfigurace testu YAML. Další informace o syntaxi naleznete v tématu test Configuration YAML reference.
Případně můžete také přímo zadat proměnné prostředí v definici pracovního postupu CI/CD. pomocí vstupních parametrů pro akci GitHub nebo úlohy Azure Pipelines předáte do skriptu Apache JMeter proměnné prostředí.
následující fragment kódu YAML ukazuje příklad akcí GitHub.
- 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 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
Jsou moje hodnoty tajných kódů uložené službou Azure Load Testing?
No. Hodnoty tajných kódů nejsou uloženy službou Azure Load Testing. Při použití Azure Key Vault identifikátor URI tajného klíče ukládá služba pouze tajný identifikátor URI a načítá hodnotu tajného kódu pro každý testovací běh. Pokud jste zadali hodnotu tajných kódů v pracovním postupu CI/CD, tajné hodnoty nejsou po spuštění testu k dispozici. Tyto hodnoty zadáte pro každý testovací běh.
Co se stane, když mám parametry v konfiguračním souboru YAML i v pracovním postupu CI/CD?
pokud parametr existuje v konfiguračním souboru YAML i v úloze Azure Pipelines nebo akce GitHub, bude pro testovací běh použit Azure Pipelines úkol nebo hodnota GitHub akce.
Vytvořili jste a spustili test z pracovního postupu CI/CD tím, že předáte parametry pomocí úlohy nebo akce testování zatížení Azure. Je možné spustit tento test ze Azure Portal se stejnými parametry?
Hodnoty parametrů nejsou uloženy, pokud jsou předány z pracovního postupu CI/CD. Po spuštění testu z Azure Portal budete muset zadat hodnoty parametrů znovu. Zobrazí se výzva k zadání chybějících hodnot. V případě tajných hodnot zadáte Azure Key Vault identifikátor URI tajného klíče. Hodnoty zadané v testovacím běhu nebo na stránce pro opětovné spuštění jsou platné pouze pro tento testovací běh. Pro provádění změn na úrovni testu, přejít na Konfigurace testu a zadání hodnot parametrů.