Configurarea variabilelor secrete și de mediu

Finalizat

Aflați cum să transmiteți secretele și mediile ca parametri la un test de încărcare în Testarea încărcării Azure. Puteți utiliza parametri pentru a modifica comportamentul unui test de încărcare fără a fi necesar să editați scriptul Apache JMeter. De exemplu, pentru a testa o aplicație web, specificați URL-ul punctului final ca parametru pentru a reutiliza scriptul de test în mai multe medii. De asemenea, puteți utiliza parametri pentru a evita necesitatea de a coda informații sensibile la cod în scriptul de test JMeter.

Serviciul Azure de testare a încărcării acceptă două tipuri de parametri:

  • Secrete: conțin informații sensibile și sunt transmise în siguranță motorului de testare a încărcării. De exemplu, secretele furnizează acreditări de serviciu web în loc să le codifice din scriptul de test.

  • variabilele de mediu: conțin informații nesensibile și sunt disponibile ca variabile de mediu în motorul de testare a încărcării. De exemplu, variabilele de mediu fac URL-ul punctului final al aplicației configurabil.

Puteți specifica parametri în configurația testului de încărcare atunci când creați un test nou sau actualizați un test existent. Dacă rulați un test de încărcare în fluxul de lucru CI/CD, definiți parametri în fișierul de configurare a testului de încărcare sau în definiția fluxului de lucru CI/CD.

Configurarea testelor de încărcare cu secrete

În această secțiune, aflați cum să transmiteți secretele scriptului de testare a încărcării în Testarea încărcării Azure. De exemplu, puteți utiliza un secret pentru a transmite cheia API la un punct final de serviciu web pe care îl încărcați. În loc să stocați cheia API în configurație sau să o codați în script, o puteți salva într-un magazin secret pentru a controla strâns accesul la secret.

Testarea încărcării Azure vă permite să stocați secrete în Azure Key Vault. Ca alternativă, atunci când rulați testul de încărcare într-un canal CI/CD, puteți utiliza, de asemenea, depozitul secret asociat cu tehnologia CI/CD, cum ar fi Azure Pipelines sau Acțiuni GitHub.

Pentru a utiliza secretele cu Testarea încărcării Azure, efectuați următorii pași:

  1. Stocați valoarea secretă în magazinul secret
  2. Treceți o referință la secret în scriptul de test Apache JMeter.
  3. Utilizați valoarea secretă din scriptul de test Apache JMeter utilizând funcția particularizată GetSecret.

Important

Puteți utiliza funcția particularizată GetSecret doar atunci când rulați scriptul de testare JMeter cu Azure Load Test. Dacă rulați scriptul de test local, trebuie să actualizați scriptul de test și să citiți valorile secrete în alt mod.

Utilizați depozitul secret GitHub pentru a salva secretele de testare a încărcării

Pentru a utiliza secretele din depozitul secret CI/CD și a le transmite la testul de încărcare în CI/CD:

  1. Adăugați valoarea secretă la depozitul secret Acțiuni GitHub.

    În GitHub, puteți utiliza secretele depozitului GitHub.

    Captură de ecran care arată cum să adăugați un secret de depozit GitHub.

  2. Transmiteți secretul ca parametru de intrare pentru activitatea/acțiunea Testare încărcare din fluxul de lucru CI/CD.

    Următorul fragment YAML vă arată cum să transmiteți secretul acțiunii testarea încărcării GitHub:

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

    Important

    Numele parametrului de intrare secret trebuie să corespundă numelui utilizat în scriptul Apache JMeter.

Ați specificat un secret în depozitul secret CI/CD și ați transmis o referință la Testarea încărcării Azure. Acum puteți utiliza secretul în scriptul Apache JMeter.

Utilizarea secretelor în Apache JMeter

În continuare, actualizați scriptul Apache JMeter pentru a utiliza secretul specificat anterior.

Creați mai întâi o variabilă definită de utilizator care preia valoarea secretă. Apoi, puteți utiliza această variabilă în test. De exemplu, pentru a transmite un token API într-un antet de solicitare HTTP.

  1. Creați o variabilă definită de utilizator în fișierul JMX și atribuiți valoarea secretă acestuia utilizând funcția particularizată GetSecret.

    Funcția GetSecret(<my-secret-name>) preia numele secret ca argument. Utilizați același nume atunci când configurați testul de încărcare într-un pas ulterior.

    Puteți crea variabila definită de utilizator utilizând IDE Apache JMeter, așa cum se arată în următoarea imagine:

    Captură de ecran care arată cum să adăugați variabile definite de utilizator la scriptul Apache JMeter.

    Alternativ, puteți edita direct fișierul JMX, așa cum se arată în acest fragment de cod exemplu:

    <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. Faceți referire la variabila definită de utilizator în scriptul de test.

    Puteți utiliza sintaxa ${} pentru a face referire la variabila din script. În exemplul următor, utilizați variabila udv_appToken pentru a seta un antet 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>
    

Configurarea testelor de încărcare cu variabile de mediu

În această secțiune, utilizați variabilele de mediu pentru a transmite parametri la testul de încărcare.

  1. Actualizați scriptul Apache JMeter pentru a utiliza variabila de mediu. De exemplu, pentru a configura numele de gazdă al punctului final al aplicației.

  2. Configurați testul de încărcare și treceți variabila de mediu la scriptul de testare.

Utilizarea variabilelor de mediu în Apache JMeter

În această secțiune, actualizați scriptul Apache JMeter pentru a utiliza variabilele de mediu pentru a controla comportamentul scriptului.

Mai întâi definiți o variabilă definită de utilizator care citește variabila de mediu, apoi puteți utiliza această variabilă în execuția testului. De exemplu, pentru a actualiza domeniul HTTP.

  1. Creați o variabilă definită de utilizator în fișierul JMX și atribuiți valoarea variabilei de mediu utilizând funcția System.getenv.

    Funcția System.getenv("<my-variable-name>") preia numele variabilei de mediu ca argument. Utilizați același nume atunci când configurați testul de încărcare.

    Puteți crea o variabilă definită de utilizator utilizând IDE Apache JMeter, așa cum se arată în imaginea următoare:

    Captură de ecran care arată cum să adăugați variabile definite de utilizator pentru variabilele de mediu la scriptul JMeter.

    Alternativ, puteți edita direct fișierul JMX, așa cum se arată în acest fragment de cod exemplu:

    <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. Faceți referire la variabila definită de utilizator în scriptul de test.

    Puteți utiliza sintaxa ${} pentru a face referire la variabila din script. În exemplul următor, utilizați variabila udv_webapp pentru a configura URL-ul punctului final al aplicației.

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

Configurarea variabilelor de mediu în Testarea încărcării Azure

Pentru a trece variabilele de mediu la scriptul Apache JMeter, puteți configura testul de încărcare în portalul Azure, în fișierul de configurare a testului YAML sau direct în fluxul de lucru CI/CD.

Următorul fragment YAML afișează un exemplu de acțiuni GitHub:

- name: 'Azure Load Testing'
  uses: azure/load-testing
  with:
    loadtestConfigFile: 'SampleApp.yaml'
    loadtestResource: 'MyTest'
    resourceGroup: 'loadtests-rg'
    env: |
    [
        {
        "name": "webapp",
        "value": "myapplication.contoso.com"
        }
    ]