ආයුබෝවන් සියල්ලටම. අපි සෙමෙන් සෙවණැලි වලින් මතුවෙමින් අපගේ නිෂ්පාදනය පිළිබඳ ලිපි මාලාව දිගටම කරගෙන යමු. අනතුරුව
ස්ථාපනය
අපි සාමාන්යයෙන් පටන් ගනිමු. යෙදුම ලබා ගත හැකි අතර ඇත්ත වශයෙන්ම වේදිකා තුනකින් පරීක්ෂා කර ඇත - Linux, Windows, MacOS. ඔබ කැමති OS සඳහා ස්ථාපකය බාගත කළ හැකිය
පර්යේෂණාත්මක දර්ශනය
අපි අපගේ පරීක්ෂණ විෂය ලෙස පහත සම්මත අවස්ථාව තෝරා ගත්තෙමු:
- පුරනය වන්න: පරිශීලක - පරිපාලක, මුරපදය - මුරපදය
- නව ප්රවේශයක් එක් කරන්න
- වාර්තාව නිවැරදිව එකතු කර ඇත්දැයි පරීක්ෂා කර බලමු
අපි පරීක්ෂා කරන්නෙමු
ව්යාපෘතියක් නිර්මාණය කිරීම සහ අවසරයකින් තොරව ආයතනයක් නිර්මාණය කිරීමට උත්සාහ කිරීම
පළමුව, අපි නව ව්යාපෘතියක් නිර්මාණය කරමු (ගොනුව->නව ව්යාපෘතියක්) ඔබ පළමු වරට යෙදුම දියත් කරන්නේ නම්, නව ව්යාපෘතියක් ස්වයංක්රීයව විවෘත වේ. පළමුව, නව වාර්තාවක් සෑදීමට ඉල්ලීමක් කිරීමට උත්සාහ කරමු (වාර්තා නිර්මාණය කිරීම අවසරයකින් තොරව තිබේ නම්). ව්යාපෘති නෝඩ් සන්දර්භය මෙනුවෙන් අයිතම තෝරන්න නෝඩ් එකතු කරන්න -> ඉල්ලීම පියවර. නෝඩ් නම සකසන්න create-post. එහි ප්රතිඵලයක් වශයෙන්, ගස තුළ නව නෝඩයක් සාදනු ලබන අතර මෙම නෝඩය සඳහා ටැබ් එකක් විවෘත වේ. පහත ඉල්ලීම් පරාමිතීන් සකස් කරමු:
- ඉල්ලීම් වර්ගය: POST
- Url:
https://testmace-quick-start.herokuapp.com/posts - ඉල්ලීම් ශරීරය: අගය සහිත json
{"title": "New testmace quick start post"}
ඔබ සියල්ල නිවැරදිව කළේ නම්, අතුරු මුහුණත මේ ආකාරයෙන් පෙනෙනු ඇත:
කෙසේ වෙතත්, අපි ඉල්ලීම ඉටු කිරීමට උත්සාහ කරන්නේ නම්, සේවාදායකය 401 කේතයක් ලබා දෙන අතර අවසරයකින් තොරව අපට මෙම සේවාදායකයේ කිසිවක් නොලැබෙනු ඇත. හොඳයි, පොදුවේ, අපේක්ෂා කළ පරිදි).
අවසර ඉල්ලීමක් එකතු කිරීම
දැනටමත් පවසා ඇති පරිදි, අපට POST අන්ත ලක්ෂ්යයක් ඇත /login
, එය json පෝරමයේ ඉල්ලීම් ශරීරයක් ලෙස ගනී: {"username": "<username>", "password": "<password>"}
කොහෙද username
и password
(නැවතත්, ඉහත හඳුන්වාදීමේ ඡේදයෙන්) අර්ථයන් ඇත admin
и password
පිළිවෙලින්. ප්රතිචාරයක් වශයෙන්, මෙම අන්ත ලක්ෂ්යය json like ලබා දෙයි {"token": "<token>"}
. අපි එය අවසරය සඳහා භාවිතා කරන්නෙමු. අපි නිර්මාණය කරමු ඉල්ලීම පියවර නම සහිත නෝඩය ඇතුල් වන්න, මුතුන් මිත්තන් ලෙස ක්රියා කරනු ඇත ව්යාපෘති නෝඩය drag-and-drop භාවිතා කරමින්, ගසේ දී ඇති නෝඩයක් නෝඩයට වඩා ඉහළට ගෙන යන්න create-post. අලුතින් සාදන ලද ඉල්ලීමට පහත පරාමිතීන් සකස් කරමු:
- ඉල්ලීම් වර්ගය: POST
- Url:
https://testmace-quick-start.herokuapp.com/login - ඉල්ලීම් ශරීරය: අගය සහිත json
{"username": "admin", "password": "password"}
අපි ඉල්ලීම ක්රියාත්මක කර ප්රතිචාරයේ ඇති ටෝකනය සමඟ දෙසිය වන කේතය ලබා ගනිමු. මේ වගේ දෙයක්:
නැවත සකස් කිරීම: වසම් අනුපිටපත් ඉවත් කිරීම
මෙතෙක් ඉල්ලීම් තනි පිටපතකට සම්බන්ධ කර නොමැත. නමුත් මෙය එකම පසුබෑම නොවේ. ඔබ සමීපව බැලුවහොත්, ඉල්ලීම් දෙකෙහිම අවම වශයෙන් වසම අනුපිටපත් කර ඇති බව ඔබට පෙනෙනු ඇත. හොඳ නැහැ. අනාගත ස්ක්රිප්ටයේ මෙම කොටස නැවත සකස් කිරීමට කාලය පැමිණ ඇති අතර, විචල්යයන් අපට මේ සඳහා උපකාරී වනු ඇත.
පළමු ආසන්න වශයෙන්, විචල්යයන් වෙනත් සමාන මෙවලම් සහ ක්රමලේඛන භාෂා වල මෙන් එකම භූමිකාවක් ඉටු කරයි - අනුපිටපත් ඉවත් කිරීම, කියවීමේ හැකියාව වැඩි කිරීම යනාදිය. ඔබට විචල්යයන් ගැන වැඩිදුර කියවිය හැකිය
අපි Project node මට්ටමේ විචල්යයක් නිර්වචනය කරමු domain
තේරුමක් ඇතුව https://testmace-quick-start.herokuapp.com
. මේ සඳහා එය අවශ්ය වේ
- මෙම නෝඩය සමඟ ටැබ් එක විවෘත කර ඉහළ දකුණේ ඇති කැල්කියුලේටරය අයිකනය මත ක්ලික් කරන්න
- මත ක්ලික් කරන්න + විචල්ය එකතු කරන්න
- විචල්ය නම සහ අගය ඇතුළත් කරන්න
අපගේ නඩුවේදී, එකතු කරන ලද විචල්යය සමඟ සංවාදය මේ ආකාරයෙන් පෙනෙනු ඇත:
හරි. දැන්, උරුමය නිසා, අපට ඕනෑම කැදලි මට්ටමකින් පැවත එන්නන් තුළ මෙම විචල්යය භාවිතා කළ හැකිය. අපගේ නඩුවේදී මේවා නෝඩ් වේ ඇතුල් වන්න и create-post. පෙළ ක්ෂේත්රයක විචල්යයක් භාවිතා කිරීම සඳහා, ඔබ ලිවිය යුතුය ${<variable_name>}
. උදාහරණයක් ලෙස, පිවිසුම් url බවට පරිවර්තනය වේ ${domain}/login
, සඳහා පිළිවෙලින් create-post node url එක වගේ වෙයි ${domain}/posts
.
මේ අනුව, DRY මූලධර්මය මගින් මෙහෙයවනු ලබන අතර, අපි තත්වය තරමක් වැඩිදියුණු කර ඇත.
ටෝකනය විචල්යයකට සුරකින්න
අපි කතා කරන්නේ විචල්යයන් ගැන නිසා, අපි මෙම මාතෘකාව ටිකක් පුළුල් කරමු. මේ මොහොතේ, සාර්ථක පුරනය වීමකදී, අපට පසුව ඉල්ලීම් වලදී අපට අවශ්ය වන අවසර ටෝකනයක් සේවාදායකයෙන් ලැබේ. අපි මේ ටෝකන් එක variable එකකට save කරමු. නිසා ස්ක්රිප්ට් ක්රියාත්මක කිරීමේදී විචල්යයේ අගය තීරණය කරනු ඇත, අපි මේ සඳහා විශේෂ යාන්ත්රණයක් භාවිතා කරමු -
මුලින්ම අපි login request එකක් කරමු. ටැබ් එකේ විග්රහ කර ඇත පිළිතුර, ටෝකනය හරහා කර්සරය ගෙන යන්න සහ සන්දර්භය මෙනුව තුළ (එය දකුණු මූසික බොත්තම සමඟ හෝ බොත්තම මත ක්ලික් කිරීමෙන් හැඳින්වේ ...) අයිතමය තෝරන්න විචල්යයට පවරන්න. පහත ක්ෂේත්ර සමඟ සංවාදයක් දිස්වනු ඇත:
- මාර්ගය - පිළිතුරේ කුමන කොටස ගනු ලබන්නේද (අපගේ නඩුවේදී එය වේ
body.token
) - වත්මන් වටිනාකම - මාර්ගය දිගේ ඇති අගය කුමක්ද (අපගේ නඩුවේ මෙය සංකේත අගයයි)
- විචල්ය නාමය - විචල්යයේ නම කොහෙද වත්මන් වටිනාකම සුරැකෙනු ඇත. අපගේ නඩුවේදී එය එසේ වනු ඇත
token
- node එකක් මතම ඊට අදාල - විචල්යය නිර්මාණය වන්නේ කුමන මුතුන් මිත්තන් තුළද? විචල්ය නාමය. අපි Project තෝරා ගනිමු
සම්පුර්ණ කරන ලද සංවාදය මේ වගේ ය:
දැන් සෑම විටම node එක ක්රියාත්මක වේ ඇතුල් වන්න ගතික විචල්යය token
ප්රතිචාරයෙන් ලැබෙන නව අගය සමඟ යාවත්කාලීන වනු ඇත. තවද මෙම විචල්යය ගබඩා වනු ඇත ව්යාපෘති node සහ, උරුමයට ස්තූතිවන්ත වන අතර, පැවතෙන්නන්ට ලබා ගත හැකි වනු ඇත.
ගතික විචල්යයන් වෙත ප්රවේශ වීමට, ඔබ භාවිතා කළ යුතුය $dynamicVar
. උදාහරණයක් ලෙස, ගබඩා කර ඇති ටෝකනය වෙත ප්රවේශ වීමට, ඔබ ඇමතීමට අවශ්ය වේ ${$dynamicVar.token}
.
අපි අවසර ටෝකනය ඉල්ලීම්වලට ලබා දෙන්නෙමු
පෙර පියවරේදී අපට අවසර ටෝකනය ලැබුණු අතර අප කළ යුත්තේ ශීර්ෂයක් එක් කිරීමයි Authorization
තේරුමක් ඇතුව Bearer <tokenValue>
ඇතුළුව අවසරය අවශ්ය සියලුම ඉල්ලීම් වලදී create-post. මෙය කිරීමට ක්රම කිහිපයක් තිබේ:
- ටෝකනය හස්තීයව පිටපත් කර උනන්දුවක් දක්වන ඉල්ලීම් සඳහා අවසර ශීර්ෂයක් එක් කරන්න. ක්රමය ක්රියාත්මක වේ, නමුත් එහි භාවිතය සීමා වන්නේ "සාදා ඉවත දැමූ" ආකාරයේ ඉල්ලීම් වලට පමණි. ස්ක්රිප්ට් නැවත නැවත ක්රියාත්මක කිරීම සඳහා සුදුසු නොවේ
- ක්රියාකාරීත්වය භාවිතා කරන්න
අවසරය . - භාවිතා කරන්න
පෙරනිමි ශීර්ෂ
දෙවන ක්රමය භාවිතා කිරීම පැහැදිලිව පෙනේ, නමුත් මෙම ලිපියේ සන්දර්භය තුළ, මෙම ප්රවේශය ... උනන්දුවක් නොදක්වයි. හොඳයි, ඇත්ත වශයෙන්ම: බලය පැවරීමේ යාන්ත්රණය සහ අඩු කිරීම ඔබට වෙනත් මෙවලම් වලින් හුරුපුරුදුය (අපට මෙවැනි දේවල් තිබුණත්
තවත් දෙයක් නම් පෙරනිමි ශීර්ෂයයි! කෙටියෙන් කිවහොත්, පෙරනිමි ශීර්ෂයන් යනු ප්රකාශිතව අක්රිය කර නොමැති නම් පෙරනිමියෙන් ඉල්ලීමට එක් කෙරෙන ප්රවේණිගත HTTP ශීර්ෂයන් වේ. මෙම ක්රියාකාරිත්වය භාවිතා කරමින්, ඔබට, උදාහරණයක් ලෙස, අභිරුචි අවසරය ක්රියාත්මක කිරීමට හෝ ස්ක්රිප්ට් වල අනුපිටපත් ඉවත් කිරීමට හැකිය. ශීර්ෂයන් තුළ ටෝකනයක් සම්මත කිරීමට මෙම විශේෂාංගය භාවිතා කරමු.
මීට පෙර, අපි විචක්ෂණශීලීව ටෝකනය ගතික විචල්යයකට සුරැකුවෙමු $dynamicVar.token
ව්යාපෘති නෝඩ් මට්ටමින්. ඉතිරිව ඇත්තේ පහත සඳහන් දෑ කිරීම පමණි:
- පෙරනිමි මාතෘකාව නිර්වචනය කරන්න
Authorization
තේරුමක් ඇතුවBearer ${$dynamicVar.token}
ව්යාපෘති නෝඩ් මට්ටමින්. මෙය සිදු කිරීම සඳහා, නෝඩයේ ව්යාපෘති අතුරුමුහුණතෙහි ඔබ පෙරනිමි ශීර්ෂයන් සහිත සංවාදයක් විවෘත කළ යුතුය (බොත්තම ශීර්ෂක ඉහළ දකුණු කෙළවරේ) සහ අනුරූප මාතෘකාවක් එක් කරන්න. පිරවූ අගයන් සහිත සංවාදය මේ ආකාරයෙන් පෙනෙනු ඇත:
- පිවිසුම් ඉල්ලීමෙන් මෙම ශීර්ෂකය අබල කරන්න. මෙය තේරුම් ගත හැකි ය: පුරනය වන අවස්ථාවේදී, අපට තවමත් ටෝකනයක් නොමැති අතර අපි මෙම ඉල්ලීම සමඟ එය ස්ථාපනය කරන්නෙමු. එබැවින්, ටැබ් එකේ ඉල්ලීමෙහි පිවිසුම් අතුරුමුහුණත තුළ ශීර්ෂක දී උරුමය අවසර ශීර්ෂය සලකුණු නොකරන්න.
එච්චරයි. දැන් පිවිසුම් නෝඩය හැර, ව්යාපෘති නෝඩයේ දරුවන් වන සියලුම ඉල්ලීම්වලට අවසර ශීර්ෂය එක් කෙරේ. මෙම අදියරේදී අපට දැනටමත් පිටපතක් සූදානම් කර ඇති අතර අප කළ යුත්තේ එය දියත් කිරීම පමණක් බව පෙනේ. තේරීමෙන් ඔබට ස්ක්රිප්ට් ධාවනය කළ හැක දුවන්න ව්යාපෘති නෝඩයේ සන්දර්භය මෙනුව තුළ.
පළ කිරීම් නිර්මාණයේ නිවැරදි බව පරීක්ෂා කිරීම
මෙම අවස්ථාවෙහිදී, අපගේ ස්ක්රිප්ටයට ලොග් විය හැකි අතර, අවසර ටෝකනයක් භාවිතා කර, පළ කිරීමක් සෑදිය හැක. කෙසේ වෙතත්, අලුතින් සාදන ලද තනතුරේ නිවැරදි නම තිබේදැයි අපි සහතික කර ගත යුතුය. එනම්, සාරාංශයක් ලෙස, ඉතිරිව ඇත්තේ පහත සඳහන් දේ කිරීමයි:
- හැඳුනුම්පත මගින් පෝස්ට් එකක් ලබා ගැනීමට ඉල්ලීමක් යවන්න,
- සර්වර් එකෙන් ලැබෙන නම පෝස්ට් එක හදනකොට එවන නමට ගැළපෙනවද බලන්න
අපි පළමු පියවර දෙස බලමු. ස්ක්රිප්ට් ක්රියාත්මක කිරීමේදී id අගය තීරණය වන බැවින්, ඔබ ගතික විචල්යයක් සෑදිය යුතුය (අපි එය කියමු postId
) නෝඩයෙන් create-post ව්යාපෘති නෝඩ් මට්ටමින්. මෙය කරන්නේ කෙසේදැයි අපි දැනටමත් දනිමු, කොටස බලන්න ටෝකනය විචල්යයකට සුරකින්න. ඉතිරිව ඇත්තේ මෙම හැඳුනුම්පත භාවිතා කර තනතුරක් ලබා ගැනීමට ඉල්ලීමක් සෑදීම පමණි. මෙය සිදු කිරීම සඳහා, අපි RequestStep එකක් නිර්මාණය කරමු ලබා ගැනීම පහත පරාමිතීන් සමඟ:
- ඉල්ලීම් වර්ගය: GET
- URL: ${domain}/posts/${$dynamicVar.postId}
දෙවන පියවර ක්රියාත්මක කිරීම සඳහා, අපි දැන හඳුනා ගත යුතුය Compare
ක්රියාකරු සමඟ ප්රකාශය equal
. ප්රකාශයන් නිර්මාණය කිරීමට ක්රම කිහිපයක් තිබේ:
- දිගු. RequestStep node හි සන්දර්භය මෙනුවෙන් Assertion node එකක් අතින් සාදන්න. සාදන ලද Assertion node හි, උනන්දුව තහවුරු කිරීම එකතු කර ක්ෂේත්ර පුරවන්න.
- ඉක්මනින්. සන්දර්භය මෙනුව භාවිතයෙන් RequestStep node ප්රතිචාරයෙන් ප්රකාශයක් සමඟ ප්රකාශන නෝඩයක් සාදන්න
අපි දෙවන ක්රමය භාවිතා කරමු. අපගේ නඩුව සඳහා මෙය පෙනෙනු ඇත.
තේරෙන්නේ නැති අයට මෙන්න මෙහෙමයි වෙන්නේ.
- නෝඩ් එකේ ඉල්ලීමක් කරන්න ලබා ගැනීම
- ටැබ් එකේ විග්රහ කර ඇත පිළිතුර, සන්දර්භය මෙනුව අමතන්න සහ තෝරන්න ප්රකාශයක් සාදන්න -> සසඳා බලන්න -> සමාන
සුභ පැතුම්, අපි අපගේ පළමු පරීක්ෂණය නිර්මාණය කර ඇත! සරලයි නේද? දැන් ඔබට ස්ක්රිප්ට් එක සම්පුර්ණයෙන්ම ක්රියාත්මක කර ප්රතිඵලය භුක්ති විඳිය හැක. ඉතිරිව ඇත්තේ එය ටිකක් නැවත සකස් කර පිටතට ගැනීම පමණි title
වෙනම විචල්යයකට. නමුත් අපි මෙය ඔබට ගෙදර වැඩ ලෙස තබමු)
නිගමනය
මෙම මාර්ගෝපදේශය තුළ, අපි අංගසම්පූර්ණ දර්ශනයක් නිර්මාණය කළ අතර ඒ සමඟම අපගේ නිෂ්පාදනයේ සමහර විශේෂාංග සමාලෝචනය කළෙමු. ඇත්ත වශයෙන්ම, අපි සියලු ක්රියාකාරීත්වය භාවිතා නොකළ අතර පහත ලිපිවල අපි TestMace හි හැකියාවන් පිළිබඳ සවිස්තරාත්මක දළ විශ්ලේෂණයක් ලබා දෙන්නෙමු. සුසරව සිටින්න!
PS සියලුම පියවර ප්රතිනිෂ්පාදනය කිරීමට කම්මැලි අය සඳහා, අපි කාරුණිකව පටිගත කර ඇත්තෙමු
මූලාශ්රය: www.habr.com