Menggunakan variabel rahasia dan lingkungan dalam Azure Load Testing

Dalam artikel ini, Anda mempelajari cara meneruskan rahasia dan lingkungan sebagai parameter ke pengujian beban di Azure Load Testing. Anda dapat menggunakan parameter untuk mengubah perilaku uji beban tanpa harus mengedit skrip Apache JMeter. Misalnya, untuk menguji aplikasi web, tentukan URL titik akhir sebagai parameter untuk menggunakan kembali skrip pengujian Anda di beberapa lingkungan. Anda juga dapat menggunakan parameter untuk menghindari bahwa Anda harus mengkodekan informasi sensitif dalam skrip pengujian JMeter.

Layanan Azure Load Testing mendukung dua jenis parameter:

  • Rahasia: Berisi informasi sensitif dan diteruskan dengan aman ke mesin uji beban. Misalnya, rahasia menyediakan kredensial layanan web alih-alih mengodekannya secara permanen dalam skrip pengujian. Untuk informasi selengkapnya, lihat Mengonfigurasi pengujian beban dengan rahasia.

  • Variabel lingkungan: Berisi informasi yang tidak sensitif dan tersedia sebagai variabel lingkungan di mesin uji beban. Misalnya, variabel lingkungan membuat URL titik akhir aplikasi dapat dikonfigurasi. Untuk informasi selengkapnya, lihat Mengonfigurasi pengujian beban dengan variabel lingkungan.

Anda dapat menentukan parameter dalam konfigurasi uji beban saat membuat pengujian baru atau memperbarui pengujian yang ada. Jika Anda menjalankan pengujian beban di alur kerja CI/CD, Anda menentukan parameter dalam file konfigurasi pengujian beban atau dalam definisi alur kerja CI/CD.

Prasyarat

  • Akun Azure dengan langganan aktif. Jika Anda tidak memiliki langganan Azure, buat akun gratis sebelum Anda memulai.

  • Sumber daya pengujian beban Azure. Jika Anda perlu membuat sumber daya Azure Load Testing, lihat mulai cepat Membuat dan menjalankan pengujian beban.

Mengonfigurasi pengujian beban dengan rahasia

Di bagian ini, Anda mempelajari cara meneruskan rahasia ke skrip pengujian beban Anda di Azure Load Testing. Misalnya, Anda mungkin menggunakan rahasia untuk meneruskan kunci API ke titik akhir layanan web yang Anda muat pengujiannya. Alih-alih menyimpan kunci API dalam konfigurasi atau hard-coding dalam skrip, Anda dapat menyimpannya di penyimpanan rahasia untuk mengontrol akses ke rahasia dengan ketat.

Azure Load Testing memungkinkan Anda menyimpan rahasia di Azure Key Vault. Atau, saat menjalankan uji beban di alur CI/CD, Anda juga dapat menggunakan penyimpanan rahasia yang terkait dengan teknologi CI/CD Anda, seperti Azure Pipelines atau GitHub Actions.

Untuk menggunakan rahasia dengan Azure Load Testing, Anda melakukan langkah-langkah berikut:

  1. Simpan nilai rahasia di penyimpanan rahasia (Azure Key Vault atau penyimpanan rahasia CI/CD).
  2. Berikan referensi ke rahasia ke dalam skrip pengujian Apache JMeter.
  3. Gunakan nilai rahasia dalam skrip pengujian Apache JMeter dengan menggunakan GetSecret fungsi kustom.

Penting

Anda hanya dapat menggunakan GetSecret fungsi kustom saat menjalankan skrip pengujian JMeter dengan Azure Load Testing. Jika Menjalankan skrip pengujian secara lokal, Anda perlu memperbarui skrip pengujian dan membaca nilai rahasia dengan cara yang berbeda.

Menggunakan Azure Key Vault untuk menyimpan rahasia pengujian beban

Anda dapat menggunakan Azure Key Vault untuk meneruskan nilai rahasia ke skrip pengujian Anda di Azure Load Testing. Anda menambahkan referensi ke rahasia dalam konfigurasi Azure Load Testing. Azure Load Testing kemudian menggunakan referensi ini untuk mengambil nilai rahasia dalam skrip Apache JMeter.

Anda juga perlu memberikan akses Azure Load Testing ke brankas kunci Azure Anda untuk mengambil nilai rahasia.

Catatan

Jika Anda menjalankan uji beban sebagai bagian dari proses CI/CD, Anda mungkin juga menggunakan penyimpanan rahasia terkait. Lewati untuk Menggunakan penyimpanan rahasia CI/CD.

Membuat rahasia di Azure Key Vault

  1. Tambahkan nilai rahasia ke brankas kunci Anda, jika Anda belum melakukannya.

    Penting

    Jika Anda membatasi akses ke brankas kunci Azure oleh firewall atau jaringan virtual, ikuti langkah-langkah ini untuk memberikan akses ke layanan Azure tepercaya.

  2. Ambil pengidentifikasi rahasia brankas kunci untuk rahasia Anda. Anda menggunakan pengidentifikasi rahasia ini untuk mengonfigurasi pengujian beban Anda.

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

    Pengidentifikasi rahasia adalah URI lengkap rahasia di brankas kunci Azure. Secara opsional, Anda juga dapat menyertakan nomor versi. Misalnya, https://myvault.vault.azure.net/secrets/mysecret/ atau https://myvault.vault.azure.net/secrets/mysecret/abcdef01-2345-6789-0abc-def012345678.

Menambahkan rahasia ke pengujian beban Anda

  1. Referensikan rahasia dalam konfigurasi uji beban.

    Anda menentukan parameter rahasia uji beban untuk setiap rahasia yang Anda referensikan dalam skrip Apache JMeter. Nama parameter harus cocok dengan nama rahasia yang Anda gunakan dalam skrip pengujian Apache JMeter. Nilai parameter adalah pengidentifikasi keamanan brankas kunci.

    Anda dapat menentukan parameter rahasia dengan melakukan salah satu hal berikut:

    • Di portal Azure, pilih uji beban Anda, pilih Konfigurasikan, pilih tab Parameter, lalu masukkan detail parameter.

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

    • Jika Mengonfigurasi alur kerja CI/CD dan menggunakan Azure Key Vault, Anda dapat menentukan rahasia dalam file konfigurasi YAML dengan menggunakan secrets properti . Untuk informasi selengkapnya tentang sintaks, lihat Referensi YAML konfigurasi pengujian.

  2. Tentukan identitas yang digunakan Azure Load Testing untuk mengakses rahasia Anda di Azure Key Vault.

    Identitas dapat menjadi identitas sumber daya pengujian beban yang ditetapkan sistem, atau salah satu identitas yang ditetapkan pengguna. Pastikan Anda menggunakan identitas yang sama dengan yang telah Anda berikan akses sebelumnya.

    Anda dapat menentukan identitas referensi brankas kunci dengan melakukan salah satu hal berikut:

    • Di portal Azure, pilih uji beban Anda, pilih Konfigurasikan, pilih tab Parameter, lalu konfigurasikan identitas referensi Key Vault.

      Screenshot that shows how to select key vault reference identity.

    • Jika Mengonfigurasi alur kerja CI/CD dan menggunakan Azure Key Vault, Anda dapat menentukan identitas referensi dalam file konfigurasi YAML dengan menggunakan keyVaultReferenceIdentity properti . Untuk informasi selengkapnya tentang sintaks, lihat Referensi YAML konfigurasi pengujian.

Memberikan akses ke brankas kunci Azure Anda

Saat Anda menyimpan rahasia pengujian beban atau sertifikat di Azure Key Vault, sumber daya pengujian beban Anda menggunakan identitas terkelola untuk mengakses brankas kunci. Setelah mengonfigurasi identitas kelola, Anda perlu memberikan identitas terkelola izin sumber daya pengujian beban Anda untuk membaca nilai-nilai ini dari brankas kunci.

Untuk memberikan izin sumber daya pengujian beban Azure Anda untuk membaca rahasia atau sertifikat dari brankas kunci Azure Anda:

  1. Di portal Azure, buka sumber daya brankas kunci Azure Anda.

    Jika Anda tidak memiliki brankas kunci, ikuti instruksi di mulai cepat Azure Key Vault untuk membuatnya.

  2. Di panel kiri, pilih Kebijakan Akses, lalu pilih + Buat.

  3. Pada tab Izin , di bawah Izin rahasia, pilih Dapatkan, lalu pilih Berikutnya.

    Catatan

    Azure Load Testing mengambil sertifikat sebagai rahasia untuk memastikan bahwa kunci privat untuk sertifikat tersedia.

  4. Pada tab Utama , cari dan pilih identitas terkelola untuk sumber daya pengujian beban, lalu pilih Berikutnya.

    Jika Anda menggunakan identitas terkelola yang ditetapkan sistem, nama identitas terkelola cocok dengan sumber daya pengujian beban Azure Anda.

  5. Pilih Berikutnya lagi.

    Saat pengujian Anda berjalan, identitas terkelola yang terkait dengan sumber daya pengujian beban Anda sekarang dapat membaca rahasia atau sertifikat untuk pengujian beban Anda dari brankas kunci Anda.

Sekarang setelah Anda menambahkan rahasia di Azure Key Vault, mengonfigurasi rahasia untuk pengujian beban Anda, Anda sekarang dapat berpindah ke Menggunakan rahasia di Apache JMeter.

Gunakan penyimpanan rahasia CI/CD untuk menyimpan rahasia uji beban

Jika Anda menggunakan Azure Load Testing di alur kerja CI/CD, Anda juga dapat menggunakan penyimpanan rahasia terkait. Misalnya, Anda dapat menggunakan rahasia repositori GitHub, atau variabel rahasia di Azure Pipelines.

Catatan

Jika Anda sudah menggunakan brankas kunci, Anda juga dapat menggunakannya untuk menyimpan rahasia uji beban. Lewati untuk Menggunakan Azure Key Vault.

Untuk menggunakan rahasia di penyimpanan rahasia CI/CD dan meneruskannya ke uji beban Anda di CI/CD:

  1. Tambahkan nilai rahasia ke penyimpanan rahasia CI/CD, jika belum ada.

    Di Azure Pipelines, Anda dapat mengedit alur dan menambahkan variabel.

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

    Di GitHub, Anda dapat menggunakan rahasia repositori GitHub.

    Screenshot that shows how to add a GitHub repository secret.

    Catatan

    Pastikan untuk menggunakan nilai rahasia aktual dan bukan pengidentifikasi rahasia brankas kunci sebagai nilainya.

  2. Teruskan rahasia sebagai parameter input ke tugas/tindakan Pengujian Beban di alur kerja CI/CD.

    Cuplikan YAML berikut menunjukkan cara meneruskan rahasia ke tindakan GitHub Pengujian Beban:

    - 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 }}"
            }
        ]
    

    Cuplikan YAML berikut menunjukkan cara meneruskan rahasia ke tugas Azure Pipelines:

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

    Penting

    Nama parameter input rahasia perlu cocok dengan nama yang digunakan dalam skrip Apache JMeter.

Anda sekarang telah menentukan rahasia di penyimpanan rahasia CI/CD dan meneruskan referensi ke Azure Load Testing. Anda sekarang dapat menggunakan rahasia dalam skrip Apache JMeter.

Menggunakan rahasia di Apache JMeter

Selanjutnya, Anda memperbarui skrip Apache JMeter untuk menggunakan rahasia yang Anda tentukan sebelumnya.

Anda terlebih dahulu membuat variabel yang ditentukan pengguna yang mengambil nilai rahasia. Kemudian, Anda dapat menggunakan variabel ini dalam pengujian Anda (misalnya, untuk meneruskan token API di header permintaan HTTP).

  1. Buat variabel yang ditentukan pengguna dalam file JMX Anda, dan tetapkan nilai rahasia ke dalamnya dengan menggunakan GetSecret fungsi kustom.

    Fungsi mengambil GetSecret(<my-secret-name>) nama rahasia sebagai argumen. Anda menggunakan nama yang sama ini saat mengonfigurasi pengujian beban di langkah selanjutnya.

    Anda dapat membuat variabel yang ditentukan pengguna dengan menggunakan Apache JMeter IDE, seperti yang ditunjukkan pada gambar berikut:

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

    Atau, Anda dapat langsung mengedit file JMX, seperti yang ditunjukkan dalam contoh cuplikan kode ini:

    <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. Referensikan variabel yang ditentukan pengguna dalam skrip pengujian.

    Anda dapat menggunakan ${} sintaks untuk mereferensikan variabel dalam skrip. Dalam contoh berikut, Anda menggunakan udv_appToken variabel untuk mengatur header 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>
    

Mengonfigurasi pengujian beban dengan variabel lingkungan

Di bagian ini, Anda menggunakan variabel lingkungan untuk meneruskan parameter ke pengujian beban Anda.

  1. Perbarui skrip Apache JMeter untuk menggunakan variabel lingkungan (misalnya, untuk mengonfigurasi nama host titik akhir aplikasi).

  2. Konfigurasikan pengujian beban dan teruskan variabel lingkungan ke skrip pengujian.

Menggunakan variabel lingkungan di Apache JMeter

Di bagian ini, Anda memperbarui skrip Apache JMeter untuk menggunakan variabel lingkungan untuk mengontrol perilaku skrip.

Anda terlebih dahulu menentukan variabel yang ditentukan pengguna yang membaca variabel lingkungan, lalu Anda dapat menggunakan variabel ini dalam eksekusi pengujian (misalnya, untuk memperbarui domain HTTP).

  1. Buat variabel yang ditentukan pengguna dalam file JMX Anda, dan tetapkan nilai variabel lingkungan ke dalamnya dengan menggunakan System.getenv fungsi .

    Fungsi ini System.getenv("<my-variable-name>") mengambil nama variabel lingkungan sebagai argumen. Anda menggunakan nama yang sama ini saat mengonfigurasi pengujian beban.

    Anda dapat membuat variabel yang ditentukan pengguna dengan menggunakan Apache JMeter IDE, seperti yang ditunjukkan pada gambar berikut:

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

    Atau, Anda dapat langsung mengedit file JMX, seperti yang ditunjukkan dalam contoh cuplikan kode ini:

    <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. Referensikan variabel yang ditentukan pengguna dalam skrip pengujian.

    Anda dapat menggunakan ${} sintaks untuk mereferensikan variabel dalam skrip. Dalam contoh berikut, Anda menggunakan udv_webapp variabel untuk mengonfigurasi URL titik akhir aplikasi.

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

Mengonfigurasi variabel lingkungan di Azure Load Testing

Untuk meneruskan variabel lingkungan ke skrip Apache JMeter, Anda dapat mengonfigurasi pengujian beban di portal Azure, dalam file konfigurasi pengujian YAML, atau langsung di alur kerja CI/CD.

Penting

Saat Anda menentukan variabel lingkungan untuk uji beban, namanya harus cocok dengan nama variabel yang Anda gunakan dalam skrip Apache JMeter.

Untuk menentukan variabel lingkungan ke pengujian beban dengan menggunakan portal Azure, lakukan hal berikut:

  1. Pada halaman konfigurasi pengujian, pilih tab Parameter .

  2. Di bagian Variabel Lingkungan, masukkan nama dan nilai variabel lingkungan, lalu pilih Terapkan.

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

Jika Anda menjalankan pengujian beban dalam alur kerja CI/CD, Anda dapat menentukan variabel lingkungan dalam file konfigurasi pengujian YAML. Untuk informasi selengkapnya tentang sintaks, lihat Referensi YAML konfigurasi pengujian.

Atau, Anda dapat langsung menentukan variabel lingkungan dalam definisi alur kerja CI/CD. Anda menggunakan parameter input untuk tindakan Azure Load Testing atau tugas Azure Pipelines untuk meneruskan variabel lingkungan ke skrip Apache JMeter.

Cuplikan YAML berikut menunjukkan contoh 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"
        }
    ]

Cuplikan YAML berikut menunjukkan contoh Azure Pipelines:

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

FAQ

Apakah layanan Azure Load Testing menyimpan nilai rahasia saya?

Tidak. Layanan Azure Load Testing tidak menyimpan nilai rahasia. Saat Anda menggunakan URI rahasia brankas kunci, layanan hanya menyimpan URI rahasia, dan mengambil nilai rahasia untuk setiap eksekusi pengujian. Jika Anda memberikan nilai rahasia dalam alur kerja CI/CD, nilai rahasia tidak tersedia setelah eksekusi pengujian. Anda menyediakan nilai-nilai ini untuk setiap eksekusi pengujian.

Apa yang terjadi jika saya memiliki parameter dalam file konfigurasi YAML dan alur kerja CI/CD saya?

Jika parameter ada di file konfigurasi YAML dan tindakan Pengujian Beban Azure atau tugas Azure Pipelines, nilai dari alur kerja CI/CD digunakan untuk eksekusi pengujian.

Saya membuat dan menjalankan pengujian dari alur kerja CI/CD saya dengan meneruskan parameter menggunakan tugas atau tindakan Azure Load Testing. Dapatkah saya menjalankan pengujian ini dari portal Azure dengan parameter yang sama?

Nilai parameter tidak disimpan saat diteruskan dari alur kerja CI/CD. Anda harus memberikan nilai parameter lagi saat menjalankan pengujian dari portal Azure. Anda mendapatkan perintah untuk memasukkan nilai yang hilang. Untuk nilai rahasia, Anda memasukkan URI rahasia brankas kunci. Nilai yang Anda masukkan di halaman uji coba atau jalankan ulang hanya valid untuk uji coba tersebut. Untuk membuat perubahan di tingkat pengujian, buka Mengonfigurasi Uji dan masukkan nilai parameter Anda.