Po každé větší změně v projektu, případně rovnou při každém releasu je vhodné otestovat základní funkčnost aplikace. End-to-End testování přímo v prohlížeči je jednou z možností a je s tím podle mě sranda.
End-to-end testing is a methodology used to test whether the flow of an application is performing as designed from start to finish.
Facebook Webdriver si stáhneme přes composer, Selenium a ChromeDriver si stáhneme klasicky a naše složka bude vypadat takto:
Založíme soubor test.php, ten může vypadat nějak takto:
setExperimentalOption('prefs', \['download.default\_directory' => 'c:/temp'\]); $capabilities = DesiredCapabilities::chrome(); $capabilities->setCapability(ChromeOptions::CAPABILITY, $options); // create driver and resize window $driver = RemoteWebDriver::create($host, $capabilities, 5000); $driver->manage()->window()->setSize(new WebDriverDimension(1360, 768)); // start testing this URL $driver->navigate()->to("https://www.skoula.cz/"); // click on some element $driver->findElement(WebDriverBy::cssSelector('.menu-item-1233 a'))->click(); // check URL if we are there already $driver->wait(5, 500)->until( WebDriverExpectedCondition::urlContains('projekty') ); // is there some element? if ($driver->findElements(WebDriverBy::className('entry-title'))) { echo "ok"; } else { echo "ko"; } ### A jak probíhá testování? 1. Nejprve si spustíme Selenium Server - stačí spustit stažený .jar soubor. 2. Pak spustíme náš test.php - ať už v prohlížeči nebo přes konzoli. Jak to vypadá v praxi vidíte na tomto videu. Není zrychlené :) https://www.youtube.com/watch?v=djGh4HBszhM Celý tento mini projekt si můžete stáhnout [zde](https://skoula.cz/wp-content/uploads/tests.7z).