Aracılığıyla paylaş


Azure Load Testing'te gizli dizileri ve ortam değişkenlerini kullanma

Bu makalede, Azure Yük Testi'nde bir yük testine parametre olarak gizli dizileri ve ortamları geçirmeyi öğreneceksiniz. Apache JMeter betiğini düzenlemek zorunda kalmadan yük testinin davranışını değiştirmek için parametreleri kullanabilirsiniz. Örneğin, bir web uygulamasını test etmek için, test betiğinizi birden çok ortamda yeniden kullanmak için uç nokta URL'sini parametre olarak belirtin. JMeter test betiğinde hassas bilgileri sabit kodla yazmanız gerekmemesi için parametreleri de kullanabilirsiniz.

Azure Load Testing hizmeti iki parametre türünü destekler:

  • Gizli diziler: Hassas bilgiler içerir ve yük testi altyapısına güvenli bir şekilde geçirilir. Örneğin gizli diziler, test betiğinde sabit kodlama yerine web hizmeti kimlik bilgilerini sağlar. 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, ortam değişkenleri uygulama uç noktası URL'sini yapılandırılabilir hale getirir. Daha fazla bilgi için bkz . Ortam değişkenleriyle yük testlerini yapılandırma.

Yeni bir test oluşturduğunuzda veya mevcut bir testi güncelleştirdiğinizde yük testi yapılandırmasında parametreleri belirtebilirsiniz. CI/CD iş akışınızda bir yük testi çalıştırırsanız, parametreleri yük testi yapılandırma dosyasında veya CI/CD iş akışı tanımında tanımlarsınız.

Önkoşullar

Gizli dizilerle yük testlerini yapılandırma

Bu bölümde, Azure Yük Testi'nde gizli dizileri yük testi betiğinize geçirmeyi öğreneceksiniz. Örneğin, API anahtarını yük testi yaptığınız bir web hizmeti uç noktasına geçirmek için bir gizli dizi kullanabilirsiniz. API anahtarını yapılandırmada depolamak veya betikte sabit kodlamak yerine gizli diziye erişimi sıkı bir şekilde denetlemek için gizli dizi deposuna kaydedebilirsiniz.

Azure Yük Testi, gizli dizileri Azure Key Vault'ta depolamanıza olanak tanır. Alternatif olarak, yük testinizi ci/CD işlem hattında çalıştırdığınızda, Azure Pipelines veya GitHub Actions gibi CI/CD teknolojinizle ilişkili gizli dizi deposunu da kullanabilirsiniz.

Azure Load Testing ile gizli dizileri kullanmak için aşağıdaki adımları gerçekleştirin:

  1. Gizli dizi değerini gizli dizi deposunda (Azure Key Vault veya CI/CD gizli dizi deposu) depolayın.
  2. Apache JMeter test betiğine gizli diziye bir başvuru geçirin.
  3. Özel işlevi kullanarak Apache JMeter test betiğindeki GetSecret gizli dizi değerini kullanın.

Önemli

Özel işlevi yalnızca Azure Load Testing ile JMeter test betiğinizi çalıştırdığınızda kullanabilirsiniz GetSecret . Test betiğinizi yerel olarak çalıştırıyorsanız, test betiğinizi güncelleştirmeniz ve gizli dizi değerlerini farklı bir şekilde okumanız gerekir.

Yük testi gizli dizilerini depolamak için Azure Key Vault kullanma

Azure Load Testing'te test betiğinize gizli dizi değerleri geçirmek için Azure Key Vault'ı kullanabilirsiniz. Azure Yük Testi yapılandırmasında gizli diziye bir başvuru eklersiniz. Ardından Azure Load Testing, Apache JMeter betiğindeki gizli dizi değerini almak için bu başvuruyu kullanır.

Ayrıca gizli dizi değerini almak için Azure anahtar kasanıza Azure Yük Testi erişimi vermeniz gerekir.

Not

CI/CD işleminizin bir parçası olarak bir yük testi çalıştırırsanız, ilgili gizli dizi deposunu da kullanabilirsiniz. CI/CD gizli dizi depoyu kullanma bölümüne atlayın.

Azure Key Vault'ta gizli dizi oluşturma

  1. Henüz yapmadıysanız anahtar kasanıza gizli dizi değerini ekleyin.

    Önemli

    Azure anahtar kasanıza erişimi bir güvenlik duvarı veya sanal ağ ile kısıtladıysanız, güvenilen Azure hizmetlerine erişim vermek için bu adımları izleyin.

  2. Gizli dizinizin anahtar kasası gizli dizi tanımlayıcısını alın. Yük testinizi yapılandırmak için bu gizli dizi tanımlayıcısını kullanırsınız.

    Screenshot that shows the details of a secret in an Azure key vault.

    Gizli dizi tanımlayıcısı , Azure anahtar kasasında gizli dizinin tam URI'sini oluşturur. İsteğe bağlı olarak, bir sürüm numarası da ekleyebilirsiniz. Örneğin, https://myvault.vault.azure.net/secrets/mysecret/ veya https://myvault.vault.azure.net/secrets/mysecret/abcdef01-2345-6789-0abc-def012345678.

Gizli diziyi yük testinize ekleme

  1. Yük testi yapılandırmasında gizli diziye başvurun.

    Apache JMeter betiğinde başvurduğunuz her gizli dizi için bir yük testi gizli dizisi parametresi tanımlarsınız. Parametre adı, Apache JMeter test betiğinde kullandığınız gizli dizi adıyla eşleşmelidir. Parametre değeri anahtar kasası güvenlik tanımlayıcısıdır.

    Aşağıdakilerden birini yaparak gizli dizi parametrelerini belirtebilirsiniz:

    • Azure portalında yük testinizi seçin, Yapılandır'ı seçin, Parametreler sekmesini seçin ve ardından parametre ayrıntılarını girin.

      Screenshot that shows where to add secret details to a load test in the Azure portal.

    • BIR CI/CD iş akışı yapılandırıyor ve Azure Key Vault kullanıyorsanız, özelliğini kullanarak secrets YAML yapılandırma dosyasında bir gizli dizi belirtebilirsiniz. Söz dizimi hakkında daha fazla bilgi için bkz . Test yapılandırması YAML başvurusu.

  2. Azure Load Testing'in Azure Key Vault'taki gizli dizilerinize erişmek için kullandığı kimliği belirtin.

    Kimlik, yük testi kaynağının sistem tarafından atanan kimliği veya kullanıcı tarafından atanan kimliklerden biri olabilir. Daha önce erişim izni vermiş olduğunuz kimliği kullandığınızdan emin olun.

    Aşağıdakilerden birini yaparak anahtar kasası başvuru kimliğini belirtebilirsiniz:

    • Azure portalında yük testinizi seçin, Yapılandır'ı seçin, Parametreler sekmesini seçin ve ardından Key Vault başvuru kimliğini yapılandırın.

      Screenshot that shows how to select key vault reference identity.

    • CI/CD iş akışını yapılandırıyor ve Azure Key Vault kullanıyorsanız yaml yapılandırma dosyasındaki başvuru kimliğini özelliğini kullanarak keyVaultReferenceIdentity belirtebilirsiniz. Söz dizimi hakkında daha fazla bilgi için bkz . Test yapılandırması YAML başvurusu.

Azure anahtar kasanıza erişim izni verme

Yük testi gizli dizilerini veya sertifikalarını Azure Key Vault'ta depoladığınızda, yük testi kaynağınız anahtar kasasına erişmek için yönetilen bir kimlik kullanır. Kimliği yönet'i yapılandırdıktan sonra, anahtar kasasından bu değerleri okumak için yük testi kaynak izinlerinizin yönetilen kimliğini vermeniz gerekir.

Azure anahtar kasanızdan gizli dizileri veya sertifikaları okumak için Azure yük testi kaynağınıza izin vermek için:

  1. Azure portalında Azure anahtar kasası kaynağınıza gidin.

    Anahtar kasanız yoksa, oluşturmak için Azure Key Vault hızlı başlangıç kılavuzundaki yönergeleri izleyin.

  2. Sol bölmede Erişim İlkeleri'ni ve ardından + Oluştur'u seçin.

  3. İzinler sekmesindeki Gizli dizi izinleri'nin altında Al'ı ve ardından İleri'yi seçin.

    Not

    Azure Load Testing, sertifikanın özel anahtarının kullanılabilir olduğundan emin olmak için sertifikaları gizli dizi olarak alır.

  4. Sorumlu sekmesinde, yük testi kaynağı için yönetilen kimliği arayıp seçin ve ardından İleri'yi seçin.

    Sistem tarafından atanan bir yönetilen kimlik kullanıyorsanız, yönetilen kimlik adı Azure yük testi kaynağınızla eşleşir.

  5. İleri'yi yeniden seçin.

    Testiniz çalıştırıldığında, yük testi kaynağınızla ilişkili yönetilen kimlik artık anahtar kasanızdan yük testinizin gizli dizilerini veya sertifikalarını okuyabilir.

Azure Key Vault'a bir gizli dizi eklediğinize ve yük testiniz için bir gizli dizi yapılandırdığınıza göre artık Apache JMeter'da gizli dizileri kullanma bölümüne geçebilirsiniz.

Yük testi gizli dizilerini kaydetmek için CI/CD gizli dizi depoyu kullanma

CI/CD iş akışınızda Azure Yük Testi kullanıyorsanız, ilişkili gizli dizi depoyu da kullanabilirsiniz. Örneğin, Azure Pipelines'da GitHub depo gizli dizilerini veya gizli dizi değişkenlerini kullanabilirsiniz.

Not

Zaten bir anahtar kasası kullanıyorsanız, bunu yük testi gizli dizilerini depolamak için de kullanabilirsiniz. Azure Key Vault kullanma bölümüne atlayın.

CI/CD gizli dizi deposunda gizli dizileri kullanmak ve bunları CI/CD'deki yük testinize geçirmek için:

  1. Henüz yoksa gizli dizi değerini CI/CD gizli dizi deposuna ekleyin.

    Azure Pipelines'da işlem hattını düzenleyebilir ve değişken ekleyebilirsiniz.

    Screenshot that shows how to add a variable to Azure Pipelines.

    GitHub'da GitHub depo gizli dizilerini kullanabilirsiniz.

    Screenshot that shows how to add a GitHub repository secret.

    Not

    Değer olarak anahtar kasası gizli dizi tanımlayıcısını değil gerçek gizli dizi değerini kullandığınızdan emin olun.

  2. Gizli diziyi, CI/CD iş akışındaki Yük Testi görevine/eylemine giriş parametresi olarak geçirin.

    Aşağıdaki YAML kod parçacığı, gizli diziyi Yük Testi GitHub eylemine geçirmeyi 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 gizli diziyi Azure Pipelines görevine geçirme adımları gösterilmektedir:

    - task: AzureLoadTest@1
      inputs:
        azureSubscription: 'MyAzureLoadTestingRG'
        loadTestConfigFile: 'SampleApp.yaml'
        loadTestResource: 'MyTest'
        resourceGroup: 'loadtests-rg'
        secrets: |
          [
              {
              "name": "appToken",
              "value": "$(mySecret)"
              }
          ]
    

    Önemli

    Gizli giriş parametresinin adının Apache JMeter betiğinde kullanılan adla eşleşmesi gerekir.

Ci/CD gizli dizi deposunda bir gizli dizi belirttiniz ve Azure Load Testing'e bir başvuru geçirdiniz. Artık gizli diziyi Apache JMeter betiğinde kullanabilirsiniz.

Apache JMeter'da gizli dizileri kullanma

Ardından Apache JMeter betiğini daha önce belirttiğiniz gizli diziyi kullanacak şekilde güncelleştirin.

İlk olarak gizli dizi değerini alan kullanıcı tanımlı bir değişken oluşturursunuz. Ardından bu değişkeni testinizde kullanabilirsiniz (örneğin, BIR HTTP isteği üst bilgisinde API belirteci geçirmek için).

  1. JMX dosyanızda kullanıcı tanımlı bir değişken oluşturun ve özel işlevi kullanarak gizli dizi değerini ona atayın GetSecret .

    GetSecret(<my-secret-name>) işlevi, gizli dizi adını bağımsız değişken olarak alır. Sonraki bir adımda yük testini yapılandırırken aynı adı kullanırsınız.

    Aşağıdaki görüntüde gösterildiği gibi Apache JMeter IDE kullanarak kullanıcı tanımlı değişkeni oluşturabilirsiniz:

    Screenshot that shows how to add user-defined variables to your Apache JMeter script.

    Alternatif olarak, bu örnek kod parçacığında gösterildiği gibi JMX dosyasını doğrudan 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>
    
  2. Test betiğinde kullanıcı tanımlı değişkene başvurun.

    Komut dosyasındaki ${} değişkene başvurmak için söz dizimini kullanabilirsiniz. Aşağıdaki örnekte, bir HTTP üst bilgisi ayarlamak için değişkenini udv_appToken kullanırsınız.

      <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>
    

Ortam değişkenleriyle yük testlerini yapılandırma

Bu bölümde, yük testinize parametreleri geçirmek için ortam değişkenlerini kullanacaksınız.

  1. Ortam değişkenini kullanacak şekilde Apache JMeter betiğini güncelleştirin (örneğin, uygulama uç noktası konak adını yapılandırmak için).

  2. Yük testini yapılandırın ve ortam değişkenini test betiğine geçirin.

Apache JMeter'da ortam değişkenlerini kullanma

Bu bölümde Apache JMeter betiğini, betik davranışını denetlemek için ortam değişkenlerini kullanacak şekilde güncelleştireceksiniz.

Önce ortam değişkenini okuyan kullanıcı tanımlı bir değişken tanımlarsınız ve ardından test yürütmesinde (örneğin, HTTP etki alanını güncelleştirmek için) bu değişkeni kullanabilirsiniz.

  1. JMX dosyanızda kullanıcı tanımlı bir değişken oluşturun ve işlevini kullanarak ortam değişkeninin değerini ona atayın System.getenv .

    işlevi ortam System.getenv("<my-variable-name>") değişkeni adını bağımsız değişken olarak alır. Yük testini yapılandırırken aynı adı kullanırsınız.

    Aşağıdaki görüntüde gösterildiği gibi Apache JMeter IDE kullanarak kullanıcı tanımlı bir değişken oluşturabilirsiniz:

    Screenshot that shows how to add user-defined variables for environment variables to your JMeter script.

    Alternatif olarak, bu örnek kod parçacığında gösterildiği gibi JMX dosyasını doğrudan 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>
    
  2. Test betiğinde kullanıcı tanımlı değişkene başvurun.

    Komut dosyasındaki ${} değişkene başvurmak için söz dizimini kullanabilirsiniz. Aşağıdaki örnekte, uygulama uç noktası URL'sini yapılandırmak için değişkenini udv_webapp kullanırsınız.

    <stringProp name="HTTPSampler.domain">${udv_webapp}</stringProp>
    

Azure Load Testing'te ortam değişkenlerini yapılandırma

Ortam değişkenlerini Apache JMeter betiğine geçirmek için yük testini Azure portalında, 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ızda, adının Apache JMeter betiğinde kullandığınız değişken adıyla eşleşmesi gerekir.

Azure portalını kullanarak yük testi için bir ortam değişkeni belirtmek için aşağıdakileri yapın:

  1. Test yapılandırması sayfasında Parametreler sekmesini seçin.

  2. Ortam Değişkenleri bölümünde, Ad ve Değer ortam değişkenini girin ve Uygula'yı seçin.

    Screenshot that shows how to add an environment variable to a load test in the Azure portal.

Yük testinizi ci/CD iş akışında çalıştırırsanız, YAML test yapılandırma dosyasında ortam değişkenleri tanımlayabilirsiniz. Söz dizimi hakkında daha fazla bilgi için bkz . Test yapılandırması YAML başvurusu.

Alternatif olarak, CI/CD iş akışı tanımında ortam değişkenlerini doğrudan belirtebilirsiniz. Ortam değişkenlerini Apache JMeter betiğine geçirmek için Azure Yük Testi eylemi veya Azure Pipelines görevi için giriş parametrelerini kullanırsınız.

Aşağıdaki YAML kod parçacığı bir GitHub Actions örneğini 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 örneği gösterilmektedir:

- task: AzureLoadTest@1
  inputs:
    azureSubscription: 'MyAzureLoadTestingRG'
    loadTestConfigFile: 'SampleApp.yaml'
    loadTestResource: 'MyTest'
    resourceGroup: 'loadtests-rg'
    env: |
      [
          {
          "name": "webapp",
          "value": "myapplication.contoso.com"
          }
      ]

SSS

Azure Load Testing hizmeti gizli dizi değerlerimi depolar mı?

Hayır Azure Load Testing hizmeti gizli dizilerin değerlerini depolamaz. Anahtar kasası gizli dizi URI'sini kullandığınızda, hizmet yalnızca gizli dizi URI'sini depolar ve her test çalıştırması için gizli dizi değerini getirir. CI/CD iş akışında gizli dizilerin değerini sağlarsanız, gizli dizi değerleri test çalıştırmasının ardından kullanılamaz. Her test çalıştırması için bu değerleri sağlarsınız.

YaML yapılandırma dosyamda ve CI/CD iş akışımda parametreler varsa ne olur?

Hem YAML yapılandırma dosyasında hem de Azure Yük Testi eyleminde veya Azure Pipelines görevinde bir parametre varsa, test çalıştırması için CI/CD iş akışındaki değer kullanılır.

Azure Yük Testi görevini veya eylemini kullanarak parametreleri geçirerek CI/CD iş akışımdan bir test oluşturdum ve çalıştırdım. Bu testi Azure portalından aynı parametrelerle çalıştırabilir miyim?

Parametrelerin değerleri CI/CD iş akışından geçirildiğinde depolanmaz. Testi Azure portalından çalıştırdığınızda parametre değerlerini yeniden sağlamanız gerekir. Eksik değerleri girmek için bir istem alırsınız. Gizli dizi değerleri için anahtar kasası gizli dizi URI'sini girersiniz. Test çalıştırması veya yeniden çalıştırma sayfasında girdiğiniz 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.

  • Güvenlikli uç noktaları yüklemek için gizli dizileri kullanın.
  • CSV dosyalarını okuma hakkında daha fazla bilgi için bkz . Yük testlerinde CSV dosyalarını okuma.