SoapUI - Panduan Cepat

SOAP adalah singkatan dari Simple Object Access Protocol. Ini ditentukan oleh World Wide Web Consortium (W3C) dihttps://www.w3.org/TR/2000/NOTE-SOAP-20000508 sebagai berikut -

SOAP adalah protokol ringan untuk pertukaran informasi dalam lingkungan terdesentralisasi dan terdistribusi. Ini adalah protokol berbasis XML yang terdiri dari tiga bagian: amplop yang mendefinisikan kerangka kerja untuk menjelaskan apa yang ada di dalam pesan dan bagaimana memprosesnya; satu set aturan pengkodean untuk mengekspresikan contoh tipe data yang ditentukan aplikasi; dan konvensi untuk merepresentasikan panggilan dan respons prosedur jarak jauh.

SOAP - Fitur Penting

Berikut adalah beberapa fitur penting dari SOAP.

  • Ini adalah protokol komunikasi yang dirancang untuk berkomunikasi melalui Internet.

  • Itu dapat memperluas HTTP untuk perpesanan XML.

  • Ini menyediakan transportasi data untuk layanan Web.

  • Itu dapat bertukar dokumen lengkap atau memanggil prosedur jarak jauh.

  • Ini dapat digunakan untuk menyiarkan pesan.

  • Ini adalah platform dan bahasa independen.

  • Ini adalah cara XML untuk menentukan informasi apa yang dikirim dan bagaimana.

  • Ini memungkinkan aplikasi klien untuk dengan mudah terhubung ke layanan jarak jauh dan menjalankan metode jarak jauh.

Meskipun SOAP dapat digunakan dalam berbagai sistem pesan dan dapat dikirim melalui berbagai protokol transportasi, fokus awal SOAP adalah panggilan prosedur jarak jauh yang dikirim melalui HTTP. Kerangka kerja lain seperti CORBA, DCOM, dan Java RMI menyediakan fungsionalitas yang mirip dengan SOAP, tetapi pesan SOAP ditulis seluruhnya dalam XML dan oleh karena itu secara unik tidak bergantung pada platform dan bahasa.

Pesan SOAP adalah dokumen XML biasa yang berisi elemen berikut -

  • Envelope- Menentukan awal dan akhir pesan. Ini adalah elemen wajib.

  • Header- Berisi atribut opsional dari pesan yang digunakan dalam memproses pesan, baik di titik perantara atau di titik akhir akhir. Ini adalah elemen opsional.

  • Body- Berisi data XML yang terdiri dari pesan yang dikirim. Ini adalah elemen wajib.

  • Fault - Elemen Kesalahan opsional yang memberikan informasi tentang kesalahan yang terjadi saat memproses pesan.

Semua elemen ini dideklarasikan di namespace default untuk amplop SOAP -

https://www.w3.org/2001/12/soap-envelope

Namespace default untuk encoding SOAP dan tipe data adalah -

https://www.w3.org/2001/12/soap-encoding

Note- Semua spesifikasi ini dapat berubah. Karenanya, terus perbarui diri Anda dengan spesifikasi terbaru yang tersedia di situs web W3.

SOAP - Struktur Pesan

Blok berikut menggambarkan struktur umum pesan SOAP -

<?xml version = "1.0"?> 
<SOAP-ENV:Envelope 
xmlns:SOAP-ENV = "http://www.w3.org/2001/12/soap-envelope" 
SOAP-ENV:encodingStyle = "http://www.w3.org/2001/12/soap-encoding">  
   <SOAP-ENV:Header> 
      ... 
      ... 
   </SOAP-ENV:Header>  
   <SOAP-ENV:Body> 
      ... 
      ... 
      <SOAP-ENV:Fault> 
         ... 
         ... 
      </SOAP-ENV:Fault>  
   </SOAP-ENV:Body>  
</SOAP_ENV:Envelope>

REST adalah singkatan dari Representational State Transfer. Ini dapat didefinisikan sebagai gaya arsitektur perancangan perangkat lunak. REST bukanlah spesifikasi atau standar W3C. Karenanya, lebih mudah bekerja dengan RESTful Services. Itu tidak memerlukan kerangka spesifikasi middleware.

REST - Fitur Penting

Berikut adalah beberapa fitur penting dari REST.

  • Ini bergantung pada protokol komunikasi stateless, client-server, cacheable - hampir dalam semua kasus, HTTP digunakan.

  • Ini adalah alternatif ringan dari WebService dan RPC (Remote Procedure Call) seperti SOAP-WSDL.

  • Ini mewakili semua yang ada di ID atau URI unik.

  • Itu menggunakan metode HTTP standar, seperti GET, POST, PUT, DELETE.

  • Ini menghubungkan sumber bersama.

  • Resource REST dapat memiliki beberapa representasi.

  • Setiap informasi bernama dianggap sebagai Sumber Daya. Misalnya: Gambar, orang, dokumen, semua dapat dianggap sebagai contoh sumber daya dan direpresentasikan sebagai ID unik atau URI.

  • World Wide Web sendiri, berdasarkan HTTP, dapat dilihat sebagai arsitektur berbasis REST.

Layanan REST tidak bergantung pada Platform dan Bahasa. Karena ini didasarkan pada standar HTTP, ini dapat dengan mudah bekerja dengan adanya firewall. Seperti WebServices, REST tidak menawarkan keamanan inbuilt, manajemen sesi, jaminan QoS tetapi ini dapat ditambahkan dengan membangun di atas HTTP. Untuk enkripsi, REST dapat digunakan di atas HTTPS.

SoapUI adalah alat yang dapat digunakan untuk pengujian fungsional dan non-fungsional. Ini tidak terbatas pada layanan web, meskipun ini adalah alat de-facto yang digunakan dalam pengujian layanan web.

SoapUI - Fitur Penting

Berikut adalah beberapa fitur penting dari SoapUI.

  • Itu mampu melakukan peran klien dan layanan.

  • Ini memungkinkan pengguna untuk membuat tes fungsional dan non-fungsional dengan cepat dan dengan cara yang efisien menggunakan satu lingkungan.

  • Ini dilisensikan di bawah ketentuan GNU Leaser General Public License (LGPL).

  • Ini murni diimplementasikan menggunakan platform JAVA.

  • Ini mendukung Windows, Mac, beberapa dialek Linux.

  • Ini memungkinkan penguji untuk menjalankan uji fungsional, regresi, kepatuhan, dan beban otomatis pada API Web yang berbeda.

  • Ini mendukung semua protokol dan teknologi standar untuk menguji semua jenis API.

SoapUI dapat digunakan untuk menguji API RESTful lengkap dan pengujian SOAP Web Service. Ini mendukung Pengujian Fungsional, Pengujian Kinerja, Pengujian Interoperabilitas, Pengujian Regresi, Pengujian Beban, dan banyak lagi.

Ini ramah pengguna serta mudah untuk mengubah tes fungsional menjadi tes non-fungsional seperti Load, Stress testing.

SoapUI kaya akan lima aspek berikut -

  • Pengujian Fungsional
  • Pengujian Keamanan
  • Pengujian Beban
  • Protokol dan Teknologi
  • Integrasi dengan alat lain

Mari pelajari lebih lanjut tentang masing-masing kemampuan ini.

Pengujian Fungsional

  • SoapUI memungkinkan penguji untuk menulis tes API fungsional di SoapUI.

  • SoapUI mendukung fitur Drag-Drop yang mempercepat pengembangan skrip.

  • SoapUI mendukung debugging tes dan memungkinkan penguji untuk mengembangkan tes berbasis data.

  • SoapUI mendukung banyak lingkungan sehingga mudah untuk beralih di antara lingkungan QA, Dev, dan Prod.

  • SoapUI memungkinkan pembuatan skrip lanjutan (penguji dapat mengembangkan kode khusus mereka tergantung pada skenario).

Pengujian Keamanan

  • SoapUI melakukan satu set lengkap pemindaian kerentanan.

  • SoapUI mencegah SQL Injection untuk mengamankan database.

  • SoapUI memindai tumpukan berlebih, yang disebabkan oleh ukuran dokumen yang sangat besar.

  • SoapUI memindai skrip lintas situs, yang terjadi ketika parameter layanan diekspos dalam pesan.

  • SoapUI melakukan pemindaian fuzzing dan pemindaian batas untuk menghindari perilaku layanan yang tidak menentu.

Pengujian Beban

  • SoapUI mendistribusikan tes beban ke n sejumlah agen LoadUI.

  • SoapUI mensimulasikan volume tinggi dan pengujian beban dunia nyata dengan mudah.

  • SoapUI memungkinkan pelaporan kustom lanjutan untuk menangkap parameter kinerja.

  • SoapUI memungkinkan pemantauan kinerja sistem ujung ke ujung.

Protokol & Teknologi

SoapUI mendukung berbagai protokol -

  • SOAP - Protokol Akses Objek Sederhana
  • WSDL - Bahasa Definisi Layanan Web
  • REST - Transfer Negara Perwakilan
  • HTTP - Protokol Transmisi Teks Hyper
  • HTTPS - Protokol Transmisi Teks Hyper Diamankan
  • AMF - Format Pesan Tindakan
  • JDBC - Konektivitas Database Java
  • JMS - Layanan Pesan Java

Integrasi dengan Alat Lain

  • Proyek Apache Maven
  • HUDSON
  • JUnit
  • Apache - Ant dan banyak lagi….

SoapUI adalah alat versi gratis sumber terbuka dengan fitur dasar pengujian, sedangkan SoapUI NG Pro adalah alat yang dikomersialkan dengan fitur pelaporan canggih, fungsionalitas berbasis data, dan banyak lagi.

Perbandingan

Tabel berikut membandingkan dan membedakan berbagai fitur SoapUI dan SoapUI NG Pro.

fitur SoapUI SoapUI NG Pro
Supported Technologies
SABUN MANDI Iya Iya
WSDL / WADL Iya Iya
BERISTIRAHAT Iya Iya
JMS Iya Iya
AMF Iya Iya
JDBC Iya Iya
HTTP Iya Iya
General Features
Aplikasi Mandiri Iya Iya
Dukungan Multi Lingkungan Tidak Iya
Lisensi Mengambang Tidak Iya
Cakupan WSDL Tidak Iya
Cakupan Permintaan / Tanggapan Tidak Iya
Penegasan Pesan Iya Iya
Uji Refactoring Tidak Iya
Menjalankan beberapa tes Iya Iya
Pengujian Berdasarkan Sumber Data Tidak Iya
Perpustakaan Scripting Tidak Iya
Pelaporan Unit Tidak Iya
Langkah-langkah pengujian manual Iya Iya
Reporting
Laporan Junit Tidak Iya
Laporkan Ekspor Data Tidak Iya
Laporan HTML WSDL Iya Iya
Cakupan Test Suite Tidak Iya
Cakupan Kasus Uji Tidak Iya
Cakupan Penegasan Tidak Iya
Cakupan Perekaman Pesan Tidak Iya

SoapUI adalah alat lintas platform. Ini mendukung sistem operasi Windows, Linux, dan Mac.

Prasyarat

  • Processor - Prosesor 32-bit atau 64-bit 1GHz atau lebih tinggi.

  • RAM - RAM 512MB.

  • Hard Disk Space - Minimal 200MB ruang hard disk untuk instalasi.

  • Operating System Version - Windows XP atau lebih baru, MAC OS 10.4 atau lebih baru.

  • JAVA - JAVA 6 atau lebih baru.

Proses Download

Step 1- Buka www.soapui.org dan klik Unduh SoapUI.

Step 2- Klik 'Get It' untuk mengunduh SoapUI Open Source. Ini akan mulai mengunduh file .exe 112MB di sistem. Tunggu hingga proses pengunduhan selesai.

Proses Instalasi

Step 1 - Setelah mendownload, jalankan file .exe sebagai "Run as administrator".

Windows akan memulai proses penyiapan seperti yang ditunjukkan pada gambar layar berikut.

Step 2 - Setelah diatur, jendela proses menampilkan layar berikut, klik Berikutnya.

Step 3 - Terima perjanjian lisensi dan klik Berikutnya.

Step 4- Pilih direktori instalasi atau simpan sebagai jalur default yang dipilih oleh sistem. Klik Next.

Step 5- Pilih komponen yang ingin Anda instal. Klik Next.

Step 6 - Terima Perjanjian Lisensi untuk HermesJMS dan klik Berikutnya.

Step 7 - Pilih direktori target untuk menyimpan tutorial dan klik Next.

Step 8 - Pilih lokasi folder menu start atau biarkan lokasi default apa adanya dan klik 'Next'.

Step 9 - Aktifkan kotak centang 'buat ikon desktop' dan klik 'Berikutnya'.

Sekarang, penginstalan dimulai. Perlu waktu beberapa menit untuk menyelesaikannya.

Step 10 - Setelah penginstalan selesai, klik Selesai di wisaya berikut.

Setelah mengklik Selesai, SoapUI diluncurkan.

  • Bilah menu
  • Bilah alat
  • Bilah Navigasi Proyek
  • Properti Ruang Kerja
  • Panel Log

Proses Konfigurasi

Langkah pertama adalah membuat workspace yang bisa memuat banyak project.

Step 1 - Buka File → Ruang Kerja Baru.

Step 2 - Tambahkan nama ruang kerja dan klik OK.

Step 3 - Sekarang, pilih jalur di mana ruang kerja xml akan disimpan.

Step 4 - Pilih jalur dan klik Simpan.

Ruang kerja dibuat seperti yang ditunjukkan pada tangkapan layar berikut. Properti ruang kerja juga dipamerkan.

WSDL adalah singkatan dari Web Services Description Language. Ini adalah format standar untuk menggambarkan layanan web. WSDL dikembangkan bersama oleh Microsoft dan IBM. WSDL diucapkan sebagai 'wiz-dull' dan dieja sebagai 'WSD-L'.

WSDL ─ Sejarah Singkat

WSDL 1.1 diserahkan sebagai Catatan W3C oleh Ariba, IBM, dan Microsoft untuk menjelaskan layanan untuk Aktivitas XML W3C pada Protokol XML pada Maret 2001.

WSDL 1.1 belum didukung oleh World Wide Web Consortium (W3C), namun baru saja merilis draf untuk versi 2.0 yang akan menjadi rekomendasi (standar resmi), dan dengan demikian didukung oleh W3C.

WSDL ─ Poin-Poin yang Perlu Diperhatikan

WSDL adalah protokol berbasis XML untuk pertukaran informasi dalam lingkungan terdesentralisasi dan terdistribusi. Beberapa fitur WSDL lainnya adalah sebagai berikut -

  • Definisi WSDL menjelaskan cara mengakses layanan web dan operasi apa yang akan dilakukannya.

  • Ini adalah bahasa untuk menjelaskan cara berinteraksi dengan layanan berbasis XML.

  • Ini adalah bagian integral dari Deskripsi Universal, Penemuan, dan Integrasi (UDDI), sebuah registri bisnis di seluruh dunia berbasis XML.

  • WSDL adalah bahasa yang digunakan UDDI.

Penggunaan WSDL

WSDL sering digunakan dalam kombinasi dengan SOAP dan XML Schema untuk menyediakan layanan web melalui Internet. Program klien yang terhubung ke layanan web dapat membaca WSDL untuk menentukan fungsi apa yang tersedia di server. Setiap tipe data khusus yang digunakan disematkan dalam file WSDL dalam bentuk Skema XML. Klien kemudian dapat menggunakan SOAP untuk benar-benar memanggil salah satu fungsi yang terdaftar di WSDL.

Memahami WSDL

WSDL memecah layanan web menjadi tiga elemen spesifik dan dapat diidentifikasi yang dapat digabungkan atau digunakan kembali setelah ditentukan.

Tiga elemen utama WSDL yang dapat didefinisikan secara terpisah adalah -

  • Types
  • Operations
  • Binding

Dokumen WSDL memiliki berbagai elemen, tetapi mereka terkandung dalam tiga elemen utama ini, yang dapat dikembangkan sebagai dokumen terpisah dan kemudian dapat digabungkan atau digunakan kembali untuk membentuk file WSDL yang lengkap.

Dalam tutorial ini, kami mengikuti CurrencyConverter WSDL: http://www.webservicex.net

Format dan Elemen

CurrencyConverter WSDL akan terlihat seperti berikut -

WSDL ─ Jenis Port

Elemen <portType> menggabungkan beberapa elemen pesan untuk membentuk operasi satu arah atau bolak-balik yang lengkap. Misalnya, <portType> bisa menggabungkan satu permintaan dan satu pesan respons ke dalam operasi permintaan / respons tunggal. Ini paling sering digunakan dalam layanan SOAP. PortType dapat menentukan beberapa operasi.

Contoh

  • Elemen portType mendefinisikan operasi tunggal, yang disebut ConversionRate.
  • Operasi tersebut terdiri dari satu pesan masukan ConversionRateHttpPostIn.
  • Operasi untuk pesan Output adalah ConversionRateHttpPostOut.

Pola Operasi

WSDL mendukung empat pola operasi dasar -

Satu arah

Layanan menerima pesan. Oleh karena itu, operasi tersebut memiliki satu elemen masukan. Tata bahasa untuk operasi satu arah adalah -

<wsdl:definitions .... >  
   <wsdl:portType .... > * 
      <wsdl:operation name = "nmtoken"> 
         <wsdl:input name = "nmtoken"? message = "qname"/> 
      </wsdl:operation> 
   </wsdl:portType > 
</wsdl:definitions>

Permintaan ─ Respon

Layanan menerima pesan dan mengirimkan tanggapan. Oleh karena itu, operasi tersebut memiliki satu elemen masukan, diikuti oleh satu elemen keluaran. Untuk merangkum kesalahan, elemen kesalahan opsional juga dapat ditentukan. Tata bahasa untuk operasi permintaan-respons adalah -

<wsdl:definitions .... > 
   <wsdl:portType .... > * 
      <wsdl:operation name = "nmtoken" parameterOrder = "nmtokens"> 
         <wsdl:input name = "nmtoken"? message = "qname"/> 
         <wsdl:output name = "nmtoken"? message = "qname"/> 
         <wsdl:fault name = "nmtoken" message = "qname"/>* 
      </wsdl:operation> 
   </wsdl:portType > 
</wsdl:definitions>

Ajukan ─ Respon

Layanan mengirimkan pesan dan menerima tanggapan. Oleh karena itu, operasi tersebut memiliki satu elemen keluaran, diikuti oleh satu elemen masukan. Untuk merangkum kesalahan, elemen kesalahan opsional juga dapat ditentukan. Tata bahasa untuk operasi respons-solicit adalah -

<wsdl:definitions .... > 
   <wsdl:portType .... > * 
      <wsdl:operation name = "nmtoken" parameterOrder = "nmtokens"> 
         <wsdl:output name = "nmtoken"? message = "qname"/> 
         <wsdl:input name = "nmtoken"? message = "qname"/> 
         <wsdl:fault name = "nmtoken" message = "qname"/>* 
      </wsdl:operation> 
   </wsdl:portType > 
</wsdl:definitions>

Notifikasi

Layanan mengirimkan pesan. Oleh karena itu, operasi tersebut memiliki elemen keluaran tunggal. Berikut adalah tata bahasa untuk operasi notifikasi -

<wsdl:definitions .... > 
   <wsdl:portType .... > * 
      <wsdl:operation name = "nmtoken"> 
         <wsdl:output name = "nmtoken"? message = "qname"/> 
      </wsdl:operation> 
   </wsdl:portType > 
</wsdl:definitions>

WSDL ─ Mengikat & Layanan

Itu <binding>elemen memberikan detail spesifik tentang bagaimana operasi portType sebenarnya akan dikirim melalui kabel.

  • Binding dapat tersedia melalui beberapa transport termasuk HTTP GET, HTTP POST, atau SOAP.

  • Binding memberikan informasi konkret tentang protokol apa yang digunakan untuk mentransfer operasi portType.

  • Binding memberikan informasi lokasi layanan.

  • Untuk protokol SOAP, pengikatannya adalah <soap: binding>, dan transportnya adalah pesan SOAP di atas protokol HTTP.

  • Anda dapat menentukan beberapa binding untuk satu portType.

Layanan

Itu <service>elemen mendefinisikan port yang didukung oleh layanan web. Untuk setiap protokol yang didukung, ada satu elemen port. Elemen layanan adalah kumpulan port.

Klien layanan web dapat mempelajari hal berikut dari elemen layanan -

  • Di mana mengakses layanan,
  • Melalui port mana untuk mengakses layanan web, dan
  • Bagaimana pesan komunikasi didefinisikan.

Elemen layanan menyertakan elemen dokumentasi untuk menyediakan dokumentasi yang dapat dibaca manusia.

<wsdl:service name = "CurrencyConvertor">
   <wsdl:port name = "CurrencyConvertorSoap" binding = "tns:CurrencyConvertorSoap">
      <soap:address location = "http://www.webservicex.net/CurrencyConvertor.asmx" />
   </wsdl:port>
   <wsdl:port name = "CurrencyConvertorSoap12"binding = "tns:CurrencyConvertorSoap12>
      <soap12:address location = "http://www.webservicex.net/CurrencyConvertor.asmx" />
   </wsdl:port>
   <wsdl:port name = "CurrencyConvertorHttpGet" binding = "tns:CurrencyConvertorHttpGet">
      <http:address location = "http://www.webservicex.net/CurrencyConvertor.asmx" />
   </wsdl:port>
   <wsdl:portname = "CurrencyConvertorHttpPost"binding = "tns:CurrencyConvertorHttpPost">
      <http:address location = "http://www.webservicex.net/CurrencyConvertor.asmx" />
   </wsdl:port> 
</wsdl:service>

Proyek SoapUI adalah titik pusat dalam semua pengujian SoapUI. Setelah proyek dibuat, pengguna dapat membuat dan menjalankan pengujian fungsional, memuat pengujian, membuat layanan tiruan, dan banyak lagi.

Dalam bab ini, kita akan membahas dua hal - Bagaimana -

  • Buat proyek SOAP
  • Tambahkan WSDL

Buat Proyek SOAP

Step 1 - Pada navigator di sisi kiri layar, klik kanan pada "Project" dan pilih "New SOAP Project".

Atau buka File dan pilih New Soap Project.

Saat dipilih, jendela pop-up baru akan terbuka - Proyek Sabun Baru.

Step 2 - Project Name: Masukkan nama proyek - ini adalah kolom input pengguna. Initial WSDL: Ini tidak wajib. Itu tergantung pada pengguna. Pengguna dapat memberikan WSDL atau menambahkan setelah pembuatan Project.

Dalam hal ini, kami membuat proyek dan menambahkan WSDL nanti.

Step 3- Klik OK. Ini akan membuat proyek baru dan akan terlihat di panel navigasi sisi kiri.

Tambahkan WSDL

Proyek SOAP didasarkan pada WSDL. Tidak perlu memulai dengan mengimpor WSDL, tetapi membuat pengujian lebih mudah karena WSDL berisi semua informasi yang diperlukan untuk menguji layanan web seperti informasi tentang permintaan dan tanggapan, apa yang dikandungnya dan banyak lagi, yang menyederhanakan pengujian SoapUI.

Step 1 - Untuk menambahkan WSDL, klik kanan pada nama Proyek (SOAP - Contoh) dan pilih Tambah WSDL.

Pada pilihan, wizard WSDL ditampilkan.

Step 2 - WSDL Location: Masukkan WSDL sebagai http://www.webservicex.com atau telusuri dari komputer.

Step 3- Segera setelah WSDL dimasukkan, 3 kotak centang - Buat Permintaan, Buat TestSuite, Buat MockServices akan diaktifkan. Berdasarkan kebutuhan, pengguna dapat mencentang satu atau beberapa kotak centang.

Secara default, kotak centang Buat Permintaan dicentang.

Step 4- Klik OK. WSDL berhasil ditambahkan di Proyek. Itu dapat diverifikasi dengan mengamati panel navigasi kiri. Di dalam proyek, ada beberapa operasi, dan permintaan ditambahkan sesuai dengan WSDL.

Tampilan Detail

Untuk mendapatkan lebih banyak detail Proyek, klik dua kali Nama Proyek, itu akan membuka jendela baru dengan berbagai detail.

Pada tab Overview, tersedia berbagai informasi seperti -

  • File Path - Ini menampilkan lokasi proyek yang disimpan xml.

  • Interface Summary - Nama antarmuka dan WSDL yang terkait dengannya.

  • Test Summary - Ini menampilkan rangkaian uji, kasus uji, langkah uji, pernyataan yang ditambahkan ke proyek.

Pengguna dapat mengklik dua kali Nama Antarmuka untuk mendapatkan detail antarmuka. Ini akan membuka jendela baru dan menampilkan informasi terkait WSDL. Ini sangat berguna untuk browsing dan memeriksa WSDL.

Di tab Gambaran Umum, ini mencantumkan Definisi WSDL, bagian Definisi, dan rincian Operasi.

Demikian pula, Titik Akhir Layanan mencantumkan detail titik akhir.

Di tab Konten WSDL, semua detail WSDL dalam format XML / skema disediakan seperti yang ditunjukkan pada tangkapan layar berikut.

TestSuiteadalah kumpulan Kasus Uji yang dapat digunakan untuk mengelompokkan uji fungsional ke dalam unit logis. Sejumlah TestSuites dapat dibuat di dalam proyek SoapUI untuk mendukung skenario pengujian besar-besaran.

Pembuatan TestSuite

Step 1 - Dalam sebuah proyek, klik kanan pada antarmuka (di sebelah nama proyek) dan kemudian klik 'Hasilkan TestSuite'.

Di sini, SOAP - Contoh adalah nama Proyek sementara CurrencyConvertorSoap dan CurrencyConvertorSoap12 adalah antarmuka.

Step 2- Wisaya baru terbuka. Pilih pilihan berdasarkan kebutuhan.

Step 3 - Setelah pemilihan dilakukan, klik OK.

Step 4- Centang kotak Generate LoadTest. Ini akan menghasilkan LoadTest untuk setiap TestCase yang dibuat di TestSuite ini.

Step 5 - Masukkan nama TestSuite di wizard baru lalu klik OK.

TestSuite yang dibuat ditampilkan di panel navigasi seperti yang ditunjukkan pada gambar layar berikut.

Step 6- Klik dua kali Nama TestSuite, dan jendela TestSuite terbuka di panel kanan. Karena tidak ada TestCases yang ditambahkan, itu kosong.

Properti TestSuite dapat dilihat di bagian bawah Panel Navigasi. Properti Kustom baru dapat ditambahkan di tingkat TestSuite.

TestCase adalah kumpulan TestSteps yang dirakit untuk menguji beberapa aspek tertentu dari layanan web. Pengguna dapat menambahkan n jumlah TestCases ke TestSuite dan bahkan memodularisasi mereka untuk memanggil satu sama lain untuk skenario pengujian yang kompleks.

Pembuatan TestCase

Step 1- Dalam TestSuite, pengguna dapat menambahkan beberapa kasus uji. Klik kanan pada Test Suite dan pilih "New Test Case".

Step 2 - Masukkan nama TestCase dan klik OK.

TestCase yang dibuat tidak memiliki langkah pengujian sampai sekarang. TestCase ditambahkan dengan TestSteps nol untuk semua jenis tes yang tersedia. Setelah TestSteps ditambahkan, angka di dalam tanda kurung akan berubah secara otomatis. TestStep fungsional harus masuk ke 'Test Steps' sementara performa TestStep harus masuk ke 'Load Test', dan TestStep keamanan harus masuk ke 'Security Tests'.

Step 3- Klik dua kali TestCase Name, dan jendela TestCase terbuka di panel sisi kanan. Karena tidak ada TestSteps yang ditambahkan, ini kosong seperti yang terlihat pada gambar layar berikut.

TestSteps adalah "blok bangunan" dari tes fungsional di SoapUI. Ini ditambahkan ke TestCase dan digunakan untuk mengontrol aliran eksekusi dan memvalidasi fungsionalitas layanan web yang akan diuji.

Penyisipan TestStep

Step 1- Klik kanan pada TestSteps. Tambahkan Langkah dan pilih TestStep yang sesuai dari daftar. Misalnya, jika pengguna harus menguji REST WebService, pengguna akan memilih REST Test Request.

Step 2 - Tambahkan TestStep untuk memvalidasi permintaan SOAP yang diimpor dengan memilih TestSteps → Tambahkan Langkah → Permintaan SOAP.

Step 3 - Masukkan nama TestStep dan klik OK di wizard.

Setelah mengklik 'OK', kotak dialog akan muncul untuk memilih operasi yang akan dipanggil. Semua operasi dicantumkan, dan pengguna dapat memilih operasi yang ingin mereka panggil.

Ada dua operasi yang akan dicantumkan. Kedua Operasi adalah sama kecuali versi SOAP yang digunakan.CurrencyConvertorSoap menggunakan SOAP versi 1.1 sedangkan, CurrencyConvertorSoap12 menggunakan SOAP versi 1.2.

Step 4 - Pilih yang pertama - CurrencyConvertorSoap dan klik OK.

Saat menambahkan TestCase, pernyataan standar yang berbeda dapat ditambahkan. Pernyataan juga disebut sebagai pos pemeriksaan / titik validasi permintaan / tanggapan SOAP.

Step 5 - Mari kita buat TestCase dengan opsi default yang berarti membuat TestStep TANPA salah satu dari poin validasi berikut -

  • Memverifikasi apakah pesan respons adalah SOAP, setelah menjalankan pengujian.
  • Memverifikasi apakah skema respons valid.
  • Memverifikasi apakah respons SOAP berisi FAULT.

Step 6 - Setelah mengklik OK, screenshot XML permintaan berikut akan muncul.

Jumlah langkah pengujian sekarang bertambah menjadi satu saat TestStep fungsional ditambahkan. Demikian pula, saat menambahkan beban dan keamanan TestSteps, jumlah yang sesuai secara otomatis meningkat berdasarkan jumlah langkah yang ditambahkan.

Minta Penyiapan

Di sini, kami akan melakukan konversi mata uang dari INR menjadi USD.

  • FromCurrency - INR
  • ToCurrency - USD

Selanjutnya, masukkan input ini di tempat tanda tanya yang akan dikirim sebagai XML permintaan. Setelah menempatkan nilai-nilai itu ke dalam tag XML yang sesuai, klik tombol 'Kirim permintaan' untuk memeriksa tanggapannya.

Tanggapan

Setelah mengirimkan permintaan, permintaan layanan web diproses oleh server web dan mengirimkan kembali tanggapan seperti yang ditunjukkan pada tangkapan layar berikut.

Dengan membaca respon tersebut maka dapat disimpulkan bahwa 1 satuan INR = 0,0147 satuan USD.

Permintaan HTTP

Pesan SOAP diangkut oleh protokol HTTP. Untuk melihat permintaan HTTP, klik RAW di jendela Permintaan SoapUI (sisi kiri).

Permintaan dikirim ke server web. Oleh karena itu, metode POST Http digunakan.

Permintaan SOAP diangkut ke dalam isi pesan http, yang ditampilkan sebagai berikut.

POST http://www.webservicex.com/currencyconvertor.asmx HTTP/1.1 
Accept-Encoding: gzip,deflate 
Content-Type: text/xml;charset = UTF-8 
SOAPAction: "http://www.webserviceX.NET/ConversionRate" 
Content-Length: 353 
Host: www.webservicex.com 
Connection: Keep-Alive 
User-Agent: Apache-HttpClient/4.1.1 (java 1.5)

Respon HTTP

Klik Tab 'RAW' di SOAP-UI Response Window untuk memahami bagaimana respon dikirim melalui HTTP.

Setelah memproses permintaan, kode respons http (200) ditampilkan yang berarti berhasil. Server web telah berhasil memprosesnya.

Respon SOAP dikirim kembali ke klien sebagai bagian dari isi pesan HTTP.

HTTP/1.1 200 OK 
Cache-Control: private, max-age = 0 
Content-Type: text/xml; charset = utf-8 
Content-Encoding: gzip 
Vary: Accept-Encoding 
Server: Microsoft-IIS/7.0 
X-AspNet-Version: 4.0.30319 
X-Powered-By: ASP.NET 
Date: Sun, 22 Jan 2017 19:39:31 GMT 
Content-Length: 316

Kode HTTP berikut digunakan untuk mengirim tanggapan oleh server Web dan sangat berguna untuk debugging.

Kode HTTP Deskripsi

1xx:

Informational - Artinya permintaan telah diterima dan ada proses yang berkelanjutan.

2xx:

Success - Tindakan berhasil diterima, dipahami, dan diterima.

3xx:

Redirection - Ini berarti tindakan lebih lanjut harus diambil untuk menyelesaikan permintaan.

4xx:

Client Error - Ini berarti permintaan berisi sintaks yang buruk atau tidak dapat dipenuhi.

5xx:

Server Error - Server gagal memenuhi permintaan yang tampaknya valid.

Properti adalah aspek sentral dari pengujian lanjutan dengan SoapUI. Properti Pengujian Fungsional digunakan untuk membuat parameter pelaksanaan dan fungsionalitas pengujian.

  • Properti dapat digunakan untuk menyimpan titik akhir layanan, membuatnya mudah untuk mengubah titik akhir aktual yang digunakan selama eksekusi uji.

  • Properti dapat digunakan untuk menyimpan kredensial otentikasi, membuatnya mudah untuk mengelola ini di tempat pusat atau file eksternal.

  • Properti dapat digunakan untuk mentransfer dan membagikan id sesi selama eksekusi pengujian, sehingga beberapa langkah pengujian atau kasus pengujian dapat berbagi sesi yang sama.

Mendefinisikan Properti

Properti dapat didefinisikan di berbagai tingkatan dalam sebuah proyek.

  • Properti yang umum di tingkat proyek dapat ditentukan di tingkat Proyek.

  • Demikian pula, properti khusus TestSuite dan TestCase dapat ditentukan di levelnya masing-masing.

  • Properti khusus proyek ditentukan di tab Properti Kustom.

Misalnya, properti "ToCurrency" dapat ditentukan di tingkat Proyek dengan mengklik simbol "+" dan memasukkan Nama dan Nilai Properti.

Mengakses Properti

Properti dapat diakses di mana saja di Proyek dengan menggunakan Ekspansi Properti.

Strukturnya akan seperti -

  • $ {# Project # PropertyName} - Untuk Tingkat Proyek

  • $ {# TestSuite # PropertyName} - Untuk tingkat Test Suite

  • $ {# TestCase # PropertyName} - Untuk tingkat Test Case

  • $ {TestStepName # PropertyName} - Untuk tingkat Langkah Tes

  • $ {# MockService # PropertyName} - Untuk properti MockService

  • $ {# Global # PropertyName} - Untuk properti Global, ada di File → Preferensi → tab Properti global. Properti ini dapat digunakan di semua proyek

  • $ {# System # PropertyName} - Untuk Properti Sistem, ada di Bantuan → Properti sistem

  • $ {# Env # PropertyName} - Untuk variabel lingkungan

Struktur yang sama dapat ditempatkan di Request XML untuk mendapatkan nilai atribut tertentu selama waktu proses.

Properti juga dapat dianggap sebagai variabel dalam program komputer. Jika pengguna ingin mendefinisikan sesuatu yang dapat digunakan di tempat lain juga, Properti sangat berguna. Properti juga dapat ditentukan secara dinamis tetapi bergantung pada skrip Groovy.

Terkadang ada persyaratan untuk mengekstrak beberapa nilai dari pesan respons dan memasukkannya ke dalam permintaan berikutnya. Dalam kasus seperti itu, kita perlu memiliki mekanisme untuk mengambil nilai yang ditentukan dan mentransfernya ke elemen proyek lainnya. SoapUI mendukung fungsionalitas tersebut melalui Property Transfer TestStep.

Menambahkan Transfer Properti

Step 1 - Pilih TestCase atau TestStep, klik kanan → Tambahkan Langkah → Transfer Properti.

Step 2 - Masukkan nama TestStep dan Klik OK.

Step 3 - Langkah RateTransfer ditambahkan dan wizard baru akan terbuka.

Step 4- Klik ikon Tambahkan properti baru + di pojok kiri atas di jendela transfer properti. Ini akan diminta untuk memasukkan nama untuk transfer. Masukkan Rate dan klik OK.

Mentransfer Properti

Setelah transfer dibuat, Source dan Target panesperlu menentukan ekspresi XPath yang relevan untuk mengekstrak dan mengganti nilai properti. Di kotak drop-down di sebelah Sumber, berbagai tingkat proyek SoapUI terdaftar yang dapat digunakan sebagai sumber transfer properti. Secara default, TestStep terdekat akan ditampilkan.

Dalam hal ini, itu adalah Request – INR to USDTestStep. Daftar tarik-turun di samping Properti menunjukkan properti sumber yang digunakan dalam transfer, yang bisa berupa permintaan, respons, atau titik akhir layanan.

Step 1- Pilih Respon dan pergi ke bahasa Path. Pengguna dapat memilih XPath, Xquery, atau Jason untuk menentukan properti. Dalam kasus ini, pilih XPath.

Step 2 - Untuk mendapatkan deklarasi sumber xml, klik ns dan tentukan XPath.

Step 3- Tentukan target di mana nilai yang diekstrak dari ekspresi XPath di atas akan ditransfer. Panel target digunakan di bagian bawah jendela transfer properti untuk itu.

Step 4 - Transfer nilai yang diekstrak dari ConversionRateResult dari respons langkah RequestINRtoUSD.

Target - Properti

Property - ConversionRate (properti baru ditambahkan, awalnya tidak memiliki nilai apa pun).

Step 5 - Setelah kasus pengujian berhasil dijalankan, properti "ConversionRate" diperbarui berdasarkan respons.

Berikut screenshot awalnya.

Berikut screenshot setelah berhasil dijalankan.

Demikian pula, Target mungkin merupakan Request XML berikutnya. Jika Target adalah permintaan SOAP, kita perlu menyediakan XPath untuk mengidentifikasi atribut target.

Panel log menyimpan informasi lengkap mengenai transaksi antara klien dan server. Pengguna akan dapat melihat berbagai tab di panel log. Kami akan membahas panel log yang paling umum digunakan saat bekerja dengan SoapUI di bab ini.

SoapUI Log

Log SoapUI menampilkan informasi respon dari web-server. Informasi yang sama disimpan dalam file soapui.log dari folder SOAP-UI yang diinstal di bawah direktori 'bin'.

HTTP Log

Log HTTP menampilkan semua transfer paket HTTP. Semua informasi di 'RAW' ditampilkan di log HTTP.

Catatan eror

Log kesalahan menampilkan semua kesalahan yang ditemukan selama seluruh sesi proyek. Informasi yang sama tersedia di 'soapui-error.log' yang ada di direktori 'bin' dari lokasi pemasangan SoapUI.

Log Memori

Tab ini memonitor konsumsi memori dan menampilkannya dalam bentuk grafik seperti yang ditunjukkan pada gambar layar berikut. Ini sangat membantu ketika operasi intensif memori dilakukan.

Assertion dapat diartikan sebagai checkpoint atau titik validasi. Setelah permintaan dikirim ke server web, tanggapan diterima. Diperlukan untuk memvalidasi respon yang berisi data seperti yang diharapkan atau tidak. Untuk memvalidasi tanggapan, SoapUI memiliki fitur pernyataan.

Poin yang Perlu Diperhatikan

  • Pernyataan digunakan untuk memvalidasi pesan yang diterima oleh TestStep selama eksekusi.

  • Ini membandingkan bagian pesan atau keseluruhan pesan dengan beberapa nilai yang diharapkan.

  • Sejumlah pernyataan dapat ditambahkan ke TestStep, masing-masing memvalidasi beberapa aspek dan konten berbeda dari pesan respons.

  • Setelah TestStep dijalankan, semua pernyataannya diterapkan ke respons yang diterima dan jika ada yang gagal, TestStep ditandai sebagai gagal dalam tampilan TestCase.

  • Entri yang gagal ditampilkan di log eksekusi uji.

Jenis Pernyataan

SoapUI mendukung berbagai pernyataan sebagai respons.

Berikut adalah daftar pernyataan yang didukung oleh SoapUI.

Tuntutan Deskripsi
Property Content
Mengandung Memeriksa keberadaan string yang ditentukan. Ini juga mendukung ekspresi reguler.
Tidak Berisi Memeriksa tidak adanya string yang ditentukan. Ini juga mendukung ekspresi reguler.
Pertandingan XPath Menggunakan ekspresi XPath untuk memilih node target dan nilainya. Membandingkan hasil ekspresi XPath dengan nilai yang diharapkan.
XQuery Match Menggunakan ekspresi Xquery untuk memilih konten dari properti target. Membandingkan hasil ekspresi XQuery dengan nilai yang diharapkan.
Compliance, Status, Standards
HTTP DOwnload Semua Sumber Daya Unduh semua sumber daya yang dirujuk sebagai dokumen HTML (gambar, skrip, dll.) Dan memvalidasi bahwa semuanya tersedia. Berlaku untuk semua properti yang mengandung HTML.
Kode Status HTTP Tidak Valid Memeriksa apakah target TestStep menerima hasil HTTP dengan kode status tidak ada dalam daftar kode yang ditentukan. Berlaku untuk TestStep apa pun yang menerima pesan HTTP.
Bukan SOAP Fault Memvalidasi bahwa pesan yang diterima terakhir bukanlah SOAP Fault. Berlaku untuk SOAP TestSteps.
Kepatuhan Skema Memvalidasi bahwa pesan yang diterima terakhir sesuai dengan definisi skema WSDL atau WADL terkait. Berlaku untuk SOAP dan Langkah Tes REST. URL definisi skema mendukung Perluasan Properti (mis. $ {# System # my.wsdl.endpoint} / services / PortType? Wsdl).
Kesalahan SOAP Memvalidasi bahwa pesan yang diterima terakhir adalah SOAP Fault. Berlaku untuk SOAP TestSteps SOAP Request - memvalidasi bahwa permintaan yang diterima terakhir adalah Permintaan SOAP yang valid. Berlaku hanya untuk Langkah Tes MockResponse.
Respon SOAP Memvalidasi bahwa tanggapan yang diterima terakhir adalah Tanggapan SOAP yang valid. Berlaku hanya untuk SOAP TestRequest Steps.
Kode Status HTTP yang Valid Memeriksa apakah target TestStep menerima hasil HTTP dengan kode status dalam daftar kode yang ditentukan. Berlaku untuk TestStep apa pun yang menerima pesan HTTP.
Permintaan Pengalamatan WS Memvalidasi bahwa permintaan yang diterima terakhir berisi WS-Addressing Headers yang valid. Berlaku hanya untuk MockResponse TestSteps.
Tanggapan Pengalamatan WS Memvalidasi bahwa respons yang diterima terakhir berisi WS-Addressing Headers yang valid. Berlaku hanya untuk SOAP TestRequest Steps.
Status Keamanan WS Memvalidasi bahwa pesan yang diterima terakhir berisi header WS-Security yang valid. Berlaku untuk Langkah-Langkah Tes SOAP.
Script
Penegasan Skrip Memungkinkan pengguna untuk menjalankan skrip kustom untuk melakukan validasi yang ditentukan pengguna. Berlaku hanya untuk TestSteps (yaitu bukan properti)
SLA
SLA Respons Memvalidasi jika waktu respons dari respons yang terakhir diterima berada dalam batas yang ditentukan. Berlaku untuk Script TestSteps dan TestSteps yang mengirim permintaan dan menerima respons.
JMS
Status JMS Memvalidasi bahwa permintaan JMS dari TestStep target berhasil dijalankan. Berlaku untuk Meminta TestSteps dengan titik akhir JMS.
JMS Timeout Memvalidasi bahwa pernyataan JMS dari TestStep target tidak membutuhkan waktu lebih lama dari durasi yang ditentukan. Berlaku untuk Meminta TestSteps dengan titik akhir JMS.
Security
Keterpaparan Informasi Sensitif Memverifikasi apakah pesan respons tidak mengungkapkan informasi sensitif tentang sistem target. Kita dapat menggunakan pernyataan ini untuk REST, SOAP, dan HTTP TestSteps.
JDBC
Status JDBC Memvalidasi bahwa permintaan JDBC dari TestStep target berhasil dijalankan. Berlaku hanya untuk JDBC TestSteps.
Batas Waktu JDBC Memvalidasi bahwa pernyataan JDBC dari TestStep target tidak membutuhkan waktu lebih lama dari durasi yang ditentukan. Berlaku hanya untuk JDBC TestSteps.

Di SoapUI, pengguna menghadapi banyak masalah umum umum yang dapat diselesaikan dengan sedikit kewaspadaan. Beberapa dari masalah yang paling umum ini adalah sebagai berikut -

Issue- Namespace salah didefinisikan. Gunakan namespace yang benar. Namespace haruslah URL tempat layanan web berada.

Solution - Jika kesalahan muncul saat mengembangkan pernyataan skrip, gunakan 'log.info' untuk mencetak konten variabel.

Issue - Jika kode kesalahan diterima sebagai respons XML, itu mungkin karena input yang tidak valid.

Solution - Verifikasi masukan XML permintaan.

Example - Dalam konverter mata uang, jika input 'FromCurrency' adalah '123' yang tidak ada, output akan menampilkan kode kesalahan sebagai 'SOAP-Client' yang berarti bahwa masalahnya ada pada parameter yang diteruskan dari sisi klien.

Permintaan

Tanggapan

Issue - Tidak ada kecocokan dalam respons saat ini saat menggunakan XPath atau XQuery.

Solution -

  • Gunakan sintaks yang benar saat menentukan XPath atau XQuery.
  • Pastikan titik dua digunakan dan bukan titik saat mendeklarasikan namespace.
  • Pastikan XPath dan XQuery sudah benar.

Pengujian kinerja adalah salah satu pos pemeriksaan penting paling umum dalam pengujian Layanan Web. Pengujian Kinerja didefinisikan sebagai membuat atau mensimulasikan beban secara artifisial dan mengukur bagaimana lingkungan menanganinya.

Ini berarti tidak harus bagaimana sistem bekerja di bawah beban tinggi, bisa juga bagaimana kinerjanya di bawah beban dasar atau beban yang diharapkan. Ia bahkan tidak harus terstruktur, otomatis, atau dibuat di TestWare seperti SoapUI; hanya menyegarkan browser web berulang kali dengan sangat cepat juga merupakan Uji Muat.

Jenis Pengujian Kinerja

Berikut adalah jenis-jenis Pengujian Kinerja -

  • Baseline Testing - Memeriksa bagaimana sistem bekerja di bawah beban yang diharapkan atau normal dan membuat garis dasar yang dapat digunakan untuk membandingkan jenis pengujian lainnya.

  • Load Testing- Termasuk meningkatkan beban dan melihat bagaimana sistem berperilaku di bawah beban yang lebih tinggi. Selama Tes Beban, pengguna dapat memantau waktu respons, throughput, kondisi server, dan banyak lagi. Tujuan dari Pengujian Beban bukanlah untuk merusak lingkungan target.

  • Soak Testing - Tujuan pengujian adalah untuk memastikan tidak ada perilaku yang tidak diinginkan yang muncul dalam jangka waktu yang lebih lama.

  • Scalability Testing- Pengujian Skalabilitas sangat mirip dengan Pengujian Beban, namun alih-alih meningkatkan jumlah permintaan, ini meningkatkan ukuran atau kompleksitas permintaan yang dikirim. Misalnya, mengirim permintaan besar, lampiran besar, atau permintaan bertingkat dalam.

Aspek Utama dalam Layanan Web

Dua aspek menonjol dalam karakteristik unik kinerja Layanan Web.

Aspek Pertama

Di sisi server, pemrosesan XML / JSON sedang berlangsung, baik penguraian dan serialisasi XML / JSON . Hal yang sering gagal pertama kali adalah pemrosesan payload. Alasan kegagalan bisa berlipat ganda; bisa dalam platform, kelemahan server aplikasi, atau bisa menjadi masalah implementasi dalam bentuk WSDL kompleks yang tidak perlu. Ini juga bisa berarti bahwa kode tersebut membuat permintaan ke database yang lambat dalam merespons.

Testing Aspect- Kompleksitas penguraian payload XML / JSON berarti ada kebutuhan untuk lebih fokus pada Pengujian Skalabilitas. Ini juga berarti bahwa WSDL harus diperiksa dengan cermat. Jika permintaan dan tanggapan bersifat kompleks atau lebih besar, atau jika menyertakan lampiran besar, fokus harus diberikan pada penekanan pada kompleksitas dan lihat bagaimana perilakunya saat dimuat.

Aspek Kedua

Faktor lain yang sering dijumpai adalah keamanan. Situs aman di belakang HTTPS memiliki kinerja yang jauh lebih rendah dan dalam pengujian Layanan Web kami dapat menambahkan lapisan WSSecurity ke lapisan keamanan HTTP, yang bahkan lebih menurunkan kinerja.

Testing Aspect- Masalah keamanan berarti, ada kebutuhan untuk fokus melakukan pengujian permintaan yang aman. Jika seluruh Layanan Web aman itu berarti Pengujian Beban lebih penting, terutama jika WS-Security dan penanganan token digunakan.

Load testingadalah bentuk pengujian kinerja khusus yang dilakukan untuk menilai perilaku sistem di bawah beban tertentu. Di SoapUI, kami biasanya menggunakan istilah "pengujian beban" untuk semua jenis pengujian non-fungsional, namun SoapUI mendukung semua jenis penilaian kinerja layanan web seperti beban, stres, dan ketahanan.

Poin yang Perlu Diperhatikan

  • Pengujian beban cukup unik di SoapUI; kasus uji fungsional yang memungkinkan pembuatan dan modifikasi uji kinerja dengan cepat.

  • Pembeda utama adalah bahwa tes kinerja di SoapUI umumnya dibuat dari tes fungsional yang ada. Ini memungkinkan untuk membuat tes kinerja lanjutan dengan cepat.

  • Kinerja Layanan Web dapat divalidasi di bawah skenario pemuatan yang berbeda. Pertahankan validasi fungsional untuk memastikan bahwa validasi tidak rusak saat dimuat, jalankan beberapa uji beban secara bersamaan untuk melihat bagaimana pengaruhnya terhadap satu sama lain dan banyak lagi.

Pembuatan Uji Beban

Step 1 - Klik kanan Kasus Uji Fungsional dan pilih Uji Beban Baru.

Step 2 - Masukkan nama Load Test dan klik OK di dialog wizard.

Load Test akan terbuka dan Load Test dibuat seperti yang ditunjukkan pada gambar berikut.

Eksekusi Uji Beban

Saat Load Test baru dibuat, itu telah dikonfigurasikan untuk berjalan selama 60 detik (kanan atas) dengan 5 thread menggunakan strategi Simple load.

Ubah nilai-nilai ini sesuai kebutuhan dan Jalankan. Note - Pengguna harus mengetahui konfigurasi dan konsep Pengujian Beban.

Pengguna akan melihat tabel statistik di tengah, dimulai dengan pengumpulan data dan setelah 60 detik akan menyelesaikan LoadTest.

Menambahkan Assertion

Step 1 - Di editor LoadTest, pilih tab Pernyataan LoadTest di bagian bawah editor.

Step 2 - Klik tombol Add Assertion di bilah menu LoadTest Assertion untuk menambahkan pernyataan.

Step 3- Dialog Add Assertion akan terbuka. Pilih Langkah Maksimum. Pilih Maksimum menetapkan Waktu Maks dalam milidetik yang diizinkan untuk diambil respons, jika waktu melebihi yang telah kita tetapkan, pengujian akan gagal. Klik OK.

Step 4- Jendela TestStep Max Assertion akan terbuka. Seperti yang terlihat pada tangkapan layar berikut, kami mengizinkan respons maksimal satu detik, 1000 milidetik. Jangan memodifikasi apapun. Klik Ok.

Penegasan Maksimum Langkah sekarang akan berhasil ditambahkan.

Step 5- Sekarang jalankan tes lagi. Jika tanggapannya terlalu lama, Anda akan melihat angka di kolom yang salah bertambah dengan cepat.

Layanan web adalah kumpulan protokol dan standar terbuka yang digunakan untuk bertukar data antara aplikasi atau sistem. Aplikasi perangkat lunak yang ditulis dalam berbagai bahasa pemrograman dan berjalan pada berbagai platform dapat menggunakan layanan web untuk bertukar data melalui jaringan komputer seperti Internet dengan cara yang mirip dengan komunikasi antar-proses pada satu komputer. Interoperabilitas ini (misalnya antara Java dan Python, atau aplikasi Windows dan Linux) disebabkan oleh penggunaan standar terbuka.

Layanan web berdasarkan Arsitektur REST dikenal sebagai Layanan Web RESTful. Layanan web ini menggunakan metode HTTP untuk mengimplementasikan konsep arsitektur REST. Layanan web RESTful biasanya mendefinisikan URI (Uniform Resource Identifier), yang merupakan layanan yang menyediakan representasi sumber daya seperti JSON dan sekumpulan metode HTTP.

Semua kemampuan pengujian REST dari SoapUI didasarkan pada representasi logis yang dikenal sebagai layanan REST. Kita tidak boleh mengacaukan istilah ini dengan istilah "layanan" di sini, karena ini bukan implementasi layanan tetapi pemetaan layanan RESTful yang sedang dipanggil. Kami dapat menambahkan Layanan REST sebanyak yang kami bisa dalam proyek SoapUI. Masing-masing mewakili layanan RESTful tertentu. Mereka adalah sebagai berikut -

  • REST - Setup Proyek

  • REST - WADL

  • REST - Permintaan

  • REST - Respon

  • REST - Metode HTTP

SoapUI memungkinkan pengelolaan operasi database menggunakan TestStep yang disebut JDBC Request.

Step 1 - Klik kanan pada TestStep dan pilih Add Step → JDBC Request.

Step 2 - Masukkan nama langkah dan klik OK.

Langkah JDBC ditambahkan. Klik dua kali langkah, dan wizard JDBC akan terbuka.

Untuk membuat koneksi JDBC, pengguna harus menyediakan Driver dan String Koneksi yang valid. Parameter ini digunakan untuk mengidentifikasi tipe database dan membuat koneksi untuk menggunakan database.

Untuk MySQL, driver database bisa com.mysql.jdbc.Driver. Demikian pula, untuk database lain, ada driver yang telah ditentukan yang dapat ditemukan di bagian dokumen di database.

Step 3 - String Koneksi harus dalam format berikut -

Jdbc:mysql://[host]:[port]/[database]?[property][=value]

Di sini, properti adalah nama pengguna dan kata sandi bersama dengan parameter lain yang diperlukan untuk terhubung dengan database.

Sebagai contoh,

jdbc:mysql://localhost:8089/xxx_DB?user=root&password=root

Step 4- Klik Uji Koneksi. Pada koneksi yang berhasil, itu akan menampilkan SUKSES jika tidak memberikan rincian kegagalan.

JDBC memiliki bagian Add property sendiri yang dapat digunakan sebagai variabel dalam SQL Query.

Mari kita lihat bagaimana perilakunya -

Misalkan SQL Query yang perlu dilakukan pada langkah JDBC adalah Select * from Currency dimana CurrencyCode = 'xxx'.

Dalam skenario ini, CurrencyCode dapat diubah berdasarkan input permintaan. Jika pengguna memberikan nilai hard-code, langkah JDBC tidak akan dijalankan untuk mata uang yang diberikan dalam permintaan.

Untuk mengatasi skenario seperti itu, JDBC mendukung properti tambah, di mana Kode properti dapat ditentukan dan akan terus berubah menggunakan Langkah Transfer Properti.

SQL Query akan berjalan berdasarkan nilai Property Code saat ini dan SQL Query akan mengatur parameter CurrencyCode =: Code.

Klik Tambahkan Properti + dan nama sebagai Kode dan beri nilai atau biarkan kosong untuk menggunakan langkah Transfer Properti untuk menyediakannya.

Permintaan JDBC juga dapat menggunakan sebagian besar pernyataan dengan TestSteps permintaan SOAP. Di SoapUI, sebagian besar pernyataan ini tidak bergantung pada TestSteps. Oleh karena itu, pernyataan seperti Contains dan XPath Match dapat digunakan dengan JDBC Request TestStep.

Dengan mengklik Add an assertion ikon di menu atas JDBC Request TestStep, pengguna dapat mengetahui pernyataan apa yang didukung oleh TestStep.

Selain pernyataan umum, ada dua pernyataan khusus JDBC Request TestStep -

JDBC Timeout - Pernyataan ini dapat digunakan untuk memverifikasi apakah kueri SQL saat ini dijalankan dalam nilai properti Query Timeout yang ditentukan.

JDBC Status - Untuk memeriksa apakah pernyataan SQL berhasil dijalankan, kita dapat menggunakan pernyataan Status JDBC.

Untuk menyetel Query Timeout, berikan nilai masing-masing Property Query Timeout di sisi kiri layar. Harap diingat, ini menerima nilai dalam milidetik (md).