Girdeji:
- Status kody, shema / şertnama, iş düzgüni we negatiw / awtorizasiýa gatlaklarynda emeli intellekt goldawy bilen API synagyny çuňňur geçirmek ukyby
- Mysal jogaplaryndan JSON shemasyny döretmek we diňe görnüşi we hökmany tassyklamasy bilen status kodyna seretmegiň ýalan ynamyndan gaça durmak ukyby
- Sintetiki maglumatlar bilen awtorizasiýa we IDOR ýaly howpsuzlyk ssenarilerini we diňe ygtyýarnamanyň çäginde goranyş maksatlaryny barlamak ukyby
Döwrebap programma üpjünçiliginiň köpüsi biri-biri bilen fonda API arkaly gürleşýär (Programma programma interfeýsi - belli bir şertnama laýyklykda iki bölek programma üpjünçiliginiň gürleşýän interfeýsi). Jübi programmasy sebete zatlar goşsa, serwerdäki API-e haýyş iberýär. API synag, interfeýsine garamazdan bu söhbetdeşligiň dogrudygyny, ygtybarlydygyny we yzygiderliligini barlaýar; UI synagyndan has çalt, has durnukly we çuň. Emeli intellekt (AI) API synagynda örän täsirli: API kesgitlemesinden synaglar döredýär, jogap shemasyny (maglumatlaryň gurluşyny kesgitleýän şertnama) çykarýar, gyradaky ýagdaýlary görkezýär. Againöne ýene-de merkezi duýduryş ulanylýar: AI siziň API-iňiziň hakyky iş düzgünlerini bilenok; diňe "200 gaýdyp gelendigini" tassyklaýan ýüzleý synaglary öndürmäge ýykgyn edýär. Siziň işiňiz, synagyň hakyky şertnamany we iş logikasyny barlaýandygyna göz ýetirmek.
Bu bölümde, “Postman”, “REST Assured” we shema tassyklamasy ýaly çemeleşmeler bilen AI bilen goldanýan, çuňňur API synaglaryny nädip gurmalydygyny öwrenersiňiz.
API synagynyň gatlaklary
API synagyny birnäçe çuňlukda gözden geçiriň, AI her gatlakda başgaça kömek edýär:
1. Status kody we esasy jogap. Talap garaşylýan HTTP ýagdaý kody (üstünlik üçin 200/201, ýalňyşlyk üçin 400/401/404) yzyna gaýtaryp berermi? Bu iň ýüzleý gatlak; AI aňsatlyk bilen öndürýär, ýöne ýeke özi ýalan ynam berýär.
2. Shema / şertnamany tassyklamak. Jogap gurluşy şertnama laýyk gelýärmi - garaşylýan meýdanlar barmy, görnüşleri dogrymy, zerur meýdanlar ýokmy? AI JSON shemasyny - JSON resminamasynyň gurluşyny kesgitleýän standart - nusga jogaplaryndan döredip biler we synaglar bu shema garşy tassyklap biler. Bu, meýdan esasly tassyklamany el bilen ýazmakdan has ygtybarly.
3. Işewürlik düzgünini barlamak. Asyl bahasy şu ýerde: "1000 TL sargyt üçin arzanladyş meýdançasy 100 bolmaly", "ýatyrylan sargyt gaýtadan ýatyrylyp bilinmez". AI diňe düzgünleri berseňiz barlar; Eger bermeseň, bökjek.
4. ativearamaz we howpsuzlyk. Nädogry belgi üçin 401, başga biriniň maglumatlaryna girmek üçin 403, erbet beden üçin 400 arassalaň. Awtorizasiýa synaglary (ulanyjynyň diňe öz maglumatlaryna girip biljekdigini barlamak) API howpsuzlygynyň ýüregi bolup, goranyş maksatly edilýär.
Maslahat: AI-e "diňe bir status koduny däl, eýsem jogap shemasyny we şol iş düzgünlerini hem tassyklamaly" diýmezden synag soramaň. Otherwiseogsam, "200 gaýdyp geldi, geçdi" diýlen synaglar galar, ýöne API-iň bozulan maglumatlary yzyna gaýtarmaýandygyny duýmaň.
Gowşak haýyş / Güýçli haýyş
Gowşak: "Bu API üçin synag ýazyň."
Güýçli: "POST / sargyt nokady üçin REST Assured (Java) synaglaryny ýazyň. Ylalaşyk: önümId we mukdar bedende hökmanydyr; 201 we {orderId, jemi, arzanladyş, status} üstünlik bilen yzyna gaýtarylýar. Işewürlik düzgünleri: 1000 TL-den 10% arzanladyş; düzgün, (4) her bir tassyklamany aç-açan iş düzgüni bilen baglanyşdyryň;
Güýçli teklip şertnama, iş düzgünleri, howpsuzlyk ssenarileri we shemany tassyklamaga garaşýar.
Şertnama synagy: toparlaryň arasynda bölünişigiň öňüni almak
Mikroservis arhitekturasynda (programmanyň biri-birine garaşsyz we API bilen gürleşýän kiçi hyzmatlara bölünen gurluşy), hyzmatyň jogap görnüşini üýtgetmek, oňa bagly beýleki hyzmatlary ýuwaşlyk bilen bozýar. Şertnama synagy - üpjün ediji hyzmaty bilen sarp ediş hyzmatynyň arasyndaky API şertnamasynyň iki tarapdanam bozulmaýandygyny tassyklaýan synag - şeýle arakesmeleri ir alýar. Bu pikir şu: sarp ediji öndürijiden garaşýan jogap görnüşini "şertnama" hökmünde kesgitleýär; Her üýtgeşme bilen öndüriji henizem şu şertnama laýyk gelýändigini barlaýar. Şonuň üçin meýdanyň ady ýa-da görnüşi üýtgese, sarp ediji turba geçmezden ozal habar berýär.
AI bu kontekstde iki meseläni çaltlaşdyrýar: bar bolan API jogabyndan sarp edijiniň garaşyşyny görkezýän şertnama düzmek we üýtgeşmäniň haýsy şertnamanyň bozulyp biljekdigini öňünden bellemek. Emma şertnamanyň özi işewürlik karary: haýsy ugurlaryň hakykatdanam möhümdigini, haýsy üýtgeşmeleriň yza gabat geljekdigini bozýar - köne sarp edijiler işlemegini dowam etdirýärler. AI şertnamany ýazýar; Muny tassyklaýan sen.
Maslahat: Bir meýdany pozmak ýa-da API görnüşini üýtgetmek hemişe diýen ýaly bozulan üýtgeşiklikdir. Täze meýdanlary goşmak adatça howpsuzdyr. AI üýtgemäni “döwmek ýa-da howpsuz” diýip klassifikasiýa etmek, goýberilmezden ozal howpsuzlyk barlagyny üpjün edýär.
Poçta ýa-da kod esaslymy?
ölçegi
Poçta / Newman
REST kepillendirilen / kod (Java, C #, JS)
Okuw
Aňsat, wizual
Kod bilimi talap edilýär
Wersiýa gözegçilik
Kolleksiýa JSON
Göni kodda
çylşyrymly logika
Çäkli (JS skriptleri)
Doly programmirleme güýji
CI / CD integrasiýasy
Newman bilen
Gurluşyna gönüden-göni bagly
Shemany barlamak
Synag skriptleri bilen
Kitaphana bilen güýçli
Topar masştaby
kiçi / orta
uly, ýetişen
AI ikisi üçin kod döredýär; Haýsyny isleýändigiňizi aýdyňlaşdyryň.
Göçürip boljak dört şablon
1) Şertnama esasly API synagy:
Siziň roluňyz: ýokary derejeli API synag inereneri. [Gural / dil] bilen aşakdaky ahyrky nokatlar üçin synaglar ýazyň: [usul + ýol]. Şertnama: [zerur meýdanlar, üstünlik kody, jogap gurluşy] .Biznes düzgünleri: [düzgünler]. Synag gatlaklary:
2) Mysal jogaplaryndan shema döretmek:
Aşakdaky API nusgasyndan JSON shemasyny dörediň. Gerekli meýdanlary, görnüşleri, format çäklendirmelerini görkeziň (senesi, e-poçta, san aralygy). Soňra bu shema garşy tassyklaýan synag mysalyny beriň. Mysal üçin jogap: [JSON goýuň]
3) ativearamaz we ygtyýarnama ssenarileri:
Ahyrky nokat üçin negatiw we howpsuzlyk synag ýagdaýlaryny dörediň. Öz içine alýar: ýitirilen / talap edilýän meýdan, nädogry görnüş, gaty uly baha, nädogry / möhleti geçen belgi, rugsatsyz çeşmä girmek (IDOR - şahsyýetini üýtgetmek arkaly başga biriniň ýazgysyna girmek), nyrh çäkleri. Her ssenariýa üçin garaşylýan ýagdaý koduny we säwlik organyny görkeziň. Bellik: ygtyýarly diňe öz API-de synagdan geçiriler.
4) Pseudo-ynam gözegçiligi:
Bu API synagyny barlaň. Serwer dogry status koduny, ýöne FALSEbody / maglumatlary yzyna gaýtarsa, bu synag tutularmy? Notok bolsa, shema we iş düzgünini tassyklamagy goşuň. Synag: [pasta synagy]
üç sany kiçi halat
1-nji hadysa - shemany tassyklamagyň güýji. Bir topar diňe AI bilen öndüren synaglarynda ýagdaý koduny barlaýardy. Bir wersiýada, API umumy meýdany ýalňyşlyk bilen yzyna gaýtaryp başlady ("1200"); synaglar ýaşyl reňkde galdy, sebäbi henizem 200 gaýdyp gelýärdi. Jübi programmasy ýykyldy. "Mysal jogaplaryndan shema nesli" şablony bilen görnüş tassyklamasyny goşandan soň, şol bir ýalňyşlyk derrew tutuldy.
2-nji hadysa - ygtyýarlyk boşlugy (IDOR). Hünärmen, AI tarapyndan döredilen “otrisatel we awtorizasiýa ssenarileriniň” arasynda IDOR synagyny geçirdi: Ulanyjy belgisi bilen B ulanyjynyň sargyt ID-sini sorady. Bu goranyş synagy, maglumatlaryň göni ýaýramagyndan öň ýapyldy.
3-nji hadysa - Işewürlik düzgüni. AI arzanladyş nokady üçin 8 synag döretdi; hemmesi 200 barlaýardy, hiç kim arzanladyş mukdaryny barlamady. Hünärmen, iş düzgünlerini haýal etmän goşdy we köpeltdi. Täze synaglar arzanladyşyň 1000 TL çäginde nädogry hasaplanandygyny ýüze çykardy (arzanladyş 999-a hem ulanyldy). Şertnama gözegçilik etmek ýeterlik däl; Işewürlik düzgünine gözegçilik etmek hökmanydyr.
Adaty ýalňyşlyklar
- Diňe status koduna seredýärin. "200 gaýdyp geldi we geçdi" diýmek; zaýalanan bedeni görmezlik (ýalan-ynam).
- Shema tassyklamasyndan aýlanyp geçmek. Meýdanyň görnüşlerini we borçlaryny barlamazlyk; görnüş üýtgeşmeleri sessiz geçýär.
- Iş düzgünlerini bermezden synag talap etmek. AI düzgünleri bilenok; diňe tehniki gözegçiligi öndürýär.
- Negativearamaz we hukuk ssenarilerini ýatdan çykarmak. Howpsuzlyk gowşaklyklary (IDOR, rugsatsyz giriş) diňe şu synaglar arkaly tutulýar.
- Hakyky / önümçilik belliklerini we maglumatlary ulanmak. Synag üçin ýörite media we sintetiki maglumatlary ulanyň; Hakyky açarlary ulaga dakmaň.
- Rugsat berilmedik howpsuzlyk synagy. Diňe öz API-de we rugsady bilen awtorizasiýa synaglaryny işlediň.
Gysgaça
API synagy, interfeýsine garamazdan programma üpjünçiliginiň böleklerini çalt we çuňňur tassyklaýar. AI; şertnama synaglary, JSON shemasyny we nusga jogapdan negatiw / howpsuzlyk ssenarilerini döretmekde örän täsirli. Onlyöne diňe status koduny barlaýan ýüzleý synaglar pseudo-ynam döredýär. Dört gatlagyň hemmesini talap ediň: status kody, shemany tassyklamak, iş düzgüni, negatiw we awtorizasiýa. Iş düzgünlerini we şertnamany haýal etmän goýuň; Howpsuzlyk synaglaryny sintetiki maglumatlar bilen we diňe ygtyýarnama bilen ýerine ýetiriň.
Programma meselesi
Öz taslamaňyzdan API ahyrky nokadyny saýlaň. AI “şertnama esasly API synagy” şablony bilen dört gatly synag ýazmagyny haýyş ediň. Soňra "nusga jogabyndan shema döretmek" bilen görnüşi / ýerine ýetiriş tassyklamasyny goşuň we "pseudo-trust barlagy" ulanyň. Synag gurşawyňyzda iň bolmanda bir IDOR / awtorizasiýa ssenarisini işlediň. Islän şertnamanyň ýa-da iş düzgüniniň bozulandygyny habar beriň; Eger tapyp bilmeýän bolsaňyz, synagdan geçendigini subut etmek üçin bilkastlaýyn zyňylan jogaplara garşy synag geçiriň.
gözegçilik sanawy
- [] Synagyň dört gatyny ýapdym (mysal, shema, iş düzgüni, negatiw / awtorizasiýa).
- [] AI-e şertnama we iş düzgünlerini aç-açan berdim.
- [] Jogap shemasyny (meýdan, görnüş, hökmany) tassyklaýan synaglary gurdum.
- [] Iň bolmanda bir awtorizasiýa / IDOR ssenarisini goramaga synanyşdym.
- [] Hakyky belgi / maglumatlaryň ýerine synag gurşawyny we sintetiki maglumatlary ulandym.
- [] Her synagyň bozulan jogaby alýandygyny "galp ynam bilen barlamak" bilen subut etdim.