Rumah > Artikel > pembangunan bahagian belakang > Soalan lazim dan jawapan temuduga ujian automasi Python
Kata kunci: tidak berubah, berulang, diseragamkan
1) Ujian tugasan adalah jelas dan keperluan tidak akan berubah dengan kerap
2) Kitaran projek hendaklah cukup lama
3) Skrip ujian automatik boleh digunakan semula, seperti: ujian regresi yang lebih kerap
4) Pembangunan sistem perisian yang sedang diuji adalah agak standard dan boleh memastikan kebolehujian sistem
5 ) Antara muka sistem perisian adalah stabil dan kurang berubah
6) Tekanan kemajuan projek tidak terlalu hebat
merujuk kepada menukar halaman tertentu kepada objek dalam bahasa pengaturcaraan, menukar ciri halaman kepada sifat objek dan menukar operasi halaman kepada kaedah objek.
1) Secara umumnya, setiap halaman dianggap sebagai objek, dan kaedah elemen kedudukan dan kaedah operasi halaman ditulis pada lapisan halaman
2) Lapisan use case memanggil kaedah operasi daripada lapisan halaman dan ditulis sebagai kes penggunaan
3) Ia boleh memisahkan elemen kedudukan dan skrip
4) Ia digunakan terutamanya untuk merealisasikan pemisahan operasi halaman dan menguji logik
1) Untuk merangkum fungsi atau perkhidmatan pada halaman, sebagai contoh, jika anda mengklik pada elemen halaman untuk memasuki halaman baru, anda boleh merangkum kaedah "masukkan halaman baru" untuk perkhidmatan ini
2) Butiran Enkapsulasi, hanya berikan nama kaedah atau antara muka kepada dunia luar, cuba jangan dedahkan bahagian dalam halaman
3) Jangan gunakan penegasan dalam butiran operasi terkapsul, letakkan penegasan dalam modul berasingan ,
4) Mengklik butang akan membuka halaman baharu Anda boleh menggunakan kaedah kembali untuk melompat Contohnya, kembali Halaman Utama() bermakna melompat ke halaman utama
5) Anda tidak. t perlu merangkumkan kelakuan seluruh halaman untuk keseluruhan PO Anda hanya perlu menggunakan apa-apa logik yang perlu dirangkumkan
6) Sesuatu tindakan boleh menghasilkan keputusan yang berbeza mungkin berjaya atau gagal. Tuliskan dua kaedah untuk dua hasil: click_success dan click_error
ialah semua parameter panjang berubah-ubah, yang menyelesaikan masalah parameter tidak tetap.
args ialah parameter bukan kata kunci, digunakan untuk tupel; kwargs ialah parameter kata kunci (kamus)
Dalam erti kata lain, args mewakili sebarang parameter tanpa nama berbilang, tetapi kwags mewakili hubungan yang sepadan Kata kunci hujah.
Apabila menggunakan, sila ambil perhatian bahawa *args mestilah sebelum **kwags, jika tidak, ralat sintaks akan berlaku.
Pengumpulan Sampah, dirujuk sebagai GC, ialah mekanisme yang disertakan dengan penterjemah Python dan digunakan khusus untuk pengumpulan sampah.
Apabila mentakrifkan pembolehubah, ruang memori akan digunakan apabila pembolehubah tersebut habis digunakan, ruang memori yang diduduki oleh pembolehubah juga harus dilepaskan dan Python akan mengitar semulanya oleh mekanisme GC.
Tidak kira apa jenis mekanisme kutipan sampah, secara amnya ia dibahagikan kepada dua peringkat: pengesanan sampah dan kutipan sampah.
Pengesanan sampah adalah untuk membezakan antara memori "boleh dikitar semula" dan "tidak boleh dikitar semula" dalam memori yang diperuntukkan.
Pengumpulan sampah membolehkan sistem pengendalian mendapatkan semula kawalan ke atas blok memori kitar semula yang dikenal pasti semasa fasa pengesanan sampah.
Pengumpulan sampah yang dipanggil tidak secara langsung mengosongkan data dalam memori ini, tetapi mengembalikan hak untuk menggunakannya kepada sistem pengendalian, supaya aplikasi tidak mendudukinya.
Apa itu sampah
1) Apabila pembolehubah dipanggil dan tidak diperlukan lagi, ia adalah sampah.
2) Apabila nama pembolehubah yang menunjuk ke alamat pembolehubah menghala ke alamat lain, alamat memori pembolehubah asal tidak boleh diakses dan pembolehubah itu juga adalah sampah pada masa ini.
Pertama sekali, selenium tidak boleh mengendalikan elemen tersembunyi (tetapi ia boleh diposisikan seperti biasa). masuk boleh melaksanakan skrip js.
Atribut elemen disembunyikan dan dipaparkan, terutamanya dikawal oleh atribut type="hidden" dan style="display: none;"
Secara ringkasnya, kedua-duanya boleh merealisasikan fungsi keluar dari sesi pelayar.
tutup hanya akan menutup penyemak imbas, manakala berhenti akan menutup semua penyemak imbas dan juga mematikan proses pemacu
ElementNotSelectableException: Elemen tidak boleh dipilih pengecualian
ElementNotVisibleException: Elemen bukan pengecualian yang boleh dilihat
NoSuchAttributeException: Tiada pengecualian atribut sedemikian
2) Anda boleh menggunakan kaedah teks untuk mendapatkan maklumat teks pop timbul
3) Klik melalui terima() butang Sahkan
4) Klik butang batal melalui tolak() untuk membatalkan kotak timbul
5) Dapatkan teks pop timbul window through text()
10. Bagaimana untuk melakukannya dalam selenium Menangani berbilang tingkap?
1) Mula-mula dapatkan pemegang pemandu tetingkap semasa.current_window_handle
2) Kemudian dapatkan semua driver pemegang tetingkap.window_handle
3) Gelung untuk menentukan sama ada ia adalah tetingkap yang anda mahu beroperasi, Jika ya, anda boleh mengendalikan tetingkap jika tidak, gunakan kaedah driver.switch_to_window untuk melompat ke tetingkap baharu.
Selenium tidak menyediakan kaedah asli untuk menentukan sama ada unsur wujud Secara amnya, kita boleh menentukan dengan meletakkan elemen + penangkapan pengecualian.
1) Benang menunggu (menunggu paksa) seperti masa.sleep(2): Benang dipaksa untuk tidur selama 2 saat, kod seterusnya akan dilaksanakan. Ia disyorkan untuk digunakan dengan berhati-hati.
2) secara tersiratTunggu (penantian tersirat) akan terus mencari elemen dalam julat masa yang ditentukan sehingga elemen ditemui atau tamat masa Cirinya ialah anda mesti menunggu sehingga keseluruhan halaman dimuatkan.
3) WebDriverWait (penantian eksplisit) biasanya merupakan kod fungsi yang kami sesuaikan Kod ini digunakan untuk menunggu elemen tertentu dimuatkan sebelum meneruskan melaksanakan kod berikutnya.
1) Gunakan WebDriverWait() untuk menunggu dengan jelas dan tunggu elemen dimuatkan sebelum melakukan operasi elemen.
2) Cuba kurangkan operasi yang tidak perlu: jika anda boleh mengakses halaman secara langsung, jangan akses halaman tersebut dengan mengklik
3) Sesetengah halaman mengambil masa terlalu lama untuk dimuatkan, anda boleh mempertimbangkan untuk mengganggu pemuatan
4) Pembangun menyeragamkan tabiat pembangunan, seperti menambahkan nama unik, id, dsb. pada elemen halaman.
1) Gunakan penantian eksplisit untuk mengurangkan penggunaan penantian paksa atau penantian tersirat.
2) Kurangkan langkah yang tidak perlu.
3) Jika halaman memuatkan terlalu banyak kandungan, tetapkan tamat masa untuk mengganggu pemuatan halaman.
1) Cuba tambahkan masa menunggu yang jelas sebelum unsur-unsur yang sering gagal dikesan dan tunggu sehingga elemen yang akan dikendalikan muncul sebelum melaksanakan operasi berikut.
2) Gunakan cuba tangkap dan kendalikan pengecualian
3) Cuba gunakan persekitaran ujian khusus untuk mengelakkan jenis ujian lain dilakukan pada masa yang sama dan menyebabkan gangguan kepada data
Strategi pelaksanaan kes ujian automatik bergantung pada tujuan ujian automatik biasanya terdapat strategi berikut:
1) Kes ujian automatik digunakan untuk pemantauan Untuk tujuan ini, anda boleh Tetapkan kes ujian automatik untuk dilaksanakan secara kerap Jika ia dilaksanakan setiap lima minit atau sejam, buat sahaja tugasan berjadual pada Jenkins.
2) Guna kes yang mesti dipulangkan. Tetapkan kes ujian kepada pelaksanaan tercetus dan ikat tugas ujian automatik kepada tugas binaan pembangunan pada Jenkins. Apabila pembangun membuat kod dalam persekitaran simulasi, kes ujian automatik dicetuskan dan dilaksanakan.
3) Kes ujian yang tidak perlu dilaksanakan dengan kerap. Seperti kes ujian penuh, tidak perlu kembali ke pelaksanaan sepanjang masa, dan beberapa barisan perniagaan bukan utama tidak perlu kembali dari semasa ke semasa. Kes ujian jenis ini dilaksanakan secara manual Buat tugasan dalam Jenkins dan bina secara manual apabila ia perlu dilaksanakan.
Penyepaduan berterusan ialah amalan pembangunan perisian di mana ahli pembangunan pasukan kerap menyepadukan kod ke dalam trunk, yang bermaksud berbilang penyepaduan mungkin berlaku setiap hari.
Ia mempunyai dua faedah utama:
1) Cepat mengesan ralat. Setiap kali kemas kini selesai, ia disepadukan ke dalam tulang belakang Ralat boleh ditemui dengan cepat dan lebih mudah untuk mengesan ralat.
2) Elakkan dahan daripada menyimpang dengan ketara dari batang. Jika penyepaduan tidak kerap dan tulang belakang sentiasa dikemas kini, ia akan menjadi lebih sukar malah sukar untuk disepadukan pada masa hadapan.
Tujuan:
Tujuan integrasi berterusan adalah untuk membolehkan produk berulang dengan cepat sambil mengekalkan kualiti yang tinggi. Langkah terasnya ialah sebelum kod disepadukan ke dalam batang, ia mesti lulus ujian automatik. Selagi satu kes ujian gagal, ia tidak boleh disepadukan.
Diperlukan untuk ujian antara muka, tidak diperlukan untuk automasi UI
8 jenis, iaitu: id, nama, nama kelas, nama teg, teks pautan, teks pautan separa, xpath, css
Yang paling saya gunakan ialah xpath (atau CssSelector)
Oleh kerana dalam banyak kes, atribut tag html tidak cukup piawai dan tidak boleh diletakkan oleh satu atribut Pada masa ini, xpath hanya boleh digunakan untuk mengalih keluar pendua dan mencari elemen unik
Malah, kedudukan terpantas ialah Id, kerana id adalah unik, tetapi kebanyakan pembangun tidak menetapkan id.
Perubahan dinamik dalam atribut bermakna elemen tidak mempunyai nilai atribut tetap, jadi ia hanya boleh didapati melalui kedudukan kedudukan relatif, seperti melalui paksi xpath, untuk mencari nod induk atau nod anak bagi elemen, dsb.
Tidak.
Jadi kadangkala, apabila selenium belum selesai memuatkan halaman dan meminta sumber halaman, ia akan melaporkan secara palsu bahawa elemen ini tidak wujud.
Jadi, mula-mula kita harus mempertimbangkan untuk menilai sama ada selenium telah selesai memuatkan halaman ini. Kedua, cari elemen melalui fungsi. (Gunakan paparan tunggu untuk menunggu halaman dimuatkan sebelum elemen operasi)
Selepas selenium dimulakan, pemandu bertindak sebagai pelayan, berkomunikasi dengan klien dan penyemak imbas Pelanggan menghantar permintaan kepada pemandu mengikut protokol pemacu web. Pemacu menghuraikan permintaan, melakukan operasi yang sepadan pada penyemak imbas, dan mengembalikan hasil pelaksanaan kepada klien.
Protokol Wayar WebDriver
Protokol http
1) Kaedah yang disediakan dalam kelas pilih: select_by_value ("xxx")
2) Sintaks xpath juga boleh didapati dalam
Jenis data tidak berubah termasuk: integer, nombor titik terapung, nombor negatif, nilai Boolean, rentetan, tupel
Jenis parameter pembolehubah termasuk: kamus, senarai, set
Tetapkan semula atribut elemen dan tambah latar belakang serta sempadan pada elemen yang diposisikan
tegaskan, untuk menentukan sama ada keputusan ujian adalah konsisten dengan keputusan yang dijangkakan
Tujuannya adalah untuk menyatakan dan mengesahkan keputusan yang diharapkan oleh pembangun perisian - apabila program dilaksanakan pada kedudukan penegasan, dakwaan yang sepadan sepatutnya benar. Jika pernyataan itu tidak benar, program akan menamatkan pelaksanaan dan memberikan mesej ralat.
1) Tukar halaman dengan kerap dan kerap mengubah suai kod dalam kelas objek halaman
2) Ujian automatik kadangkala mempunyai positif palsu
3) Keputusan ujian automatik ditimpa Situasi: Jenkins mencipta folder berdasarkan masa
4) Penyelenggaraan kod ujian automatik menyusahkan
5) Ujian automatik melaksanakan data perbandingan pangkalan data
pemandu navigasi().forward() //Forward
driver.navigate().back( ) //Kembali.
driver.navigate0.efresh() //Refresh
Atas ialah kandungan terperinci Soalan lazim dan jawapan temuduga ujian automasi Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!