Ukuhlolwa Kwemithwalo Ye-API Ngesikhonyane

Ukuhlolwa Kwemithwalo Ye-API Ngesikhonyane

Ukuhlolwa Komthwalo We-API Ngesikhonyane: Isingeniso

Cishe uke waba kulesi simo ngaphambilini: ubhala ikhodi eyenza okuthile, isiphetho njengesibonelo. Uhlola iphoyinti lakho lokugcina usebenzisa i-Postman noma i-Insomnia, futhi yonke into isebenza kahle. Udlulisela indawo yokugcina kumthuthukisi oseceleni kweklayenti, obese esebenzisa i- API bese usebenzisa uhlelo lokusebenza. Kodwa-ke, i-API iyehluleka lapho abasebenzisi basebenzisa uhlelo lokusebenza.

Lesi kungaba isimo esicasulayo kakhulu okumelwe ube kuso, ingasaphathwa eyobizayo ebhizinisini. Kungakho abathuthukisi be-software benza izivivinyo ezihlukahlukene ezinhlelweni zesofthiwe ukuze baqinisekise ukuthi basebenza ngendlela elindelekile. Ama-API awahlukile. Ngaphambi kokuthunyelwa, kufanele wenze okungenani izivivinyo zokusebenza nokuhlolwa kokuphepha.

Ukuhlolwa kokusebenza kungahlelwa ngokuhlolwa kokusebenza nokuhlolwa komthwalo. Ukuhlolwa kokusebenza yilokho ojwayele ukusebenzisela i-Postman noma i-Insomnia. Baqinisekisa ukuthi i-API yakho isebenza ngendlela oyilindele. Ukuhlolwa komthwalo, ngakolunye uhlangothi, kukhathazeke kakhulu ngokuthi i-API yakho isebenza kanjani ngokusetshenziswa komhlaba wangempela kanye nomthwalo ophezulu, futhi yilokho lesi sihloko esimayelana. Ake sibheke izivivinyo zokulayisha ngemininingwane eyengeziwe.

Kuyini ukuhlolwa komthwalo we-API?

Ukuhlolwa komthwalo we-API kuwuhlobo lokuhlola olusetshenziswa onjiniyela ukuze balingise umthwalo ovamile kanye nokuphakama okuphezulu kumaphoyinti okugcina. Lolu hlobo lokuhlola luvumela onjiniyela ukuthi bahlole ukusebenza komhlaba wangempela kwe-API ngaphambi kokuthi isetshenziswe. Ibasiza ukuthi bakhombe umthamo omkhulu wokusebenza wesistimu, izingqinamba uma zikhona, kanye nokwehla kokusebenza. Ukuhlolwa komthwalo we-API kuvamise ukwenziwa ngokudala abasebenzisi ababonakalayo bese kubasebenzisela ukuhlola ukusebenza kwe-API kanyekanye. 

Ukuhlolwa komthwalo we-API kukala amamethrikhi afana nesikhathi sokuphendula, abasebenzisi ngesikhathi esisodwa, amanani okusebenza, amaleveli okusetshenziswa kwensiza, Isikhathi Esimaphakathi Phakathi Kokwehluleka(MTBF), Isikhathi Esimaphakathi Sokwehluleka(MTTF), njalo njalo. Wonke lawa mamethrikhi angasetshenziswa ukucacisa ukuthi i-API yenza kahle kangakanani.

Izinhlobo Zokuhlolwa Komthwalo

Kunezinhlobo ezimbalwa zokuhlola umthwalo, ngayinye inezimo zayo zokusebenzisa. Ake sibheke ezinye zazo.

Ukuhlola Ukulayisha: Lolu uhlobo oluyisisekelo lokuhlolwa komthwalo. Isetshenziselwa ukuhlola ukusebenza kwesistimu(kulokhu, i-API) ngaphansi komthwalo ovamile kanye nomthwalo ophezulu olindelekile.

Ukuhlolwa Kwengcindezi: Lokhu kusetshenziselwa ukuhlola ukusebenza kwesistimu ngaphansi komthwalo osindayo kakhulu. Umgomo walokhu kuhlola ukubona ukuthi ingabe isistimu iyalulama ngemva kokwehluleka, nokuthi kuthatha isikhathi esingakanani ukwenza kanjalo. Umthwalo uvame ukugawulwa kancane uze udlule amandla esistimu.

Ukuhlolwa kwe-Spike: Lokhu kufana nokuhlola ingcindezi, ngaphandle kokuthi umthwalo osindayo usetshenziswa ngokuzumayo, ngokuphambene nokuwukhuphula kancane kancane. Lolu hlobo lokuhlola lumelela ukuthi yini eyenzekayo uma kuba khona ukwenyuka okungazelelwe enanini lakho elimaphakathi labasebenzisi noma izivakashi, noma uma kunokuhlasela kwe-DDOS kusistimu yakho.

Ukuhlolwa kwe-Soak: Lokhu kuhlola akufani nezinye ezingenhla. Ibeka isistimu yakho ngaphansi kuka-80% (noma cishe) womthwalo ovamile futhi iyishiye isebenza isikhathi eside, yithi amahora angu-12 kuya kwangu-14. Lolu hlobo lokuhlola lunquma ukuthi isistimu ithembeke kangakanani ngokuhamba kwesikhathi.

Layisha Ukuhlola Ama-API Akho Ngesikhonyane

Onjiniyela banokufinyelela ezinhlobonhlobo zezinketho zokuhlola ukulayisha ama-API wabo. Amanye amathuluzi okuhlola umthwalo avamile i-Gatling, i-JMeter, ne-Locust. Sizogxila kakhulu kuNtethe kulesi sihloko.

I-Locust iyithuluzi lokuhlola umthwalo womthombo ovulekile we-python elisetshenziswa izinkampani eziphezulu njenge-Google, i-Microsoft, ne-Riot Games ukuhlola ama-API azo. Kulesi sihloko, sizobonisa indlela yokulayisha ukuhlolwa kwe-API. 

Kulesi sifundo, ngizobe ngidala i-API elula ngeFlask. Ungalandela nami noma uvele udale i-API yakho ngeNode, nanoma yiluphi uhlaka okhululekile ngalo.

Izidingo

Python 3

Ukusetha nokufaka

Okokuqala, udinga ukusetha indawo ebonakalayo ku-PC yakho ukuze ungaphazamisi indawo yakho yePython yomhlaba wonke. Ukuze wenze lokho, sebenzisa imiyalo elandelayo. Qaphela ukuthi le miyalo isebenza kutheminali yeWindows.

$ mkdir iphrojekthi

$ cd /d indlela\to\project

$ python -m venv venv

$ venv\Scripts\activate

 

Okokuqala, sakha a project umkhombandlela. Sabe sesishintsha inkomba yethu yamanje yaba project. Sibe sesidala futhi savula indawo ebonakalayo yePython ngaphakathi kwalolo hlu lwemibhalo. 

Manje, sizoqhubeka nokufaka I-Flask(sizoyisebenzisa ukuze senze izindawo zokugcina zihlolwe) futhi Isikhonyane uqobo. 

 

Ukufaka i-Flask, sebenzisa. Qiniseka ukuthi uku project lapho udale khona indawo ebonakalayo.

$ pip ukufaka flask

 

Ukuze ufake i-Locust, sebenzisa

$ pip faka isikhonyane

 

Uma lokho sekwenziwe, bhala imiyalo elandelayo. Qiniseka ukuthi ungaphakathi kwakho project lwemibhalo lapho wenza lokhu.

$ copy nul __init__.py

Uhlelo lokusebenza lwe-$ mkdir

$ copy nul app\app.py

$ copy nul app\__init__.py

 

Le miyalo idala amanye amafayela esizowasebenzisa ukuze senze izindawo zethu zokugcina sisebenzisa i-Flask. Ungakwazi futhi ukudala lawa mafayela usebenzisa isihloli sefayela lakho ngendlela. Kodwa yini ejabulisayo kulokho? Uma usukwenzile lokho, kopishela kukhodi engezansi uhlelo lokusebenza.py

kusuka ku-flask yokungenisa i-Flask, i-jsonify, isicelo

uhlelo lokusebenza = I-Flask(__igama__)

car_models = [

  {'umkhiqizo': 'Tesla', 'imodeli': 'Imodeli S'}

]

 

plane_models = [

  {'brand': 'Boeing', 'model': '747'}

]

 

@app.route('/cars')

def get_cars():

  buyisela i-jsonify(car_models)

@app.route('/planes')

def get_planes():

  buyisela i-jsonify(plane_models)

uma __igama__ =='__main__':

    app.run(debug=Iqiniso)  

 

Ikhodi engenhla iqukethe indlela thola_izimoto esetshenziswa ukuthola uhlu lwezinhlobo zezimoto namamodeli azo, kanye thola_izindiza esetshenziswa ukuthola uhlu lwezinhlobo zezindiza namamodeli azo. Ukuze silayishe ukuhlola lesi siphetho, sidinga ukusebenzisa i-app.py. Ukuze wenze lokho sebenzisa umyalo ongezansi.

$ python indlela\to\app.py

Lapho usuqedile lokho, kufanele ubone okuthile okufana nalokhu:

Ukuhlola Ukulayisha Kwe-API 1

Uma ukopisha i-URL kutheminali bese uthayipha izimoto or izindiza ngemuva kwe /, kufanele ukwazi ukubona idatha lapho. Nokho, inhloso yethu ukuhlola iphoyinti lokugcina ngentethe, hhayi ngesiphequluli. Ngakho masenze lokho. Qalisa umyalo olandelayo empandeni yefayela lakho project isiqondisi.

 

$ copy nul locust_test.py

 

Lokhu kudala ifayela le-'locust_test.py' empandeni yakho project umkhombandlela. Uma usukwenzile lokho, vula ifayela bese unamathisela ikhodi engezansi. Sizoyichaza maduze nje.

 

isikhathi sokungenisa

kusuka ekungeniseni izinkumbi HttpUser, umsebenzi, phakathi

 

class UserBehaviour(HttpUser):

    wait_time = phakathi (5, 10)

 

    @umsebenzi

    def get_cars(self):

        self.client.get('/cars')

    

    @umsebenzi

    def get_planes(self):

        self.client.get('/planes')

 

Lesi isibonelo esiyisisekelo sokusebenzisa i-Locust ukulayisha ukuhlola i-API. Okokuqala, sakha ikilasi Ukuziphatha komsebenzisi, enganikezwa noma yiliphi igama elifanele kodwa okufanele inwebe HttpUser. HttpUser yikilasi elinakekela ukuqinisa abasebenzisi be-virtual abaningi ukuze benze imisebenzi esiyicacisayo ku Ukuziphatha komsebenzisi class. 

Umsebenzi ucaciswa ngokuhlobisa indlela nge @umsebenzi umhlobisi. Siphinde sibe nomsebenzi othiwa phakathi() lokho kusivumela ukuthi sicacise ibanga lamasekhondi esizolilinda ngaphambi kokwenza umsebenzi olandelayo. Ungabona ukuthi sinikeze ibanga lamasekhondi angu-5 kuya kwangu-10 kulokho kukhodi yethu. 

Ukuze usebenzise ikhodi, qiniseka ukuthi usesendaweni yakho ebonakalayo. Uma leyo oyidalile isetshenziswa iseva esebenzela i-API, vula i-terminal entsha, shintsha uhla lwakho lwemibhalo lube ngeyakho project lwemibhalo, futhi wenze kusebenze indawo ebonakalayo oyidalile. Ungathola umyalo wokwenza kusebenze indawo ebonakalayo ngenhla. Manje, faka umyalo ongezansi kutheminali yakho.

 

$ isikhonyane -f locust_test.py

 

Kufanele ubone into enjengale:

Ukuhlola Ukulayisha Kwe-API 2

Ngokuzenzakalelayo, isixhumi esibonakalayo sewebhu yesikhonyane sitholakala kokuthi http://localhost/8089. Uma uvakashela iwebhusayithi, kufanele ubone isixhumi esibonakalayo esifana nalesi:

Ukuhlola Ukulayisha Kwe-API 3

Kusuka kusixhumi esibonakalayo, singacacisa inani labasebenzisi, izinga lokuzala (abasebenzisi abadalwe ngomzuzwana), kanye Nosingathi. Ungathola ikheli lomsingathi wakho ngokubheka itheminali lapho iseva isebenza khona. Esimweni sethu, ku-port 5000. Uma uchofoza Qala ukuhamba, uzokwethulwa nesixhumi esibonakalayo esingezansi.

Ukuhlola Ukulayisha Kwe-API 4

Lokhu kukubonisa amamethrikhi ahlukahlukene awusizo njengenombolo yezicelo ezihlulekile, isikhathi esimaphakathi sesicelo, isikhathi esincane sesicelo, izicelo ngomzuzwana, njalo njalo. Uma usunelisekile ngalokho okubonayo, ungachofoza inkinobho yokumisa. 


Ngaphandle kwe Izibalo tab, kukhona a Amashadi ithebhu ekhombisa okwengeziwe Imininingwane ngesimo segrafu, njengesithombe esingezansi.

Kukhona inani lezicelo ngegrafu yesibili, igrafu yesikhathi sokuphendula, futhi inombolo yabasebenzisi begrafu, bonke bakha itulo ngokumelene nesikhathi. Usebenzisa amagrafu, ungakwazi ukunquma ukuthi bangaki abasebenzisi abamukelekayo ngesikhathi esinqunyiwe sokuphendula, noma ungakwazi ukubuka amashadi akho ngesikhathi esiqhubekayo sokuphendula naphezu kwenani elikhulayo labasebenzisi, neminye imininingwane efana naleyo. Uma ufuna ukwabelana ngalezi izibalo nomunye umuntu, ungalanda umbiko ku- Landa idatha ithebhu.

Ukuphetha...

Ukuhlola i-API yakho kuwumsebenzi obalulekile kunqubo yakho yokuthuthukisa, ngakho qiniseka ukuthi ifakiwe emjikelezweni wakho wokuklama. Ngendlela, ungakwazi futhi ukwenza ezinye izinhlobo zokuhlola umthwalo ngokushintsha amanani enani labasebenzisi nezinga lokuzala. 

Uma ufuna ukwenza uhlolo lwe-spike, cacisa inani elikhulu( yithi 2000) ngenani labasebenzisi, bese kuba nenani elikhulu ngokulinganayo lesilinganiso sakho sokuzala(500 ngokwesibonelo). Lokhu kusho ukuthi kumasekhondi angu-4, uzobe udale bonke abasebenzisi abangu-2000 futhi bafinyelele ekugcineni kwakho. Ukuhlolwa kokucindezeleka kuzofana, kodwa ngenani eliphansi kakhulu lesilinganiso sokuzala. Ukuze uthole konke ongakwenza, hlola Isikhonyane imibhalo