Урок за тестване на уеб услуги с пример

⚡ Умно обобщение

Тестването на уеб услуги валидира функционалността, надеждността, производителността и сигурността на API, който позволява на приложенията да обменят данни, използвайки SOAP или REST протоколи, WSDL описание и инструменти като... SoapUI или обичай Java код.

  • 🌐 Уеб услуга: Уеб услуга позволява на две приложения да обменят данни по мрежа.
  • 🧪 Какво проверява: Тестването проверява функционалността, надеждността, производителността и сигурността.
  • 📨 SOAP и REST: SOAP използва XML пликове; REST използва прост HTTP и URLs.
  • 📄 WSDL: WSDL е XML файл, описващ операциите, предлагани от SOAP услуга.
  • 🛠️ Инструменти и Code: Тестовете използват инструменти като SoapUI или обичай Java с Apache Axis2.
  • 🤖 AI помощ: Изкуственият интелект генерира API тестове и автоматично валидира отговорите.

Урок за тестване на уеб услуги

Какво е WebService?

Уеб услугите са механизмът или средството за комуникация, чрез което две приложения/машини ще обменят данни, независимо от тяхната подчертана архитектура и технология.

Какво е тестване на уеб услуги?

Тестване на уеб услуги е вид софтуерно тестване, което валидира уеб услугите. Целта на тестването на уеб услуги е да провери функционалността, надеждността, производителността и сигурността на API (интерфейс на приложна програма). Тестването на уеб услугата е подобно на тестването на единици в някои случаи. Можете да тествате уеб услуга ръчно или да създадете свой собствен код за автоматизация или да използвате готов инструмент за автоматизация като Postman.

Защо е необходима WebService?

Като цяло, софтуерните приложения са разработени, за да бъдат използвани от хората, когато човек изпраща заявка до софтуерна услуга, която от своя страна връща отговор в четим от човека формат.

В съвременната ера на технологиите, ако искате да изградите софтуерно приложение, не е нужно да създавате всичко от нулата. Има много налични готови услуги, които можете да включите в приложението си и можете да започнете да предоставяте тези услуги в приложението си.

Например искате да покажете информация за прогнозата за времето, която не е необходимо да събирате, обработвате и визуализирате данните във вашето приложение. Можете да закупите услугите от хора, които вече са утвърдени в обработката и публикуването на такъв вид данни.

Уеб услугите ни позволяват да правим такива реализации.

Като пример разгледайте следната WebService

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

Това дава стойност на акциите за една компания.

Нека намерим цената на акциите за Google (Символ: GOOG)

Тестване на уеб услуги

Отговорът XML дава цената на акциите.

Тестване на уеб услуги

Тази WebService може да бъде извикана от софтуерно приложение, използващо SOAP или HTTP протокол.

Протоколи за уеб услуги

Уеб услугите могат да бъдат реализирани по различни начини, но следните два са популярните подходи за внедряване.

  1. SOAP (Прост протокол за достъп до обекти)
  2. REST (архитектура за прехвърляне на представително състояние)

SOAP

SOAP е стандартен протокол, дефиниран от стандарта W3C за изпращане и получаване на заявки и отговори за уеб услуги.

SOAP използва XML формат за изпращане и получаване на заявката и следователно данните са независими от платформата данни. SOAP съобщенията се обменят между приложенията доставчик и приемащото приложение в рамките на SOAP обвивките.

Тъй като SOAP използва простия http транспортен протокол, неговите съобщения не се блокират от защитните стени.

ПОЧИВКА

REST означава REpresentational State Transfer; това е архитектура, която обикновено работи върху 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 формат. Той също така определя как услугите могат да бъдат извикани, т.е. каква входна стойност трябва да предоставим и какъв ще бъде форматът на отговора, който ще генерира за всеки вид услуга.

Как да тествам уеб услуга?

За да тествате уеб услуга, можете

  1. Тествайте ръчно
  2. Създайте своя собствена автоматизация Code
  3. Използвайте готов инструмент за автоматизация, като например SoapUI.

Тестването на автоматизацията на уеб услугите включва следните стъпки –

  1. Разберете WSDL файла
  2. Определете операциите, които предоставя конкретна уеб услуга
  3. Определете формата на XML заявката, която трябва да изпратим
  4. Определете XML формата на отговора
  5. Използване на инструмент или писане на код за изпращане на заявка и валидиране на отговора

Да предположим, че искаме да тестваме уеб услуга, която предоставя инструмент за конвертиране на валута. Това ще бъдат текущите обменни курсове между валутите на различните страни. Тази услуга можем да използваме в нашите приложения за конвертиране на стойностите от една валута в друга валута.

Сега нека разгледаме горните стъпки

Стъпки от 1 до 4: Разбиране на WSDL и определяне на операции и XML формати

Валута Convertor WSDL файлът може да се види @ (http://www.webservicex.net/CurrencyConvertor.asmx?wsdl), който ще даде информация за валутата Convertor методи на уеб услуга, които ще поддържа, параметърът, който трябва да преминем и типът на параметрите... и т.н.

WSDL и определяне на операции и XML формати

WSDL и определяне на операции и XML формати

Стъпка 5: Използване на инструмент или писане на код за изпращане на заявка и валидиране на отговора

Има много инструменти за тестване на WebService, достъпни за тестване на SOAP уеб услуга. SoapUI е един от популярните API инструмент което ще ни помогне да тестваме SOAP уеб услуги. Всъщност можете да използвате всеки език за програмиране, който е способен да изпраща XML заявката до приложението на доставчика на уеб услуги през http и може да анализира и валидира XML отговора спрямо очаквания резултат. В този урок за тестване на уеб услуги ще тестваме WebService

  1. Използването на Java
  2. Използването на 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 файл, който можем да използваме като клиентска програма за генериране на заявка за уеб услуга, за изпращане на заявката до крайната точка на услугата и за обработка на отговора.

  1. По принцип ще създадем прост Java програма, в която ще инстанцираме класа мъниче.
  2. С помощта на мъниче ще извикаме метода на заявката, като предадем цялата необходима информация.
  3. Програмата Stub ще преобразува тази заявка във формат на XML заявка и ще й изпрати крайната точка на услугата, която ще прочете заявката и ще я обработи и ще изпрати отговора в XML формат.
  4. XML отговорът ще бъде преобразуван в Java клас по мъниче и върнати към действителната програма.

Нека разгледаме подробно горните стъпки

Стъпка a) Изтеглете axis2 API @ https://axis.apache.org/axis2/Java/core/download.cgi & Задайте променливата на средата 'AXIS2_HOME'

Тестване на WebService с помощта на API на Apache Axis2 (Java)

Стъпка 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

Тестване на WebService с помощта на API на Apache Axis2 (Java)

Стъпка d) След като командата бъде изпълнена успешно, ще видите папката с необходимите файлове.

Тестване на WebService с помощта на API на Apache Axis2 (Java)

Стъпка д) В следващата стъпка от този урок за тестване на уеб услуги трябва да създадем клиентската програма, чрез която ще изпратим действителната заявка, използвайки генерираните мъничета. Отворете затъмнението и създайте новото Java проект и изберете папката, която създадохме по-горе.

Тестване на WebService с помощта на API на Apache Axis2 (Java)

Стъпка f) Добавете всички буркани, свързани с axis2, към пътя за изграждане на проекта, който ще бъде там в папката lib на папката на софтуера axis2

(например: C:\Axis\axis2-1.6.2\lib)

Тестване на WebService с помощта на API на Apache Axis2 (Java)

Стъпка g) Създайте нов Java клас (напр.: Клиент.Java) и инстанциране на обект мъниче. С помощта на обекта stub можем да извикаме всички поддържани методи на конкретната WebService.

Тестване на WebService с помощта на API на Apache Axis2 (Java)

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 Уеб сервиз

In SoapUI

  1. Отидете на File > New Soap Project
  2. Въведете името на проекта и местоположението на WSDL URI
  3. натиснете ОК

Тест с помощта SoapUI Уеб сервиз

  1. Разгънете първата заявка и щракнете два пъти върху „Заявка1“. Той ще покаже SOAP заявката в XML формат.
  2. Въведете От валута и До валута
  3. Щракнете върху бутона за изпращане
  4. От дясната страна ще се покаже XML отговор.

Тест с помощта SoapUI Уеб сервиз

Както можете да заключите, използването на инструменти за тестване на уеб услуги като SoapUI ускорява усилията ви за тестване на автоматизирани уеб услуги. Следователно SoapUi ще бъде фокусът на нашето обучение в следващите уроци.

Въпроси и Отговори

Уеб услугата е дефинирана от W3C и обменя данни, използвайки XML със стандарт WSDL, например SOAP. Уеб API е по-широк похват: той може да обменя XML, JSON или обикновени данни без фиксиран стандарт, например REST, и може да компресира данни.

Често срещани инструменти за тестване на уеб услуги и API включват SoapUI намлява ReadyAPI за SOAP и REST, Postman за ПОЧИВКА, Apache JMeter за тестване на натоварване и REST Assured за базирани на код Java тестове. SoapUI се използва широко за SOAP услуги.

Модулното тестване проверява една функция изолирано, обикновено от разработчика. API тестването проверява поведението на услугата чрез нейния интерфейс, включително заявки, отговори, кодове за състояние и данни, в различни компоненти и често без изходен код.

Изкуственият интелект чете WSDL или OpenAPI спецификация, за да генерира заявки и твърдения, създава реалистични тестови данни и маркира аномални отговори. Самовъзстановяването чрез машинно обучение осигурява успешно преминаване на тестовете при промяна на полезните товари, което намалява ръчната поддръжка на тестовете на уеб услугите.

Да. Изкуственият интелект може да анализира дефиницията на услуга, да генерира валидни и невалидни полезни товари на заявките, да предсказва гранични условия и да предлага твърдения. Това автоматизирано генериране подобрява покритието и намалява ръчното усилие за писане на SOAP или REST тестове.

Обобщете тази публикация с: