"Rust" භාෂාව සඳහා පමණක් වන ක්රියාකාරී පරිසරය.
මෙය Rust ක්රියාවලියක ඇතුළත ක්රියාත්මක වේ. එය වෙනස් බ්රවුසරයකට, WebDriver වෙත, හෝ Node.js වෙත ඇබ්බැද්දක් නොමැත.
විවෘත මූලාශ්ර / බහාලු.
"browser-tester" යනු, සම්පූර්ණයෙන්ම Rust භාෂාවෙන් නිර්මාණය කරන ලද, බ්රව්සර් ක්රියාකාරිත්වයට සමාන වූ, නිශ්චිත ප්රතිඵල ලබා දෙනු ලබන යන්ත්රයක් (runtime) වේ. එය, යථා බ්රව්සර් එකක් භාවිත නොකර, DOM (Document Object Model) සහ සිද්ධීන් (events) වල ක්රියාකාරිත්වය තහවුරු කරයි.
"Browser-tester" යනු, සම්පූර්ණ බ්රව්සරයේ ක්රියාකාරිත්වය සමඟ ගැළපෙන ආකාරය පරීක්ෂණය කිරීම වෙනුවට, බ්රව්සර්වල අඩංගු ඇති පෝරම් (form) සහ පරිශීලක අතුරුමුහුණුව (UI) වල ක්රියාකාරිත්වය නිශ්චිතව පරීක්ෂා කිරීමට අවධානය යොමු කරන යමක්."
මෙය Rust ක්රියාවලියක ඇතුළත ක්රියාත්මක වේ. එය වෙනස් බ්රවුසරයකට, WebDriver වෙත, හෝ Node.js වෙත ඇබ්බැද්දක් නොමැත.
මෙම පද්ධතිය, නැවත නැවතත් සිදු කළ හැකි පරීක්ෂණ සඳහා නිර්මාණය කර ඇත: එහිදී බොරු ඔරලෝසු, නිශ්චිත අහඹු ගණනක්, සහ නිශ්චිත කාල පාලන ක්රම පාවිචි ගත කර ඇත.
මෙම පද්ධතිය, බ්රවුසරයේ ක්රියාකාරකම්වලට සමාන ක්රම පද්ධතිවලට සහයෝගය දක්වයි. එහිදී, තෝම්පත් කිරීම, අන්තර්ගත ස්ක්රිප්ට් ක්රියාත්මක කිරීම, සිද්ධීන්හි සම්ප්රේෂණය, සහ DOM යාවත්කාලීන කිරීම වැනි ක්රමෝපාය අඩංගුවල ඇත.
පෝරම් මත පදනම් වූ පරිශීලක අතුරුමුහුණුවල (UI) සිදු කරන පරීක්ෂණ සඳහා, ඉක්මන් ප්රතිපෝෂණ ක්රමයක් ලබා දෙන අතර, වැරදි ප්රතිඵල පෙන්වන විට, ඒවා තෝදන් සහ අපේක්ෂිත/ඇත්ත වශයෙන් පවතින අගුළු මත පමණක් අවධානය යොමු කරයි.
HTML භාවිතයෙන් යන්ත්රයක් (framework) සාදා, අන්තර්ක්රියාකාරීත්වයන් ක්රියාත්මක කර, DOM ප්රතිඵලాలను පරීක්ෂා කරන්න. කුඩා පරීක්ෂණයක් (fixture) සමඟ ආරම්භ කර, කාලසටහන් සහ බොරු API-වල් (mock APIs) යොදාගෙන එය වැඩිදියුණු කරන්න.
ස්ථාපනය කරන්න.
cargo: browser_tester යන අංගය එකතු කරන්න.
සරල උදාහරණය.
අපගේ ප්රධාන DOM පරීක්ෂණ ක්රියාකාරකම් වන්නේ: `Harness::from_html`, `type_text`, `set_checked`, `click`, `submit` යන ක්රියාකාරකම්, මෙන්ම පෙළ/අගය/පහන්වූ තත්ත්වය/විය පැවතිය යුතු තත්ත්වය පිළිබඳව පරීක්ෂා කිරීම සඳහා වන උපකාරක මෙවලම්.
අsynchronous ක්රියාකාරකම් පාලනය කිරීම සඳහා කෘත්රිම ඔclockක් භාවිතා කරන්න. `advance_time`, `advance_time_to`, `flush` සහ කාල පාලන පද්ධතිය පරීක්ෂා කිරීම සඳහා වන API-களை භාවිතයෙන් කාලය නිශ්චිත ආකාරයකින් ඉදිරියට ගෙන යන්න.
පරීක්ෂණ ක්රමවේදයන් නිවැරදිව පවත්වා ගැනීම සඳහා, `set_fetch_mock`, `enqueue_confirm_response`, සහ `enqueue_prompt_response` යන ක්රමවේදයන් භාවිතා කරමින්, ප්රතිචාර සහ සංවාද ප්රතිඵලයන් පාලනය කරන්න. මේ නිසා, පරීක්ෂණ ක්රමවේදයන් අතර වන අන්තර් ක්රියාකාරකම් අවම කර, ඒවා ස්වාධීනව ක්රියාත්මක කිරීමට හැකි වනු ඇත.
පරීක්ෂණයකදී අසාර්ථකත්වය ඇති වුවහොත්, ට්රේස් ලොග් ක්රියාත්මක කර, සිද්ධීන් සහ කාල පරිමාණය පිළිබඳ තොරතුරු ලබා ගන්න. මෙය සිද්ධීන්වල අනුපිළිවෙල සහ පෙරනිමි ක්රියාකාරකම් පිළිබඳ ගැටළු හඳුනා ගැනීමට ඉතා ප්රයෝජනවත් වේ.
ඔබේ පරීක්ෂණ ක්රියාවලිය සඳහා අමතර බ්රවුසර API අවශ්ය නම්, එහි විෂය පථය සහ ප්රමුඛත්වය පිළිබඳ සාකච්ඡා කිරීම සඳහා, හැකි තරමින් සරල වූ උදාහරණයක් සහිතව අයිතිවාසිකම් යෝජනා කිරීමක් ඉදිරිපත් කරන්න.