Урок за тестване на уеб услуги: Как да тествам? Учете с пример
Какво е WebService?
Уеб услугите са механизмът или средството за комуникация, чрез което две приложения/машини ще обменят данни, независимо от тяхната подчертана архитектура и технология.
Какво е тестване на уеб услуги?
Тестване на уеб услуги е вид софтуерно тестване, което валидира уеб услугите. Целта на тестването на уеб услуги е да провери функционалността, надеждността, производителността и сигурността на API (интерфейс на приложна програма). Тестването на уеб услугата е подобно на тестването на единици в някои случаи. Можете да тествате уеб услуга ръчно или да създадете свой собствен код за автоматизация или да използвате готов инструмент за автоматизация като Postman.
Защо е необходима WebService?
Като цяло, софтуерните приложения са разработени, за да бъдат използвани от хората, когато човек изпраща заявка до софтуерна услуга, която от своя страна връща отговор в четим от човека формат.
В съвременната ера на технологиите, ако искате да изградите софтуерно приложение, не е нужно да създавате всичко от нулата. Има много налични готови услуги, които можете да включите в приложението си и можете да започнете да предоставяте тези услуги в приложението си.
Например искате да покажете информация за прогнозата за времето, която не е необходимо да събирате, обработвате и визуализирате данните във вашето приложение. Можете да закупите услугите от хора, които вече са утвърдени в обработката и публикуването на такъв вид данни.
Уеб услугите ни позволяват да правим такива реализации.
Като пример разгледайте следната WebService
http://www.webservicex.net/stockquote.asmx?op=GetQuote
Това дава стойност на акциите за една компания.
Да намерим цената на акциите на Google (Символ: GOOG )
Отговорът XML дава цената на акциите.
Тази WebService може да бъде извикана от софтуерно приложение, използващо SOAP или HTTP протокол.
Протоколи за уеб услуги
Уеб услугите могат да бъдат реализирани по различни начини, но следните два са популярните подходи за внедряване.
- SOAP (Прост протокол за достъп до обекти)
- REST (архитектура за прехвърляне на представително състояние)
SOAP
SOAP е стандартен протокол, дефиниран от стандарта W3C за изпращане и получаване на заявки и отговори за уеб услуги.
SOAP използва XML формат за изпращане и получаване на заявката и следователно данните са независими от платформата данни. SOAP съобщенията се обменят между приложенията доставчик и приемащото приложение в рамките на SOAP обвивките.
Тъй като SOAP използва простия http транспортен протокол, неговите съобщения не се блокират от защитните стени.
ПОЧИВКА
REST означава прехвърляне на представително състояние; това е архитектура, която обикновено работи през HTTP. Стилът REST набляга на взаимодействията между клиенти и услуги, които се подобряват чрез ограничен брой операции. REST е алтернатива на SOAP (Simple Object Access Protocol) и вместо да използва XML за заявка, REST използва прост URL в някои случаи. За разлика от SOAP, RESTFUL приложенията използват HTTP вградени заглавки за пренасяне на метаинформация.
Има различни кодове, които REST използва, за да определи дали потребителят има достъп до API или не, като код 200 или 201 показва успешно взаимодействие с тялото на отговора, докато 400 показва лоша заявка или URI на заявката не съответства на API в системата. Всички параметри на заявка за API и параметри на метода могат да бъдат изпратени чрез всеки от тях ПУСНИ or GET променливи.
Rest API поддържа XML и JSON формат за тестване на API на WebServices. Обикновено се предпочита за подвижен и уеб приложения, тъй като прави приложението да работи по-бързо и гладко
wsdl
WSDL (уеб услуги Description Language) е базиран на XML език, който ще се използва за описание на услугите, предлагани от уеб услуга.
WSDL описва всички операции, предлагани от конкретната уеб услуга в XML формат. Той също така определя как услугите могат да бъдат извикани, т.е. каква входна стойност трябва да предоставим и какъв ще бъде форматът на отговора, който ще генерира за всеки вид услуга.
Как да тествам уеб услуга?
За да тествате уеб услуга, можете
- Тествайте ръчно
- Създайте свой собствен код за автоматизация
- Използвайте готов инструмент за автоматизация като SoapUI.
Тестването на автоматизацията на уеб услугите включва следните стъпки –
- Разберете WSDL файла
- Определете операциите, които предоставя конкретна уеб услуга
- Определете формата на XML заявката, която трябва да изпратим
- Определете XML формата на отговора
- Използване на инструмент или писане на код за изпращане на заявка и валидиране на отговора
Да предположим, че искаме да тестваме уеб услуга, която предоставя инструмент за конвертиране на валута. Това ще бъдат текущите обменни курсове между валутите на различните страни. Тази услуга можем да използваме в нашите приложения за конвертиране на стойностите от една валута в друга валута.
Сега нека разгледаме горните стъпки
Стъпки от 1 до 4: Разбиране на WSDL и определяне на операции и XML формати
Валута Convertor WSDL файлът може да се види @ (http://www.webservicex.net/CurrencyConvertor.asmx?wsdl
), който ще даде информация за валутата Convertor методи на уеб услуга, които ще поддържа, параметърът, който трябва да преминем и типът на параметрите... и т.н.
Стъпка 5: Използване на инструмент или писане на код за изпращане на заявка и валидиране на отговора
Има много налични инструменти за тестване на уеб услуга за тестване на SOAP уеб услуга. SoapUI е един от популярните API инструмент което ще ни помогне да тестваме SOAP уеб услуги. Всъщност можете да използвате всеки език за програмиране, който е способен да изпраща XML заявката до приложението на доставчика на уеб услуги през http и може да анализира и валидира XML отговора спрямо очаквания резултат. В този урок за тестване на уеб услуги ще тестваме WebService
- Използването на Java
- Използване на SoapUI
ЧАСТ 1) Тестване на WebService с помощта на API на Apache Axis2 (Java).
Обикновено уеб услугата приема заявката и изпраща отговора в XML формат.
Проектът Apache Axis2 API е a Java API за внедряване, който ще се използва за създаване на уеб услуги както от страната на сървъра (доставчик на услуга), така и от страната на клиента (потребител на услуга).
Axis2 е в състояние да изпраща SOAP съобщения и получава и обработва SOAP съобщенията. Можем да напишем малко Java програма, използваща API за създаване на уеб услугата. Axis2 ще генерира WSDL от Java програма, която ще се използва за съобщаване на услугите, предлагани от уеб услугата. Можем да използваме същата Axis2, за да генерираме Java клас (stub) от WSDL файл, който можем да използваме като клиентска програма за генериране на заявка за уеб услуга, за изпращане на заявката до крайната точка на услугата и за обработка на отговора.
- По принцип ще създадем прост Java програма, в която ще инстанцираме класа мъниче.
- С помощта на мъниче ще извикаме метода на заявката, като предадем цялата необходима информация.
- Програмата Stub ще преобразува тази заявка във формат на XML заявка и ще й изпрати крайната точка на услугата, която ще прочете заявката и ще я обработи и ще изпрати отговора в XML формат.
- XML отговорът ще бъде преобразуван в Java клас по мъниче и върнати към действителната програма.
Нека разгледаме подробно горните стъпки
Стъпка a) Изтеглете axis2 API @ https://axis.apache.org/axis2/Java/core/download.cgi & Задайте променливата на средата 'AXIS2_HOME'
Стъпка b) Създайте папка, за да запазите всички генерирани артефакти
Пример: C:\Axis\Projects\CurrencyConverter
Стъпка c) Отворете командния ред и отидете до структурата на папките, където искате да генерирате артефактите, и изпълнете следната команда, която ще генерира мъничетата
%AXIS2_HOME%\bin\WSDL2Java -uri http://www.webservicex.net/CurrencyConvertor.asmx?wsdl -p org.apache.axis2.currencyconvertor -d adb –s
Стъпка d) След като командата бъде изпълнена успешно, ще видите папката с необходимите файлове.
Стъпка д) В следващата стъпка от този урок за тестване на уеб услуги трябва да създадем клиентската програма, чрез която ще изпратим действителната заявка, използвайки генерираните мъничета. Отворете затъмнението и създайте новото Java проект и изберете папката, която създадохме по-горе.
Стъпка f) Добавете всички буркани, свързани с axis2, към пътя за изграждане на проекта, който ще бъде там в папката lib на папката на софтуера axis2
(например: C:\Axis\axis2-1.6.2\lib)
Стъпка g) Създайте нов Java клас (напр.: Клиент.Java) и инстанциране на обект мъниче. С помощта на обекта stub можем да извикаме всички поддържани методи на конкретната WebService.
Client.Java Program package 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; public class Client { public static void main(Java.lang.String args[]) { try { //Create the stub object by passing the service end point url CurrencyConvertorStub stub = new CurrencyConvertorStub("http://www.webservicex.net/CurrencyConvertor.asmx"); //ConversionRate is the class which we have to use mention the from and to currency //ConversionRate object will be the parameter for the conversionRate operation ConversionRate conversionRate = new ConversionRate(); conversionRate.setFromCurrency(Currency.USD); conversionRate.setToCurrency(Currency.INR); //Create the ConversionRateResponse object, which is going to be used to catch the response //call the conversionRate service using the stub object ConversionRateResponse conversionRateResponse = stub.conversionRate(conversionRate); //We can use the conversionRateResponse object to retrieve the response of the ConversionRate Service System.out.println("Conversion Rate from INR to USD : " + conversionRateResponse.getConversionRateResult()); } catch (Exception e) { e.printStackTrace(); } } }
ЧАСТ 2) Как да тествате с помощта на уеб услугата SoapUI
В SoapUI
- Отидете на File > New Soap Project
- Въведете името на проекта и местоположението на WSDL URI
- натиснете ОК
- Разгънете първата заявка и щракнете два пъти върху „Заявка1“. Той ще покаже SOAP заявката в XML формат.
- Въведете От валута и До валута
- Щракнете върху бутона за изпращане
- От дясната страна ще се покаже XML отговор.
Както можете да заключите, използването на инструменти за тестване на WebService като SoapUI ускорява вашите усилия за тестване на автоматизацията на уеб услугите. Следователно SoapUi ще бъде фокусът на нашето обучение в следващите уроци.
Oбобщение
- Софтуерните приложения комуникират и обменят данни помежду си с помощта на WebService
- SOAP и REST са 2 популярни протокола за създаване на WebService
- SOAP поддържа XML базиран обмен на данни
- REST поддържа XML, Json или обмен на данни в обикновен URL адрес за тестване на API на WebServices.
- WSDL е базиран на XML език, който ще се използва за описание на услугите, предлагани от уеб услуга. SOAP се дефинира с помощта на WSDL.
-
За да тествате WebService можете
- Създайте свой собствен код. Например използвайте Axis2 API за Java
- Използвайте WebService Test Automation инструменти като SoapUI
- Инструменти за автоматизация като SoapUI ще дадат тласък на вашите усилия за автоматизирано тестване на уеб услуги, ще изискват по-малко усилия за кодиране в сравнение със създаването на ваш собствен код с помощта на Axis2 API
ЧЗВ
Научете повече за Тестване на уеб API
Този урок за тестване на уеб услуги е възможен с приноса на г-н Нарендър Реди Нукала