Rumah >pembangunan bahagian belakang >Tutorial Python >Cara menggunakan selenium, alat ujian automatik Python
Pengujian automatik merujuk kepada automasi ujian perisian, menjalankan aplikasi atau sistem di bawah keadaan pratetap dan keadaan pratetap termasuk keadaan biasa dan tidak normal , dan akhirnya menilai hasil yang sedang dijalankan. Proses menukar tingkah laku ujian yang dipacu manusia kepada pelaksanaan mesin.
Ujian automatik termasuk automasi UI, automasi antara muka dan automasi ujian unit. Perancangan ujian automatik mengikut model piramid ini boleh menghasilkan nisbah output-ke-input (ROI) ujian automatik terbaik dan memperoleh faedah yang baik dengan pelaburan yang kurang.
Pelaburan terbesar haruslah dalam ujian unit dan ujian unit harus dijalankan dengan lebih kerap.
Rangka kerja ujian unit Java ialah Junit.
Pengujian antara muka ialah ujian API Berbanding dengan automasi UI, automasi API lebih mudah untuk dilaksanakan dan lebih stabil untuk dilaksanakan.
Automasi antara muka mempunyai ciri-ciri berikut:
Boleh campur tangan pada peringkat awal produk, selepas antara muka selesai
Jumlah penyelenggaraan kes penggunaan adalah kecil
Sesuai untuk projek dengan perubahan antara muka yang kecil dan perubahan antara muka yang kerap
Alat ujian automasi antara muka biasa sertakan RobotFramework, JMeter, SoapUI, TestNG +HttpClient, Postman, dsb.
Walaupun piramid ujian memberitahu kami untuk melakukan sebanyak mungkin ujian automatik pada lapisan API, ujian automatik lapisan UI adalah lebih dekat dengan keperluan pengguna dan realiti perniagaan sistem perisian. Dan kadangkala kita perlu melakukan ujian lapisan UI.
Ciri automasi UI:
Jumlah penyelenggaraan kes penggunaan yang banyak
Halaman ini sangat relevan dan mesti dibangunkan kemudian pada halaman projek Intervensi kemudian
Ujian UI sesuai untuk projek dengan perubahan antara muka yang kecil
Terdapat banyak rangka kerja ujian untuk lapisan UI , seperti pelanggan Windows menguji AutoIT, selenium untuk ujian web dan TestPlant, eggPlant, rangka kerja Robot, QTP, dsb.
Mengurangkan pelaburan manusia dalam ujian regresi berskala besar yang disebabkan oleh perubahan atau pembangunan berbilang fasa sistem besar. Ini mungkin tugas yang paling penting ujian automatik Terutama apabila program diubah suai dengan kerap, kesannya sangat jelas Pada peringkat awal ujian automatik, lebih banyak tenaga kerja dilaburkan, tetapi selepas memasuki tempoh penyelenggaraan, banyak tenaga kerja dapat disimpan, manakala di peringkat kemudian. daripada ujian manual, banyak tenaga manusia diperlukan untuk ujian regresi
Kurangkan masa ujian berulang dan capai ujian regresi pantas
Buat proses ujian yang sangat baik dan boleh dipercayai serta mengurangkan kesilapan manusia
Boleh menjalankan lebih banyak ujian yang membosankan
Boleh melakukan beberapa ujian yang sukar atau mustahil untuk dilakukan lakukan secara manual
Sumber penggunaan yang lebih baik
Kebolehgunaan semula skrip ujian
Mereka yang melaksanakan ujian automatik Prasyarat: keperluan jarang berubah, kitaran projek cukup panjang dan skrip ujian automatik boleh digunakan semula.
Sesuai untuk projek automasi:
Projek jenis produk. Untuk projek jenis produk, versi baharu adalah penambahbaikan pada versi lama, dan fungsi projek tidak banyak berubah Walau bagaimanapun, fungsi baharu dan lama projek mesti diuji regresi berulang kali. Kelebihan ujian automatik ialah ujian regresi, yang boleh mengesahkan dengan berkesan sama ada kecacatan baharu diperkenalkan dan sama ada kecacatan lama dibaiki. Pada tahap tertentu, alat ujian automatik boleh dipanggil alat ujian regresi.
Ujian mekanikal dan kerap. Dalam projek jangka panjang, jumlah data yang sama besar perlu dimasukkan berulang kali. Seperti ujian keserasian.
Projek berikut tidak sesuai untuk ujian automatik:
Projek dengan perubahan permintaan yang kerap, skrip automasi tidak boleh digunakan semula dan kos penyelenggaraan adalah terlalu tinggi , prestasi kos rendah
Kitaran projek adalah pendek, skrip automatik tidak digunakan berkali-kali selepas siap, prestasi kos rendah
Projek yang sangat interaktif, Untuk projek yang memerlukan campur tangan manual, automasi tidak boleh dilaksanakan
Analisis: memahami logik sistem secara keseluruhan dan menganalisis sistem teras seni bina sistem.
Reka bentuk: Reka bentuk kes ujian hendaklah khusus dan cukup jelas, dengan liputan yang luas dan tepat
Pelaksanaan: Skrip pelaksanaan, terdapat dua Keperluan pertama ialah penegasan, dan keperluan kedua ialah penggunaan parameterisasi yang munasabah.
Pelaksanaan: Melaksanakan skrip bukanlah semudah yang kita fikirkan. Keabnormalan semasa pelaksanaan skrip memerlukan kami menganalisis punca dengan teliti.
Ringkasan: Analisis keputusan ujian dan ringkasan proses ujian adalah kunci kepada ujian automatik.
Penyelenggaraan: Penyelenggaraan skrip ujian automatik adalah masalah yang sukar tetapi perlu untuk diselesaikan.
Analisis: Analisis mendalam tentang risiko perlindungan kes penggunaan automatik dan kos penyelenggaraan skrip semasa proses ujian automatik.
Selenium ialah rangka kerja ujian automatik berasaskan UI untuk aplikasi web, menyokong berbilang platform, berbilang penyemak imbas dan berbilang bahasa.
RC selenium awal telah digantikan oleh webDriver semasa Ia boleh difahami secara ringkas sebagai selenium1.0 + webdriver, dan Selenium2.0 semasa. Biasanya, kami menggunakan istilah "Selenium" untuk merujuk kepada Selenium 2.0. Selenium merangkumi tiga komponen: Selenium IDE, Webdriver dan Selenium Grid.
Mari perkenalkan setiap satu:
Selenium IDE
Selenium IDE ialah persekitaran pembangunan bersepadu yang lengkap untuk ujian Selenium Ia boleh merekodkan operasi pengguna secara langsung dalam penyemak imbas, dan boleh Main semula , edit dan nyahpepijat skrip ujian. Semasa nyahpepijat, anda boleh melangkah melalui pelaksanaan atau melaraskan kelajuan pelaksanaan, dan melihat log di bahagian bawah untuk mendapatkan maklumat ralat. Skrip ujian yang direkodkan boleh dieksport dalam berbilang bahasa, seperti Java, C#, Python, Ruby, dll., menjadikannya lebih mudah bagi penguji yang menguasai bahasa yang berbeza untuk beroperasi. Webdriver
Selenium RC menjalankan aplikasi JavaScript dalam penyemak imbas, dan akan terdapat masalah kotak pasir persekitaran skrip. Berdasarkan pengikatan bahasa tertentu (Java, C#, Python, Ruby, Perl, JavaScript, dll.) untuk mendorong penyemak imbas mengendalikan dan mengesahkan elemen web.
Cara webdriver berfungsi:
Selepas memulakan penyemak imbas, selenium-webdriver akan mengikat pelayar sasaran ke port tertentu dan penyemak imbas yang dimulakan akan bertindak sebagai pelayan jauh pemacu web .
Pelanggan (iaitu, skrip ujian) menggunakan ComandExecutor untuk menghantar permintaan HTTP kepada pelayan (protokol komunikasi: Protokol Wire WebDriver. Dalam kandungan permintaan HTTP, Protokol WebDriver Wire akan digunakan Rentetan berformat JSON tertentu yang memberitahu Selenium perkara yang kami mahu penyemak imbas lakukan seterusnya).
Pihak Sever perlu bergantung pada komponen penyemak imbas asli untuk menukar arahan Perkhidmatan Web kepada panggilan asli penyemak imbas untuk menyelesaikan operasi.
selenium Grid
selenium Grid ialah pelayan yang menyediakan senarai pelayan yang diakses oleh tika penyemak imbas dan mengurus pendaftaran dan maklumat status setiap nod. Skrip ujian yang berbeza boleh dilaksanakan pada pelayan yang berbeza pada masa yang sama.
Open Edge-Plugin-select selenium IDE:
Buat projek baharu, dan akan ada ujian Tanpa Tajuk dalam tetingkap Kes Ujian pada Sarung kiri, klik kanan dan namakan semula kepada "ujian"
Klik butang rakaman (titik merah kecil) di bahagian atas sebelah kanan IDE untuk memulakan rakaman manual
dalam bar alamat Masukkan URL untuk diuji, seperti http://www.baidu.com, cari kata kunci, dan anda boleh melihat bahawa IDE sedang dirakam.
Klik kanan pada halaman untuk menambah pusat pemeriksaan.
Selepas rakaman selesai, klik butang rekod (titik merah kecil) untuk menamatkan rakaman manual ini. Dalam selenium IDE, pilih Kes Ujian, klik kanan dan pilih "Eksport sebagai fail test.py.
Jalankan skrip dalam python dan nyahpepijatnya.
# Generated by Selenium IDE import pytest import time import json from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.common.action_chains import ActionChains from selenium.webdriver.support import expected_conditions from selenium.webdriver.support.wait import WebDriverWait from selenium.webdriver.common.keys import Keys from selenium.webdriver.common.desired_capabilities import DesiredCapabilities class TestTest(): def setup_method(self, method): self.driver = webdriver.Chrome() self.vars = {} def teardown_method(self, method): self.driver.quit() def test_test(self): self.driver.get("https://www.baidu.com/") self.driver.set_window_size(809, 864) self.driver.find_element(By.ID, "kw").click() self.driver.execute_script("window.scrollTo(0,0)") self.driver.find_element(By.ID, "kw").send_keys("四月是你的谎言") self.driver.find_element(By.ID, "su").click()
Atas ialah kandungan terperinci Cara menggunakan selenium, alat ujian automatik Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!