Командалардын же тышкы өнөктөштөрдүн ортосунда API менен иштөөдө суроо-талаптардын жана жооптордун форматы алдын ала айтууга болот. Контракттык тестирлөө эки тарап тең - кардар менен сервер - алмашуу түзүмүнө макул экенин жана жаңыртууларда аны бузбай турганын текшерүүгө мүмкүндүк берет.
Биз автоматтык түрдө API документтерге же керектөөчүнүн күтүүлөрүнө ылайык текшерет контракттык тесттерди киргизүү - өндүрүшкө чейин.
API келишим деген эмне
Контракт - бул төмөнкүлөрдү аныктаган келишим:- Кайсы талаалар суроо-талапты жана жоопту камтыйт
- Кандай маалымат форматтары алгылыктуу
- кандай статустардын коддору кайтарылып берилет
- кандай милдеттүү параметрлер талап кылынат
Келишимди бузуу = кардар же кызмат тарапта потенциалдуу ката.
Кантип иштейт
| Тарап | Эмне сыналып жатат |
|---|---|
| Провайдер (API) | API жооп түзүмү боюнча кардардын күтүүлөрүнө жооп бериши керек |
| Кардар (керектөөчү) | Кардар белгилүү бир схеманы күтөт - тест сакталганын текшерет |
| Bidirectional | Эки тараптуу тестирлөө: кардар да, сервер да келишим менен макул |
Колдонулган куралдар: Pact, Spring Cloud Contract, Dredd, Postman Contract Tests.
Контракттык тестирлөөнүн артыкчылыктары
Деплойго чейинки карама-каршылыктарды аныктоо
Кардарларды бузган "тынч" өзгөрүүлөрдөн коргоо
API версияларын коопсуз жаңыртуу
Иштеп чыгуу командаларынын ортосундагы ишенимди жогорулатуу
Контракттардагы өзгөрүүлөрдүн тарыхын каттоо
Биз кантип ишке ашырабыз
OpenAPI/Pact форматындагы контракттарды аныктоо
Ар бир коммитте автоматтык тестирлөө менен CI интеграциясы
Visualization жана контракттарды өзгөртүү тарыхы
Шаршемби бөлүштүрүү (staging/production)
Тышкы интеграторлор үчүн контракттарды жарыялоо
Кайда өзгөчө маанилүү
Жоопкерчилиги бөлүнгөн микросервистер
Тышкы B2B интеграциясы бар платформалар
бир нече көз карандысыз команда API боюнча иштөө
Ката жол берилбеген критикалык системалар (финансы, мамлекеттик кызмат көрсөтүүлөр)
Контракттык тестирлөө - бул сервер менен кардардын ортосундагы ишенимдүү көпүрө. Биз эч кандай жаңылануу интеграцияны бузбай, күтүлбөгөн мүчүлүштүктөрдү алып келбеген процессти курууга жардам беребиз.