"Rust" လမ်းကြောင်းသာပါသော စနစ် (သို့မဟုတ်) ပရိုဂရမ်။
၎င်းသည် Rust process တစ်ခုအတွင်းသာ အလုပ်လုပ်ပါသည်။ အခြား browser၊ WebDriver သို့မဟုတ် Node.js တို့နှင့် ဆက်စပ်မှု မရှိပါ။
ဖော်ပြပါကိရိယာ (Open Source) / ကရိန်း (Crate)
"browser-tester" ဟာ Rust programming language ကို အသုံးပြု၍ တီထွင်ထားသော၊ အမှန်တကယ့် browser ကို မဖွင့်ဘဲ DOM (Document Object Model) နဲ့ event များ၏ လုပ်ဆောင်ချက်များကို စစ်ဆေးနိုင်သည့် စနစ်တစ်ခုဖြစ်သည်။ ဒီစနစ်ဟာ တိကျတဲ့ အဖြေများကို ထွက်ပေးနိုင်ပါတယ်။
browser-tester သည် အပြည့်အဝ browser အခြေခံအမျိုးအစားအလိုက် သဟူညီမှု (compatibility) ကို စစ်ဆေးခြင်းမဟုတ်ဘဲ၊ form နှင့် UI တို့၏ တည်တံ့ခိုင်မာသော (predictable) အပြုအမူများကို စစ်ဆေးသည့်အပေါ် အာ Schwerpunkt ပေးထားသည်။
၎င်းသည် Rust process တစ်ခုအတွင်းသာ အလုပ်လုပ်ပါသည်။ အခြား browser၊ WebDriver သို့မဟုတ် Node.js တို့နှင့် ဆက်စပ်မှု မရှိပါ။
ဒီထုတ်လုပ်မှုသည် တီထွင်မှုအဆင့်တွင်ပင် တီထွင်ချက်များကို ထပ်တူညီစွာ တီထွင်နိုင်ရန်အတွက် အထူးဒီဇိုင်းပြုလုပ်ထားခြင်းဖြစ်ပြီး၊ အချက်များမှာ အောက်ပါတို့ပါဝင်သည်။ (၁) အမှားကိန်းဂဏန်းများ ထည့်သွင်းပေးနိုင်သော အကဲဖြတ်ချက် နာရီ (fake clock)၊ (၂) တိကျသော ရန်ကုန်စမ်းသပ်မှုအတွက် အခြေခံအချက် (deterministic random seed)၊ (၃) အချိန်ကို ထိန်းညှိနိုင်သော အချက်အလက်များ (explicit timer control APIs)။
အသုံးပြုသူက တန်းဖတ်စက် (browser) ကဲ့သို့ လုပ်ဆောင်နိုင်သော အချက်အလက်များကို ထောက်ပံ့ပေးသည်။ ၎င်းတို့မှာ အစိတ်အပိုင်းများကို ရွေးချယ်ခြင်း၊ စက္ရစ် (script) ကို တန်းဖတ်စက်အတွင်းမှာပင် အကောင်အထည်ဖော်ခြင်း၊ အဖြစ်အပျက်များကို အဆက်မပြတ် ထိန်းသိမ်းခြင်း၊ နှင့် ဒေါကူမင့် အဖွဲ့အစည်း (DOM) ကို အဆင့်ဆင့် ပြောင်းလဲခြင်းတို့ဖြစ်သည်။
ပုံစံအခြေခံ UI စစ်ဆေးမှုများအတွက် လျင်မြန်သော ප්රතිလွတ်ပေးမှု စက်முறையை အသုံးပြုထားပြီး၊ အမှားဖြစ်ပေါ်သည့်အခါတွင် အကြောင်းအရာများသည် အထောက်အပံ့များ (selectors) နှင့် စစ်ဆေးရန် သတ်မှတ်ထားသည့်/အမှန်တကယ်ရရှိသည့် တန်ဖိုးများပေါ်တွင်သာ အာရုံစိုက်ထားသည်။
HTML ကိုအခြေခံထားသော စစ်ဆေးရေးအထောက်အပံ့ (harness) ကို တည်ဆောက်ပါ။ အပြန်အလှန် ဆက်သွယ်မှုများကို စမ်းသပ်ပြီး DOM (Document Object Model) အခြေအနေများကို စစ်ဆေးပါ။ ပထမဦးစွာ အသေးစား စစ်ဆေးရေးအထောက်အပံ့တစ်ခုကို ဖန်တီးပြီးနောက်၊ အချိန်ထိန်း (timer) နှင့် အစစ်ဆေးရေးအတွက် အသုံးပြုနိုင်သော API များကို ထည့်သွင်း၍ တိုးချဲ့နိုင်သည်။
တပ်ဆင်ပါကွယ်။
cargo မှာ browser_tester ကို ထည့်သွင်းပါကွယ်။
အခြေခံအпримерတစ်ခု။
အဓိက DOM စစ်ဆေးမှု လုပ်ဆောင်နိုင်စွမ်းများမှာ Harness::from_html၊ type_text၊ set_checked၊ click၊ submit တို့ဖြစ်ပြီး၊ အကြောင်းအရာ/အသားပေးစာ/ဂဏန်း/စစ်ဆေးထားသည့်အခြေအနေ/ရှိရှိနေခြင်း စသည့်တို့ကို စစ်ဆေးနိုင်မည့် အထောက်အပံ့များလည်း ပါဝင်ပါသည်။
အsynchronous လုပ်ဆောင်မှုများကို အကောင်အလှည့်အပြောင်းမရှိသော နားလည်နိုင်သော နည်းလမ်းဖြင့် ထိန်းညှိနိုင်ရန်၊ "fake clock" ကို အသုံးပြုနိုင်သည်။ `advance_time`၊ `advance_time_to`၊ `flush` နှင့် timer inspection APIs တို့ကို အသုံးပြု၍ အချိန်ကို တိကျသော အတိုင်းအတာဖြင့် တိုးပေးနိုင်သည်။
"set_fetch_mock"၊ "enqueue_confirm_response" နှင့် "enqueue_prompt_response" တို့ကို အသုံးပြု၍ fetch လုပ်ယူရသော အချက်အလက်များနှင့် dialogue မှန်ကန်မှုများကို ထည့်သွင်းပေးခြင်းဖြင့်၊ စစ်ဆေးမှုများကို အခြားအစိတ်အပိုင်းများမှ ကင်းအောင် ထိန်းသိမ်းထားနိုင်ပါသည်။
စမ်းသပ်မှုတစ်ခု မအောင်မြင်ပါက၊ အကြောင်းအရာများ (trace logs) ကိုဖွင့်ပြီး အဖြစ်အပျက်များနှင့် အချိန်ဆိုင်ရာ အချက်အလက်များကို စစ်ဆေးနိုင်ရန် ထုတ်ယူပါ။ ၎င်းသည် အဖြစ်အပျက်များ၏ အစဉ်အဆက်နှင့် အခြေအနေဆိုင်ရာ လုပ်ဆောင်မှုများကို စစ်ဆေးရာတွင် အထောက်အကူအရှိဆုံးဖြစ်သည်။
သင်၏ စမ်းသပ်မှုအစုအတွက် အသေးစိတ်အချက်အလက်များပါ၀င်သော ဘราวဇာ API အပိုများလိုအပ်ပါက၊ အကြောင်းအရာနှင့် အဆင့်အတန်းများကို ဆွေးနွေးရန်အတွက် အရေးကြီးဆုံးအချက်များသာပါသော အကြောင်းအချက်တစ်ခုကို တင်သွင်းပါ။