Birlik 5 / 11

API sinovlarini avtomatlashtirish: AI bilan shartnoma, sxema va yakuniy tekshirish

Daromadlar:

  • Status kodi, sxema/shartnoma, biznes qoidasi va salbiy/avtorizatsiya qatlamlarida sun'iy intellekt yordamida API testini chuqur o'tkazish qobiliyati
  • Namunaviy javobdan JSON sxemasini yaratish va faqat turi va imperativ tekshiruvi bilan status kodiga qarashning psevdo-ishonchlaridan qochish qobiliyati
  • Sintetik ma'lumotlar bilan avtorizatsiya va IDOR kabi xavfsizlik stsenariylarini va faqat avtorizatsiya doirasida mudofaa maqsadlarida sinab ko'rish imkoniyati

Ko'pgina zamonaviy dasturiy ta'minot API (Application Programming Interface - ikkita dasturiy ta'minot ma'lum bir shartnoma bo'yicha gaplashadigan interfeys) orqali fonda bir-biri bilan gaplashadi. Mobil ilova savatga narsalarni qo'shganda, u serverdagi API-ga so'rov yuboradi. API testi interfeysdan qat'iy nazar ushbu suhbatning to'g'ri, xavfsiz va izchil ekanligini tekshiradi; Bu UI testidan ko'ra tezroq, barqarorroq va chuqurroqdir. Sun'iy intellekt (AI) API testida juda samarali: u API ta'rifidan testlarni ishlab chiqaradi, javob sxemasini (ma'lumotlar strukturasini belgilaydigan shartnoma) chiqaradi, cheklov holatlarini ro'yxatga oladi. Ammo yana bir bor markaziy ogohlantirish amal qiladi: AI sizning API-ning haqiqiy biznes qoidalarini bilmaydi; faqat "200 ta qaytib kelgan" ni tasdiqlovchi yuzaki testlarni ishlab chiqarishga intiladi. Sizning vazifangiz testning haqiqiy shartnoma va biznes mantig'ini tekshirishiga ishonch hosil qilishdir.

Ushbu bo'limda siz Postman, REST Assured va sxemani tekshirish kabi yondashuvlar bilan sun'iy intellekt tomonidan qo'llab-quvvatlanadigan chuqur API testlarini o'rnatishni o'rganasiz.

API sinovlari qatlamlari

AI har bir qatlamda turlicha yordam berishi bilan bir necha chuqurlikda API testini ko'rib chiqing:

1. Holat kodi va asosiy javob. So'rov kutilgan HTTP holat kodini qaytaradimi (muvaffaqiyat uchun 200/201, xato uchun 400/401/404)? Bu eng yuzaki qatlam; AI oson ishlab chiqaradi, lekin yolg'iz ishonchni beradi.

2. Sxema/shartnomani tekshirish. Javob tuzilishi shartnomaga mos keladimi - kutilayotgan maydonlar mavjudmi, ularning turlari to'g'rimi, talab qilinadigan maydonlar etishmayaptimi? AI namunali javobdan JSON sxemasini - JSON hujjatining tuzilishini belgilaydigan standartni yaratishi mumkin va testlar ushbu sxema bo'yicha tasdiqlanishi mumkin. Bu maydonga asoslangan tasdiqni qo'lda yozishdan ko'ra ancha ishonchli.

3. Biznes qoidalarini tekshirish. Haqiqiy qiymat bu erda: "1000 TL buyurtma uchun chegirma maydoni 100 bo'lishi kerak", "bekor qilingan buyurtmani qayta bekor qilib bo'lmaydi". AI buni faqat qoidalarni berganingizda tekshiradi; Agar bermasangiz, u sakrab tushadi.

4. Salbiy va xavfsizlik. Yaroqsiz token uchun 401, boshqa birovning maʼlumotlariga kirish uchun 403, yomon tana uchun 400 raqamini tozalang. Avtorizatsiya testlari (foydalanuvchi faqat o'z ma'lumotlariga kirishi mumkinligini tekshirish) API xavfsizligining yuragi bo'lib, mudofaa maqsadlarida amalga oshiriladi.

Maslahat: AIga "nafaqat holat kodini, balki javob sxemasini va ushbu biznes qoidalarini ham tasdiqlashni" aytmasdan test talab qilmang. Aks holda, sizda "200 ta qaytarildi, o'tdi" degan testlar qoladi, lekin API buzilgan ma'lumotlarni qaytarayotganini sezmaysiz.

Zaif taklif / Kuchli taklif

Zaif: "Ushbu API uchun testlarni yozing."
Kuchli: "POST /buyurtma so'nggi nuqtasi uchun REST Assured (Java) testlarini yozing. Kelishuv: mahsulot identifikatori va miqdori tanada majburiydir; 201 va {orderId, jami, chegirma, status} muvaffaqiyatga erishilganda qaytariladi. Biznes qoidalari: 1000 TL dan ortiq 10% chegirma; agar=0 bo'lsa; 400; agar miqdori40 ga teng bo'lsa; boshqa foydalanuvchining buyurtmasini ko'rish testlari: (1) holat kodi, (2) javob JSON sxemasini tekshirish, (3) chegirmali biznes qoidasi, (4) har bir tasdiqni faqat 200/201 bilan bog'lash;

Kuchli taklif shartnomani, biznes qoidalarini, xavfsizlik stsenariylarini va sxemani tekshirishni kutadi.

Shartnoma sinovi: jamoalar o'rtasidagi ajralishlarning oldini olish

Mikroservis arxitekturalarida (ilova bir-biridan mustaqil bo'lgan va API bilan gaplashadigan kichik xizmatlarga bo'lingan tuzilma) xizmatning javob formatini o'zgartirish unga ulangan boshqa xizmatlarni jimgina buzadi. Shartnoma sinovi - provayder xizmati va iste'molchi xizmati o'rtasidagi API shartnomasi har ikki tomondan ham buzilmaganligini tasdiqlovchi test - bunday tanaffuslarni erta ushlaydi. G‘oya shunday: iste’molchi ishlab chiqaruvchidan kutayotgan javob shaklini “shartnoma” sifatida belgilaydi; Har bir o'zgarish bilan ishlab chiqaruvchi hali ham ushbu shartnomaga muvofiqligini tekshiradi. Shunday qilib, maydonning nomi yoki turi o'zgarganda, iste'molchi quvur liniyasini qulashdan oldin xabardor qiladi.

AI bu kontekstda ikkita vazifani tezlashtiradi: mavjud API javobidan iste'molchi kutishlarini aks ettiruvchi shartnoma loyihasini ishlab chiqish va shartnomaning qaysi bandini o'zgartirish buzilishi mumkinligini oldindan belgilash. Ammo shartnomaning o'zi biznes qaroridir: ekspert qaysi sohalar haqiqatan ham muhim ekanligini aniqlaydi, qaysi o'zgarishlar orqaga qarab muvofiqlikni buzadi - eski iste'molchilar ishlashda davom etadilar. AI shartnomani yozadi; Siz buni ma'qullagan odamsiz.

Maslahat: APIda maydonni oʻchirish yoki maydon turini oʻzgartirish deyarli har doim oʻzgarish boʻladi. Yangi maydonlarni qo'shish odatda xavfsizdir. AI o'zgarishlarni "buzilish yoki xavfsiz" deb tasniflashi, chop etishdan oldin tezkor xavfsizlik tekshiruvini ta'minlaydi.

Pochtachi yoki kodga asoslanganmi?

mezon

Pochtachi / Nyuman

REST Assured / kod (Java, C#, JS)

O'rganish

Oson, vizual

Kod bilimi talab qilinadi

Versiya nazorati

JSON to'plami

To'g'ridan-to'g'ri manba kodida

murakkab mantiq

Cheklangan (JS skriptlari)

To'liq dasturlash kuchi

CI/CD integratsiyasi

Nyuman bilan

To'g'ridan-to'g'ri qurilishga bog'liq

Sxemani tekshirish

Sinov skriptlari bilan

Kutubxona bilan kuchli

Jamoa miqyosi

kichik / o'rta

katta, etuk

AI ikkalasi uchun kod ishlab chiqaradi; Qaysi birini xohlayotganingizni aniq ayting.

To'rt nusxa ko'chirish shablonlari

1) Shartnomaga asoslangan API testi:

Rolingiz: API sinov muhandisi. Quyidagi soʻnggi nuqta uchun testlarni [asbob/til] bilan yozing: [usul + yoʻl]. Shartnoma: [kerakli maydonlar, muvaffaqiyat kodi, javob tuzilishi]. Biznes qoidalari: [qoidalar]. Sinov qatlamlari: (1) holat kodi (2) javob sxemasini tekshirish(3) har bir biznes qoidasi (4) salbiy qoidadan foydalaning.

2) Namuna javobidan sxema yaratish:

Quyidagi namunadagi API javobidan JSON sxemasini yarating. Kerakli maydonlarni, turlarni, format cheklovlarini (sana, elektron pochta, raqamlar diapazoni) belgilang. Keyin ushbu sxemani tasdiqlovchi test misolini keltiring. Javob namunasi: [JSON joylashtirish]

3) Salbiy va avtorizatsiya stsenariylari:

Oxirgi nuqta[oxirgi nuqta] uchun salbiy va xavfsizlik test holatlarini yarating. O'z ichiga oladi: etishmayotgan/majburiy maydon, noto'g'ri turdagi, juda katta qiymat, yaroqsiz/muddati o'tgan token, ruxsatsiz manbaga kirish (IDOR — IDni o'zgartirish orqali boshqa birovning yozuviga kirish), tarif chegarasi. Har bir stsenariy uchun kutilgan holat kodi va xato tanasini belgilang. Eslatma: faqat o'zimning API-da sinovdan o'tkaziladi, ruxsat berilgan.

4) Psevdo-ishonch nazorati:

Ushbu API testini tekshiring. Agar server to'g'ri holat kodini, lekin FALSEbody/ma'lumotlarni qaytarsa, bu sinov ushlanadimi? Agar yo'q bo'lsa, sxema va biznes qoidalarini tekshirishni qo'shing. Sinov: [testni joylashtirish]

uchta mini holat

1-holat - Sxemani tekshirish kuchi. Jamoa faqat AI bilan ishlab chiqarilgan testlarda holat kodini tekshirgan. Bitta versiyada API xatolik bilan umumiy maydonni matn sifatida qaytarishni boshladi ("1200"); testlar yashil bo'lib qoldi, chunki u hali ham 200 qaytarayotgan edi. Mobil ilova qulab tushdi. "Namunali javobdan sxema yaratish" shabloniga turni tekshirishni qo'shgandan so'ng, xuddi shu xato darhol aniqlandi.

2-holat - Vakolat bo'shlig'i (IDOR). Mutaxassis AI tomonidan yaratilgan "salbiy va avtorizatsiya stsenariylari" o'rtasida IDOR testini o'tkazdi: U foydalanuvchi B buyurtma identifikatorini A foydalanuvchi tokeni bilan so'radi. API 200 va B ma'lumotlarini qaytardi - bu jiddiy avtorizatsiya zaifligi. Ushbu mudofaa sinovi ma'lumotlar sizib chiqishini jonli efirga chiqishidan oldin yopdi.

3-holat - Biznes qoidalarini chetlab o'tish. AI chegirma so'nggi nuqtasi uchun 8 ta testni yaratdi; hammasi 200 ni tekshirdi, hech kim chegirma miqdorini tasdiqlamadi. Mutaxassis taklifga biznes qoidalarini qo'shib qo'ydi va ularni qayta ishlab chiqardi. Yangi testlar chegirma 1000 TL chegarasida noto'g'ri hisoblanganligini aniqladi (chegirma 999 ga ham qo'llanilgan). Shartnoma nazorati etarli emas; Biznes qoidalarini nazorat qilish shart.

Umumiy xatolar

  • Faqat holat kodiga qarang. "200 qaytdi va o'tdi" deyish; buzilgan tanani ko'rmaslik (yolg'on-ishonch).
  • Sxema tekshiruvini chetlab o'tish. Maydon turlari va majburiyatlarini tekshirmaslik; turdagi o'zgarishlar jimgina o'tadi.
  • Biznes qoidalarini taqdim etmasdan test o'tkazishni so'rash. AI qoidalarni bilmaydi; u faqat texnik nazoratni ishlab chiqaradi.
  • Salbiy va huquqli stsenariylarni unutish. Xavfsizlik zaifliklari (IDOR, ruxsatsiz kirish) faqat ushbu testlar orqali aniqlanadi.
  • Haqiqiy/ishlab chiqarish tokenlari va ma'lumotlaridan foydalanish. Sinov uchun maxsus media va sintetik ma'lumotlardan foydalaning; Avtomobilga haqiqiy kalitlarni yopishtirmang.
  • Ruxsatsiz xavfsizlik sinovlari. Avtorizatsiya testlarini faqat oʻz APIʼda va ruxsati bilan bajaring.

qisqa bayoni; yakunida

API testi interfeysdan qat'i nazar, dasturiy ta'minot qismlarining nutqini tez va chuqur tekshiradi. AI; shartnoma testlari namuna javobidan JSON sxemasi va salbiy/xavfsizlik stsenariylarini yaratishda juda samarali. Ammo faqat holat kodini tekshiradigan yuzaki testlar psevdo-ishonch beradi. Barcha to'rtta qatlamni talab qiling: holat kodi, sxemani tekshirish, biznes qoidasi, salbiy va avtorizatsiya. Ish qoidalari va shartnomani tezda qo'ying; Sintetik ma'lumotlar bilan va faqat avtorizatsiya bilan xavfsizlik testlarini bajaring.

Ilova vazifasi

O'zingizning loyihangizdan API so'nggi nuqtasini tanlang. Sun'iy intellektga "shartnoma asosidagi API testi" shabloniga ega to'rt qavatli testlarni yozing. Keyin "namuna javobidan sxema yaratish" bilan turdagi/majburiy tekshirishni qo'shing va "soxta ishonchni tekshirish" ni qo'llang. O'zingizning sinov muhitingizda kamida bitta IDOR/avtorizatsiya stsenariysini ishga tushiring. Siz aniqlagan har qanday shartnoma yoki biznes qoidalari buzilishi haqida xabar bering; Agar biror narsani topa olmasangiz, uni ushlab qolganini isbotlash uchun ataylab buzilgan javobga qarshi testni o'tkazing.

nazorat ro'yxati

  • [ ] Men testning toʻrtta qatlamini qamrab oldim (holatlar, sxema, biznes qoidasi, salbiy/avtorizatsiya).
  • [ ] Men AIga shartnoma va biznes qoidalarini aniq berdim.
  • [ ] Men javob sxemasini tasdiqlovchi testlarni o'rnatdim (maydon, tur, imperativ).
  • [ ] Men kamida bitta avtorizatsiya/IDOR stsenariysini himoyaviy tarzda sinab ko'rdim.
  • [ ] Haqiqiy token/maʼlumotlar oʻrniga test muhiti va sintetik maʼlumotlardan foydalandim.
  • [ ] Men har bir test buzilgan javobni ushlashini "soxta ishonch tekshiruvi" bilan isbotladim.