Livrare LOT 1 - Didi

This commit is contained in:
Dezvoltari Evotech 2026-06-25 14:13:25 -07:00
commit 5380c3fc63
990 changed files with 133308 additions and 0 deletions

View file

@ -0,0 +1,43 @@
import http from 'k6/http';
import { check, sleep } from 'k6';
import { Rate, Trend } from 'k6/metrics';
// Custom metrics
const errorRate = new Rate('errors');
const searchDuration = new Trend('search_duration');
// Simple baseline test - 1 user, 2 minutes
export const options = {
vus: 1, // 1 virtual user
duration: '2m', // 2 minutes
thresholds: {
http_req_duration: ['p(95)<3000'], // 95% under 3s
errors: ['rate<0.05'], // Error rate < 5%
},
};
const queries = [
'python tutorial',
'machine learning',
'linux commands',
'docker compose',
];
export default function () {
const query = queries[Math.floor(Math.random() * queries.length)];
const url = `http://localhost:8080/search?q=${encodeURIComponent(query)}&format=html`;
const res = http.get(url);
searchDuration.add(res.timings.duration);
errorRate.add(res.status !== 200);
check(res, {
'status is 200': (r) => r.status === 200,
'response has results': (r) => r.body.includes('result'),
'response time < 3s': (r) => r.timings.duration < 3000,
});
sleep(2); // 2 seconds between requests
}

View file

@ -0,0 +1,144 @@
import http from 'k6/http';
import { check, sleep } from 'k6';
import { Rate, Trend } from 'k6/metrics';
// Custom metrics
const errorRate = new Rate('errors');
const searchDuration = new Trend('search_duration');
// Test configuration - 50 users, similar to previous test
export const options = {
stages: [
{ duration: '2m', target: 10 }, // Ramp up to 10 users
{ duration: '5m', target: 10 }, // Stay at 10 users
{ duration: '2m', target: 50 }, // Ramp up to 50 users
{ duration: '5m', target: 50 }, // Stay at 50 users
{ duration: '2m', target: 0 }, // Ramp down
],
thresholds: {
http_req_duration: ['p(95)<10000'], // 95% under 10s (longer for complex queries)
errors: ['rate<0.1'],
},
};
// =============================================================================
// REAL FACT-CHECKING CLAIMS - All TRUE and VERIFIABLE
// These simulate what users would search on a disinformation verification platform
// =============================================================================
const factCheckClaims = [
// --- US POLITICS ---
"Joe Biden signed Infrastructure Investment and Jobs Act 2021",
"Donald Trump impeached twice by House of Representatives",
"Barack Obama born in Hawaii August 4 1961",
"January 6 2021 Capitol building attack Washington DC",
"Supreme Court overturned Roe v Wade June 2022",
"Biden student loan forgiveness plan blocked by Supreme Court",
"Trump classified documents Mar-a-Lago FBI search 2022",
"Ketanji Brown Jackson first Black woman Supreme Court",
// --- EUROPEAN POLITICS ---
"Russia invaded Ukraine February 24 2022",
"UK Brexit officially completed January 31 2020",
"Emmanuel Macron reelected French president 2022",
"Olaf Scholz became German Chancellor December 2021",
"Boris Johnson resigned as UK Prime Minister July 2022",
"Sweden Finland applied NATO membership 2022",
"Italy Giorgia Meloni first female prime minister 2022",
"European Union sanctions Russia Ukraine invasion",
// --- COVID-19 FACTS ---
"COVID-19 pandemic declared by WHO March 11 2020",
"Pfizer BioNTech vaccine FDA emergency authorization December 2020",
"COVID-19 originated Wuhan China December 2019",
"WHO declared COVID-19 emergency over May 2023",
"mRNA vaccines developed Moderna Pfizer coronavirus",
"COVID-19 global deaths exceeded 6 million 2022",
// --- CLIMATE & SCIENCE ---
"Paris Agreement climate change signed 2015",
"IPCC report 1.5 degrees celsius warming target",
"NASA confirms 2023 hottest year on record",
"Arctic sea ice minimum record low 2012",
"UN climate summit COP28 Dubai 2023",
"Greenhouse gas emissions carbon dioxide methane",
// --- ELECTIONS & DEMOCRACY ---
"2020 US presidential election Biden 306 electoral votes",
"Brazil Lula da Silva elected president October 2022",
"India Narendra Modi BJP won 2024 general election",
"Mexico Claudia Sheinbaum elected first female president 2024",
"Argentina Javier Milei elected president November 2023",
"Poland Donald Tusk returned as prime minister 2023",
// --- INTERNATIONAL EVENTS ---
"Hamas attack Israel October 7 2023",
"Nord Stream pipeline explosions September 2022",
"Queen Elizabeth II died September 8 2022",
"Evan Gershkovich Wall Street Journal detained Russia",
"Wagner Group rebellion Prigozhin June 2023",
"China spy balloon shot down US February 2023",
// --- ECONOMIC FACTS ---
"US Federal Reserve raised interest rates 2022 2023",
"Silicon Valley Bank collapsed March 2023",
"US debt ceiling crisis June 2023",
"Inflation rate US peaked 9.1 percent June 2022",
"Twitter acquired by Elon Musk October 2022 renamed X",
"OpenAI released ChatGPT November 2022",
// --- MISINFORMATION TOPICS (TRUE FACTS TO COUNTER) ---
"vaccines do not cause autism scientific consensus",
"earth is approximately 4.5 billion years old",
"climate change caused by human activity scientific consensus",
"2020 US election no widespread voter fraud evidence",
"COVID-19 lab leak theory investigated WHO",
"5G technology does not spread coronavirus",
// --- POLITICAL QUOTES (VERIFIABLE) ---
"Putin called Ukraine invasion special military operation",
"Trump said inject disinfectant COVID briefing April 2020",
"Biden said democracy is on the ballot 2024",
"Zelensky addressed US Congress December 2022",
"Xi Jinping third term Chinese president 2023",
// --- LEGAL & INVESTIGATIONS ---
"Trump indicted Manhattan DA March 2023",
"Trump indicted classified documents June 2023",
"Trump indicted January 6 investigation August 2023",
"Hunter Biden convicted gun charges June 2024",
"Alex Jones ordered pay Sandy Hook families damages",
"Sam Bankman-Fried FTX fraud conviction 2023",
// --- TECHNOLOGY & AI ---
"artificial intelligence ChatGPT GPT-4 release 2023",
"European Union AI Act regulation passed 2024",
"Google Bard AI chatbot released 2023",
"Elon Musk founded xAI company 2023",
"deepfake technology election misinformation concerns",
"social media algorithms spread misinformation studies",
];
export default function () {
// Random claim from list
const claim = factCheckClaims[Math.floor(Math.random() * factCheckClaims.length)];
// Make search request
const url = `http://localhost:8080/search?q=${encodeURIComponent(claim)}&format=html`;
const res = http.get(url);
// Record metrics
searchDuration.add(res.timings.duration);
errorRate.add(res.status !== 200);
// Validate response
check(res, {
'status is 200': (r) => r.status === 200,
'response has results': (r) => r.body.includes('result'),
'response time < 10s': (r) => r.timings.duration < 10000,
});
// Think time (user reads results, 2-5 seconds)
sleep(Math.random() * 3 + 2);
}

View file

@ -0,0 +1,60 @@
import http from 'k6/http';
import { check, sleep } from 'k6';
import { Rate, Trend } from 'k6/metrics';
// Custom metrics
const errorRate = new Rate('errors');
const searchDuration = new Trend('search_duration');
// Test configuration
export const options = {
// Test stages (ramp up, steady, ramp down)
stages: [
{ duration: '2m', target: 10 }, // Ramp up to 10 users
{ duration: '5m', target: 10 }, // Stay at 10 users
{ duration: '2m', target: 50 }, // Ramp up to 50 users
{ duration: '5m', target: 50 }, // Stay at 50 users
{ duration: '2m', target: 0 }, // Ramp down
],
// Pass/fail thresholds
thresholds: {
http_req_duration: ['p(95)<5000'], // 95% under 5s
errors: ['rate<0.1'], // Error rate < 10%
},
};
// Sample search queries (vary these!)
const queries = [
'python tutorial',
'machine learning',
'linux commands',
'javascript async await',
'docker compose',
'rust programming',
'kubernetes deployment',
'postgresql optimization',
];
export default function () {
// Random query from list
const query = queries[Math.floor(Math.random() * queries.length)];
// Make search request
const url = `http://localhost:8080/search?q=${encodeURIComponent(query)}&format=html`;
const res = http.get(url);
// Record custom metrics
searchDuration.add(res.timings.duration);
errorRate.add(res.status !== 200);
// Validate response
check(res, {
'status is 200': (r) => r.status === 200,
'response has results': (r) => r.body.includes('result'),
'response time < 5s': (r) => r.timings.duration < 5000,
});
// Think time (simulates real user)
sleep(Math.random() * 3 + 1); // 1-4 seconds between requests
}

View file

@ -0,0 +1,69 @@
import http from 'k6/http';
import { check, sleep } from 'k6';
import { Rate, Trend, Counter } from 'k6/metrics';
const errorRate = new Rate('errors');
const searchDuration = new Trend('search_duration');
const requestCount = new Counter('total_requests');
// =============================================================================
// STRESS TEST - Push to 200 users, find breaking point
// Duration: ~13 minutes
// =============================================================================
export const options = {
stages: [
{ duration: '1m', target: 50 }, // Warm up to 50 users
{ duration: '2m', target: 50 }, // Hold - baseline
{ duration: '1m', target: 100 }, // Double to 100 users
{ duration: '2m', target: 100 }, // Hold - watch for degradation
{ duration: '1m', target: 150 }, // Push to 150 users
{ duration: '2m', target: 150 }, // Hold - likely slowing down
{ duration: '1m', target: 200 }, // Push to 200 users
{ duration: '2m', target: 200 }, // Hold - stress zone
{ duration: '1m', target: 0 }, // Ramp down - watch recovery
],
thresholds: {
errors: ['rate<0.5'], // Allow up to 50% errors
http_req_duration: ['p(50)<30000'], // Median under 30s (very lenient)
},
};
// Fact-checking claims for realistic testing
const factCheckClaims = [
"Joe Biden signed Infrastructure Investment and Jobs Act 2021",
"Russia invaded Ukraine February 24 2022",
"COVID-19 pandemic declared by WHO March 11 2020",
"Supreme Court overturned Roe v Wade June 2022",
"Twitter acquired by Elon Musk October 2022",
"Hamas attack Israel October 7 2023",
"Trump indicted classified documents June 2023",
"ChatGPT released by OpenAI November 2022",
"Queen Elizabeth II died September 8 2022",
"2020 US election Biden 306 electoral votes",
"Brexit UK left European Union January 2020",
"Zelensky addressed US Congress December 2022",
"Silicon Valley Bank collapsed March 2023",
"Wagner Group rebellion Prigozhin June 2023",
"OpenAI Sam Altman fired rehired November 2023",
];
export default function () {
const claim = factCheckClaims[Math.floor(Math.random() * factCheckClaims.length)];
const url = `http://localhost:8080/search?q=${encodeURIComponent(claim)}&format=html`;
const res = http.get(url, { timeout: '60s' }); // Longer timeout for stress
searchDuration.add(res.timings.duration);
errorRate.add(res.status !== 200);
requestCount.add(1);
check(res, {
'status is 200': (r) => r.status === 200,
'response has results': (r) => r.body && r.body.includes('result'),
'no timeout': (r) => r.timings.duration < 60000,
});
// Minimal sleep = maximum pressure (0.5-1.5 seconds)
sleep(Math.random() + 0.5);
}