Configureerbare belastingstests maken met geheimen en omgevingsvariabelen
Meer informatie over het wijzigen van het gedrag van een belastingstest zonder wijzigingen aan te brengen in het Apache JMeter-script. Met Azure Load Testing Preview kunt u parameters gebruiken om een configureerbaar testscript te maken. Zet het eindpunt van de toepassing bijvoorbeeld om in een parameter om uw testscript opnieuw te gebruiken in meerdere omgevingen.
De Azure Load Testing-service ondersteunt twee typen parameters:
Geheimen: bevatten gevoelige informatie en worden veilig doorgegeven aan de belastingtest-engine. Bijvoorbeeld om webservicereferenties op te geven in plaats van ze hard te coderen in het testscript. Zie Belastingstests configureren met geheimen voor meer informatie.
Omgevingsvariabelen: bevatten niet-gevoelige informatie en zijn beschikbaar als omgevingsvariabelen in de belastingtest-engine. Bijvoorbeeld om de EINDPUNT-URL van de toepassing configureerbaar te maken. Zie Belastingstests configureren met omgevingsvariabelen voor meer informatie.
Belangrijk
Azure Load Testing is momenteel beschikbaar als preview-versie. Raadpleeg de Aanvullende voorwaarden voor Microsoft Azure-previews voor juridische voorwaarden die van toepassing zijn op Azure-functies die in bèta of preview zijn of die anders nog niet algemeen beschikbaar zijn.
Vereisten
Een Azure-account met een actief abonnement. Als u nog geen abonnement op Azure hebt, maak dan een gratis account aan voordat u begint.
Een Azure Load Testing-resource. Als u een Azure Load Testing-resource moet maken, bekijkt u de quickstart Een belastingstest maken en uitvoeren.
Belastingstests configureren met geheimen
In deze sectie configureert u de belastingstest om geheimen door te geven aan uw belastingstestscript.
Werk het Apache JMeter-script bij om een geheime invoerparameter te accepteren en te gebruiken. Bijvoorbeeld een verificatie-token voor de webservice dat u door geeft aan een HTTP-header.
Sla de geheime waarde op in een geheim opslag, zodat u de toegang nauw kunt controleren. Azure Load Testing kan worden geïntegreerd met Azure Key Vault of met het geheimopslag dat is gekoppeld aan uw CI/CD-werkstroom.
Configureer de belastingstest en geef een verwijzing voor het geheim door aan het testscript.
Geheimen gebruiken in Apache JMeter
In deze sectie gaat u het Apache JMeter-script bijwerken om een geheim als invoerparameter te gebruiken.
Eerst definieert u een door de gebruiker gedefinieerde variabele die de geheime waarde op haalt. Vervolgens kunt u deze variabele gebruiken in de testuitvoering, bijvoorbeeld om een HTTP-aanvraagheader in te stellen.
Maak een door de gebruiker gedefinieerde variabele in uw JMX-bestand en wijs de geheime waarde toe met behulp van de
GetSecretaangepaste functie.De
GetSecret(<my-secret-name>)functie gebruikt de geheime naam als argument. U gebruikt dezelfde naam wanneer u de belastingstest in een latere stap configureert.In de volgende schermopname ziet u hoe u een door de gebruiker gedefinieerde variabele maakt met behulp van de Apache JMeter IDE.
In plaats daarvan kunt u ook het JMX-bestand rechtstreeks bewerken, zoals wordt weergegeven in dit voorbeeldcodefragment:
<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>Verwijs naar de door de gebruiker gedefinieerde variabele in het testscript.
U kunt de
${}syntaxis gebruiken om te verwijzen naar de variabele in het script. In het volgende voorbeeld gebruikt u de variabeleudv_appTokenom een HTTP-header in te stellen.<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>
Gebruik Azure Key Vault
Wanneer u een belastingstest maakt in de Azure Portal of als u een YAML-testconfiguratiebestandgebruikt, gebruikt u een verwijzing naar een Azure Key Vault geheim.
Notitie
Als u een belastingstest als onderdeel van uw CI/CD-proces hebt uitgevoerd, kunt u ook het bijbehorende geheime opslag gebruiken. Ga verder met Het geheime CI/CD-opslag gebruiken.
Voeg het geheim toe Azure Key Vault, als het nog niet bestaat.
Haal de Key Vault voor uw geheim op. U gebruikt deze geheime id om uw belastingstest te configureren.
De geheime id is de volledige URI van het geheim in Azure Key Vault. U kunt eventueel ook een versienummer opnemen. Bijvoorbeeld
https://myvault.vault.azure.net/secrets/mysecret/ofhttps://myvault.vault.azure.net/secrets/mysecret/abcdef01-2345-6789-0abc-def012345678.Verleen uw Azure Load Testing-resource toegang tot Key Vault.
Uw Azure Load Testing-resource heeft geen toestemming om geheimen op te halen uit Azure Key Vault. U gaat eerst door het systeem toegewezen beheerde identiteit inschakelen voor uw resource voor belastingstests. Vervolgens verleent u leesmachtigingen voor deze beheerde identiteit.
Zie Beheerde identiteiten gebruiken voor Azure Load Testingom Azure Load Testing toegang te geven tot uw Key Vault.
Verwijs naar het geheim in de configuratie van de belastingstest.
U definieert een geheimparameter voor belastingstests voor elk geheim waarnaar u verwijst in het Apache JMeter-script. De parameternaam moet overeenkomen met de naam die u in het testscript hebt gebruikt. De waarde van de geheime parameter is de Key Vault beveiligings-id.
U kunt geheimenparameters opgeven in het Azure Portal of in het YAML-configuratiebestand van de belastingtest.
Selecteer in Azure Portal uw belastingstest, selecteer Configureren en voer vervolgens de parameterdetails in het tabblad Parameters in.
In plaats daarvan kunt u ook een geheim opgeven in het YAML-configuratiebestand. Zie de YAML-referentie voor testconfiguratie voor meer informatie over de syntaxis.
Het geheime CI/CD-opslag gebruiken
Als u Azure Load Testing gebruikt in uw CI/CD-werkstroom, kunt u ook het bijbehorende geheime opslag gebruiken. U kunt bijvoorbeeld de opslagplaatsgeheimen GitHubgeheime variabelen in Azure Pipelines gebruiken.
Notitie
Als u al een Azure Key Vault, kunt u deze ook gebruiken om de geheimen van de belastingstest op te slaan. Ga verder met Azure KeyVault gebruiken.
Voeg de geheime waarde toe aan het geheime CI/CD-opslag, als deze nog niet bestaat.
In Azure Pipelines kunt u de pijplijn bewerken en een variabele toevoegen.
In GitHub kunt u de GitHub gebruiken.
Notitie
Zorg ervoor dat u de werkelijke geheime waarde gebruikt en niet de Key Vault geheime id als de waarde.
Geef het geheim door als invoerparameter voor de taak/actie Belasting testen in de CI/CD-werkstroom.
In het volgende YAML-fragment ziet u een voorbeeld GitHub Acties.
- 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 }}", } ]In het volgende YAML-fragment ziet u een Voorbeeld van Azure Pipelines.
- task: AzureLoadTest@1 inputs: azureSubscription: 'MyAzureLoadTestingRG' loadTestConfigFile: 'SampleApp.yaml' loadTestResource: 'MyTest' resourceGroup: 'loadtests-rg' secrets: | [ { "name": "appToken", "value": "$(mySecret)", } ]Belangrijk
De naam van de geheime parameter moet overeenkomen met de naam die wordt gebruikt in het Apache JMeter-script.
Belastingstests configureren met omgevingsvariabelen
In deze sectie gebruikt u omgevingsvariabelen om parameters door te geven aan uw belastingstest.
Werk het Apache JMeter-script bij om de omgevingsvariabele te gebruiken. Bijvoorbeeld om de hostnaam van het toepassings-eindpunt te configureren.
Configureer de belastingstest en geef de omgevingsvariabele door aan het testscript.
Omgevingsvariabelen gebruiken in Apache JMeter
In deze sectie gaat u het Apache JMeter-script bijwerken om omgevingsvariabelen te gebruiken om het scriptgedrag te bepalen.
Eerst definieert u een door de gebruiker gedefinieerde variabele die de omgevingsvariabele leest. Vervolgens kunt u deze variabele gebruiken in de testuitvoering, bijvoorbeeld om het HTTP-domein bij te werken.
Maak een door de gebruiker gedefinieerde variabele in uw JMX-bestand en wijs de waarde van de omgevingsvariabele toe met behulp van de
System.getenvfunctie .De
System.getenv("<my-variable-name>")functie gebruikt de naam van de omgevingsvariabele als argument. U gebruikt dezelfde naam wanneer u de belastingstest configureert.In de volgende schermopname ziet u hoe u een door de gebruiker gedefinieerde variabele maakt met behulp van de Apache JMeter IDE.
In plaats daarvan kunt u ook het JMX-bestand rechtstreeks bewerken, zoals wordt weergegeven in dit voorbeeldcodefragment:
<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>Verwijs naar de door de gebruiker gedefinieerde variabele in het testscript.
U kunt de
${}syntaxis gebruiken om te verwijzen naar de variabele in het script. In het volgende voorbeeld gebruikt u de variabele om de eindpunt-URL van de toepassingudv_webappte configureren.<stringProp name="HTTPSampler.domain">${udv_webapp}</stringProp>
Omgevingsvariabelen configureren in Azure Load Testing
Als u omgevingsvariabelen wilt doorgeven aan het Apache JMeter-script, kunt u de belastingstest configureren in de Azure Portal, in het YAML-testconfiguratiebestand of rechtstreeks in de CI/CD-werkstroom.
Belangrijk
Wanneer u de omgevingsvariabele voor de belastingstest definieert, moet de naam overeenkomen met de naam van de variabele die u in het Apache JMeter-script hebt gebruikt.
Als u een omgevingsvariabele voor de belastingstest wilt opgeven met behulp van de Azure Portal, moet u de volgende stappen uitvoeren:
Ga op de pagina testconfiguratie naar het tabblad Parameters.
Voer in de sectie Omgevingsvariabelen de omgevingsvariabele Naam en Waarde in en selecteer toepassen.
Als u de belastingstest in een CI/CD-werkstroom hebt uitgevoerd, kunt u omgevingsvariabelen definiëren in het YAML-testconfiguratiebestand. Zie de YAML-referentie voor testconfiguratie voor meer informatie over de syntaxis.
U kunt ook rechtstreeks omgevingsvariabelen opgeven in de CI/CD-werkstroomdefinitie. U gebruikt invoerparameters voor de GitHub-actie of Azure Pipelines-taak om omgevingsvariabelen door te geven aan het Apache JMeter-script.
In het volgende YAML-fragment ziet u een voorbeeld GitHub Acties.
- name: 'Azure Load Testing'
uses: azure/load-testing
with:
loadtestConfigFile: 'SampleApp.yaml'
loadtestResource: 'MyTest'
resourceGroup: 'loadtests-rg'
env: |
[
{
"name": "webapp",
"value": "myapplication.contoso.com",
}
]
In het volgende YAML-fragment ziet u een Voorbeeld van Azure Pipelines.
- task: AzureLoadTest@1
inputs:
azureSubscription: 'MyAzureLoadTestingRG'
loadTestConfigFile: 'SampleApp.yaml'
loadTestResource: 'MyTest'
resourceGroup: 'loadtests-rg'
env: |
[
{
"name": "webapp",
"value": "myapplication.contoso.com",
}
]
Veelgestelde vragen
Worden mijn geheimenwaarden opgeslagen door de Azure Load Testing-service?
Nee. De waarden van geheimen worden niet opgeslagen door de Azure Load Testing-service. Wanneer u een geheime Azure Key Vault gebruikt, slaat de service alleen de geheime URI op en haalt de waarde van het geheim op voor elke testrun. Als u de waarde van geheimen in een CI/CD-werkstroom hebt opgegeven, zijn de geheime waarden na de test niet meer beschikbaar. U geeft deze waarden op voor elke testrun.
Wat gebeurt er als ik parameters heb in zowel mijn YAML-configuratiebestand als in de CI/CD-werkstroom?
Als er een parameter bestaat in zowel het YAML-configuratiebestand als de Azure Pipelines-taak of GitHub-actie, wordt de waarde van de Azure Pipelines-taak of GitHub Action gebruikt voor de testrun.
Ik heb een test gemaakt en uitgevoerd vanuit mijn CI/CD-werkstroom door parameters door te geven met behulp van de Azure Load Testing-taak/-actie. Kan ik deze test uitvoeren vanaf Azure Portal dezelfde parameters?
De waarden van de parameters worden niet opgeslagen wanneer ze worden doorgegeven vanuit de CI/CD-werkstroom. U moet de parameterwaarden opnieuw opgeven wanneer u de test vanaf de Azure Portal. U krijgt een prompt om de ontbrekende waarden in te voeren. Voor geheime waarden voert u de geheime URI Azure Key Vault in. De waarden die zijn ingevoerd op de pagina voor het uitvoeren of opnieuw uitvoeren van de test, zijn alleen geldig voor die testuit voeren. Als u wijzigingen wilt aanbrengen op testniveau, gaat u naar Test configureren en geeft u de parameterwaarden op.