Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Penyepaduan rapat PHP WebDriver dan PHPUnit: mencapai aliran kerja ujian yang cekap

Penyepaduan rapat PHP WebDriver dan PHPUnit: mencapai aliran kerja ujian yang cekap

王林
王林asal
2023-06-15 13:44:171436semak imbas

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.

  1. Pasang dan konfigurasikan perisian yang diperlukan

Pertama, kita perlu memasang dan mengkonfigurasi perisian yang diperlukan. Khususnya, kita perlu menggunakan perisian berikut:

  • Selenium WebDriver
  • PHPUnit
  • Pelayar Chrome dan ChromeDriver

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.

  1. Mencipta kes ujian

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".

  1. Jalankan kes ujian

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.

  1. Mencapai aliran kerja ujian yang cekap

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:

  • Gunakan alatan baris arahan. PHPUnit menyediakan alat baris arahan yang sangat mudah yang boleh membantu kami menjalankan kes ujian dan suite ujian dengan mudah. Kami boleh menyepadukan ini ke dalam proses CI/CD kami supaya kami boleh menjalankan ujian secara automatik selepas melakukan kod.
  • Asingkan data ujian dan kod ujian. Kita harus memisahkan data ujian daripada kod ujian supaya data boleh diubah suai dan dikemas kini dengan mudah manakala kod ujian kekal tidak berubah. Ini boleh dicapai dengan menggunakan pembekal data dan ujian dipacu data.
  • Gabungkan dengan alatan lain. Untuk meningkatkan lagi kecekapan aliran kerja ujian, kami boleh menggunakan gabungan alat lain, seperti alat analisis statik kod, alat analisis liputan kod dan alat penyepaduan berterusan/penyampaian berterusan.

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn