ઓપન સોર્સ / ક્રેટ.

બ્રાઉઝર ટેસ્ટર.

"બ્રાઉઝર-ટેસ્ટર" એ એક ચોક્કસ (ડિટરમિનેસ્ટિક) બ્રાઉઝર જેવું પરીક્ષણ ચલાવવાનું સાધન છે, જે સંપૂર્ણપણે રસ્ટ (Rust) પ્રોગ્રામિંગ ભાષામાં બનાવવામાં આવ્યું છે. તે વાસ્તવિક બ્રાઉઝર શરૂ કર્યા વગર, DOM (ડોક્યુમેન્ટ ઓબ્જેક્ટ મોડેલ) અને ઇવેન્ટની કામગીરીની ચકાસણી કરે છે.

ઝંગ. નિશ્ચિત રનટાઇમ. DOM પરીક્ષણ.

આ બોક્સ કયા કાર્યોમાં શ્રેષ્ઠ છે.

"બ્રાઉઝર-ટેસ્ટર" મુખ્યત્વે બ્રાઉઝરના સંપૂર્ણ રેન્ડરિંગ સુસંગતતાને ચકાસવાને બદલે, ફોર્મ અને યુઝર ઇન્ટરફેસના અનુમાનિત વર્તનને ચકાસવા પર ધ્યાન કેન્દ્રિત કરે છે.

માત્ર રસ્ટ (Rust) ભાષા માટે જ કાર્યરત થતું રનટાઇમ (runtime) એન્વાયર્નમેન્ટ.

આ પ્રોગ્રામ એક જ રસ્ટ પ્રોસેસની અંદર ચાલે છે. આમાં કોઈ બાહ્ય બ્રાઉઝર, વેબ ડ્રાઈવર અથવા નોડ.જેએસની જરૂરિયાત નથી.

નિશ્ચિત કાર્ય અમલીકરણ.

આ ડિઝાઇન એવી રીતે બનાવવામાં આવી છે કે જેથી તેનું વારંવાર પરીક્ષણ કરી શકાય: તેમાં કૃત્રિમ ઘડિયાળ, નિયંત્રિત રેન્ડમ સીડ અને સ્પષ્ટ ટાઈમર નિયંત્રણ માટેની સુવિધાઓ આપવામાં આવી છે.

DOM (ડોક્યુમેન્ટ ઓબ્જેક્ટ મોડેલ) અને ઇવેન્ટ પરીક્ષણ.

આ સિસ્ટમ વ્યવહારુ બ્રાઉઝર જેવી કાર્યપ્રણાલીને સપોર્ટ કરે છે, જેમાં સિલેક્ટર્સ (selectors), ઇનલાઇન સ્ક્રિપ્ટ એક્ઝિક્યુશન (inline script execution), ઇવેન્ટ પ્રોપેગેશન (event propagation), અને ડોમ અપડેટ્સ (DOM updates) જેવી સુવિધાઓનો સમાવેશ થાય છે.

ઝડપી અને સ્થાનિક પ્રતિસાદ.

ફોર્મ-કેન્દ્રિત યુઝર ઇન્ટરફેસ (UI) પરીક્ષણો માટે ઝડપી પ્રતિસાદ ચક્ર, જ્યારે નિષ્ફળતાના પરિણામોને સિલેક્ટર્સ (selectors) અને અપેક્ષિત/વાસ્તવિક મૂલ્યો પર કેન્દ્રિત રાખવામાં આવે.

ઝડપી શરૂઆત.

એચટીએમએલ (HTML) નો ઉપયોગ કરીને એક પરીક્ષણ માળખું (હાર્નેસ) બનાવો, ક્રિયાપ્રતિક્રિયાઓ ચલાવો અને ડોમ (DOM) પરિણામોની ખાતરી કરો. એક નાનકડા પરીક્ષણથી શરૂઆત કરો અને પછી ટાઈમર (timer) અને મોક (mock) એપીઆઈ (API) સાથે તેને વિસ્તૃત કરો.

ઇન્સ્ટોલ કરો.

કાર્ગોમાં 'બ્રાઉઝર_ટેસ્ટર' ઉમેરો.

મૂળભૂત ઉદાહરણ.

મુખ્ય API ઇન્ટરફેસ.

"હાર્નેસ એક્શન્સ + એસર્શન્સ" (Harness Actions + Assertions)

મુખ્ય DOM પરીક્ષણ કામગીરી: `Harness::from_html`, `type_text`, `set_checked`, `click`, `submit`, અને ટેક્સ્ટ/વેલ્યુ/ચેક્ડ/અસ્તિત્વ માટેના ખાતરીપૂર્વકના પરિણામો મેળવવા માટેના સહાયક કાર્યો.

નિશ્ચિત સમયગાળો ધરાવતા ટાઈમર.

અસિંક્રોનસ (અસંગત) વર્તનને એક કૃત્રિમ ઘડિયાળ (ફેક ક્લોક) દ્વારા નિયંત્રિત કરો. `advance_time`, `advance_time_to`, `flush` અને ટાઈમર નિરીક્ષણ (ટાઈમર ઇન્સ્પેક્શન) એપીઆઈનો ઉપયોગ કરીને સમયને ચોક્કસ રીતે આગળ વધારો.

બિલ્ટ-ઇન મોક (Built-in Mock) એટલે કે અંદરથી જ તૈયાર કરેલા નકલી ડેટા અથવા સિમ્યુલેશન.

"set_fetch_mock", "enqueue_confirm_response", અને "enqueue_prompt_response" જેવા કાર્યોનો ઉપયોગ કરીને, તમે પરીક્ષણોને એકબીજાથી સ્વતંત્ર રાખવા માટે, ડેટા મેળવવાની પ્રક્રિયા અને સંવાદના પરિણામોને નિયંત્રિત કરી શકો છો."

ટ્રેસ અને ડાયગ્નોસ્ટિક્સ (ટ્રેસિંગ અને નિદાન).

જ્યારે કોઈ ટેસ્ટ નિષ્ફળ જાય, ત્યારે ટ્રેસ લોગને સક્રિય કરો અને ઇવેન્ટ/ટાઈમર ફ્લોને એક્સટ્રેક્ટ કરો. આ ઇવેન્ટ ક્રમ અને ડિફોલ્ટ એક્શનના વર્તનને ડીબગ કરવા માટે ઉપયોગી છે.

ચાલકામ નીતિ.

  • "eval" ફંક્શનને જાણીજોઈને સપોર્ટ આપવામાં આવતો નથી, કારણ કે તેનાથી સુરક્ષા અને ચોક્કસ પરિણામો જાળવવાનું મહત્વપૂર્ણ છે."
  • આ રનટાઇમ (runtime) વ્યવહારિક પરીક્ષણ પરિસ્થિતિઓ માટે બનાવવામાં આવ્યું છે, પરંતુ તે 100% વાસ્તવિક બ્રાઉઝર સુસંગતતાની ખાતરી આપતું નથી.
  • બાહ્ય નેટવર્ક ઇનપુટ/આઉટપુટ (I/O) આ કાર્યક્ષેત્રની બહાર છે; પરીક્ષણ કવરેજ માટે 'ફેચ' મોક (fetch mock) નો ઉપયોગ કરો.

જો તમારે તમારા પરીક્ષણ સ્યુટ માટે વધારાના બ્રાઉઝર APIની જરૂર હોય, તો એક ઇશ્યૂ ખોલો અને તેમાં એક સરળ ઉદાહરણ આપો જેથી આપણે તેની આવશ્યકતા અને પ્રાથમિકતા વિશે ચર્ચા કરી શકીએ.