Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Z tego artykułu dowiesz się, jak przekazywać tajne informacje i środowiska jako parametry testu obciążeniowego w usłudze Azure Load Testing. Parametry umożliwiają zmianę zachowania testu obciążeniowego bez konieczności edytowania skryptu Apache JMeter lub Locust. Aby na przykład przetestować aplikację internetową, określ adres URL punktu końcowego jako parametr umożliwiający ponowne użycie skryptu testowego w wielu środowiskach. Możesz również użyć parametrów, aby uniknąć konieczności kodowania poufnych informacji w skry skryptie testowym.
Usługa Azure Load Testing obsługuje dwa typy parametrów:
Wpisy tajne: zawierają poufne informacje i są bezpiecznie przekazywane do aparatu testów obciążeniowych. Na przykład tajne hasła umożliwiają dostęp do poświadczeń usługi internetowej, zamiast kodować je na stałe w skrypcie testowym. Aby uzyskać więcej informacji, zobacz Konfigurowanie testów obciążeniowych z użyciem sekretów.
Zmienne środowiskowe: zawierają informacje niewrażliwe i są dostępne jako zmienne środowiskowe w aucie testów obciążeniowych. Na przykład zmienne środowiskowe umożliwiają skonfigurowanie adresu URL punktu końcowego aplikacji. Aby uzyskać więcej informacji, zobacz Konfigurowanie testów obciążeniowych przy użyciu zmiennych środowiskowych.
Parametry można określić w konfiguracji testu obciążeniowego podczas tworzenia nowego testu lub aktualizowania istniejącego testu. Jeśli uruchomisz test obciążeniowy w przepływie pracy CI/CD, zdefiniuj parametry w pliku konfiguracji testu obciążeniowego lub w definicji.
Wymagania wstępne
Konto Azure z aktywną subskrypcją. Jeśli nie masz subskrypcji Azure, przed rozpoczęciem utwórz darmowe konto.
Zasób testowania obciążenia platformy Azure. Jeśli musisz utworzyć zasób usługi Azure Load Testing, zobacz szybki start przewodnika Tworzenie i uruchamianie testu obciążeniowego.
Konfigurowanie testów obciążeniowych przy użyciu tajnych danych
W tej sekcji dowiesz się, jak przekazywać wpisy tajne do skryptu testu obciążeniowego w usłudze Azure Load Testing. Możesz na przykład użyć tajemnicy, aby przekazać klucz interfejsu API do punktu końcowego usługi internetowej, który testujesz pod kątem obciążenia. Zamiast przechowywać klucz interfejsu API w konfiguracji lub na stałe kodować go w skrypcie, możesz zapisać go w magazynie sekretów, aby ściśle kontrolować dostęp do sekretu.
Testowanie obciążenia Azure umożliwia przechowywanie sekretów w usłudze Azure Key Vault. Alternatywnie, gdy uruchamiasz test obciążeniowy w pipeline CI/CD, możesz również użyć magazynu tajnych danych powiązanego z technologią CI/CD, taką jak Azure Pipelines lub GitHub Actions.
Aby używać sekretów wraz z Azure Load Testing, wykonaj następujące kroki:
- Zapisz wartość tajną w magazynie tajnym (usługa Azure Key Vault lub magazyn tajemnic CI/CD).
- Przekaż odwołanie do tajemnicy do skryptu testowego Apache JMeter.
- W przypadku testów opartych na JMeter użyj wartości tajnej w skrypcie testowym Apache JMeter, korzystając z funkcji niestandardowej
GetSecret. W przypadku testów opartych na Locust użyj wartości tajnej, odczytując ją ze zmiennych środowiskowych.
Ważne
Funkcję niestandardową można używać tylko podczas uruchamiania skryptu GetSecret testowego JMeter za pomocą usługi testowania obciążenia w Azure. Jeśli uruchamiasz skrypt testowy lokalnie, musisz zaktualizować skrypt testowy i odczytać wartości tajne w inny sposób.
Używaj Azure Key Vault do przechowywania tajnych testów obciążeniowych
Za pomocą usługi Azure Key Vault możesz przekazać wartości tajnych do skryptu testowego w usłudze Azure Load Testing. Dodasz odwołanie do tajemnicy w konfiguracji Azure Load Testing. Usługa Azure Load Testing następnie używa tego odwołania do pobierania wartości tajnej w skrypcie testowym.
Musisz również udzielić usłudze Azure Load Testing dostępu do usługi Azure Key Vault, aby pobrać wartość tajemnicy.
Uwaga / Notatka
Jeśli uruchamiasz test obciążeniowy w ramach procesu ciągłej integracji/ciągłego wdrażania, możesz również skorzystać z powiązanej przechowalni tajemnic. Przejdź do Użycie magazynu wpisów tajnych CI/CD.
Utwórz sekret w usłudze Azure Key Vault
Dodaj wartość tajną do magazynu kluczy, jeśli jeszcze tego nie zrobiłeś.
Ważne
Jeśli dostęp do usługi Azure Key Vault został ograniczony przez zaporę lub sieć wirtualną, wykonaj następujące kroki, aby udzielić dostępu do zaufanych usług platformy Azure.
Pobierz identyfikator tajnego wpisu magazynu kluczy dla swojej tajemnicy. Tajnego identyfikatora używa się do konfigurowania testu obciążeniowego.
Identyfikator wpisu tajnego jest pełnym identyfikatorem URI wpisu tajnego w usłudze Azure Key Vault. Opcjonalnie możesz również dołączyć numer wersji. Na przykład:
https://myvault.vault.azure.net/secrets/mysecret/lubhttps://myvault.vault.azure.net/secrets/mysecret/abcdef01-2345-6789-0abc-def012345678.
Dodaj tajemnicę do testu obciążeniowego
Odwołaj się do sekretu w konfiguracji testu obciążeniowego.
Należy zdefiniować parametr tajnego klucza testu obciążeniowego dla każdej tajnej wartości, do której odwołujesz się w skrypcie testowym. Nazwa parametru powinna być zgodna z nazwą sekretu, której używasz w skrypcie testowym. Wartość parametru to identyfikator zabezpieczeń w magazynie kluczy.
Parametry tajne można określić, wykonując jedną z następujących czynności:
W witrynie Azure Portal wybierz test obciążeniowy, wybierz pozycję Konfiguruj, wybierz kartę Parametry , a następnie wprowadź szczegóły parametru.
Jeśli konfigurujesz przepływ pracy CI/CD i używasz usługi Azure Key Vault, możesz określić sekret w pliku konfiguracji YAML, używając właściwości
secrets. Aby uzyskać więcej informacji na temat składni, zobacz referencję konfiguracji testów YAML.
Określ tożsamość, którą usługa Azure Load Testing używa do uzyskania dostępu do Twoich tajemnic w Azure Key Vault.
Tożsamość może być tożsamością przypisaną przez system zasobu testowania obciążenia lub jedną z tożsamości przypisanych przez użytkownika. Upewnij się, że używasz tej samej tożsamości, której udzielono wcześniej dostępu.
Tożsamość referencyjną magazynu kluczy można określić, wykonując jedną z następujących czynności:
W witrynie Azure Portal wybierz test obciążeniowy, wybierz pozycję Konfiguruj, wybierz kartę Parametry, a następnie skonfiguruj tożsamość referencyjną usługi Key Vault.
Jeśli konfigurujesz przepływ pracy CI/CD i używasz usługi Azure Key Vault, możesz określić tożsamość referencyjną w pliku konfiguracji YAML przy użyciu właściwości
keyVaultReferenceIdentity. Aby uzyskać więcej informacji na temat składni, zobacz referencję konfiguracji testów YAML.
Udzielanie dostępu do usługi Azure Key Vault
Podczas przechowywania tajnych danych testów obciążeniowych lub certyfikatów w usłudze Azure Key Vault, zasób testowania obciążenia używa tożsamości zarządzanej do uzyskiwania dostępu do usługi Key Vault. Po skonfigurowaniu tożsamości zarządzanej należy udzielić tożsamości zarządzanej uprawnień do zasobu testowania obciążenia, aby mogła odczytać te wartości z magazynu kluczy.
Aby przyznać zasobom testowania obciążenia Azure uprawnienia do odczytywania sekretów lub certyfikatów z Azure Key Vault:
W witrynie Azure Portal przejdź do zasobu usługi Azure Key Vault.
Jeśli nie masz magazynu kluczy, postępuj zgodnie z instrukcjami w przewodniku Szybki start usługi Azure Key Vault, aby go utworzyć.
W okienku po lewej stronie wybierz pozycję Zasady dostępu, a następnie wybierz pozycję + Utwórz.
Na karcie Uprawnienia, w sekcji Tajne uprawnienia, wybierz pozycję Pobierz, a następnie wybierz pozycję Dalej.
Uwaga / Notatka
Testowanie obciążenia platformy Azure pobiera certyfikaty jako klucz tajny , aby upewnić się, że klucz prywatny certyfikatu jest dostępny.
Na karcie Główna wyszukaj i wybierz tożsamość zarządzaną dla zasobu testowania obciążenia, a następnie wybierz Dalej.
Jeśli używasz tożsamości zarządzanej przypisanej przez system, nazwa tożsamości zarządzanej jest zgodna z nazwą zasobu testowania obciążenia platformy Azure.
Ponownie wybierz przycisk Dalej .
Gdy test zostanie uruchomiony, tożsamość zarządzana skojarzona z zasobem testowania obciążenia może teraz odczytywać tajemnice lub certyfikaty związane z twoim testem obciążeniowym z repozytorium kluczy.
Teraz, po dodaniu oraz skonfigurowaniu wpisu tajnego w usłudze Azure Key Vault dla testu obciążeniowego, możesz przejść do sekcji Korzystanie z wpisów tajnych w narzędziu Apache JMeter.
Użyj magazynu wpisów tajnych CI/CD do zapisywania tajemnic testu obciążenia.
Jeśli używasz Azure Load Testing w przepływie CI/CD, możesz również użyć skojarzonego magazynu tajemnic. Możesz na przykład użyć wpisów tajnych repozytorium GitHub lub zmiennych wpisów tajnych w usłudze Azure Pipelines.
Uwaga / Notatka
Jeśli używasz już magazynu kluczy, możesz również użyć go do przechowywania tajnych danych testu obciążeniowego. Przejdź do sekcji Korzystanie z usługi Azure Key Vault.
Aby używać wpisów tajnych w magazynie wpisów tajnych ciągłej integracji/ciągłego wdrażania i przekazać je do testu obciążeniowego w ciągłej integracji/ciągłego wdrażania:
Dodaj wartość tajną do magazynu tajnych danych CI/CD, jeśli jeszcze nie istnieje.
W usłudze Azure Pipelines możesz edytować potok i dodać zmienną.
W usłudze GitHub można używać sekretów repozytorium GitHub.
Uwaga / Notatka
Pamiętaj, aby użyć rzeczywistej wartości tajnej, a nie identyfikatora tajnego magazynu kluczy jako wartości.
Przekaż wpis tajny jako parametr wejściowy do zadania/akcji testowania obciążenia w przepływie pracy ciągłej integracji/ciągłego wdrażania.
Poniższy fragment kodu YAML pokazuje, jak przekazać tajemnicę do akcji GitHub testowania obciążenia:
- 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 }}" } ]Poniższy fragment kodu YAML pokazuje, jak przekazać sekret do zadania usługi Azure Pipelines.
- task: AzureLoadTest@1 inputs: azureSubscription: 'MyAzureLoadTestingRG' loadTestConfigFile: 'SampleApp.yaml' loadTestResource: 'MyTest' resourceGroup: 'loadtests-rg' secrets: | [ { "name": "appToken", "value": "$(mySecret)" } ]Ważne
Nazwa tajnego parametru wejściowego musi być zgodna z nazwą używaną w skrypie Apache JMeter.
Określiłeś teraz tajny wpis w magazynie CI/CD i przekazałeś go do usługi Azure Load Testing. Teraz możesz użyć sekretu w skrypcie Apache JMeter.
Używanie tajemnic w skrypcie testowym
Następnie zaktualizuj skrypt testowy, aby używał wcześniej określonego sekretu.
Najpierw należy utworzyć zmienną zdefiniowaną przez użytkownika, która pobiera wartość wpisu tajnego. Następnie możesz użyć tej zmiennej w teście (na przykład do przekazania tokenu interfejsu API w nagłówku żądania HTTP).
Utwórz zmienną zdefiniowaną przez użytkownika w pliku JMX i przypisz do niej wartość wpisu tajnego przy użyciu funkcji niestandardowej
GetSecret.Funkcja
GetSecret(<my-secret-name>)przyjmuje nazwę wpisu tajnego jako argument. Ta sama nazwa jest używana podczas konfigurowania testu obciążeniowego w późniejszym kroku.Zmienną zdefiniowaną przez użytkownika można utworzyć przy użyciu środowiska IDE Apache JMeter, jak pokazano na poniższej ilustracji:
Alternatywnie możesz bezpośrednio edytować plik JMX, jak pokazano w tym przykładowym fragmencie kodu:
<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>Odwołuj się do zmiennej zdefiniowanej przez użytkownika w skry skryptie testowym.
Składnia
${}służy do odwołowania się do zmiennej w skry skryptzie. W poniższym przykładzie użyjesz zmiennejudv_appToken, aby ustawić nagłówek 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>
Konfigurowanie testów obciążeniowych przy użyciu zmiennych środowiskowych
W tej sekcji użyjesz zmiennych środowiskowych, aby przekazać parametry do testu obciążeniowego.
Zaktualizuj skrypt Apache JMeter, aby użyć zmiennej środowiskowej (na przykład w celu skonfigurowania nazwy hosta punktu końcowego aplikacji).
Skonfiguruj test obciążeniowy i przekaż zmienną środowiskową do skryptu testowego.
Używanie zmiennych środowiskowych w narzędziu Apache JMeter
W tej sekcji zaktualizujesz skrypt Apache JMeter, aby używać zmiennych środowiskowych do kontrolowania zachowania skryptu.
Najpierw zdefiniuj zmienną zdefiniowaną przez użytkownika, która odczytuje zmienną środowiskową, a następnie możesz użyć tej zmiennej w wykonaniu testu (na przykład w celu zaktualizowania domeny HTTP).
Utwórz zmienną zdefiniowaną przez użytkownika w pliku JMX i przypisz do niej wartość zmiennej środowiskowej
System.getenvprzy użyciu funkcji .Funkcja
System.getenv("<my-variable-name>")przyjmuje nazwę zmiennej środowiskowej jako argument. Ta sama nazwa jest używana podczas konfigurowania testu obciążeniowego.Zmienną zdefiniowaną przez użytkownika można utworzyć przy użyciu środowiska IDE Apache JMeter, jak pokazano na poniższej ilustracji:
Alternatywnie możesz bezpośrednio edytować plik JMX, jak pokazano w tym przykładowym fragmencie kodu:
<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>Odwołuj się do zmiennej zdefiniowanej przez użytkownika w skry skryptie testowym.
Składnia
${}służy do odwołowania się do zmiennej w skry skryptzie. W poniższym przykładzie użyjesz zmiennejudv_webappdo skonfigurowania adresu URL punktu końcowego aplikacji.<stringProp name="HTTPSampler.domain">${udv_webapp}</stringProp>
Konfigurowanie zmiennych środowiskowych w usłudze Azure Load Testing
Aby przekazać zmienne środowiskowe do skryptu testowego, możesz skonfigurować test obciążeniowy w portalu Azure, w pliku konfiguracji testu YAML lub bezpośrednio w przepływie pracy CI/CD.
Ważne
Podczas definiowania zmiennej środowiskowej dla testu obciążeniowego jego nazwa musi być zgodna z nazwą zmiennej użytej w skryfcie testowym.
Aby określić zmienną środowiskową do testu obciążeniowego przy użyciu witryny Azure Portal, wykonaj następujące czynności:
Na stronie konfiguracja testu wybierz kartę Parametry .
W sekcji Zmienne środowiskowe wprowadź zmienną środowiskową Nazwa i Wartość, a następnie wybierz pozycję Zastosuj.
Jeśli uruchomisz test obciążeniowy w przepływie pracy ciągłej integracji/ciągłego wdrażania, możesz zdefiniować zmienne środowiskowe w pliku konfiguracji testu YAML. Aby uzyskać więcej informacji na temat składni, zobacz referencję konfiguracji testów YAML.
Alternatywnie można bezpośrednio określić zmienne środowiskowe w definicji workflowu ciągłej integracji i wdrażania. Do przekazania zmiennych środowiskowych do skryptu testowego należy użyć parametrów wejściowych dla akcji testowania obciążenia platformy Azure lub zadania usługi Azure Pipelines.
Poniższy fragment kodu YAML przedstawia przykład funkcji 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"
}
]
Poniższy fragment kodu YAML przedstawia przykład usługi Azure Pipelines:
- task: AzureLoadTest@1
inputs:
azureSubscription: 'MyAzureLoadTestingRG'
loadTestConfigFile: 'SampleApp.yaml'
loadTestResource: 'MyTest'
resourceGroup: 'loadtests-rg'
env: |
[
{
"name": "webapp",
"value": "myapplication.contoso.com"
}
]
Często zadawane pytania
Czy usługa Azure Load Testing przechowuje moje tajne wartości?
Nie. Usługa Azure Load Testing nie przechowuje wartości tajemnic. Gdy używasz identyfikatora URI sekretu w magazynie kluczy, usługa przechowuje tylko ten identyfikator URI i pobiera wartość sekretu dla każdego uruchomienia testu. Jeśli podasz wartości tajnych w przepływie pracy CI/CD, wartości tajnych nie będą dostępne po wykonaniu testów. Te wartości należy podać dla każdego przebiegu testu.
Co się stanie, jeśli mam parametry zarówno w pliku konfiguracji YAML, jak i w przepływie pracy CI/CD?
Jeśli parametr istnieje zarówno w pliku konfiguracji YAML, jak i w akcji testowania obciążenia platformy Azure lub zadaniu Azure Pipelines, używana jest wartość z przepływu pracy CI/CD dla przebiegu testu.
Stworzyłem i uruchomiłem test z mojego przepływu pracy CI/CD, przekazując parametry za pomocą zadania lub akcji Azure Load Testing. Czy mogę uruchomić ten test w witrynie Azure Portal z tymi samymi parametrami?
Wartości parametrów nie są przechowywane podczas przekazywania z procesu CI/CD. Po uruchomieniu testu w witrynie Azure Portal należy ponownie podać wartości parametrów. Zostanie wyświetlony monit o wprowadzenie brakujących wartości. W przypadku wartości wpisów tajnych należy wprowadzić identyfikator URI wpisu tajnego magazynu kluczy. Wartości wprowadzone na stronie przebiegu testu lub ponownego uruchamiania są prawidłowe tylko dla tego przebiegu testu. Aby wprowadzić zmiany na poziomie testu, przejdź do pozycji Konfigurowanie testu i wprowadź wartości parametrów.
Treści powiązane
- Użyj sekretów do przeprowadzenia testu obciążeniowego zabezpieczonych punktów końcowych.
- Aby uzyskać więcej informacji na temat odczytywania plików CSV, zobacz Odczytywanie plików CSV w testach obciążeniowych.