API testing: 13

13 заняття:

 

1. SOAP

2. XML

3. WSDL

4. Testing SOAP via SoapUI

5. Testing SOAP via Postman

SOAP (Simple Object Access Protocol) — протокол обміну структурованими повідомленнями в розподілених обчислювальних системах, базується на форматі XML.  Тестування SOAP принципово нічим не відрізняється від роботи з іншими API але для його проведення необхідна підготовка та спеціальні інструменти для тестування.

REST і SOAP - це два стиля передачі даних.


SOAP - це стандартизований протокол, який відправляє повідомлення з використанням таких протоколів, таких як HTTP


На відміну від SOAP, REST - це архітектурний підхід. REST і SOAP не можна порівнювати. REST - це архітектурний стиль. SOAP - це формат обміну повідомленнями.


У SOAP ви використовуєте формат SOAP XML для запитів і відповідей.


У REST такого фіксованого формату немає. Ви можете обмінюватися повідомленнями на основі XML, JSON або будь-якого іншого зручного формату. JSON є найпопулярнішим серед використовуваних форматів.

SOAP-повідомлення(request) – це звичайний XML-документ, що містить такі елементи:

 

  • Конверт (Envelope) – визначає початок та кінець повідомлення. Це обов'язковий елемент.

 

  • Заголовок(Headers) – містить будь-які необов'язкові атрибути, що використовуються при обробці повідомлення, або в проміжній точці, або в кінцевій точці. Це необов'язковий елемент.

 

  • Тіло(Body) – містить дані XML, що містять повідомлення, що надсилається. Це обов'язковий елемент.

 

  • Несправність(Faultcode) – необов'язковий елемент несправності, який надає інформацію про помилки, що виникають під час обробки повідомлення.

<?xml version="1.0" encoding="UTF-8"?> цей рядок називається XML прологом. XML пролог необов'язковий. Але якщо він є, то це має бути перший рядок документа XML. У XML документі можуть бути міжнародні символи, на зразок українських літер, і щоб не виникало помилок необхідно вказати кодування, або зберегти XML файл у форматі UTF-8. UTF-8 — кодування XML документів замовчуванням.

Ось кілька важливих правил для XML:

 

Форматування: Усі XML-документи повинні бути добре сформованими та відповідати базовим синтаксичним правилам. Кожен відкриваючий тег повинен мати відповідний закриваючий тег.



Чутливість до регістру: XML чутливий до регістру; імена елементів та атрибутів повинні бути написані в правильному регістрі у всьому документі.


Правильне вкладення: Елементи повинні бути правильно вкладені, тобто не повинні перекриватися або бути неправильно розташованими в інших елементах.



Спеціальні символи: Особливі символи, такі як &, <, >, ", та ', повинні бути представлені використовуючи спеціальні символи кодування: &amp;, &lt;, &gt;, &quot;, &apos;.



 

Атрибути: Атрибути мають бути завжди вказані в лапках (одинарних або подвійних).

 

<корінь>
    <елемент>Вміст елементу</елемент>
</корінь>
<Елемент>Вміст елементу</Елемент>
<елемент1>
  <елемент2> </елемент1>
   </елемент2>
<елемент атрибут="Значення &amp; спеціальний символ">&lt;Текст&gt;</елемент>
<елемент атрибут="значення">
    Вміст елементу
</елемент>

Ось кілька важливих правил для XML:

 

Унікальні імена елементів: Кожен елемент у XML-документі повинен мати унікальне ім'я.

 

 



Кореневий елемент: XML-документ повинен мати один кореневий елемент, який містить всі інші елементи.

 

<першийЕлемент>...</першийЕлемент>
<другийЕлемент>...</другийЕлемент>
<корінь>
    <піделемент>...</піделемент>
</корінь>

XML Schema Definition — спосіб описання типу XML документу, як правило, визначається шляхом введення обмежень на структуру та зміст документів заданого типу на додаток до базових синтаксичних обмежень самого формату XML. 

 

! опис типів даних та їх обмеження
 

 

<?xml version="1.0" encoding="UTF-8"?>

<shiporder orderid="889923"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="shiporder.xsd">
  <orderperson>John Smith</orderperson>
  <shipto>
    <name>Ola Nordmann</name>
    <address>Langgt 23</address>
    <city>4000 Stavanger</city>
    <country>Norway</country>
  </shipto>
  <item>
    <title>Empire Burlesque</title>
    <note>Special Edition</note>
    <quantity>1</quantity>
    <price>10.90</price>
  </item>
  <item>
    <title>Hide your heart</title>
    <quantity>1</quantity>
    <price>9.90</price>
  </item>
</shiporder>
<?xml version="1.0" encoding="UTF-8" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

<xs:element name="shiporder">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="orderperson" type="xs:string"/>
      <xs:element name="shipto">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="name" type="xs:string"/>
            <xs:element name="address" type="xs:string"/>
            <xs:element name="city" type="xs:string"/>
            <xs:element name="country" type="xs:string"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="item" maxOccurs="unbounded">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="title" type="xs:string"/>
            <xs:element name="note" type="xs:string" minOccurs="0"/>
            <xs:element name="quantity" type="xs:positiveInteger"/>
            <xs:element name="price" type="xs:decimal"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
    <xs:attribute name="orderid" type="xs:string" use="required"/>
  </xs:complexType>
</xs:element>

</xs:schema>

WSDL

Web Services Description Language— мова опису інтерфейсів веб сервісу заснована на XML, що описує функціональність веб сервісу і спосіб доступу до нього. 


В WSDL документі описується про доступні методи (операції) а також опис параметрів для кожного окремого запиту та відповіді.

Made with Slides.com