માત્ર રસ્ટ (Rust) ભાષા માટે જ કાર્યરત થતું રનટાઇમ (runtime) એન્વાયર્નમેન્ટ.
આ પ્રોગ્રામ એક જ રસ્ટ પ્રોસેસની અંદર ચાલે છે. આમાં કોઈ બાહ્ય બ્રાઉઝર, વેબ ડ્રાઈવર અથવા નોડ.જેએસની જરૂરિયાત નથી.
ઓપન સોર્સ / ક્રેટ.
"બ્રાઉઝર-ટેસ્ટર" એ એક ચોક્કસ (ડિટરમિનેસ્ટિક) બ્રાઉઝર જેવું પરીક્ષણ ચલાવવાનું સાધન છે, જે સંપૂર્ણપણે રસ્ટ (Rust) પ્રોગ્રામિંગ ભાષામાં બનાવવામાં આવ્યું છે. તે વાસ્તવિક બ્રાઉઝર શરૂ કર્યા વગર, DOM (ડોક્યુમેન્ટ ઓબ્જેક્ટ મોડેલ) અને ઇવેન્ટની કામગીરીની ચકાસણી કરે છે.
"બ્રાઉઝર-ટેસ્ટર" મુખ્યત્વે બ્રાઉઝરના સંપૂર્ણ રેન્ડરિંગ સુસંગતતાને ચકાસવાને બદલે, ફોર્મ અને યુઝર ઇન્ટરફેસના અનુમાનિત વર્તનને ચકાસવા પર ધ્યાન કેન્દ્રિત કરે છે.
આ પ્રોગ્રામ એક જ રસ્ટ પ્રોસેસની અંદર ચાલે છે. આમાં કોઈ બાહ્ય બ્રાઉઝર, વેબ ડ્રાઈવર અથવા નોડ.જેએસની જરૂરિયાત નથી.
આ ડિઝાઇન એવી રીતે બનાવવામાં આવી છે કે જેથી તેનું વારંવાર પરીક્ષણ કરી શકાય: તેમાં કૃત્રિમ ઘડિયાળ, નિયંત્રિત રેન્ડમ સીડ અને સ્પષ્ટ ટાઈમર નિયંત્રણ માટેની સુવિધાઓ આપવામાં આવી છે.
આ સિસ્ટમ વ્યવહારુ બ્રાઉઝર જેવી કાર્યપ્રણાલીને સપોર્ટ કરે છે, જેમાં સિલેક્ટર્સ (selectors), ઇનલાઇન સ્ક્રિપ્ટ એક્ઝિક્યુશન (inline script execution), ઇવેન્ટ પ્રોપેગેશન (event propagation), અને ડોમ અપડેટ્સ (DOM updates) જેવી સુવિધાઓનો સમાવેશ થાય છે.
ફોર્મ-કેન્દ્રિત યુઝર ઇન્ટરફેસ (UI) પરીક્ષણો માટે ઝડપી પ્રતિસાદ ચક્ર, જ્યારે નિષ્ફળતાના પરિણામોને સિલેક્ટર્સ (selectors) અને અપેક્ષિત/વાસ્તવિક મૂલ્યો પર કેન્દ્રિત રાખવામાં આવે.
એચટીએમએલ (HTML) નો ઉપયોગ કરીને એક પરીક્ષણ માળખું (હાર્નેસ) બનાવો, ક્રિયાપ્રતિક્રિયાઓ ચલાવો અને ડોમ (DOM) પરિણામોની ખાતરી કરો. એક નાનકડા પરીક્ષણથી શરૂઆત કરો અને પછી ટાઈમર (timer) અને મોક (mock) એપીઆઈ (API) સાથે તેને વિસ્તૃત કરો.
ઇન્સ્ટોલ કરો.
cargo add browser_tester
મૂળભૂત ઉદાહરણ.
use browser_tester::Harness;
fn main() -> browser_tester::Result<()> {
let html = r#"..."#;
let mut h = Harness::from_html(html)?;
h.type_text("#name", "Alice")?;
h.click("#submit")?;
h.assert_text("#result", "Hello, Alice")?;
Ok(())
}
મુખ્ય DOM પરીક્ષણ કામગીરી: `Harness::from_html`, `type_text`, `set_checked`, `click`, `submit`, અને ટેક્સ્ટ/વેલ્યુ/ચેક્ડ/અસ્તિત્વ માટેના ખાતરીપૂર્વકના પરિણામો મેળવવા માટેના સહાયક કાર્યો.
અસિંક્રોનસ (અસંગત) વર્તનને એક કૃત્રિમ ઘડિયાળ (ફેક ક્લોક) દ્વારા નિયંત્રિત કરો. `advance_time`, `advance_time_to`, `flush` અને ટાઈમર નિરીક્ષણ (ટાઈમર ઇન્સ્પેક્શન) એપીઆઈનો ઉપયોગ કરીને સમયને ચોક્કસ રીતે આગળ વધારો.
"set_fetch_mock", "enqueue_confirm_response", અને "enqueue_prompt_response" જેવા કાર્યોનો ઉપયોગ કરીને, તમે પરીક્ષણોને એકબીજાથી સ્વતંત્ર રાખવા માટે, ડેટા મેળવવાની પ્રક્રિયા અને સંવાદના પરિણામોને નિયંત્રિત કરી શકો છો."
જ્યારે કોઈ ટેસ્ટ નિષ્ફળ જાય, ત્યારે ટ્રેસ લોગને સક્રિય કરો અને ઇવેન્ટ/ટાઈમર ફ્લોને એક્સટ્રેક્ટ કરો. આ ઇવેન્ટ ક્રમ અને ડિફોલ્ટ એક્શનના વર્તનને ડીબગ કરવા માટે ઉપયોગી છે.
જો તમારે તમારા પરીક્ષણ સ્યુટ માટે વધારાના બ્રાઉઝર APIની જરૂર હોય, તો એક ઇશ્યૂ ખોલો અને તેમાં એક સરળ ઉદાહરણ આપો જેથી આપણે તેની આવશ્યકતા અને પ્રાથમિકતા વિશે ચર્ચા કરી શકીએ.