පළඟැටියන් සමඟ API පැටවීම පරීක්ෂා කිරීම

පළඟැටියන් සමඟ API පැටවීම පරීක්ෂා කිරීම

පළඟැටියන් සමඟ API පැටවීම පරීක්ෂා කිරීම: හැඳින්වීම

ඔබ බොහෝ විට මෙම තත්වයට පෙර සිට ඇත: ඔබ යමක් කරන කේතයක් ලියන්න, උදාහරණයක් ලෙස අවසන් ලක්ෂ්‍යය. ඔබ Postman හෝ Insomnia භාවිතයෙන් ඔබේ අන්ත ලක්ෂ්‍යය පරීක්ෂා කරන අතර සියල්ල හොඳින් ක්‍රියාත්මක වේ. ඔබ අවසාන ලක්ෂ්‍යය සේවාදායකයා-පාර්ශවීය සංවර්ධකයා වෙත ලබා දෙයි, පසුව ඔහු පරිභෝජනය කරයි API සහ යෙදුම යොදවයි. නමුත් පසුව, පරිශීලකයින් යෙදුම භාවිතා කරන විට API අසමත් වේ.

මෙය ව්‍යාපාරයක් සඳහා මිල අධික බව සඳහන් නොකර සිටීම ඉතා කරදරකාරී තත්වයක් විය හැකිය. මෘදුකාංග සංවර්ධකයින් අපේක්ෂා කරන පරිදි ක්‍රියා කිරීම සහතික කිරීම සඳහා මෘදුකාංග පද්ධති පිළිබඳ විවිධ පරීක්ෂණ සිදු කරන්නේ එබැවිනි. API වෙනස් නොවේ. යෙදවීමට පෙර, ඔබ අවම වශයෙන් කාර්ය සාධන පරීක්ෂණ සහ ආරක්ෂක පරීක්ෂණ සිදු කළ යුතුය.

කාර්ය සාධන පරීක්ෂණ ක්‍රියාකාරීත්ව පරීක්ෂණ සහ පැටවීමේ පරීක්ෂණ ලෙස කාණ්ඩගත කළ හැක. ක්‍රියාකාරීත්ව පරීක්ෂණ යනු ඔබ සාමාන්‍යයෙන් තැපැල්කරු හෝ නින්ද නොයාම සඳහා භාවිතා කරයි. ඔබේ API ඔබ අපේක්ෂා කරන පරිදි ක්‍රියා කරන බව ඔවුන් සහතික කරයි. අනෙක් අතට, පූරණ පරීක්ෂණ, සැබෑ ලෝකයේ භාවිතය සහ උපරිම බර සමඟ ඔබේ API ක්‍රියා කරන ආකාරය පිළිබඳව වඩාත් සැලකිලිමත් වන අතර, මෙම ලිපියෙන් අදහස් කරන්නේ එයයි. පැටවීමේ පරීක්ෂණ වඩාත් විස්තරාත්මකව බලමු.

API Load Testing යනු කුමක්ද?

API load testing යනු අවසාන ලක්ෂ්‍ය මත සාමාන්‍ය සහ උපරිම බර අනුකරණය කිරීමට සංවර්ධකයින් භාවිතා කරන පරීක්ෂණ වර්ගයකි. මෙවැනි පරීක්‍ෂණයක් මඟින් API එක යෙදවීමට පෙර එහි සැබෑ ලෝක කාර්ය සාධනය ඇගයීමට සංවර්ධකයින්ට ඉඩ සලසයි. පද්ධතියක උපරිම මෙහෙයුම් ධාරිතාව, බාධක තිබේ නම් සහ කාර්ය සාධනය පිරිහීම හඳුනා ගැනීමට එය ඔවුන්ට උපකාර කරයි. API පැටවුම් පරීක්ෂණ සාමාන්‍යයෙන් සිදු කරනු ලබන්නේ අතථ්‍ය පරිශීලකයන් නිර්මාණය කිරීම සහ පසුව API හි ක්‍රියාකාරීත්වය සමගාමීව පරීක්ෂා කිරීමට ඒවා භාවිතා කිරීමෙනි. 

API භාර පරීක්ෂණ මගින් ප්‍රතිචාර කාලය, සමගාමී පරිශීලකයින්, ප්‍රතිදාන අනුපාත, සම්පත් උපයෝගිතා මට්ටම්, අසමත් වීම අතර මධ්‍යන්‍ය කාලය (MTBF), අසාර්ථක වීමට මධ්‍යන්‍ය වේලාව (MTTF) සහ යනාදී ප්‍රමිතික මනිනු ලැබේ. API කොතරම් හොඳින් ක්‍රියා කරයිද යන්න තීරණය කිරීමට මෙම සියලු ප්‍රමිතික භාවිතා කළ හැක.

බර පරීක්ෂණ වර්ග

බර පරීක්ෂණ වර්ග කිහිපයක් ඇත, ඒ සෑම එකක්ම එහි භාවිත අවස්ථා ඇත. අපි ඒවායින් කිහිපයක් බලමු.

පැටවීම පරීක්ෂා කිරීම: බර පරීක්ෂණයක මූලික ආකාරය මෙයයි. එය සාමාන්‍ය බර සහ අපේක්ෂිත උපරිම භාරය යටතේ පද්ධතියක ක්‍රියාකාරීත්වය (මෙම අවස්ථාවෙහි, API) ඇගයීමට භාවිතා කරයි.

ආතතිය පරීක්ෂා කිරීම: මෙය ඉතා අධික බරක් යටතේ පද්ධතියක කාර්ය සාධනය ඇගයීමට යොදා ගනී. මෙම පරීක්ෂණයේ අරමුණ වන්නේ අසාර්ථක වීමෙන් පසු පද්ධතියක් යථා තත්ත්වයට පත් වන්නේද යන්න සහ එය සිදු කිරීමට කොපමණ කාලයක් ගතවේද යන්නයි. පද්ධතියේ හැකියාවන් ඉක්මවා යන තෙක් බර සාමාන්යයෙන් සෙමින් වැඩි වේ.

ස්පයික් පරීක්ෂාව: මෙය ආතති පරීක්‍ෂණයට මදක් සමාන වේ, අධික බරක් හදිසියේ යෙදෙනවා හැර, එය සෙමින් වැඩි කිරීමට ප්‍රතිවිරුද්ධව. ඔබේ සාමාන්‍ය පරිශීලකයින් හෝ අමුත්තන් සංඛ්‍යාවේ හදිසි වැඩිවීමක් ඇති විට හෝ ඔබේ පද්ධතියට DDOS ප්‍රහාරයක් ඇති වූ විට සිදු වන දේ මෙවැනි පරීක්ෂණයකින් නිරූපණය කෙරේ.

පොඟවා ගැනීම පරීක්ෂා කිරීම: මෙම පරීක්ෂණය ඉහත අනෙක් ඒවාට වඩා වෙනස් ය. එය ඔබේ පද්ධතිය සාමාන්‍ය බරෙන් 80% (හෝ ඊට ආසන්න) යටතේ තබන අතර එය පැය 12 සිට 14 දක්වා දිගු කාලයක් ක්‍රියාත්මක කරයි. මෙම ආකාරයේ පරීක්ෂණය මඟින් පද්ධතියක් කාලයත් සමඟ කොතරම් විශ්වාසදායකද යන්න තීරණය කරයි.

පළඟැටියන් සමඟ ඔබේ API පරීක්ෂා කිරීම පූරණය කරන්න

සංවර්ධකයින්ට ඔවුන්ගේ API පැටවීම පරීක්ෂා කිරීම සඳහා විවිධ විකල්ප වෙත ප්‍රවේශය ඇත. සමහර පොදු බර පරීක්ෂණ මෙවලම් වන්නේ Gatling, JMeter සහ Locust වේ. අපි මෙම ලිපියෙන් පළඟැටියන් ගැන අවධානය යොමු කරමු.

පළඟැටියන් යනු Google, Microsoft, සහ Riot Games වැනි ඉහළ සමාගම් විසින් ඔවුන්ගේ API පරීක්ෂා කිරීමට භාවිතා කරන පයිතන් මත පදනම් වූ විවෘත-මූලාශ්‍ර භාර පරීක්ෂණ මෙවලමකි. මෙම ලිපියෙන් අපි පරීක්ෂණ API පූරණය කරන්නේ කෙසේදැයි පෙන්වමු. 

මෙම නිබන්ධනය සඳහා, මම Flask සමඟ සරල API එකක් නිර්මාණය කරමි. ඔබට මා සමඟ අනුගමනය කළ හැකිය, නැතහොත් නෝඩ් සමඟින් ඔබේ API නිර්මාණය කළ හැකිය, නැතහොත් ඔබට පහසු ඕනෑම රාමුවක්.

අවශ්යතා

Python 3

ස්ථාපනය සහ ස්ථාපනය

පළමුව, ඔබ ඔබේ ගෝලීය පයිතන් පරිසරය අවුල් නොකිරීමට ඔබේ පරිගණකයේ අතථ්‍ය පරිසරයක් සැකසිය යුතුය. ඒ සඳහා පහත විධානයන් ක්‍රියාත්මක කරන්න. මෙම විධාන වින්ඩෝස් ටර්මිනලයකට අදාළ වන බව සලකන්න.

$ mkdir ව්‍යාපෘතිය

$ cd /d මාර්ගය\to\\ව්\uXNUMXdයාපෘතිය

$ python -m venv venv

$ venv\Scripts\සක්රිය කරන්න

 

පළමුව, අපි නිර්මාණය කළේ a ව්යාපෘතිය නාමාවලිය. ඊට පස්සේ අපි අපේ වත්මන් නාමාවලිය වෙනස් කළා ව්යාපෘතිය. අපි පසුව එම නාමාවලිය තුළ පයිතන් සඳහා අතථ්‍ය පරිසරයක් නිර්මාණය කර ක්‍රියාත්මක කළෙමු. 

දැන්, අපි ස්ථාපනය වෙත යන්නෙමු ෆ්ලීක්(පූරණය පරීක්‍ෂා කළ යුතු අන්ත ලක්ෂ්‍ය සෑදීමට අපි එය භාවිතා කරමු) සහ පළඟැටියන් ම ය. 

 

Flask ස්ථාපනය කිරීමට, ධාවනය කරන්න. ඔබ එහි සිටින බවට වග බලා ගන්න ව්යාපෘතිය එහිදී ඔබ අතථ්‍ය පරිසරයක් නිර්මාණය කළේය.

$ pip ස්ථාපනය කුප්පි

 

Locust ස්ථාපනය කිරීමට, ධාවනය කරන්න

$ pip පළඟැටි ස්ථාපනය කරන්න

 

එය සිදු කළ පසු, පහත දැක්වෙන විධානයන් ටයිප් කරන්න. ඔබ ඔබේ තුළ සිටින බවට වග බලා ගන්න ව්යාපෘතිය ඔබ මෙය කරන විට නාමාවලිය.

$ පිටපත් nul __init__.py

$ mkdir යෙදුම

$ nul app\app.py පිටපත් කරන්න

$ nul යෙදුම පිටපත් කරන්න\__init__.py

 

මෙම විධානය මඟින් Flask භාවිතයෙන් අපගේ අන්ත ලක්ෂ්‍ය නිර්මාණය කිරීමට භාවිතා කරන ගොනු කිහිපයක් නිර්මාණය කරයි. ඔබට ඔබේ ගොනු ගවේෂකය භාවිතයෙන් මෙම ගොනු නිර්මාණය කළ හැකිය. ඒත් ඒකෙ තියෙන ආතල් එක මොකක්ද? ඔබ එය කළ පසු, පහත කේතය පිටපත් කරන්න app.py

ප්ලාස්ක් ආනයනයෙන් Flask, jsonify, request

යෙදුම = කුප්පිය (__නම__)

කාර්_මාදිලි = [

  { 'සන්නාමය': 'ටෙස්ලා', 'ආකෘතිය': 'ආදර්ශ S' }

]

 

plane_model = [

  { 'සන්නාමය': 'බෝයිං', 'ආකෘතිය': '747' }

]

 

@app.route('/කාර්')

def get_cars():

  ආපසු jsonify (car_models)

@app.route('/planes')

def get_planes():

  ආපසු jsonify (plane_models)

__name__ == '__ main__' නම්:

    app.run(debug=True)  

 

ඉහත කේතයේ ක්‍රමයක් අඩංගු වේ කාර්_ගන්න මෝටර් රථ වෙළඳ නාම සහ ඒවායේ මාදිලි ලැයිස්තුවක් ලබා ගැනීමට භාවිතා කරයි, සහ ගුවන් යානා_ගන්න ගුවන් යානා වෙළඳ නාම සහ ඒවායේ මාදිලි ලැයිස්තුවක් ලබා ගැනීමට භාවිතා කරයි. අපට මෙම අන්ත ලක්ෂ්‍යය පූරණය කිරීමට, අපි app.py ධාවනය කළ යුතුයි. ඒ සඳහා පහත විධානය ක්‍රියාත්මක කරන්න.

$ python path\to\app.py

ඔබ එය ධාවනය කළ පසු, ඔබ මෙවැනි දෙයක් දැකිය යුතුය:

API පැටවුම් පරීක්ෂාව 1

ටර්මිනල් එකෙන් URL එක කොපි කරලා ටයිප් කරොත් මෝටර් රථ or සැලසුම් / ට පසුව, ඔබට එහි දත්ත බැලීමට හැකි විය යුතුය. කෙසේ වෙතත්, අපගේ ඉලක්කය වන්නේ බ්‍රවුසරයෙන් නොව පළඟැටියන් සමඟ අන්ත ලක්ෂ්‍යය පරීක්ෂා කිරීමයි. ඉතින් අපි ඒක කරමු. ඔබගේ මූලයේ පහත විධානය ක්‍රියාත්මක කරන්න ව්යාපෘතිය නාමාවලිය.

 

$ nul locust_test.py පිටපත් කරන්න

 

මෙය ඔබගේ මූලයේ 'locust_test.py' ගොනුවක් නිර්මාණය කරයි ව්යාපෘතිය නාමාවලිය. ඔබ එය කළ පසු, ගොනුව විවෘත කර පහත කේතයෙහි අලවන්න. අපි එය ඉක්මනින් පැහැදිලි කරන්නෙමු.

 

ආනයන කාලය

පළඟැටියන් ආනයනය HttpUser වෙතින්, කාර්යය, අතර

 

පන්තියේ පරිශීලක හැසිරීම (HttpUser):

    රැඳී සිටීමේ_කාලය = අතර (5, 10)

 

    @කාර්ය

    def get_cars(self):

        self.client.get('/cars')

    

    @කාර්ය

    def get_planes(self):

        self.client.get('/planes')

 

මෙය API එකක් පූරණය කිරීමට පළඟැටියන් භාවිතා කිරීමේ මූලික උදාහරණයකි. පළමුව, අපි පන්තියක් නිර්මාණය කරමු පරිශීලක හැසිරීම, ඕනෑම සුදුසු නමක් දිය හැකි නමුත් දීර්ඝ කළ යුතුය HttpUser. HttpUser අප විසින් නියම කරන ලද කාර්යයන් ඉටු කිරීම සඳහා බහු අතථ්‍ය පරිශීලකයින් ක්ෂණිකව ක්‍රියාත්මක කිරීම ගැන සැලකිලිමත් වන පන්තිය වේ පරිශීලක හැසිරීම පන්තිය. 

කාර්යයක් නියම කරනු ලබන්නේ ක්‍රමයක් සමඟින් අලංකාර කිරීමෙනි @කාර්ය සැරසිලි කරන්නා. අපිට කියල function එකකුත් තියෙනවා අතර() ඊළඟ කාර්යය ක්‍රියාත්මක කිරීමට පෙර රැඳී සිටීමට තත්පර පරාසයක් නියම කිරීමට අපට ඉඩ සලසයි. ඒ සඳහා තත්පර 5 සිට 10 දක්වා පරාසයක් අප විසින් අපගේ කේතය තුළ පවරා ඇති බව ඔබට පෙනෙනු ඇත. 

කේතය ධාවනය කිරීමට, ඔබ තවමත් ඔබේ අතථ්‍ය පරිසරයේ සිටින බවට වග බලා ගන්න. ඔබ නිර්මාණය කළ එක API සේවය කරන සේවාදායකය විසින් භාවිතා කරන්නේ නම්, නව පර්යන්තයක් විවෘත කරන්න, ඔබේ නාමාවලිය ඔබේ වෙත වෙනස් කරන්න ව්යාපෘතිය නාමාවලිය, සහ ඔබ විසින් නිර්මාණය කරන ලද අතථ්‍ය පරිසරය සක්‍රිය කරන්න. ඔබට ඉහත අථත්‍ය පරිසරයක් සක්‍රිය කිරීම සඳහා වන විධානය සොයාගත හැකිය. දැන්, ඔබගේ ටර්මිනලයට පහත විධානය ඇතුල් කරන්න.

 

$ පළඟැටියන් -f locust_test.py

 

ඔබ මේ වගේ දෙයක් දැකිය යුතුයි:

API පැටවුම් පරීක්ෂාව 2

පෙරනිමියෙන්, පළඟැටියාගේ වෙබ් අතුරු මුහුණත http://localhost/8089 හි පිහිටා ඇත. ඔබ වෙබ් අඩවියට පිවිසෙන්නේ නම්, ඔබට මෙවැනි අතුරු මුහුණතක් දැකිය යුතුය:

API පැටවුම් පරීක්ෂාව 3

අතුරුමුහුණතෙන්, අපට පරිශීලකයින් ගණන, ස්පෝන් අනුපාතය (තත්පරයට නිර්මාණය කරන ලද පරිශීලකයින්) සහ සත්කාරක නියම කළ හැකිය. සේවාදායකය ක්‍රියාත්මක වන ටර්මිනලය පරීක්ෂා කිරීමෙන් ඔබට ඔබේ සත්කාරකයේ ලිපිනය ලබා ගත හැකිය. අපගේ නඩුවේදී, එය වරාය 5000 හි ඇත. ඔබ ක්ලික් කළ විට රංචු ගැසීමට පටන් ගන්න, ඔබට පහත අතුරු මුහුණත ඉදිරිපත් කරනු ඇත.

API පැටවුම් පරීක්ෂාව 4

මෙය ඔබට අසාර්ථක ඉල්ලීම් ගණන, ඉල්ලීමක් සඳහා සාමාන්‍ය කාලය, ඉල්ලීමක් සඳහා අවම කාලය, තත්පරයකට ඉල්ලීම් යනාදී විවිධ ප්‍රයෝජනවත් මිනුම් පෙන්වයි. ඔබ දකින දෙයින් ඔබ සෑහීමකට පත් වූ පසු, ඔබට නැවතුම් බොත්තම ක්ලික් කළ හැකිය. 


අමතරව සංඛ්යා ලේඛන ටැබ් එක තියෙනවා ප්රස්ථාර වැඩිපුර පෙන්වන ටැබ් තොරතුරු පහත රූපයේ පරිදි ප්‍රස්ථාරයක ආකාරයෙන්.

ඒ නිසා එය තත්පර ප්‍රස්ථාරයකට මුළු ඉල්ලීම්, ප්‍රතිචාර කාල ප්‍රස්ථාරය, සහ පරිශීලකයින් සංඛ්යාව ප්රස්ථාරය, සියල්ල සැලසුම් කළේ කාලයට එරෙහිව ය. ප්‍රස්ථාර භාවිතයෙන්, ඔබට ස්ථාවර ප්‍රතිචාර කාලයක් සඳහා කොපමණ පරිශීලකයින් සංඛ්‍යාවක් පිළිගත හැකිද යන්න තීරණය කළ හැකිය, නැතහොත් වැඩිවන පරිශීලකයින් සංඛ්‍යාවක් තිබියදීත් ඔබට නියත ප්‍රතිචාර කාලයක් සඳහා ඔබේ ප්‍රස්ථාර නිරීක්ෂණය කළ හැකිය, සහ එවැනි වෙනත් අවබෝධයක්. ඔබට මේවා බෙදා ගැනීමට අවශ්‍ය නම් සංඛ්යාන වෙනත් අයෙකු සමඟ, ඔබට වාර්තාවක් බාගත කළ හැකිය දත්ත බාගන්න ටැබය.

නිගමනය කිරීමට...

ඔබගේ API පූරණය කිරීම ඔබගේ සංවර්ධන ක්‍රියාවලියේ තීරණාත්මක ක්‍රියාකාරකමකි, එබැවින් එය ඔබගේ සැලසුම් චක්‍රය තුළ අන්තර්ගත කර ඇති බවට වග බලා ගන්න. මාර්ගය වන විට, පරිශීලකයින් සංඛ්‍යාව සහ ස්පෝන් අනුපාතය සඳහා අගයන් වෙනස් කිරීමෙන් ඔබට වෙනත් බර පරීක්ෂණ වර්ගද සිදු කළ හැකිය. 

ඔබට ස්පයික් පරීක්ෂණයක් කිරීමට අවශ්‍ය නම්, පරිශීලකයින් සංඛ්‍යාව සඳහා විශාල අගයක් (කියන්න 2000) සඳහන් කරන්න, ඉන්පසු ඔබේ ස්පෝන් අනුපාතය සඳහා සමාන විශාල අගයක් (උදාහරණයක් ලෙස 500). මෙයින් අදහස් කරන්නේ තත්පර 4 කින්, පරිශීලකයින් 2000 ම නිර්මාණය කර ඔබේ අන්ත ලක්ෂ්‍ය වෙත ප්‍රවේශ වීමට ඔබට හැකි වනු ඇති බවයි. ආතති පරීක්ෂණය සමාන වනු ඇත, නමුත් ස්පෝන් අනුපාතය සඳහා වඩා අඩු අගයක් ඇත. ඔබට කළ හැකි සියල්ල සොයා ගැනීමට, පළඟැටියන් පරීක්ෂා කරන්න ලේඛගතකිරීම

TOR වාරණය මඟ හැරීම

TOR සමඟ අන්තර්ජාල වාරණය මඟ හැරීම

TOR හැඳින්වීම සමඟ අන්තර්ජාල වාරණය මඟ හැරීම තොරතුරු වෙත ප්‍රවේශය වැඩි වැඩියෙන් නියාමනය වන ලෝකයක, Tor ජාලය වැනි මෙවලම් තීරණාත්මක වී ඇත.

වැඩිදුර කියවන්න "
Kobold ලිපි: HTML මත පදනම් වූ විද්‍යුත් තැපෑල තතුබෑම් ප්‍රහාර

Kobold ලිපි: HTML මත පදනම් වූ විද්‍යුත් තැපෑල තතුබෑම් ප්‍රහාර

Kobold Letters: HTML මත පදනම් වූ විද්‍යුත් තැපෑල තතුබෑම් ප්‍රහාර 31 මාර්තු 2024 දින, Luta Security විසින් නව නවීන තතුබෑම් දෛශිකයක් වන Kobold Letters වෙත ආලෝකය විහිදුවන ලිපියක් නිකුත් කරන ලදී.

වැඩිදුර කියවන්න "