Apabila aplikasi web menjadi semakin kompleks dan canggih, ujian automatik telah menjadi bahagian penting dalam kerja harian kami. Selenium ialah rangka kerja ujian automatik yang sangat popular yang membolehkan kami mensimulasikan tingkah laku pengguna dan menguji pelbagai aspek aplikasi web.
CakePHP ialah rangka kerja aplikasi web sumber terbuka yang menggunakan banyak alatan dan teknologi untuk membantu kami mengekalkan asas kod yang mampan dan boleh dipercayai. Dalam artikel ini, kami akan meneroka cara mengautomasikan ujian menggunakan Selenium dalam CakePHP.
Mula-mula, kita perlu memasang Selenium dan pemacu yang berkaitan. Selenium boleh dipasang melalui Composer, cuma jalankan arahan berikut:
composer require --dev php-webdriver/webdriver
Selain itu, kita perlu memasang pemacu penyemak imbas supaya Selenium boleh mensimulasikan tingkah laku pengguna dalam pelayar web. Di sini, kami akan menggunakan penyemak imbas Chrome dan pemacu ChromeDriver, anda boleh menggunakan penyemak imbas dan pemacu lain, sila rujuk dokumentasi Selenium untuk butiran.
Pertama, kita perlu memasang penyemak imbas Chrome dan pemacu ChromeDriver. Kami boleh memuat turun versi terkini ChromeDriver daripada pautan berikut: https://sites.google.com/a/chromium.org/chromedriver/downloads
Setelah muat turun selesai, kami perlu menambahkan ChromeDriver ke laluan supaya Selenium boleh menemuinya.
Sebelum menulis ujian, kita perlu melakukan beberapa konfigurasi Selenium. Mula-mula kita perlu mencipta klien Selenium dan kemudian menentukan pemacu penyemak imbas untuk digunakan, kita akan menggunakan ChromeDriver:
use FacebookWebDriverRemoteRemoteWebDriver; use FacebookWebDriverChromeChromeOptions; $options = new ChromeOptions(); $options->addArguments(['--disable-notifications', '--headless']); $webDriver = RemoteWebDriver::create('http://localhost:4444/wd/hub', DesiredCapabilities::chrome()->setCapability(ChromeOptions::CAPABILITY, $options));
Di sini kami juga mempunyai beberapa pilihan Chrome seperti melumpuhkan pemberitahuan dan berjalan dalam mod tanpa kepala dijalankan.
Kini, kami sudah bersedia untuk memulakan ujian menulis. Pertama, kita perlu mencipta kelas ujian dan kaedah ujian. Kaedah ujian hendaklah sentiasa bermula dengan ujian.
use PHPUnitFrameworkTestCase; class MyTest extends TestCase { public function testMyMethod() { // Your test code here } }
Dalam kaedah ujian, kita boleh menggunakan Selenium untuk mensimulasikan operasi pengguna. Sebagai contoh, kod berikut akan membuka halaman utama Google dan memasukkan "CakePHP" dalam kotak carian:
class MyTest extends TestCase { public function testGoogleSearch() { $webDriver->get('http://www.google.com'); $searchBox = $webDriver->findElement(FacebookWebDriverWebDriverBy::name('q')); $searchBox->sendKeys('CakePHP'); $searchBox->submit(); $this->assertContains('CakePHP', $webDriver->getTitle()); } }
Dalam ujian ini, kami mula-mula membuka halaman utama Google, kemudian memasukkan CakePHP dalam kotak carian, dan akhirnya menyerahkan borang dan Sahkan bahawa pengepala CakePHP disertakan.
Akhir sekali, kami boleh menggunakan PHPUnit untuk menjalankan ujian kami. Mula-mula, kita perlu memulakan pelayan Selenium dalam baris arahan:
java -Dwebdriver.chrome.driver=/path/to/chromedriver -jar /path/to/selenium-server-standalone.jar
Seterusnya, kita boleh menjalankan ujian:
vendor/bin/phpunit tests/MyTest.php
Ini akan menjalankan semua ujian yang kami tulis dalam fail MyTest.php .
Dalam artikel ini, kami meneroka cara mengautomasikan ujian menggunakan Selenium dalam CakePHP. Kami mula-mula memasang pemacu Selenium dan ChromeDriver, kemudian mengkonfigurasi klien Selenium dan menulis ujian mudah untuk mengesahkan carian Google. Akhirnya, kami menjalankan ujian kami menggunakan PHPUnit.
Menggunakan Selenium untuk ujian automatik boleh meningkatkan kecekapan kerja dan kualiti kod kami serta mengurangkan ralat manusia. Saya harap artikel ini dapat memberi anda sedikit bantuan dan panduan untuk menggunakan Selenium dalam CakePHP.
Atas ialah kandungan terperinci Bagaimana untuk menggunakan Selenium dengan CakePHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!