Tutorial Ujian Perkhidmatan Web: Bagaimana Menguji? Belajar dengan Contoh

Isi kandungan:

Anonim

Apa itu WebService?

Perkhidmatan Web adalah mekanisme atau media komunikasi di mana dua aplikasi / mesin akan bertukar data tanpa mengira seni bina dan teknologinya.

Apa itu Ujian Perkhidmatan Web?

Pengujian Perkhidmatan Web adalah jenis pengujian perisian yang mengesahkan perkhidmatan Web. Tujuan Pengujian Perkhidmatan Web adalah untuk memeriksa fungsi, kebolehpercayaan, prestasi, dan keselamatan API (Antaramuka Program Aplikasi). Ujian Perkhidmatan Web serupa dengan pengujian unit dalam beberapa kes. Anda boleh menguji Webservice secara manual atau membuat kod automasi anda sendiri atau menggunakan alat automasi tanpa rak seperti Postman.

Mengapa Perkhidmatan Web Diperlukan?

Secara umum, aplikasi perisian dikembangkan untuk dikonsumsi oleh manusia, di mana seseorang menghantar permintaan ke perkhidmatan perisian yang pada gilirannya memberikan respons dalam format yang dapat dibaca oleh manusia.

Dalam era teknologi moden jika anda ingin membina aplikasi perisian, anda tidak perlu membina setiap dari awal. Terdapat banyak perkhidmatan readymade yang boleh anda pasangkan ke dalam aplikasi anda dan anda boleh mula menyediakan perkhidmatan tersebut dalam aplikasi anda.

Contohnya anda ingin memaparkan maklumat ramalan cuaca yang tidak perlu anda kumpulkan, proseskan dan hasilkan data dalam aplikasi anda. Anda boleh membeli perkhidmatan daripada orang yang sudah mantap dalam memproses dan menerbitkan data semacam itu.

Perkhidmatan web membolehkan kami melakukan pelaksanaan seperti ini.

Sebagai contoh, pertimbangkan WebService berikut

http://www.webservicex.net/stockquote.asmx?op=GetQuote

Ia memberikan Nilai Saham untuk Syarikat.

Mari cari harga saham untuk Google (Simbol: GOOG)

XML respons memberikan harga saham.

WebService ini dapat dipanggil oleh Aplikasi Perisian menggunakan protokol SOAP atau HTTP.

Protokol Perkhidmatan Web

Perkhidmatan Web boleh dilaksanakan dengan cara yang berbeza, tetapi dua berikut adalah pendekatan pelaksanaan yang popular.

  1. SOAP (Protokol Akses Objek Mudah)
  2. REST (seni bina Perwakilan Negeri Perwakilan)

Sabun

SOAP adalah protokol standard yang ditentukan oleh W3C Standard untuk menghantar dan menerima permintaan dan respons perkhidmatan web.

SOAP menggunakan format XML untuk mengirim dan menerima permintaan dan oleh itu datanya adalah data bebas platform. Mesej SOAP ditukar antara aplikasi penyedia dan menerima aplikasi dalam sampul surat SOAP.

Oleh kerana SOAP menggunakan protokol pengangkutan http yang mudah, mesejnya tidak disekat oleh firewall.

KURANGKAN

REST bermaksud Pemindahan Negeri yang mewakili; ia adalah seni bina yang umumnya berjalan melalui HTTP. Gaya REST menekankan interaksi antara pelanggan dan perkhidmatan, yang dipertingkatkan dengan jumlah operasi yang terhad. REST adalah alternatif untuk SOAP (Simple Object Access Protocol) dan bukannya menggunakan XML untuk permintaan REST menggunakan URL sederhana dalam beberapa kes. Tidak seperti SOAP, aplikasi RESTFUL menggunakan HTTP build in header untuk membawa meta-maklumat.

Terdapat pelbagai kod yang digunakan REST untuk menentukan sama ada pengguna mempunyai akses ke API atau tidak seperti kod 200 atau 201 menunjukkan kejayaan interaksi dengan badan respons sementara 400 menunjukkan permintaan yang buruk atau permintaan URI tidak sepadan dengan API dalam sistem. Semua parameter permintaan API dan parameter kaedah dapat dikirim melalui pemboleh ubah POST atau GET .

Rest API menyokong kedua-dua format XML dan JSON untuk Ujian API WebServices. Biasanya disukai untuk aplikasi Mudah Alih dan web kerana aplikasi menjadikan kerja lebih pantas dan lancar

WSDL

WSDL (Bahasa Penerangan Perkhidmatan Web) adalah bahasa berasaskan XML yang akan digunakan untuk menggambarkan perkhidmatan yang ditawarkan oleh perkhidmatan web.

WSDL menerangkan semua operasi yang ditawarkan oleh perkhidmatan web tertentu dalam format XML. Ini juga menentukan bagaimana perkhidmatan dapat dipanggil, iaitu apa nilai input yang harus kita berikan dan apa bentuk respons yang akan dihasilkannya untuk setiap jenis perkhidmatan.

Bagaimana untuk menguji Perkhidmatan Web?

Untuk menguji perkhidmatan web, anda boleh

  1. Uji Secara Manual
  2. Buat Kod Automasi anda sendiri
  3. Gunakan alat automasi luar rak seperti SoapUI.

Ujian Automasi Perkhidmatan Web melibatkan langkah-langkah berikut -

  1. Fahami fail WSDL
  2. Tentukan operasi yang disediakan oleh perkhidmatan web tertentu
  3. Tentukan format permintaan XML yang perlu kita hantar
  4. Tentukan format XML tindak balas
  5. Menggunakan alat atau kod penulisan untuk menghantar permintaan dan mengesahkan tindak balas

Andaikan kita ingin menguji perkhidmatan web yang menyediakan Kemudahan Penukaran Mata Wang. Ini akan menjadi kadar pertukaran semasa antara mata wang negara yang berbeza. Perkhidmatan ini dapat kita gunakan dalam aplikasi kita untuk menukar nilai dari satu mata wang ke mata wang lain.

Sekarang mari kita lihat langkah-langkah di atas

Langkah 1 hingga 4: Memahami WSDL dan menentukan operasi & format XML

Fail WSDL Currency Convertor dapat dilihat @ (http://www.webservicex.net/CurrencyConvertor.asmx?wsdl) yang akan memberikan maklumat mengenai kaedah perkhidmatan web Currency Convertor yang akan disokongnya, parameter yang perlu kami lalui dan jenis parameter

… dan lain-lain

Langkah 5: Menggunakan alat atau menulis kod untuk menghantar permintaan dan mengesahkan tindak balas

Terdapat banyak alat Uji WebService yang tersedia untuk menguji perkhidmatan web SOAP. SoapUI adalah salah satu alat API yang popular yang akan membantu kami menguji perkhidmatan web SOAP. Sebenarnya anda dapat menggunakan bahasa pengaturcaraan apa pun yang mampu mengirim permintaan XML ke aplikasi penyedia perkhidmatan web melalui http dan dapat menguraikan dan mengesahkan respons XML terhadap hasil yang diharapkan. Dalam tutorial Pengujian Perkhidmatan Web ini, kami akan menguji Perkhidmatan Web

  1. Menggunakan Java
  2. Menggunakan SoapUI

BAHAGIAN 1) Pengujian Perkhidmatan Web Menggunakan API Apache Axis2 (Java).

Secara amnya perkhidmatan web mengambil permintaan dan mengirimkan respons dalam format XML.

Projek Apache Axis2 API adalah API implementasi Java, yang akan digunakan untuk membuat layanan Web untuk kedua-dua sisi pelayan (penyedia perkhidmatan) dan pelanggan (pengguna perkhidmatan).

Axis2 mampu menghantar mesej SOAP dan Menerima & Memproses mesej SOAP. Kita dapat menulis program Java kecil menggunakan API untuk membuat layanan web. Axis2 akan menghasilkan WSDL dari program Java yang akan digunakan untuk menyampaikan perkhidmatan yang ditawarkan oleh perkhidmatan web. Kita dapat menggunakan Axis2 yang sama untuk menghasilkan kelas Java (rintisan) dari file WSDL yang dapat kita gunakan sebagai program klien untuk menghasilkan permintaan layanan web, untuk mengirim permintaan ke titik akhir layanan dan untuk memproses respons.

  1. Pada asasnya kami akan membuat program Java sederhana di mana kami akan membuat kelas stub.
  2. Dengan menggunakan rintisan, kami akan menggunakan kaedah permintaan dengan menyampaikan semua maklumat yang diperlukan.
  3. Program Stub akan mengubah permintaan itu menjadi format permintaan XML dan mengirimkannya titik akhir perkhidmatan yang akan membaca permintaan dan memproses permintaan dan mengirimkan respons dalam format XML.
  4. Respons XML akan diubah menjadi kelas Java secara stub dan dikembalikan ke program yang sebenarnya.

Mari kita perhatikan langkah-langkah di atas secara terperinci

Langkah a) Muat turun API axis2 @ https://axis.apache.org/axis2/Java/core/download.cgi & Tetapkan pemboleh ubah persekitaran 'AXIS2_HOME'

Langkah b) Buat folder untuk menyimpan semua artifak yang dihasilkan

Cth: C: \ Axis \ Projects \ CurrencyConverter

Langkah c) Buka command prompt dan arahkan ke struktur folder di mana anda ingin menghasilkan artifak dan Jalankan arahan berikut yang akan menghasilkan stubs

% AXIS2_HOME% \ bin \ WSDL2Java -uri http://www.webservicex.net/CurrencyConvertor.asmx?wsdl -p org.apache.axis2.currencyconvertor -d adb -s

Langkah d) Setelah arahan berjaya dijalankan, anda akan melihat folder dengan fail yang diperlukan.

Langkah e) Pada langkah berikutnya dari tutorial Pengujian Perkhidmatan Web ini, kita harus membuat program klien, di mana kita akan mengirimkan permintaan sebenarnya menggunakan rintisan yang dihasilkan. Buka gerhana dan buat projek Java baru dan pilih folder yang telah kita buat di atas.

Langkah f) Tambahkan semua balang sumbu2 ke jalan membina projek, yang akan ada di folder lib folder perisian axis2

(untuk cth: C: \ Axis \ axis2-1.6.2 \ lib)

Langkah g) Buat kelas Java baru (mis. Client.Java) dan buat objek rintisan. Dengan menggunakan objek rintisan kita dapat memanggil semua kaedah yang disokong dari WebService tertentu.

Program Pelanggan.Javapakej org.apache.axis2.currencyconvertor;import org.apache.axis2.currencyconvertor.CurrencyConvertorStub.ConversionRate;import org.apache.axis2.currencyconvertor.CurrencyConvertorStub.ConversionRateResponse;import org.apache.axis2.currencyconvertor.CurrencyConvertorStub.Currency;Pelanggan kelas awam {utama kekosongan statik awam (Java.lang.String args []) {cuba {// Buat objek rintisan dengan melewati url titik akhir perkhidmatanCurrencyConvertorStub stub = CurrencyConvertorStub baru ("http://www.webservicex.net/CurrencyConvertor.asmx");// ConversionRate adalah kelas yang harus kita gunakan menyebutkan dari dan ke mata wang// Objek ConversionRate akan menjadi parameter untuk operasi convertRateConversionRateversiRate = baru ConversionRate ();penukaranRate.setFromCurrency (Currency.USD);versiRate.setToCurrency (Currency.INR);// Buat objek ConversionRateResponse, yang akan digunakan untuk menangkap respons// panggil perkhidmatan convertRate menggunakan objek rintisanConversionRateResponseversiRateResponse = stub.conversionRate (versiRate);// Kita dapat menggunakan objekversiRateResponse untuk mendapatkan respons Perkhidmatan ConversionRateSystem.out.println ("Kadar Penukaran dari INR ke USD: +versiRateResponse.getConversionRateResult ());} tangkapan (Pengecualian e) {e.printStackTrace ();}}}

BAHAGIAN 2) Cara Menguji Menggunakan Perkhidmatan Web SoapUI

Di SoapUI

  1. Pergi ke Fail> Projek Sabun Baru
  2. Masukkan Nama projek dan lokasi URI WSDL
  3. Klik OK
  1. Luaskan permintaan pertama dan klik dua kali pada 'Request1'. Ia akan memaparkan permintaan SOAP dalam format XML.
  2. Masukkan Dari Mata Wang dan Ke Mata Wang
  3. Klik pada butang hantar
  4. Respons XML akan dipaparkan sebelah kanan.

Seperti yang anda simpulkan, penggunaan alat Uji WebService seperti SoapUI mempercepat Usaha Pengujian Automasi Perkhidmatan Web anda. Oleh itu, SoapUi akan menjadi tumpuan pembelajaran kami dalam tutorial yang berjaya.

Ringkasan

  • Aplikasi Perisian berkomunikasi dan bertukar data antara satu sama lain menggunakan WebService
  • SOAP dan REST adalah 2 protokol popular untuk membuat WebService
  • SOAP menyokong pertukaran data berasaskan XML
  • REST menyokong XML, Json atau pertukaran data dalam URL mudah untuk Uji API WebServices.
  • WSDL adalah bahasa berasaskan XML yang akan digunakan untuk menggambarkan perkhidmatan yang ditawarkan oleh perkhidmatan web. SOAP ditakrifkan menggunakan WSDL.
  • Untuk menguji WebService anda boleh
    • Buat kod anda sendiri. Contohnya gunakan API Axis2 untuk Java
    • Gunakan alat Automasi Uji WebService seperti SoapUI
  • Alat Automasi seperti SoapUI akan memulakan usaha Pengujian Automasi Perkhidmatan Web anda, memerlukan usaha pengekodan yang lebih sedikit dibandingkan dengan membuat kod anda sendiri menggunakan API Axis2

Soalan Lazim

Apakah Perbezaan antara WebService dan WebAPI?

Perkhidmatan Web

API Web

  • Ditentukan oleh W3C, semua komunikasi & pertukaran data berdasarkan XML
  • Komunikasi API API & pertukaran data boleh berupa XML, JSON atau data biasa
  • Ia telah menetapkan standard - WSDL
  • Tiada standard yang ditentukan
  • Anda tidak dapat memampatkan data tetapi anda dapat memampatkan permintaan HTML
  • Anda boleh memampatkan data
  • Contoh: Sabun
  • Contoh: REST

Ketahui lebih lanjut mengenai Ujian API Web

Tutorial Pengujian Perkhidmatan Web ini dimungkinkan dengan sumbangan Encik Narender Reddy Nukala