Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Soalan lazim dan jawapan temuduga ujian automasi Python

Soalan lazim dan jawapan temuduga ujian automasi Python

王林
王林ke hadapan
2023-04-27 15:31:072262semak imbas

1. Apakah projek yang sesuai untuk ujian automatik?

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

2. Apakah model PO?

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

3. Prinsip pengkapsulan mod PO ialah: Yang mana?

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

4. Apakah peranan *args dan **kwargs?

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.

5. Apakah mekanisme pengumpulan sampah dalam Python?

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.

6. Bagaimana untuk mencari unsur tersembunyi dalam selenium?

Pertama sekali, selenium tidak boleh mengendalikan elemen tersembunyi (tetapi ia boleh diposisikan seperti biasa). masuk boleh melaksanakan skrip js.

Soalan lazim dan jawapan temuduga ujian automasi Python

Atribut elemen disembunyikan dan dipaparkan, terutamanya dikawal oleh atribut type="hidden" dan style="display: none;"

7. Perbezaan antara berhenti dan tutup dalam menutup pelayar

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

8 Berikan contoh pengecualian yang anda hadapi

  • ElementNotSelectableException: Elemen tidak boleh dipilih pengecualian

  • ElementNotVisibleException: Elemen bukan pengecualian yang boleh dilihat

  • NoSuchAttributeException: Tiada pengecualian atribut sedemikian

  • NoSuchElementException: Tiada pengecualian elemen sedemikian
  • NoSuchFrameException: Tiada pengecualian bingkai sedemikian
  • TimeoutException: Pengecualian tamat masa
  • Elemen tidak kelihatan pada ketika ini: Elemen tidak kelihatan pada ketika ini
  • 9 Bagaimana untuk menangani tetingkap timbul amaran?

1) Mula-mula gunakan kaedah switch_to_alert() untuk bertukar kepada kotak pop timbul amaran

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?

Pemegang: pengecam unik tetingkap

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.

11. Bagaimana untuk menentukan sama ada unsur wujud dalam selenium?

Selenium tidak menyediakan kaedah asli untuk menentukan sama ada unsur wujud Secara amnya, kita boleh menentukan dengan meletakkan elemen + penangkapan pengecualian.

Soalan lazim dan jawapan temuduga ujian automasi Python

12. Apakah tiga jenis menunggu dalam automasi? Apakah ciri-ciri mereka?

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.

13. Bagaimana untuk memastikan kadar kejayaan elemen operasi dalam selenium? Dalam erti kata lain, bagaimana untuk memastikan elemen yang diklik mesti boleh diklik?

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.

14. Bagaimana untuk meningkatkan kelajuan pelaksanaan skrip selenium?

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.

15 Kes penggunaan sering menjadi tidak stabil semasa operasi, maksudnya, jika mereka boleh lulus kali ini, mereka tidak akan lulus lagi.

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

16 Anda Apakah strategi pelaksanaan untuk kes penggunaan automasi?

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.

17. Apakah itu penyepaduan berterusan?

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.

18 Adakah perlu untuk menyambung ke pangkalan data untuk pengesahan data semasa ujian automatik?

Diperlukan untuk ujian antara muka, tidak diperlukan untuk automasi UI

19. Apakah beberapa kaedah penentududukan yang biasa digunakan untuk elemen? Mana satu yang paling anda suka dan mengapa?

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.

20. Bagaimana untuk mencari elemen yang dimuatkan secara dinamik pada halaman?

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.

21 . Selepas mengklik pautan, adakah Selenium akan menunggu halaman dimuatkan secara automatik?

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)

22. Apakah prinsip klien pemacu web?

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.

23. Apakah protokol pemacu web?

Protokol Wayar WebDriver

24 Protokol pemacu web yang manakah digunakan semasa memulakan penyemak imbas?

Protokol http

25. Bagaimana untuk memilih pilihan dengan nilai=xx dalam kotak lungsur?

1) Kaedah yang disediakan dalam kelas pilih: select_by_value ("xxx")
2) Sintaks xpath juga boleh didapati dalam

26 jenis parameter pembolehubah biasa dan Apakah jenis parameter yang tidak boleh diubah?

Jenis data tidak berubah termasuk: integer, nombor titik terapung, nombor negatif, nilai Boolean, rentetan, tupel

Jenis parameter pembolehubah termasuk: kamus, senarai, set

27. Bagaimana untuk menyerlahkan elemen selepas meletakkannya (untuk tujuan penyahpepijatan)?

Tetapkan semula atribut elemen dan tambah latar belakang serta sempadan pada elemen yang diposisikan

28.

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.

29/Apakah masalah yang anda hadapi semasa proses ujian automatik dan bagaimana anda menyelesaikannya?

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

30. operasi muat semula

  • 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!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam