Dalam industri pembangunan perisian hari ini, ujian automatik telah menjadi bahagian yang sangat diperlukan. Tujuan utama ujian automatik adalah untuk meningkatkan kecekapan ujian dan mengurangkan ralat semasa ujian manual, dengan itu memastikan kualiti dan kestabilan produk perisian.
Dalam ujian automatik, WebDriver dan PHPUnit ialah dua alatan yang sangat popular. WebDriver boleh mensimulasikan operasi pengguna dalam penyemak imbas, seperti mengklik, menaip, mencari elemen, dsb. PHPUnit ialah rangka kerja ujian PHP yang popular yang boleh digunakan untuk menulis ujian unit, ujian fungsian, ujian integrasi, dsb.
Dalam artikel ini, kita akan membincangkan cara menyepadukan dua alatan ini dengan ketat untuk mencapai aliran kerja ujian yang cekap.
Pertama, kita perlu memasang dan mengkonfigurasi perisian yang diperlukan. Khususnya, kita perlu menggunakan perisian berikut:
Selenium WebDriver It ialah projek sumber terbuka yang boleh digunakan untuk mensimulasikan operasi pengguna dalam penyemak imbas. Kami boleh mengautomasikan ujian aplikasi web melalui Selenium WebDriver.
PHPUnit ialah rangka kerja ujian PHP yang popular yang boleh digunakan untuk menulis pelbagai jenis kes ujian, termasuk ujian unit, ujian fungsian, ujian penyepaduan, dsb.
Pelayar Chrome dan ChromeDriver juga perlu, kerana kami perlu menggunakan WebDriver untuk mensimulasikan operasi pengguna dalam penyemak imbas Chrome.
Sebelum kami mula menulis kes ujian, kami perlu mencipta kelas ujian baharu untuk kes ujian kami. Biasanya, kami akan meletakkan kelas ujian kami dalam direktori yang dipanggil "ujian". Sebagai contoh, kita boleh mencipta kelas ujian yang dipanggil "ExampleTest":
<?php use PHPUnitFrameworkTestCase; use FacebookWebDriverRemoteRemoteWebDriver; use FacebookWebDriverChromeChromeOptions; use FacebookWebDriverChromeChromeDriver; class ExampleTest extends TestCase { /** * @var RemoteWebDriver */ protected $webDriver; protected function setUp() { $options = new ChromeOptions(); $options->addArguments(['--disable-gpu']); $this->webDriver = ChromeDriver::start($options); } protected function tearDown() { $this->webDriver->quit(); } public function testTitle() { $this->webDriver->get('https://www.example.com'); $title = $this->webDriver->getTitle(); $this->assertEquals('Example Domain', $title); } }
Dalam kod di atas, kami telah mencipta kelas ujian yang dipanggil "ExampleTest". Kelas ujian ini mewarisi kelas TestCase PHPUnit supaya kita boleh menggunakan pelbagai penegasan dan kaedah ujian yang dilaksanakan dalam PHPUnit.
Kami juga mentakrifkan sifat yang dipanggil "$webDriver" untuk menyimpan tika WebDriver yang kami gunakan. Dalam kaedah setUp(), kami melancarkan penyemak imbas Chrome dan kemudian menyimpan contoh WebDriver dalam sifat "$webDriver". Dalam kaedah tearDown(), kami menutup pelayar supaya proses WebDriver dikosongkan selepas ujian selesai.
Dalam kaedah testTitle(), kami membuka halaman bernama "https://www.example.com" dan mendapatkan semula tajuk halaman menggunakan kaedah getTitle(). Kami kemudian menggunakan kaedah assertEquals() untuk menegaskan sama ada tajuk halaman ialah "Contoh Domain".
Sekarang kita telah mencipta kes ujian mudah, bagaimana kita menjalankannya? PHPUnit menyediakan alat baris arahan yang boleh digunakan untuk menjalankan kes ujian, contohnya:
phpunit tests/ExampleTest.php
Ini akan menjalankan kelas ujian ExampleTest yang baru kami buat.
Apabila kami menjalankan kes ujian, PHPUnit akan memulakan tika WebDriver dan menyambungkannya ke penyemak imbas Chrome yang sedang berjalan. Ia kemudiannya akan menjalankan setiap kaedah ujian dalam kes ujian mengikut urutan dan menutup penyemak imbas selepas melengkapkan kes ujian.
Sekarang kita boleh menggunakan PHPUnit dan WebDriver untuk menulis dan menjalankan kes ujian, bagaimana untuk menggabungkannya untuk mencapai kerja ujian yang cekap Bagaimana dengan aliran? Berikut ialah beberapa cadangan:
Ringkasan
Dalam artikel ini, kami membincangkan cara untuk menyepadukan PHPUnit dan WebDriver dengan ketat untuk mencapai aliran kerja ujian yang cekap. Kami belajar cara mencipta kes ujian mudah dan menjalankannya menggunakan PHPUnit dan WebDriver. Kami juga menyediakan beberapa cadangan supaya kami boleh mengoptimumkan lagi aliran kerja ujian kami dan meningkatkan kecekapan dan kualiti ujian.
Atas ialah kandungan terperinci Penyepaduan rapat PHP WebDriver dan PHPUnit: mencapai aliran kerja ujian yang cekap. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!