Teknologian jakaminen

Lyhyt keskustelu esiprosessorin säännöllisten lausekkeiden käyttäjäparametreista

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Lyhyt keskustelu esiprosessorin säännöllisten lausekkeiden käyttäjäparametreista

Säännöllisten lausekkeiden käyttäjäparametrit (RegEx User Parameters) on esiprosessori (Pre-Processor), jonka avulla käyttäjät voivat poimia arvoja vastaustiedoista säännöllisten lausekkeiden perusteella ja käyttää niitä sekä välittää nämä arvot parametreina myöhemmille.HTTP-pyyntö tai muihin tarvittaviin paikkoihin. Tämä ominaisuus on erittäin joustava dynaamisen sisällön, istuntotunnusten, tunnuksien jne. käsittelyssä ja on keskeinen komponentti automatisoitujen testikomentosarjojen toteuttamisessa.

käytettävät kohtaukset

  1. Dynaaminen parametrien käsittely: Kun kohdejärjestelmä luo eri dynaamisia parametreja (kuten istunnon tunnuksen, aikaleiman jne.) jokaisessa pyynnössä, sen on purettava seuraavat parametrit ja käytettävä näitä parametreja myöhempien pyyntöjen jatkamiseen.
  2. Testitietojen personointi: Mukauta myöhempien pyyntöjen parametrit vastauksen sisällön perusteella, kuten käyttäjätunnuksen poistaminen kirjautumisvastauksesta myöhempiä profiilikyselypyyntöjä varten.
  3. Tietojen iterointi: Jos vastaus sisältää useita osumajoukkoja, voit määrittää prosessorin käymään läpi purkamisen ja käyttämään sitä useisiin pyyntöihin, jotka sopivat testiluetteloihin tai hakutulossivuihin.

Määritysvaiheet

  1. Lisää säännöllisen lausekkeen käyttäjäparametrit:
    ○ Valitse JMeterin työpöydästä tai testisuunnitelmasta HTTP-pyyntö tai muu näytteenotto, joka on parametroitava.
    ○ Napsauta hiiren kakkospainikkeella ja valitse "Add" > "Preprocessor" > "Regular Expression User Parameters".
  2. Konfigurointiparametrit:
    ○ Säännöllisen lausekkeen viittausnimi: Säännöllisen lausekkeen poimijassa olevan muuttujan nimen on oltava yhdenmukainen säännöllisen lausekkeen kanssa.
    ○ Parametrien nimet regexp group number: Parametrin nimen ryhmänumero, kuten seuraavissa esimerkeissä on kuvattu.
    ○ Parametriarvot regex-ryhmän numero: Parametrin nimiryhmän vastaava arvo seuraavissa esimerkeissä kuvatulla tavalla.

Esimerkkejä

Käytämme SpringBootia seuraavan käyttöliittymäkoodin kirjoittamiseen

 @PostMapping(value = "/login",produces = "application/json;charset=UTF-8")
    public String authenticate(@RequestBody JSONObject request) {

        String validUsername = "admin";
        String validPassword = "password";
        String response = "{"total":2,"data":[{"id":123,"name":"John Doe","email":"[email protected]","phone":"123-456-7890","address":{"street":"123 Main St","city":"New York","state":"NY","zip":"10001"},"interests":["sports","music","travel"]},{"id":456,"name":"Jane Smith","email":"[email protected]","phone":"987-654-3210","address":{"street":"456 Elm St","city":"Los Angeles","state":"CA","zip":"90001"},"interests":["reading","cooking","hiking"]}]}";


        if (request.getString("username").equals(validUsername) && request.getString("password").equals(validPassword)) {
            return response;
        } else {
            return response;
        }
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

Sitten kirjoitamme seuraavan käsikirjoituksen
Lisää kuvan kuvaus tähän
Säieryhmä: Pidä oletusarvo
HTTP-pyyntö 1: protokolla http, palvelimen nimi tai IP127.0.0.1, portin numero 8091, menetelmä POST, polku/kirjautuminen, sisällön koodaus utf-8, viestin runkotiedot

{
    "username": "admin",
    "password": "password"
    }
  • 1
  • 2
  • 3
  • 4

Säännöllisen lausekkeen uutto器:设置的参数为引用名称var,正则表达式"id"😦.?),"nimi":"(.?)", "sähköposti" (voidaan tuntea esimerkkikoodin sisällöstä), ja tarkoituksemme on poimia tunnus ja nimi, vastaava luku on -1 ja oletusarvo on NotFound
Tässä vaiheessa voimme ensin poistaa HTTP-pyynnön 2:n ja säännöllisen lausekkeen käyttäjäparametrit käytöstä, sitten suorittaa komentosarjan ja tarkastella tulospuun virheenkorjausnäytteenottoa. Voit nähdä seuraavat tulokset vastaustietojen vastaustekstissä.

JMeterVariables:
JMeterThread.last_sample_ok=false
JMeterThread.pack=org.apache.jmeter.threads.SamplePackage@4fa1cf1
START.HMS=165132
START.MS=1720515092259
START.YMD=20240709
TESTSTART.MS=1720578466746
_jm__threadgroup__idx=0
_jmeter.U_T
= lankaryhmä 1-1
var=Ei löydy
var_1=
var_1_g=2
var_1_g0="id":123,"nimi":"John Doe","sähköposti"
var_1_g1=123
var_1_g2=John Doe
var_2=
var_2_g=2
var_2_g0="id":456,"nimi":"Jane Smith","sähköposti"
var_2_g1=456
var_2_g2=Jane Smith
var_matchNr=2

Yllä olevasta sisällöstä voimme nähdä vastaavan säännöllisen lausekkeen poimiman muuttujan arvon. Tällä hetkellä voimme jatkaa säännöllisen lausekkeen käyttäjän parametrien esiprosessorin sovelluksen tarkistamista ja muiden komponenttiparametrien asettamista.
HTTP-pyyntö 2: protokolla http, palvelimen nimi tai IP127.0.0.1, portin numero 8091, menetelmä POST, polku/kirjautuminen, sisällön koodaus utf-8, lisää sitten kaksi parametria parametreihin, täytä nimet 123, 456, vastaavasti, älä käytä niitä nyt Tarkastuksesta riippumatta, kokeillaan ensin.
Säännöllisen lausekkeen käyttäjän parametrit: Säännöllisen lausekkeen viitenimi on asetettu arvoon var, parametrin nimen on oltava yhdenmukainen yllä olevan säännöllisen lausekkeen parametrin nimen kanssa, parametrien nimet regexp-ryhmän numero on 1, parametriarvot regex-ryhmän numero on asetettu to 2, miksi Miten se asetetaan näin? Ymmärrämme sen näin. Emmekö asettaneet 123:n ja 456:n parametrien arvon 1 arvoksi, kun täytämme parametrit var_1_g1 ja var_2_g1 HTTP-pyynnössä 2 Kun parametrit ovat yhdenmukaisia ​​tässä olevien parametrien kanssa, vastaamme parametrien ja tietojen välistä suhdetta, mikä tasoittaa tietä parametriarvojen regex-ryhmän numeroksi asetukselle 2. Ymmärrämme hyvin, että kun parametriarvot Regex-ryhmän numeroksi asetetaan 2, mikä saadaan Parametrit muuttuvat var_1_g2 ja var_2_g2.
Seuraava vaihe on tarkistaa tulokset. Suorita komentosarja, jotta voit tarkastella HTTP-pyynnön 2 tietoja. Kaiken kaikkiaan pyyntömme epäonnistui, mutta sillä ei ole väliä tuloksella ei ole merkitystä

POST http://127.0.0.1:8091/login
Lähettää tietoja:
123=John+Doe&456=Jane+Smith
[ei evästeitä]

Yllä olevista POST-tiedoista näet, että vastaavat tiedot ovat näkyneet pyynnössä.

Varotoimenpiteet

● Laajuus: Säännöllisten lausekkeiden käyttäjäparametrit vaikuttavat vain seuraavaan HTTP-pyyntöön tai sampleriin. Jos sinun on käytettävä niitä maailmanlaajuisesti, harkitse "säännöllisten lausekkeiden erottimen" käyttöä muuttujien kanssa.
● Vianetsintä: Käytä "View Result Tree" -kuuntelijaa tarkistaaksesi säännöllisten lausekkeiden yhteensopivuuden varmistaaksesi tietojen oikean poimimisen.

Tee yhteenveto

Säännöllisen lausekkeen käyttäjäparametrit ovat JMeterin tehokas ominaisuus, joka yksinkertaistaa dynaamisen tiedon käsittelyä ja parantaa testiskriptien joustavuutta ja automatisointia. Oikein määritettynä ja käytettynä tämä toiminto pystyy käsittelemään tehokkaasti monimutkaisten järjestelmien suorituskyvyn testaustarpeita.