Kuormitustestauksen API-integraatio
Tämä opas selittää kuinka käyttää LoadFocus API Client -työkalua sekä komentoriviliittymän (CLI) kautta että suoraan JavaScript-kirjastona sovelluksissasi.
Sisällysluettelo
- Asennus
- Konfigurointi
- Komentoriviliittymä (CLI)
- JavaScript-kirjaston käyttö
- Edistynyt käyttö
- Vianmääritys
Asennus
Globaali asennus
npm install -g @loadfocus/loadfocus-api-client
Paikallinen projektiasennus
npm install @loadfocus/loadfocus-api-client
Konfigurointi
Ennen LoadFocus API Client -työkalun käyttöä sinun on konfiguroitava API-tunnistetietosi.
CLI-konfigurointi
# Aseta API-avain ja tiimi-IDloadfocus-api config set apikey YOUR_API_KEYloadfocus-api config set teamid YOUR_TEAM_ID# Tarkista konfigurointiloadfocus-api config show
JavaScript-konfigurointi
const { configManager } = require('@loadfocus/loadfocus-api-client');// Aseta konfiguraatioconfigManager.set('apikey', 'YOUR_API_KEY');configManager.set('teamid', 'YOUR_TEAM_ID');// Tarkista konfiguraatioconsole.log(configManager.get('apikey')); // Tulostaa API-avaimesiconsole.log(configManager.isConfigured()); // Tulostaa true jos kaikki vaaditut asetukset on asetettu
Komentoriviliittymä (CLI)
LoadFocus API Client tarjoaa kattavan CLI:n LoadFocus API:n kanssa vuorovaikuttamiseen.
JMeter-testin suoritus
Suorita testi
# Suorita testi nimelläloadfocus-api jmeter execute --name "My JMeter Test"# Suorita testi tietyillä parametreillaloadfocus-api jmeter execute --name "My JMeter Test" --threads 50 --rampup 30 --duration 300
Suorita testi ja odota valmistumista
# Suorita testi ja odota valmistumistaloadfocus-api jmeter run-test --name "My JMeter Test"# Suorita testi kynnysarvoillaloadfocus-api jmeter run-test --name "My JMeter Test" --thresholds "avgresponse<=200,errors==0,p95<=250"# Suorita testi mukautetulla aikakatkaisulla ja pollausvälilläloadfocus-api jmeter run-test --name "My JMeter Test" --waitTimeout 1800 --pollInterval 15
Testin tilan seuranta
# Tarkista testin tila nimellä ja ID:lläloadfocus-api jmeter status --name "My JMeter Test" --id 12345# Hae lista viimeisimmistä testiajoistaloadfocus-api jmeter runs --limit 10
Tulosten haku
# Hae tietyn testin tuloksetloadfocus-api jmeter results --name "My JMeter Test" --id 12345# Hae tulokset tietyillä mittareillaloadfocus-api jmeter results --name "My JMeter Test" --id 12345 --include samples,avgresponse,errors
Kynnysarvojen käyttö
run-test-komento tukee kynnysarvojen arviointia sen automaattiseksi määrittämiseksi, läpäiseekö testi suorituskykymittareiden perusteella.
# Suorita testi useilla kynnysarvoillaloadfocus-api jmeter run-test --name "My JMeter Test" --thresholds "avgresponse<=200,errors==0,p95<=250,hitspersec>=10"
Tuetut kynnysarvo-operaattorit:
<=- Pienempi tai yhtä suuri<- Pienempi kuin>=- Suurempi tai yhtä suuri>- Suurempi kuin==- Yhtä suuri!=- Eri suuri
Tulostusmuodot
# Hae tulokset JSON-muodossaloadfocus-api jmeter run-test --name "My JMeter Test" --format json > results.json# Oletusarvoinen siististi tulostettu tulostusloadfocus-api jmeter run-test --name "My JMeter Test"
JavaScript-kirjaston käyttö
LoadFocus API Client -työkalua voidaan käyttää myös suoraan JavaScript-kirjastona sovelluksissasi.
Perusasennus
// Tuo LoadFocus API Clientconst loadfocus = require('@loadfocus/loadfocus-api-client');// Käytä tiettyjä komponenttejaconst { JMeterClient, configManager } = loadfocus;
JMeter Client
// Luo JMeter-asiakasconst jmeterClient = new loadfocus.JMeterClient();// Tai eksplisiittisellä konfiguraatiollaconst jmeterClient = new loadfocus.JMeterClient({apikey: 'YOUR_API_KEY',teamid: 'YOUR_TEAM_ID'});
Testien suoritus
async function executeTest() {try {const result = await jmeterClient.execute({testrunname: 'My JMeter Test',threads: 50,rampup: 30,duration: 300});console.log('Test execution started:', result);return result.testrunid; // Palauta testin ID myöhempää käyttöä varten} catch (error) {console.error('Error executing test:', error);}}
Testin tilan seuranta
async function checkTestStatus(testName, testId) {try {const status = await jmeterClient.getStatus({testrunname: testName,testrunid: testId});console.log('Test status:', status);return status.state; // Palauta nykyinen tila} catch (error) {console.error('Error checking test status:', error);}}
Tulosten haku
async function getTestResults(testName, testId) {try {// Hae testin käytettävissä olevat nimiötconst labels = await jmeterClient.getLabels({testrunname: testName,testrunid: testId});console.log('Test labels:', labels);// Hae tulokset jokaiselle nimiölleconst allResults = [];for (const label of labels) {const labelResults = await jmeterClient.getResults({testrunname: testName,testrunid: testId,filter: label});allResults.push({label,results: labelResults});}console.log('Test results:', allResults);return allResults;} catch (error) {console.error('Error retrieving test results:', error);}}
Täydellinen esimerkki
Tässä täydellinen esimerkki, joka suorittaa testin, odottaa valmistumista ja hakee tulokset:
const { JMeterClient, configManager } = require('@loadfocus/loadfocus-api-client');// Aseta konfiguraatioconfigManager.set('apikey', 'YOUR_API_KEY');configManager.set('teamid', 'YOUR_TEAM_ID');// Luo asiakasconst jmeterClient = new JMeterClient();async function runCompleteTest() {try {// Suorita testiconsole.log('Executing test...');const executeResult = await jmeterClient.execute({testrunname: 'My JMeter Test'});const testId = executeResult.testrunid;console.log(`Test execution started with ID: ${testId}`);// Odota valmistumistaconsole.log('Waiting for test to complete...');let completed = false;while (!completed) {const status = await jmeterClient.getStatus({testrunname: 'My JMeter Test',testrunid: testId});console.log(`Current state: ${status.state}`);if (status.state === 'finished') {completed = true;} else if (status.state === 'failed' || status.state === 'error') {throw new Error(`Test failed with state: ${status.state}`);} else {// Odota ennen uutta tarkistustaawait new Promise(resolve => setTimeout(resolve, 10000));}}// Hae tuloksetconsole.log('Getting test results...');const labels = await jmeterClient.getLabels({testrunname: 'My JMeter Test',testrunid: testId});const allResults = [];for (const label of labels) {const labelResults = await jmeterClient.getResults({testrunname: 'My JMeter Test',testrunid: testId,filter: label});allResults.push({label,results: labelResults});}console.log('Test results:', JSON.stringify(allResults, null, 2));return allResults;} catch (error) {console.error('Error running test:', error);}}// Suorita testirunCompleteTest();
Edistynyt käyttö
Mukautettu HTTP-konfiguraatio
Voit mukauttaa LoadFocus API Client -työkalun käyttämää HTTP-asiakasta:
const { JMeterClient } = require('@loadfocus/loadfocus-api-client');// Luo asiakas mukautetuilla HTTP-asetuksillaconst jmeterClient = new JMeterClient({apikey: 'YOUR_API_KEY',teamid: 'YOUR_TEAM_ID',httpOptions: {timeout: 30000, // 30 sekuntiaretries: 3,headers: {'User-Agent': 'My Custom Application'}}});
Virheiden käsittely
LoadFocus API Client tarjoaa yksityiskohtaista virhetietoa:
try {const result = await jmeterClient.execute({testrunname: 'My JMeter Test'});} catch (error) {if (error.response) {// Pyyntö tehtiin ja palvelin vastasi tilakoodilla// joka on 2xx-alueen ulkopuolellaconsole.error('API Error:', error.response.status, error.response.data);} else if (error.request) {// Pyyntö tehtiin mutta vastausta ei saatuconsole.error('Network Error:', error.request);} else {// Pyynnön asettamisessa tapahtui virheconsole.error('Request Error:', error.message);}}
Vianmääritys
Yleisiä ongelmia
Todennusvirheet:
- Varmista, että API-avaimesi ja tiimi-ID on konfiguroitu oikein
- Tarkista, että API-avaimellasi on tarvittavat käyttöoikeudet
Testin suoritusvirheet:
- Varmista, että testinimi on olemassa LoadFocus-tilissäsi
- Tarkista, oletko saavuttanut tilisi samanaikaisten testien rajan
Aikakatkasuongelmat:
- Pitkäkestoisille testeille kasvata
waitTimeout-parametria - Harkitse pollausmekanismin käyttöönottoa synkronisen odotuksen sijaan
- Pitkäkestoisille testeille kasvata
Tulosten hakuongelmat:
- Varmista, että testi on valmistunut ennen tulosten hakua
- Tarkista, onko testin ID oikein
Virheenkorjaus
Ota debug-lokitus käyttöön yksityiskohtaisempia tietoja varten:
// JavaScript-koodissasiprocess.env.DEBUG = 'true';// Tai CLI:tä käytettäessäDEBUG=true loadfocus-api jmeter run-test --name "My JMeter Test"
Lisäapua varten tutustu LoadFocus API -dokumentaatioon tai ota yhteyttä tukeen.