RIHA (riigi infosüsteemi haldussüsteem)

API-de testimine

Vt ka Testimine.

1. Eeldused API testide käivitamiseks ja loomiseks

RIHA API testide loomisel kasutame Postman rakendust ja käsurealt testide jooksutamiseks Newman rakendust:

Näidete loomisel kasutan kahe rakenduse API teenust:

Girfi lahendus kodeerib andmeid reeglina JSON formaadis, erandina GET päringute puhul aga CGI nimi=urlencoded_väärtus paaridena. RIHA Producer (ja ühtlasi teised CB lahendused) kasutavad x-www-form-urlencoded väärtuspaare.

2. API testide loomine

2.1 Postmani kasutamine: päringute saatmine

GET päring saatmine:

  1. Täpsustada, millisele URL-le soovitakse GET päring teha. Lisada URL Postmani.
  2. (Valikuline) Lisada GET päringu parameetreid Params nupu alt.
  3. Saada päring Send nupuga välja.

POST päringu saatmine:

  1. Täpsustada, millisele URL-le soovitakse POST päring teha. Lisada URL Postmani.
  2. Lisada päringu sisu (body).
  3. Saada päring Send nupuga välja.

2.2 Postmani kasutamine: testide loomine

Testide loogika realiseeritakse Tests sektsioonis - iga päring valideerib ja/või töötleb saadud HTTP vastust Postmanis kirjeldatud testide abil. Postmani testid kirjutatakse Javascriptis. Kõige lihtsamat tüüpi testid valideerivad HTTP vastuskoodi - ehk kas päring õnnestus või mitte:

tests["Väli on lisatud"] = responseCode.code === 200;

Postmani testid võimaldavad kontrollida päringu ajalist kestvust, content-type olemasolu jt sarnaseid parameetreid:

tests["Response time is less than 200ms"] = responseTime < 200;
tests["Content-Type is present"] = responseHeaders.hasOwnProperty("Content-Type");
var expected = "email1@email.na"
tests["Body contains string: " + expected] = responseBody.has(expected);

2.3 Testide eksportimine

Postmani teste saab eksportida JSON failina Settings menüüs Data alampunkti all. Postmani testikomplekte saab mugavalt jagada ka Share funktsiooniga:

3. API testide rakendamine RIA keskkonnas

3.1 Newmani kasutamine

Ubuntu operatsioonisüsteemil peab testide käivitamiseks kasutama käsurea rakendust Newman. Testikomplekti käivitamine Newman’iga käib run käsuga:

$ newman run examples/sample-collection.json;

Lisaks JSON vormingule võtab Newman sisendiks ka URL-is defineeritud testikomplekti:

$ newman run https://www.getpostman.com/collections/631643-f695cab7-6878-eb55-7943-ad88e1ccfd65-JsLv;

Newmani väljundit - s.t raporti vormingut - saab käsurealt parameetriga --reporter seada JSON-i, HTML-i või JUnit/XML vormingusse.

3.2 URL-de parametriseerimine (keskkondade eristamiseks)

Testide käivitamisel on oluline eristada, milliste keskkondade API-sid testid kontrollivad. Postmanis on keskkondade haldamiseks funktsionaalsus Manage Environments, mis annab võimaluse igale keskkonnale määrata suvalise hulga muutujaid, mida saab rakendada testides kui ka mistahes HTTP päringu osas (nt URL).

3.3 Testide integreerimine Jenkinsiga

API testide käivitamiseks läbi Jenkinsi on kolm võimalust:

Mistahes varianti rakendades, tuleb Jenkinsis testide käivitamiseks luua uus ehitamise samm (Build step), mille tüübiks valida Execute shell. Avanenud aknasse lisada käsk newman run .. (kus testid paiknevad). On soovitav testid liita lähtekoodiga ja kasutada Jenkinsi Source Code Management funktsionaalsust, sidumaks lähtekood Jenkinsi töölauaga.

Riigi Infosüsteemi Amet · 2017-2018 · https://github.com/e-gov/RIHA-Index