Gwajin Load na API Tare da Fara

Gwajin Load na API Tare da Fara

Gwajin Load na API Tare da Fara: Gabatarwa

Wataƙila kun kasance cikin wannan yanayin a baya: kuna rubuta lambar da ke yin wani abu, ƙarshen misali. Kuna gwada ƙarshen ƙarshenku ta amfani da Postman ko rashin barci, kuma komai yana aiki lafiya. Kuna wuce ƙarshen ƙarshen zuwa abokin haɓaka-gefen abokin ciniki, wanda sannan ya cinye API da tura aikace-aikacen. Amma sai, API ɗin ya gaza lokacin da masu amfani ke amfani da app.

Wannan na iya zama yanayi mai ban haushi sosai don kasancewa a ciki, ba tare da ma'anar tsada ga kasuwanci ba. Shi ya sa masu haɓaka software ke gudanar da gwaje-gwaje iri-iri akan tsarin software don tabbatar da sun yi yadda ake tsammani. APIs ba su bambanta ba. Kafin turawa, yakamata kayi aƙalla gwajin aiki da gwajin tsaro.

Ana iya haɗa gwaje-gwajen aiki zuwa gwaje-gwajen aiki da gwaje-gwajen kaya. Gwajin aiki shine abin da kuke yawan amfani da Postman ko rashin barci don. Suna tabbatar da cewa API ɗinku yana aiki kamar yadda kuke tsammani. Gwaje-gwajen lodi, a gefe guda, sun fi damuwa da yadda API ɗinku ke aiki tare da amfani na zahiri da babban nauyi, kuma shine abin da wannan labarin ke game da shi. Bari mu kalli gwaje-gwajen lodi daki-daki.

Menene Gwajin Load na API?

Gwajin lodin API wani nau'in gwaji ne na masu haɓakawa da suke amfani da su don kwaikwayi na yau da kullun da babban nauyi akan wuraren ƙarshe. Irin wannan gwajin yana ba masu haɓaka damar kimanta aikin ainihin duniyar API kafin a tura shi. Yana taimaka musu gano matsakaicin ƙarfin aiki na tsarin, kwalabe idan akwai, da lalacewar aiki. Yawancin gwaje-gwajen lodin API ana yin su ta hanyar ƙirƙirar masu amfani da ƙirƙira sannan amfani da su don gwada ayyukan API a lokaci guda. 

Gwajin lodin API yana auna ma'auni kamar lokacin amsawa, masu amfani na lokaci guda, ƙimar kayan aiki, matakan amfani da albarkatu, Ma'anar Lokaci Tsakanin gazawa(MTBF), Ma'anar Lokaci Don Faduwa(MTTF), da sauransu. Ana iya amfani da duk waɗannan ma'aunin don tantance yadda API ɗin ke aiki.

Nau'in Gwajin Load

Akwai nau'ikan gwajin lodi da yawa, kowanne yana da abubuwan amfaninsa. Bari mu kalli wasu daga cikinsu.

Gwajin lodi: Wannan shine ainihin nau'in gwajin lodi. Ana amfani da shi don kimanta aikin tsarin (a cikin wannan yanayin, API) ƙarƙashin kaya na yau da kullun da babban nauyin da ake tsammanin.

Gwajin damuwa: Ana amfani da wannan don kimanta aikin tsarin da ke ƙarƙashin nauyi mai nauyi. Manufar wannan gwajin ita ce ganin ko tsarin ya murmure bayan gazawar, da kuma tsawon lokacin da za a ɗauka don yin hakan. Yawancin lokaci ana ɗaukar kaya a hankali har sai ya wuce ƙarfin tsarin.

Gwajin Kari: Wannan kadan yayi kama da gwajin danniya, sai dai ana sanya kaya mai nauyi ba zato ba tsammani, sabanin a hankali tada shi. Irin wannan gwajin yana wakiltar abin da ke faruwa lokacin da aka sami karuwa kwatsam a cikin matsakaicin adadin masu amfani ko baƙi, ko lokacin da aka sami harin DDOS akan tsarin ku.

Gwajin jiƙa: Wannan gwajin ya bambanta da sauran na sama. Yana sanya tsarin ku ƙarƙashin 80% (ko game da shi) na al'ada lodi kuma ya bar shi yana aiki na tsawon lokaci, a ce 12 zuwa 14 hours. Irin wannan gwajin yana ƙayyade yadda ingantaccen tsarin ke kan lokaci.

Load Gwajin API ɗinku Tare da Fara

Masu haɓakawa suna samun dama ga zaɓuɓɓuka iri-iri don gwada lodin APIs ɗin su. Wasu kayan aikin gwaji na yau da kullun sune Gatling, JMeter, da Locust. Za mu mai da hankali kan Locust a cikin wannan labarin.

Locust kayan aikin gwaji ne na tushen tushen tushen Python wanda manyan kamfanoni kamar Google, Microsoft, da Wasannin Riot ke amfani da su don gwada APIs. A cikin wannan labarin, za mu nuna yadda ake loda gwajin API. 

Don wannan koyawa, zan ƙirƙiri API mai sauƙi tare da Flask. Kuna iya bi tare da ni ko kawai ƙirƙirar API ɗin ku tare da Node, ko kowane tsarin da kuka gamsu da shi.

bukatun

Python 3

Saita & Shigarwa

Da farko, kuna buƙatar saita yanayin kama-da-wane akan PC ɗinku don kar ku lalata yanayin Python ɗinku na duniya. Don yin haka, gudanar da umarni masu zuwa. Lura cewa waɗannan umarni sun shafi tashar Windows.

$ mkdir aikin

$ cd /d hanyar\zuwa aikin

$ python -m wutan lantarki

$ venv\Scripts\ kunna

 

Na farko, mun ƙirƙira a aikin directory. Sa'an nan kuma mun canza kundin adireshi na yanzu zuwa aikin. Sannan mun ƙirƙira kuma mun kunna yanayin kama-da-wane don Python a cikin waccan jagorar. 

Yanzu, za mu ci gaba zuwa installing Flask(za mu yi amfani da shi don ƙirƙirar ƙarshen abubuwan da za a gwada gwadawa) da Ciyawa kanta. 

 

Don shigar da Flask, gudu. Tabbatar cewa kuna cikin aikin inda kuka ƙirƙiri yanayin kama-da-wane.

$ pip shigar flask

 

Don shigar da Locust, gudu

$ pip shigar fara

 

Da zarar an yi haka, rubuta umarni masu zuwa. Tabbatar cewa kuna cikin ku aikin directory lokacin da kuke yin haka.

$ kwafi nul __init__.py

$ mkdir app

$ kwafi nul app\app.py

$ kwafi nul app\__init__.py

 

Wannan umarnin yana ƙirƙirar wasu fayiloli waɗanda za mu yi amfani da su don ƙirƙirar wuraren ƙarshen mu ta amfani da Flask. Hakanan zaka iya ƙirƙirar waɗannan fayilolin ta amfani da mai binciken fayil ɗin ku ta hanya. Amma menene abin farin ciki a cikin wannan? Da zarar kun yi haka, kwafi lambar da ke ƙasa zuwa ciki app.py

daga shigo da flask Flask, jsonify, request

app = Flask (__name__)

mota_model = [

  {'alama': 'Tesla', 'samfurin': 'Model S'}

]

 

jirgin_model = [

  {'alama': 'Boeing', 'samfurin': '747'}

]

 

@app.route('/motoci')

def get_cars():

  dawo jsonify(model_model)

@app.route('/jirgin sama')

def get_planes():

  dawo jsonify(plane_models)

idan __name__ == '__main__':

    app.run (debug=Gaskiya)  

 

Lambar da ke sama ta ƙunshi hanya samun_motoci ana amfani da su don samun jerin sunayen motoci da samfuran su, da samun_jirgin sama aka yi amfani da su don samun jerin samfuran jirgin sama da samfuran su. Domin mu gwada gwajin wannan ƙarshen, muna buƙatar gudanar da app.py. Don yin haka, gudanar da umarnin da ke ƙasa.

hanyar $ python zuwa app.py

Da zarar ka gudu wancan, ya kamata ka ga wani abu kamar haka:

Gwajin Load na API 1

Idan kun kwafi URL ɗin daga tashar kuma buga cars or jiragen sama bayan da /, ya kamata ka iya ganin bayanai a can. Koyaya, burinmu shine mu gwada ƙarshen ƙarshen da fara, ba tare da mai lilo ba. Don haka mu yi haka. Gudun umarni mai zuwa a cikin tushen naku aikin directory.

 

$ kwafi nul locust_test.py

 

Wannan yana ƙirƙirar fayil ɗin 'locust_test.py' a cikin tushen ku aikin directory. Da zarar kun yi haka, buɗe fayil ɗin ku liƙa a cikin lambar da ke ƙasa. Za mu yi bayaninsa nan ba da jimawa ba.

 

shigo da lokaci

daga shigo da farar HttpUser, ɗawainiya, tsakanin

 

Halin Mai Amfani (HttpUser):

    wait_time = tsakanin (5, 10)

 

    @aiki

    def get_cars(kai):

        self.client.get('/motoci')

    

    @aiki

    def get_planes(kai):

        self.client.get('/jirgin sama')

 

Wannan babban misali ne na amfani da Locust don loda gwajin API. Na farko, muna ƙirƙirar aji Halin mai amfani, wanda za a iya ba da kowane suna da ya dace amma dole ne a tsawanta HttpUser. HttpUser shine ajin da ke kula da nan take masu amfani da dama don aiwatar da ayyukan da muka ayyana a cikin su Halin mai amfani aji. 

An ƙayyade ɗawainiya ta hanyar ƙawata hanya tare da @aiki kayan ado. Muna kuma da aikin da ake kira tsakanin() wanda ke ba mu damar ƙayyade kewayon daƙiƙa don jira kafin aiwatar da aiki na gaba. Kuna iya ganin cewa mun sanya kewayon daƙiƙa 5 zuwa 10 don hakan a cikin lambar mu. 

Don gudanar da lambar, tabbatar cewa har yanzu kuna cikin mahallin kama-da-wane na ku. Idan uwar garken API ɗin ke amfani da wanda kuka ƙirƙira, buɗe sabon tasha, canza kundin adireshi zuwa naku. aikin directory, kuma kunna yanayin kama-da-wane da kuka ƙirƙira. Kuna iya nemo umarni don kunna yanayin kama-da-wane a sama. Yanzu, shigar da umarnin da ke ƙasa a cikin tashar ku.

 

$ fara -f locust_test.py

 

Ya kamata ku ga wani abu kamar haka:

Gwajin Load na API 2

Ta hanyar tsoho, haɗin yanar gizon fara yana samuwa a http://localhost/8089. Idan kun ziyarci gidan yanar gizon, ya kamata ku ga abin dubawa kamar haka:

Gwajin Load na API 3

Daga mahaɗin, za mu iya ƙididdige adadin masu amfani, ƙimar spawn (masu amfani da aka ƙirƙira a sakan daya), da Mai watsa shiri. Kuna iya samun adireshin mai masaukin ku ta hanyar duba tashar inda uwar garken ke aiki. A cikin yanayinmu, yana a tashar jiragen ruwa 5000. Lokacin da kuka danna Fara tururuwa, za ku ji a gabatar da ke dubawa a kasa.

Gwajin Load na API 4

Wannan yana nuna muku ma'auni masu amfani daban-daban kamar adadin buƙatun da suka gaza, matsakaicin lokacin buƙata, mafi ƙarancin lokacin buƙata, buƙatun a sakan daya, da sauransu. Da zarar kun gamsu da abin da kuke gani, zaku iya danna maɓallin tsayawa. 


Baya ga statistics tab, akwai a Charts shafin da ke nuna ƙarin bayanai a cikin sigar jadawali, kamar hoton da ke ƙasa.

Akwai jimlar buƙatun kowane jadawali na biyu, jadawalin lokacin amsawa, da kuma adadin masu amfani jadawali, duk an yi makirci akan lokaci. Yin amfani da jadawali, zaku iya tantance adadin masu amfani da aka karɓa don ƙayyadaddun lokacin amsawa, ko kuna iya lura da sigogin ku don lokacin amsa akai-akai duk da karuwar yawan masu amfani, da sauran fahimta irin wannan. Idan kuna son raba waɗannan stats tare da wani, zaku iya sauke rahoto daga Zazzage Data tab.

Don Kammala...

Load Gwajin API ɗinku aiki ne mai mahimmanci a cikin tsarin haɓaka ku, don haka tabbatar an haɗa shi a cikin tsarin ƙirar ku. Af, zaku iya aiwatar da wasu nau'ikan gwajin lodi ta hanyar canza ƙimar adadin masu amfani da ƙimar spawn. 

Idan kuna son yin gwajin karu, saka babbar ƙima (a ce 2000) don adadin masu amfani, sannan kuma daidai da girman ƙimar ƙimar ku (misali 500). Wannan yana nufin cewa a cikin daƙiƙa 4, zaku sami duk masu amfani da 2000 da aka ƙirƙira da samun dama ga wuraren ƙarshenku. Gwajin damuwa zai kasance iri ɗaya, amma tare da ƙarancin ƙima don ƙimar spawn. Don gano duk abin da za ku iya yi, duba Fara takardun