Slodzes testēšanas API integrācija
Šī pamācība izskaidro, kā izmantot LoadFocus API klientu gan caur komandrindas saskarni (CLI), gan tieši izmantojot JavaScript bibliotēku savās lietotnēs.
Satura rādītājs
- Instalācija
- Konfigurācija
- Komandrindas saskarne (CLI)
- JavaScript bibliotēkas izmantošana
- Papildu izmantošana
- Problēmu novēršana
Instalācija
Globāla instalācija
npm install -g @loadfocus/loadfocus-api-client
Lokāla projekta instalācija
npm install @loadfocus/loadfocus-api-client
Konfigurācija
Pirms LoadFocus API klienta izmantošanas jums jākonfigurē savi API akreditācijas dati.
CLI konfigurācija
# Iestatiet API atslēgu un komandas IDloadfocus-api config set apikey YOUR_API_KEYloadfocus-api config set teamid YOUR_TEAM_ID# Pārbaudiet konfigurācijuloadfocus-api config show
JavaScript konfigurācija
const { configManager } = require('@loadfocus/loadfocus-api-client');// Iestatiet konfigurācijuconfigManager.set('apikey', 'YOUR_API_KEY');configManager.set('teamid', 'YOUR_TEAM_ID');// Pārbaudiet konfigurācijuconsole.log(configManager.get('apikey')); // Jāizdrukā jūsu API atslēgaconsole.log(configManager.isConfigured()); // Jāizdrukā true, ja visa nepieciešamā konfigurācija ir iestatīta
Komandrindas saskarne (CLI)
LoadFocus API klients nodrošina visaptverošu CLI mijiedarbībai ar LoadFocus API.
JMeter testa izpilde
Testa izpilde
# Izpildiet testu pēc nosaukumaloadfocus-api jmeter execute --name "My JMeter Test"# Izpildiet testu ar konkrētiem parametriemloadfocus-api jmeter execute --name "My JMeter Test" --threads 50 --rampup 30 --duration 300
Testa izpilde un gaidīšana līdz pabeigšanai
# Izpildiet testu un gaidiet pabeigšanuloadfocus-api jmeter run-test --name "My JMeter Test"# Izpildiet testu ar sliekšņiemloadfocus-api jmeter run-test --name "My JMeter Test" --thresholds "avgresponse<=200,errors==0,p95<=250"# Izpildiet testu ar pielāgotu taimautu un aptaujas intervāluloadfocus-api jmeter run-test --name "My JMeter Test" --waitTimeout 1800 --pollInterval 15
Testa statusa uzraudzība
# Pārbaudiet testa statusu pēc nosaukuma un IDloadfocus-api jmeter status --name "My JMeter Test" --id 12345# Iegūstiet pēdējo testu izpilžu sarakstuloadfocus-api jmeter runs --limit 10
Rezultātu iegūšana
# Iegūstiet rezultātus konkrētam testamloadfocus-api jmeter results --name "My JMeter Test" --id 12345# Iegūstiet rezultātus ar konkrētām metrikāmloadfocus-api jmeter results --name "My JMeter Test" --id 12345 --include samples,avgresponse,errors
Darbs ar sliekšņiem
Komanda run-test atbalsta sliekšņu novērtēšanu, lai automātiski noteiktu, vai tests ir izturēts vai neizdevies, pamatojoties uz veiktspējas metrikām.
# Izpildiet testu ar vairākiem sliekšņiemloadfocus-api jmeter run-test --name "My JMeter Test" --thresholds "avgresponse<=200,errors==0,p95<=250,hitspersec>=10"
Atbalstītie sliekšņu operatori:
<=- Mazāks vai vienāds ar<- Mazāks par>=- Lielāks vai vienāds ar>- Lielāks par==- Vienāds ar!=- Nav vienāds ar
Izvades formāti
# Iegūstiet rezultātus JSON formātāloadfocus-api jmeter run-test --name "My JMeter Test" --format json > results.json# Noklusējuma formatētā izvadeloadfocus-api jmeter run-test --name "My JMeter Test"
JavaScript bibliotēkas izmantošana
LoadFocus API klientu var izmantot arī tieši kā JavaScript bibliotēku jūsu lietotnēs.
Pamata iestatīšana
// Importējiet LoadFocus API klientuconst loadfocus = require('@loadfocus/loadfocus-api-client');// Piekļūstiet konkrētiem komponentiemconst { JMeterClient, configManager } = loadfocus;
JMeter klients
// Izveidojiet JMeter klientuconst jmeterClient = new loadfocus.JMeterClient();// Vai ar tiešu konfigurācijuconst jmeterClient = new loadfocus.JMeterClient({apikey: 'YOUR_API_KEY',teamid: 'YOUR_TEAM_ID'});
Testu izpilde
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; // Atgrieziet testa ID vēlākai izmantošanai} catch (error) {console.error('Error executing test:', error);}}
Testa statusa uzraudzība
async function checkTestStatus(testName, testId) {try {const status = await jmeterClient.getStatus({testrunname: testName,testrunid: testId});console.log('Test status:', status);return status.state; // Atgrieziet pašreizējo stāvokli} catch (error) {console.error('Error checking test status:', error);}}
Rezultātu iegūšana
async function getTestResults(testName, testId) {try {// Iegūstiet pieejamās etiķetes testamconst labels = await jmeterClient.getLabels({testrunname: testName,testrunid: testId});console.log('Test labels:', labels);// Iegūstiet rezultātus katrai etiķeteiconst 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);}}
Pilns piemērs
Šeit ir pilns piemērs, kas izpilda testu, gaida pabeigšanu un iegūst rezultātus:
const { JMeterClient, configManager } = require('@loadfocus/loadfocus-api-client');// Iestatiet konfigurācijuconfigManager.set('apikey', 'YOUR_API_KEY');configManager.set('teamid', 'YOUR_TEAM_ID');// Izveidojiet klientuconst jmeterClient = new JMeterClient();async function runCompleteTest() {try {// Izpildiet testuconsole.log('Executing test...');const executeResult = await jmeterClient.execute({testrunname: 'My JMeter Test'});const testId = executeResult.testrunid;console.log(`Test execution started with ID: ${testId}`);// Gaidiet pabeigšanuconsole.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 {// Gaidiet pirms atkārtotas pārbaudesawait new Promise(resolve => setTimeout(resolve, 10000));}}// Iegūstiet rezultātusconsole.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);}}// Izpildiet testurunCompleteTest();
Papildu izmantošana
Pielāgota HTTP konfigurācija
Varat pielāgot HTTP klientu, ko izmanto LoadFocus API klients:
const { JMeterClient } = require('@loadfocus/loadfocus-api-client');// Izveidojiet klientu ar pielāgotām HTTP opcijāmconst jmeterClient = new JMeterClient({apikey: 'YOUR_API_KEY',teamid: 'YOUR_TEAM_ID',httpOptions: {timeout: 30000, // 30 sekundesretries: 3,headers: {'User-Agent': 'My Custom Application'}}});
Kļūdu apstrāde
LoadFocus API klients nodrošina detalizētu kļūdu informāciju:
try {const result = await jmeterClient.execute({testrunname: 'My JMeter Test'});} catch (error) {if (error.response) {// Pieprasījums tika veikts un serveris atbildēja ar statusa kodu// ārpus 2xx diapazonaconsole.error('API Error:', error.response.status, error.response.data);} else if (error.request) {// Pieprasījums tika veikts, bet atbilde netika saņemtaconsole.error('Network Error:', error.request);} else {// Kaut kas notika pieprasījuma iestatīšanā, kas izraisīja kļūduconsole.error('Request Error:', error.message);}}
Problēmu novēršana
Biežākās problēmas
Autentifikācijas kļūdas:
- Pārliecinieties, ka jūsu API atslēga un komandas ID ir pareizi konfigurēti
- Pārbaudiet, vai jūsu API atslēgai ir nepieciešamās atļaujas
Testa izpildes neveiksmes:
- Pārbaudiet, vai testa nosaukums pastāv jūsu LoadFocus kontā
- Pārbaudiet, vai esat sasniedzis sava konta vienlaicīgo testu limitu
Taimauta problēmas:
- Ilgstošiem testiem palieliniet
waitTimeoutparametru - Apsveriet aptaujas mehānisma ieviešanu sinhrona gaidīšanas vietā
- Ilgstošiem testiem palieliniet
Rezultātu iegūšanas problēmas:
- Pārliecinieties, ka tests ir pabeigts pirms rezultātu iegūšanas
- Pārbaudiet, vai testa ID ir pareizs
Atkļūdošana
Iespējojiet atkļūdošanas žurnalēšanu detalizētākai informācijai:
// Jūsu JavaScript kodāprocess.env.DEBUG = 'true';// Vai izmantojot CLIDEBUG=true loadfocus-api jmeter run-test --name "My JMeter Test"
Papildu palīdzībai, lūdzu, skatiet LoadFocus API dokumentāciju vai sazinieties ar atbalstu.