Kurs JS #1 – Wprowadzenie do JavaScript dla testerów

Java Script

Loading

Kurs JS #1 – Wprowadzenie do JavaScript dla testerów to kolejny artykuł – tym razem zachęcający do nauki JSa. JavaScript to język programowania, który w ostatnich latach stał się nieodłącznym elementem nowoczesnego testowania oprogramowania. Dla testerów, znajomość JavaScript otwiera nowe możliwości i znacząco poszerza zakres umiejętności. W tym artykule przyjrzymy się historii JavaScript, jego znaczeniu w testowaniu oraz podstawowym zastosowaniom w pracy testera.

Krótka historia JavaScript

JavaScript został stworzony w 1995 roku przez Brendana Eicha, pracującego wówczas dla Netscape Communications. Pierwotnie nazwany LiveScript, został szybko przemianowany na JavaScript, aby wykorzystać popularność języka Java. Mimo podobnej nazwy, JavaScript i Java to dwa odrębne języki programowania.

Początkowo JavaScript był używany głównie do dodawania interaktywności do stron internetowych. Z biegiem lat ewoluował, stając się wszechstronnym językiem programowania, wykorzystywanym nie tylko w przeglądarkach, ale także w aplikacjach serwerowych (Node.js), mobilnych i desktopowych.

Znaczenie JavaScript w nowoczesnym testowaniu oprogramowania

JavaScript odgrywa kluczową rolę w nowoczesnym testowaniu oprogramowania z kilku powodów:

1. Wszechobecność w aplikacjach webowych: Większość nowoczesnych aplikacji internetowych wykorzystuje JavaScript, co czyni go niezbędnym narzędziem dla testerów pracujących z tymi aplikacjami.

2. Automatyzacja testów: Wiele popularnych narzędzi do automatyzacji testów, takich jak Selenium WebDriver, Cypress czy Puppeteer, wykorzystuje JavaScript jako język skryptowy.

3. Testowanie API: JavaScript, wraz z bibliotekami takimi jak Axios czy Fetch, jest często używany do testowania interfejsów API.

4. Skrypty testowe: JavaScript pozwala na tworzenie skryptów testowych, które mogą symulować interakcje użytkownika i weryfikować poprawność działania aplikacji.

5. Debugowanie: Znajomość JavaScript ułatwia debugowanie aplikacji webowych i identyfikację problemów bezpośrednio w przeglądarce.

Podstawowe zastosowania JavaScript w testowaniu

1. Puppeteer

Puppeteer to narzędzie do automatyzacji przeglądarki Chrome/Chromium, stworzone przez Google.

const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://example.com');
await page.type('#search-input', 'Automatyzacja testów');
await page.click('#search-button');
await page.waitForSelector('.search-results');
await page.screenshot({ path: 'wyniki-wyszukiwania.png' });
await browser.close();
})();

2. Cypress

Cypress to nowoczesne narzędzie do testowania front-endu, które działa bezpośrednio w przeglądarce.

describe('Przykładowy test logowania', () => {
it('powinien zalogować użytkownika z poprawnymi danymi', () => {
cy.visit('https://example.com/login');
cy.get('#username').type('testuser@example.com');
cy.get('#password').type('password123');
cy.get('#login-button').click();
cy.url().should('include', '/dashboard');
cy.get('.welcome-message').should('contain', 'Witaj, TestUser');
});
});

3. Selenium WebDriver z JavaScript

Selenium WebDriver to popularne narzędzie do automatyzacji testów w różnych przeglądarkach.

const { Builder, By, Key, until } = require('selenium-webdriver');
(async function example() {
let driver = await new Builder().forBrowser('chrome').build();
try {
await driver.get('https://example.com');
let searchBox = await driver.findElement(By.name('q'));
await searchBox.sendKeys('Selenium', Key.RETURN);
await driver.wait(until.titleIs('Selenium - Wyniki wyszukiwania'), 5000);
let firstResult = await driver.findElement(By.css('.result-title'));
let text = await firstResult.getText();
console.log('Pierwszy wynik:', text);
} finally {
await driver.quit();
}
})();

4. Playwright

Playwright to narzędzie do automatyzacji przeglądarek, które obsługuje Chromium, Firefox i WebKit.

const { chromium } = require('playwright');

(async () => {
const browser = await chromium.launch();
const page = await browser.newPage();
await page.goto('https://example.com');
await page.fill('#email', 'test@example.com');
await page.fill('#password', 'securePassword123');
await page.fill('#confirm-password', 'securePassword123');
await page.check('#terms-checkbox');
await page.click('#register-button');
await page.waitForSelector('.confirmation-message');
const message = await page.textContent('.confirmation-message');
console.log('Komunikat potwierdzający:', message);
await page.screenshot({ path: 'rejestracja-sukces.png' });
await browser.close();
})();

Każde z tych narzędzi ma swoje unikalne cechy i zastosowania:

– Puppeteer jest świetny do automatyzacji i scrapingu w Chrome/Chromium.
– Cypress oferuje łatwe w użyciu API i doskonałe narzędzia do debugowania.
– Selenium WebDriver jest wszechstronny i wspiera wiele przeglądarek.
– Playwright pozwala na testowanie w różnych silnikach przeglądarek z jednego API.

Wybór narzędzia zależy od specyficznych wymagań projektu, ale wszystkie te przykłady pokazują, jak JavaScript może być wykorzystywany do efektywnego tworzenia automatycznych testów w różnych środowiskach.

Podsumowanie

Podsumowując, JavaScript stał się nieodzownym narzędziem w arsenale nowoczesnego testera. Jego wszechstronność, powszechność w aplikacjach webowych oraz bogaty ekosystem narzędzi testowych czynią go cenną umiejętnością dla każdego profesjonalisty w dziedzinie testowania oprogramowania. Nauka JavaScript otwiera drzwi do bardziej efektywnego i wszechstronnego testowania, umożliwiając testerom nie tylko lepsze zrozumienie testowanych aplikacji, ale także tworzenie zaawansowanych, zautomatyzowanych scenariuszy testowych.