Menggunakan SoapUI dengan Selenium untuk Pengujian Layanan Web

⚡ Ringkasan Cerdas

SoapUI dengan Selenium Memungkinkan satu rangkaian perangkat lunak untuk memeriksa layanan web dan peramban yang menggunakannya. Groovy adalah jembatan, karena SoapUI berjalan Groovy secara asli dan Groovy menjangkau setiap Java perpustakaan Selenium kapal.

  • 🔘 Dua alat, dua lapisan: SoapUI menjalankan endpoint SOAP atau REST, sementara Selenium WebDriver mengendalikan browser yang memanggilnya.
  • ☑️ Groovy adalah lemnya: SoapUI mendukung Groovy secara luas, dan Groovy membawa keseluruhan Java set perpustakaan, jadi Selenium Kode berjalan tanpa perubahan.
  • Kelas pelari: SoapUITestCaseRunner membuka file proyek, memilih rangkaian pengujian dan kasus uji, lalu mengeksekusinya dari Java.
  • 🧪 Data dinamis: setProjectProperties() meneruskan nilai-nilai seperti kota dan kode pos pada saat runtime, bukan dari file properti statis.
  • Prasyarat: The Groovy SDK, JDK, Selenium ke SoapUI Semua harus diinstal sebelum dijalankan pertama kali.
  • 📊 Jejak bukti: Setiap tindakan dicatat ke dalam file soapui.log di folder bin pada direktori instalasi.

Menggunakan SoapUI dengan Selenium untuk pengujian layanan web melalui Groovy

SoapUI adalah open source yang paling populer pengujian fungsional alat untuk Pengujian API. Ini menyediakan lengkap cakupan tes dan mendukung semua protokol dan teknologi standar.

Apa itu SOAP?

SOAP HTTP adalah protokol berbasis XML sederhana. Protokol ini memungkinkan aplikasi untuk bertukar informasi melalui HTTP. HTTP menggunakan Layanan Web. DescriptBahasa Ion (WSDL) untuk komunikasi, dan aplikasi lain dapat berinteraksi dengannya. layanan web melalui antarmuka WSDL tersebut.

Layanan Web SOAP vs REST SoapUI

SoapUI Berawal sebagai klien SOAP, dan namanya masih mencerminkan hal itu, tetapi ia juga menguji endpoint REST. Mengetahui gaya mana yang Anda tunjuk akan menentukan bagaimana pengujian dibangun.

Aspek SOAP ISTIRAHAT
dengantract Sebuah file WSDL menjelaskan setiap operasi, jadi SoapUI dapat menghasilkan permintaan secara otomatis. Biasanya definisi OpenAPI atau Swagger, atau tidak ada definisi formal sama sekali.tract sama sekali.
Format pesan Hanya amplop XML. Umumnya menggunakan JSON, meskipun XML dan format lainnya diperbolehkan.
angkutan Paling sering menggunakan HTTP, tetapi SOAP tidak bergantung pada protokol transport. HTTP, dengan metode dan URL menyampaikan maksud.
Pernyataan dalam SoapUI Pencocokan XPath dan XQuery dilakukan terhadap amplop respons. JSONPath dan pernyataan skrip dicocokkan dengan muatan data.
Penggunaan khas Perbankan, telekomunikasi, dan lainnyatracIntegrasi perusahaan yang kompleks. Layanan publik dan layanan yang dapat diakses melalui perangkat seluler di mana muatan data tetap ringan.

Panduan di bawah ini menggunakan layanan cuaca SOAP, tetapi kelas runner yang sama menjalankan kasus uji REST tanpa perubahan apa pun. Java kode.

Apa itu SOAPUI?

SABUNUI SOAPUI adalah alat pengujian layanan web lintas platform sumber terbuka. Edisi SOAPUI-Pro memiliki fungsionalitas tambahan untuk perusahaan yang menangani layanan web kritis. Layanan web memainkan peran penting dalam aplikasi internet.

⚠️ Catatan nama produk: SmartBear dihentikan SoapUI per sebagai produk mandiri dan menggabungkannya, bersama dengan LoadUI Pro dan ServiceV Pro, ke dalam ReadyAPIEdisi gratisnya mempertahankan SoapUI nama dan masih aktif dirilis. Langkah-langkah di bawah ini berlaku untuk keduanya, dan yang sudah ada SoapUI proyek dibuka di ReadyAPI.

Apa itu Selenium?

Selenium Ini bukan satu program tunggal, melainkan serangkaian alat untuk mengoperasikan peramban seperti yang dilakukan manusia. Dua anggota penting di sini adalah:

  • Selenium — sebuah alat pengujian yang mengotomatiskan browser di berbagai platform.
  • Selenium webdriver — ia melakukan panggilan langsung ke browser, menggunakan dukungan bawaan masing-masing browser untuk otomatisasi.

Mengapa Menggabungkan SoapUI ke Selenium dalam Satu Tes

Pemeriksaan layanan dan pemeriksaan layar biasanya merupakan dua pekerjaan terpisah yang ditangani oleh dua perangkat lunak terpisah, itulah sebabnya kerusakan pada sambungan di antara keduanya cenderung tetap ada meskipun keduanya dijalankan bersamaan. Menjalankan keduanya secara bersamaan akan menutup celah tersebut.

  • Buktikan perjalanan pulang pergi. Reservasi yang diajukan melalui browser harus muncul dalam respons layanan. Hanya pengujian gabungan yang dapat memastikan kedua bagian tersebut.
  • Siapkan negara bagian dengan cepat. Membuat pelanggan melalui API hanya membutuhkan waktu satu detik; membuat satu hingga dua belas kolom formulir membutuhkan waktu satu menit dan lebih sering gagal.
  • Lokalisasi kegagalan. Ketika UI menampilkan total yang salah, pernyataan API dalam proses yang sama akan langsung memberi tahu Anda apakah kesalahan tersebut berasal dari layanan atau halaman tersebut.
  • Gunakan kembali satu set data. Pasangan kode pos dan kota dalam contoh di bawah ini digunakan untuk panggilan layanan dan juga dapat digunakan untuk pernyataan browser.
  • Kurangi liputan yang berduplikat. Aturan validasi yang sudah terbukti di lapisan layanan tidak memerlukan pengujian browser yang lambat setiap kali.

Konsekuensinya adalah pengujian yang lebih berat: dua alat, dua set dependensi, dan waktu eksekusi yang lebih lama. Pertahankan pengujian gabungan untuk beberapa perjalanan yang benar-benar melintasi batas, dan biarkan sisanya sebagai pengujian murni. API atau pengecekan browser murni.

Selenium dengan SoapUI

Cara paling sederhana dan termudah untuk berintegrasi Selenium dengan SoapUI adalah dengan menggunakan Groovy, yang SoapUI memberikan dukungan secara luas.

Groovy adalah bahasa skrip berorientasi objek yang mencakup semua Java perpustakaan, jadi setiap Java kata kunci dan fungsi dapat digunakan dalam sebuah Groovy skrip secara langsung. Ini berjalan di JVM (Java Mesin Virtual), yang memungkinkan Groovy masuk ke dalam SoapUI dan Java Selenium uji untuk berbagi kelas yang sama.

Prasyarat untuk menggunakan Selenium dengan SoapUI

Instal hal-hal berikut sebelum menulis kode apa pun:

⚠️ Catatan versi: Groovy Versi 5.0 adalah rilis stabil saat ini dan membutuhkan JDK 11 atau yang lebih baru, jadi instal JDK terlebih dahulu dan biarkan Groovy versi selanjutnya. Selenium ditambahkan ke a Java proyek sebagai Maven atau Gradle sebagai dependensi, bukan sebagai folder yang diunduh, dan SoapUI File JAR harus berada di classpath yang sama dengan file pengujian Anda — titik tunggal inilah yang menyebabkan sebagian besar percobaan pertama gagal.

Sebut SoapUI Pelaksana kasus uji di Selenium

Kode di bawah ini memanggil sebuah SoapUI Kasus uji. Kode ini mengatur properti untuk sebuah kota dan kode pos yang sesuai, dan ketika dieksekusi, kode ini mengambil nilai dari setiap kota dan kode pos, kemudian melaporkan jumlah kegagalan untuk setiap pasangan yang tidak cocok. Kode ini berjalan di Selenium.

Catatan: `usePropertyFileFlag=true` digunakan di sini sebagai pengganti file properti statis untuk menyimpan kode pos dan kota. Kode pos dan kota diteruskan secara dinamis saat runtime melalui metode `setProjectProperties()`.

Instruksi untuk menjalankan kode:

  1. Mulai SoapUI.
  2. Mulai kasus uji baru.
  3. Tambahkan yang baru Groovy langkah.
  4. Salin dan tempel kode contoh ke dalam langkah tersebut.
  5. Klik Mainkan.
  6. Anda dapat melihat Firefox memulai dan menavigasi ke GoogleSetelah itu, Anda bisa melihat SoapUI entri log.
  7. Kode tersebut berjalan menggunakan JUnit.

Code Example

@when("<I use the weather service to get the weather information")						
    public void i_use_the_weather_service_to_get_the_information() {
        Set<Entry<String, string>> set = zipAndCities.entrySet();
        while (iterator,hasNext)) {
            Entry<String, String> entry = iterator.next();
            String zipCode = entry.getkey();
            String city = entry.getValue();
            String[] prop = {"usePropertyFileFlag=true","zipCode=" +zipCode, "city=" +city};									
            
            try{
                SoapUITestCaseRunner soapUITestCaseRunner = new	SoapUITestCaseRunner();
                soapUITestCaseRunner.setProjectFile("src/test/resources/WeatherSoapTest-soapui-project.xml");					
                soapUITestCaseRunner.setProjectProperties(prop);
                soapUITestCaseRunner.setTestSuite("TestSuite1");
                soapUITestCaseRunner.setTestCase("TestCase1");
                soapUITestCaseRunner.run();
                
            } catch (Exception e) {
                System.err.println("checking" + zipCode + " failed!");
                failureCount++;
                zipCodes.append(zipCode + " [" + city +"] ");
                e.printStackTrace();
            }finally{					
                totalCount++;
            }
}
}
}

⚠️ Code catatan: Cuplikan kode ini direproduksi persis seperti yang diterbitkan dan merupakan fragmen, bukan kelas yang dapat dikompilasi. Sebelum dapat dikompilasi, Anda harus mendeklarasikan iterator yang diperoleh dari set.iterator(), benar selama (iterator, memiliki Berikutnya)) untuk sementara (iterator.hasNext()) ke entri.dapatkan kunci() untuk entri.getKey(), kapitalisasi anotasi sebagai @Kapan, hapus karakter yang tidak perlu di awal teks langkah, dan gunakan String daripada string dalam deklarasi Set. Teks aslinya dipertahankan agar contoh yang dipublikasikan tetap utuh.

Tampilan konsol memungkinkan Anda melihat sekilas semua Kasus cobaanSetelah dieksekusi, Anda akan menemukan daftar kode pos dan kota yang diambil dan diteruskan ke SoapUI Kasus Uji 1.

Liha SoapUI File log

Berkas log mencatat setiap tindakan yang terjadi dalam sistem operasi atau aplikasi perangkat lunak. Untuk melihat SoapUI Untuk mengakses file log, masuk ke direktori utama, di sana Anda akan melihat file bernama... soapui.log.

SoapUI Daftar direktori instalasi dengan file soapui.log yang terlihat.

In SoapUIFile log terletak di folder bin di dalam direktori instalasi, misalnya C:\Program Files\SmartBear\soapUI-Pro-4.0.1\bin. Pada instalasi terbaru, folder versinya berbeda, dan... ReadyAPI Instalasi malah menulis ke folder bin-nya sendiri.

folder bin dari SoapUI direktori instalasi tempat file log disimpan

Saat Anda membuka file log ini dengan mengkliknya, maka akan terlihat seperti gambar di bawah.

Isi file soapui.log yang menunjukkan entri hasil uji coba yang tercatat.

Where SoapUI ke Selenium Integrasi Sering Gagal

Hampir setiap kegagalan pada tahap ini disebabkan oleh masalah pengkabelan, bukan masalah pengujian. Inilah yang perlu diperiksa terlebih dahulu.

Gejala Kemungkinan penyebab Apa yang harus diperiksa
NoClassDefFoundError atau ClassNotFoundException pada SoapUITestCaseRunner The SoapUI File JAR tidak ada di classpath pengujian. Tambahkan SoapUI ketergantungan pada file build, atau arahkan classpath ke jar di SoapUI folder lib. Sebuah file jar yang hilang muncul sebagai file biasa. Selenium pengecualian di konsol.
Berkas proyek tidak dapat ditemukan. setProjectFile() menyelesaikan jalur relatif terhadap direktori kerja, yang berbeda antara IDE dan alat build. Jalankan dari direktori root proyek, atau berikan jalur absolut.
Rangkaian pengujian atau kasus pengujian tidak ditemukan Nama-nama dalam setTestSuite() dan setTestCase() harus sama persis dengan nama proyek. Salin nama-nama tersebut langsung dari SoapUI Pohon proyek; bersifat peka huruf besar-kecil.
Properti tersebut tidak pernah sampai ke permintaan. setProjectProperties() dijalankan setelah run(), atau permintaan tersebut tidak merujuk pada properti tersebut. Atur setiap properti sebelum menjalankan fungsi run(), dan gunakan sintaks placeholder properti di dalam permintaan.
Browser tidak terbuka. Driver dan browser yang terpasang memiliki versi utama yang berbeda. membiarkan Selenium Manajer akan menyelesaikan masalah driver, atau mencocokkan driver dengan versi browser.
Fitur tersebut berfungsi di IDE tetapi tidak berfungsi dari aplikasi pelaksana. Langkah ini bergantung pada fitur khusus Pro, seperti sumber data. Konfirmasikan lisensi, atau buat ulang langkah tersebut dengan menggunakan alternatif sumber terbuka.

Setelah runner keluar dengan bersih dan soapui.log menampilkan entri yang diharapkan, integrasi berfungsi dan dapat digabungkan ke dalam sistem yang lebih luas. pengujian otomasi pada.

Pertanyaan Umum Demo Slot

Edisi sumber terbuka berjalan Groovy langkah-langkah dan mengekspos pelaksana kasus uji, sehingga integrasi itu sendiri tidak memerlukan lisensi. Pro atau ReadyAPI Fitur-fitur seperti sumber data dan wizard berbasis data adalah bagian-bagian yang akan gagal tanpa adanya hal tersebut.

Ya, dan ini adalah gambar cermin dari panduan ini. A Groovy Langkah ini dapat langsung membuat instance WebDriver, dengan syarat... Selenium stoples diletakkan di dalam SoapUI folder lib agar skrip dapat menyelesaikannya.

SoapUI mengeksekusi Groovy secara langsung dalam langkah skrip, tanpa siklus kompilasi, dan Groovy menjangkau setiap Java Kelas sudah ada di classpath. Biasa Java membutuhkan langkah pembuatan, itulah sebabnya Groovy kemenangan untuk kode integrasi yang singkat.

Bungkuslah sebagai JUnit or TestNG uji dan biarkan Maven atau Gradle panggil fungsi tersebut, persis seperti contoh yang diberikan. Pada agen, browser harus berjalan tanpa antarmuka grafis (headless), dan SoapUI Berkas proyek harus di-commit bersamaan dengan kode pengujian.

Asisten berguna untuk memperluas kumpulan kecil pasangan kota dan kode pos menjadi cakupan yang lebih luas, dan untuk menemukan kolom respons yang tidak disentuh oleh pernyataan apa pun. Nilai yang dihasilkan tetap perlu diperiksa secara menyeluruh, karena kode pos yang masuk akal belum tentu valid.

Ya, dalam batas tertentu. Kopilot yang menangani. Groovy sintaks dan umum Java panggilannya bagus, tetapi pengetahuannya tentangnya sangat minim. SoapUI Objek skrip seperti testRunner, context, dan log, jadi saran-saran tersebut perlu ditinjau secara cermat.

Simpanlah sebagai variabel lingkungan atau di pengelola rahasia dan bacalah ke dalam properti proyek saat runtime, mekanisme yang sama seperti yang digunakan setProjectProperties() di sini. File proyek yang di-commit dengan kata sandi teks biasa adalah kebocoran yang siap terjadi.

Pertahankan pemeriksaan tingkat protokol — status, skema, XPath pada amplop — di dalam SoapUI, di mana peralatan tersebut dibuat untuk mereka. Tegaskan dalam Selenium Uji hanya apa yang harus ditampilkan oleh browser itu sendiri, sehingga kegagalan menunjukkan adanya masalah pada satu lapisan.

Ringkaslah postingan ini dengan: