Gizli diziler ve ortam değişkenleriyle yapılandırılabilir yük testleri yapma
Apache JMeter betiğinde değişiklik yapmadan yük testinin davranışını değiştirme hakkında bilgi alın. Azure Load Testing Preview ile, yapılandırılabilir bir test betiği yapmak için parametreleri kullanabilirsiniz. Örneğin, test betiğinizi birden çok ortamda yeniden kullanmak için uygulama uç noktasını bir parametreye dönüştürebilirsiniz.
Azure Load Testing hizmeti iki tür parametreyi destekler:
Gizli diziler: Hassas bilgiler içerir ve yük testi altyapısına güvenli bir şekilde geçiriler. Örneğin, bunları test betiğinde sabit kodlamak yerine web hizmeti kimlik bilgilerini sağlamak için. Daha fazla bilgi için bkz. Gizli dizilerle yük testlerini yapılandırma.
Ortam değişkenleri: Hassas olmayan bilgiler içerir ve yük testi altyapısında ortam değişkenleri olarak kullanılabilir. Örneğin, uygulama uç noktası URL'sini yapılandırılabilir yapmak için. Daha fazla bilgi için bkz. Ortam değişkenleriyle yük testlerini yapılandırma.
Önemli
Azure Load Testing şu anda önizleme aşamasındadır. Beta veya önizleme aşamasında olan ya da başka bir şekilde henüz genel kullanıma sunulmamış olan Azure özelliklerinde geçerli olan yasal koşullar için bkz. Microsoft Azure Önizlemeleri için Ek Kullanım Koşulları.
Önkoşullar
Etkin aboneliği olan bir Azure hesabı. Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.
Azure Load Testing kaynağı. Azure Load Testing kaynağı oluşturmanız gerekirse, Hızlı başlangıç: Yük testi oluşturma ve çalıştırma.
Gizli dizilerle yük testlerini yapılandırma
Bu bölümde, yük testi betiğinize gizli dizileri geçecek şekilde yük testini yapılandırabilirsiniz.
Apache JMeter betiği, gizli giriş parametresini kabul etmek ve kullanmak için güncelleştirin. Örneğin, bir HTTP üst bilgisine iletin bir web hizmeti kimlik doğrulama belirteci.
Gizli değer, erişimi sıkı bir şekilde denetlemeye olanak sağlayan bir gizli depoda depolar. Azure Load Testing, Azure Key Vault CI/CD iş akışınıza bağlı gizli depo ile tümleştirilmiştir.
Yük testini yapılandırma ve gizli bilgi için bir başvuruyu test betiğine iletir.
Apache JMeter'da gizli dizileri kullanma
Bu bölümde Apache JMeter betiklerini giriş parametresi olarak gizli bir gizli kod kullanmak üzere güncelleştirin.
İlk olarak, gizli değer alan kullanıcı tanımlı bir değişken tanımlay belirli bir değere sahip olur. Ardından, bu değişkeni test yürütmesinde kullanabilirsiniz, örneğin bir HTTP isteği üst bilgisi ayarlamak için.
JMX dosyanıza kullanıcı tanımlı bir değişken oluşturun ve özel işlevi kullanarak gizli değer
GetSecretattayın.işlevi
GetSecret(<my-secret-name>)gizli adı bağımsız değişken olarak alır. Yük testini sonraki bir adımda yapılandırarak aynı adı kullanacağız.Aşağıdaki ekran görüntüsünde Apache JMeter IDE kullanarak kullanıcı tanımlı değişken oluşturma adımları yerlanmaktadır.
Bunun yerine, bu örnek kod parçacığında gösterildiği gibi JMX dosyasını doğrudan da düzenleyebilirsiniz:
<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>Test betiğinde kullanıcı tanımlı değişkene başvurun.
Betikte
${}değişkene başvuru yapmak için söz dizimlerini kullanabilirsiniz. Aşağıdaki örnekte değişkeni kullanarak birudv_appTokenHTTP üst bilgisi ayarlayabilirsiniz.<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>
Use Azure Key Vault
Azure portal veya YAML testyapılandırma dosyası kullanarak bir yük testi yapılandırmasını kullanarak bir gizli Azure Key Vault kullanırsiniz.
Not
CI/CD işleminizin bir parçası olarak bir yük testi çalıştıracaksanız ilgili gizli depo da kullanabilirsiniz. CI/CD gizli anahtar depolarını kullanma adımına atla.
Henüz mevcut Azure Key Vaultgizli Azure Key Vault'a ekleyin.
Gizli Key Vault tanımlayıcısını alın. Yük testini yapılandırmak için bu gizli kimlik tanımlayıcısını kullan.
Gizli bilgi tanımlayıcısı, gizli Azure Key Vault. İsteğe bağlı olarak, bir sürüm numarası da dahil olabilir. Örneğin
https://myvault.vault.azure.net/secrets/mysecret/veyahttps://myvault.vault.azure.net/secrets/mysecret/abcdef01-2345-6789-0abc-def012345678olabilir.Azure Load Testing kaynağınıza Key Vault.
Azure Load Testing kaynağınız gizli dizileri Azure Key Vault. Önce Yük Testi kaynağınız için sistem tarafından atanan yönetilen kimliği etkinleştirebilirsiniz. Ardından, bu yönetilen kimliğe okuma izinleri ve ardından izinler ve ardından bu kimlik için okuma izinleri ve sonra da bu kimlik için okuma izni vesersiniz.
Uygulamanıza Azure Load Testing erişimi Key Vault bkz. Azure Load Testing için yönetilen kimlikleri kullanma.
Yük testi yapılandırmasında gizli anahtarına başvurun.
Apache JMeter betiğinde başvurladığınız her gizli kod için bir yük testi gizli dosyası parametresi tanımlayın. Parametre adı, test betiğinde kullanılan adla eşleşmeli. Gizli parametre değeri, güvenlik Key Vault değeridir.
Gizli dizi parametrelerini Azure portal veya yük testi YAML yapılandırma dosyasında belirtebilirsiniz.
Giriş Azure portal yük testini seçin, Yapılandır'ı seçin ve ardından Parametreler sekmesine parametre ayrıntılarını girin.
Bunun yerine YAML yapılandırma dosyasında bir gizli anahtarı da belirtebilirsiniz. Söz dizimi hakkında daha fazla bilgi için Test yapılandırması YAML başvurusuna bakın.
CI/CD gizli anahtar depolarını kullanma
CI/CD iş akışında Azure Load Testing kullanıyorsanız ilişkili gizli depo da kullanabilirsiniz. Örneğin, depo gizli dizilerini GitHub gizli dizileriniveya gizli dizi değişkenlerini Azure Pipelines.
Not
Önceden bir Azure Key Vault, yük testi gizli dizilerini depolamak için de kullanabilirsiniz. Azure KeyVault'un Kullanımına Atla.
Henüz yoksa, gizli anahtar değerini CI/CD gizli anahtar deposuna ekleyin.
Bu Azure Pipelines işlem hattını düzenleyebilir ve bir değişken eklersiniz.
Bu GitHub depo gizli dizilerini GitHub kullanabilirsiniz.
Not
Değer olarak gizli Key Vault değil gerçek gizli Key Vault emin olun.
Gizli parolayı CI/CD iş akışında Yük Testi görevi/eylemi için giriş parametresi olarak iletir.
Aşağıdaki YAML kod parçacığında GitHub Actions örneği yer a gösterir.
- 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 }}", } ]Aşağıdaki YAML kod parçacığında bir Azure Pipelines örneği yer alelade.
- task: AzureLoadTest@1 inputs: azureSubscription: 'MyAzureLoadTestingRG' loadTestConfigFile: 'SampleApp.yaml' loadTestResource: 'MyTest' resourceGroup: 'loadtests-rg' secrets: | [ { "name": "appToken", "value": "$(mySecret)", } ]Önemli
Gizli parametrenin adının Apache JMeter betiğinde kullanılan adla eşleşmesi gerekir.
Yük testlerini ortam değişkenleriyle yapılandırma
Bu bölümde, parametreyi yük teste geçmek için ortam değişkenlerini kullanasınız.
Ortam değişkenlerini kullanmak için Apache JMeter betiği güncelleştirildi. Örneğin, uygulama uç noktası ana bilgisayar adını yapılandırmak için.
Yük testini yapılandırma ve ortam değişkenini test betiğine geçmesi.
Apache JMeter'da ortam değişkenlerini kullanma
Bu bölümde Apache JMeter betiği, betik davranışını kontrol etmek için ortam değişkenlerini kullanmak üzere güncelleştirilmektedir.
İlk olarak, ortam değişkenlerini okumak için kullanıcı tanımlı bir değişken tanımlayabilirsiniz. Ardından, bu değişkeni örneğin HTTP etki alanını güncelleştirmek için test yürütmesinde kullanabilirsiniz.
JMX dosyanız içinde kullanıcı tanımlı bir değişken oluşturun ve işlevini kullanarak ortam değişkeninin değerini buna
System.getenvattayın.İşlev,
System.getenv("<my-variable-name>")ortam değişkeni adını bağımsız değişken olarak alır. Yük testini yapılandırarak aynı adı kullanıcaz.Aşağıdaki ekran görüntüsünde Apache JMeter IDE kullanarak kullanıcı tanımlı değişken oluşturma adımları yerlanmaktadır.
Bunun yerine, bu örnek kod parçacığında gösterildiği gibi JMX dosyasını doğrudan da düzenleyebilirsiniz:
<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>Test betiğinde kullanıcı tanımlı değişkene başvurun.
Betikte
${}değişkene başvuru yapmak için söz dizimlerini kullanabilirsiniz. Aşağıdaki örnekte, uygulama uç noktasıudv_webappURL'sini yapılandırmak için değişkenlerini kullanırsiniz.<stringProp name="HTTPSampler.domain">${udv_webapp}</stringProp>
Azure Load Testing'de ortam değişkenlerini yapılandırma
Ortam değişkenlerini Apache JMeter betiğine geçmek için yük testini Azure portal, YAML test yapılandırma dosyasında veya doğrudan CI/CD iş akışında yapılandırabilirsiniz.
Önemli
Yük testi için ortam değişkenini tanımladığınız zaman, adı Apache JMeter betiğinde kullanılan değişken adıyla eşleşmeli.
Aşağıdaki adımları gerçekleştirerek yük testinde bir ortam Azure portal belirtin:
Test yapılandırması sayfasında Parametreler sekmesine gidin.
Ortam Değişkenleri bölümünde Ad ve Değer ortam değişkenlerini girin ve Uygula'ya tıklayın.
Yük testini CI/CD iş akışında çalıştırırsanız YAML test yapılandırma dosyasında ortam değişkenlerini tanımlayabilirsiniz. Söz dizimi hakkında daha fazla bilgi için Test yapılandırması YAML başvurusuna bakın.
Alternatif olarak, CI/CD iş akışı tanımında ortam değişkenlerini de doğrudan belirtebilirsiniz. Ortam değişkenlerini Apache JMeter betiğine GitHub Eylem veya Azure Pipelines görev için giriş parametrelerini kullanırsınız.
Aşağıdaki YAML kod parçacığında GitHub Actions örneği yer a gösterir.
- name: 'Azure Load Testing'
uses: azure/load-testing
with:
loadtestConfigFile: 'SampleApp.yaml'
loadtestResource: 'MyTest'
resourceGroup: 'loadtests-rg'
env: |
[
{
"name": "webapp",
"value": "myapplication.contoso.com",
}
]
Aşağıdaki YAML kod parçacığında bir Azure Pipelines yer ve açıklama yer alazıdır.
- task: AzureLoadTest@1
inputs:
azureSubscription: 'MyAzureLoadTestingRG'
loadTestConfigFile: 'SampleApp.yaml'
loadTestResource: 'MyTest'
resourceGroup: 'loadtests-rg'
env: |
[
{
"name": "webapp",
"value": "myapplication.contoso.com",
}
]
SSS
Gizli dizi değerlerim Azure Load Testing hizmeti tarafından mı depolanıyor?
Hayır. Gizli dizilerin değerleri Azure Load Testing hizmeti tarafından depolanmış olmaz. Bir gizli Azure Key Vault URI'sini kullanırken, hizmet yalnızca gizli URI'yi depolar ve her test çalıştırması için gizli URI'nin değerini getirir. Gizli dizilerin değerini CI/CD iş akışında sağladıysanız, gizli dizi değerleri test çalıştırması sonrasında kullanılamaz. Her test çalıştırması için bu değerleri sağlayacaksınız.
Hem YAML yapılandırma dosyamda hem de CI/CD iş akışında parametrelerim varsa ne olur?
Hem YAML yapılandırma dosyasında hem de Azure Pipelines görevinde veya GitHub Action'da bir parametre varsa, test çalıştırması için Azure Pipelines görevi veya GitHub Eylemi değeri kullanılır.
Azure Yük Testi görevini / eylemini kullanarak parametreleri geçerek CI/CD iş akışımdan bir test oluşturdum ve çalıştırdı. Bu testi aynı parametrelerle Azure portal çalıştıracak musunuz?
Parametrelerin değerleri CI/CD iş akışından geçirildiklerde depolanmaz. Test testini testten çalıştırarak parametre değerlerini yeniden Azure portal. Eksik değerleri girmeniz istenir. Gizli değer olarak gizli URI'Azure Key Vault girersiniz. Test çalıştırması veya yeniden çalıştırma sayfasına girilen değerler yalnızca bu test çalıştırması için geçerlidir. Test düzeyinde değişiklik yapmak için Testi Yapılandır'a gidin ve parametre değerlerinizi girin.