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 bilgileri ve çevreleri geçirmeyi öğreneceksiniz. Apache JMeter veya Locust 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. Ayrıca, 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 bilgiler: Hassas bilgiler içerir ve yük test motoruna güvenli bir şekilde aktarılır. Örneğin, gizli bilgiler, test betiğinde sabit kodlama yerine web hizmeti kimlik bilgilerini sağlar. Daha fazla bilgi için bkz. Gizli diziler kullanarak 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

  • Aktif bir aboneliğe sahip bir Azure hesabı. Eğer bir Azure aboneliğiniz yoksa, başlamadan önce ücretsiz bir hesap oluşturun.

  • Azure yük testi kaynağı. Azure Yük Testi kaynağı oluşturmanız gerekiyorsa Yük testi oluşturma ve çalıştırma hızlı başlangıç kılavuzuna bakın.

Gizli bilgilerle yük testlerini yapılandırın

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

Azure Yük Testi, gizli bilgileri 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 bilgileri kullanmak için aşağıdaki adımları izleyin:

  1. Gizli değeri gizli depoda (Azure Key Vault veya CI/CD gizli deposu) depolayın.
  2. Apache JMeter test betiğine bir gizli referansı aktarın.
  3. JMeter tabanlı testler için özel işlevi kullanarak Apache JMeter test betiğindeki GetSecret gizli dizi değerini kullanın. Çekirge tabanlı testler için ortam değişkenlerinden okuyarak gizli değeri kullanın.

Önemli

GetSecret özel işlevini yalnızca JMeter test betiğinizi Azure Load Testing ile çalıştırdığınızda kullanabilirsiniz. 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 sırlarını depolamak için Azure Key Vault'u 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, test betiğindeki gizli değere erişmek için bu referansı kullanır.

Azure Key Vault'unuzdan gizli değeri almak için Azure Yükleme Testi'ne erişim izni vermeniz gerekir.

Uyarı

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, gizli değeri anahtar kasanıza ekleyin.

    Önemli

    Azure Key Vault'unuza 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. Sırrınız için anahtar kasası gizli tanımlayıcısını alın. Yük testinizi yapılandırmak için bu gizli tanımlayıcıyı kullanırsınız.

    Gizli dizi tanımlayıcısı, Azure Key Vault'taki 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.

Sır ekleyin yük testinize.

  1. Yük testi yapılandırmasında gizli bilgiye referans verin.

    Test betiğinde başvurduğunuz her gizli dizi için bir yük testi gizli dizisi parametresi tanımlarsınız. Parametre adı, test betiğinde kullandığınız gizli adla eşleşmelidir. Parametrenin değeri, anahtar kasasının 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.

      Azure portalında yük testine gizli dizi ayrıntılarının nereye ekleneceğini gösteren ekran görüntüsü.

    • 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 Test yapılandırması YAML referansı'na bakınız.

  2. Azure Load Testing'in Azure Key Vault'taki gizli bilgilerinize 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 uygulayarak anahtar kasası kimlik referansını 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.

      Anahtar kasası referansı kimliğinin nasıl seçileceğini gösteren ekran görüntüsü.

    • 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 Test yapılandırması YAML referansı'na bakınız.

Azure Key Vault'unuza 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. Yönetilen kimlik yapılandırmasını yaptıktan sonra, yük testi kaynağının yönetilen kimliğine anahtar kasasındaki bu değerleri okuma izni vermeniz gerekir.

Azure Key Vault'unuzdan gizli dizileri veya sertifikaları okumak için Azure yük testi kaynağınıza izin vermek için:

  1. Azure portalında Azure Key Vault kaynağınıza gidin.

    Anahtar kasanız yoksa, bir anahtar kasası 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 izinler altında Al'ı ve ardından İleri'yi seçin.

    Uyarı

    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.

CI/CD gizli bilgi deposunu yük testi gizli bilgilerini kaydetmek için kullanın

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

Uyarı

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

CI/CD gizli bilgiler deposunda gizli bilgileri kullanmak ve bunları CI/CD'deki yük testinize aktarmak için:

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

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

    Azure Pipelines'a değişken eklemeyi gösteren ekran görüntüsü.

    GitHub'da GitHub depo gizli dizilerini kullanabilirsiniz.

    GitHub deposu sırrının nasıl ekleneceğini gösteren ekran görüntüsü.

    Uyarı

    Değer olarak anahtarlar kasası gizli değer tanımlayıcısını değil, gerçek gizli değeri kullandığınızdan emin olun.

  2. Gizli anahtarı, CI/CD iş akışındaki Load Testi görevine/eylemine giriş parametresi olarak geçirin.

    Aşağıdaki YAML kod parçacığı, gizli bilgiyi 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ığı, gizli bilgiyi Azure Pipelines görevi'ne nasıl geçireceğinizi gösterir.

    - 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 anahtar deposunda bir gizli anahtar belirttiniz ve Azure Load Testing'e bir referans ilettiniz. Artık gizliyi Apache JMeter betiğinde kullanabilirsiniz.

Test betiğinde gizli dizileri kullanma

Ardından, test betiğini daha önce belirttiğiniz gizli diziyi kullanacak şekilde güncelleştirirsiniz.

İlk olarak, gizli değeri almak için 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 GetSecret özel işlevini kullanarak gizli dizi değerini ona atayın.

    GetSecret(<my-secret-name>) işlevi, gizli adı 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:

    Apache JMeter betiğinize kullanıcı tanımlı değişkenlerin nasıl ekleneceğini gösteren ekran görüntüsü.

    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.

    Betikteki değişkene başvurmak için ${} söz dizimini kullanabilirsiniz. Aşağıdaki örnekte, http üst bilgisi ayarlamak için udv_appToken değişkenini 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 System.getenv işlevini kullanarak ortam değişkeninin değerini ona atayın.

    System.getenv("<my-variable-name>") işlevi, bir ortam değişkeni adını argüman 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:

    JMeter betiğinize ortam değişkenleri için kullanıcı tanımlı değişkenlerin nasıl ekleneceğini gösteren ekran görüntüsü.

    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.

    Betikteki 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 udv_webapp değişkenini 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 test 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ı test betiğinde kullandığınız değişken adıyla eşleşmelidir.

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.

    Azure portalında bir yük testine ortam değişkeni eklemeyi gösteren ekran görüntüsü.

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 Test yapılandırması YAML referansı'na bakınız.

Alternatif olarak, CI/CD iş akışı tanımında ortam değişkenlerini doğrudan belirtebilirsiniz. Ortam değişkenlerini test 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"
          }
      ]

Sıkça Sorulan Sorular

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

Hayır. Azure Load Testing hizmeti gizli bilgilerin değerlerini depolamaz. Key Vault gizli URI'sini kullandığınızda, hizmet yalnızca gizli URI'sini depolar ve her test çalıştırması için gizli değeri getirir. CI/CD iş akışında gizli anahtarların değerini sağlarsanız, gizli anahtar değerleri test çalıştırıldıktan sonra 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.