ഓപ്പൺ സോഴ്സ് / കണ്ടെയ്‌നർ.

ബ്രൗസർ ടെസ്റ്റർ.

"ബ്രൗസർ-ടെസ്റ്റർ" എന്നത്, റസ്റ്റ് ഭാഷയിൽ പൂർണ്ണമായി എഴുതപ്പെട്ട, ഒരു ബ്രൗസറിന് സമാനമായ ടെസ്റ്റിംഗ് റൺടൈമാണ്. ഇത്, ഒരു യഥാർത്ഥ ബ്രൗസറിനെ തുറക്കാതെ തന്നെ, ഡോം (DOM) ഘടനയുടെയും, സംഭവങ്ങളുടെ പ്രവർത്തന രീതിയുടെയും ശരിതാനുസൃതത ഉറപ്പാക്കുന്നു.

ചാമ്പര്. നിശ്ചിത സമയ ദൈർഘ്യം. DOM ടെസ്റ്റിംഗ്.

ഈ കണ്ടെയ്‌നർ എന്തിന് ഉതകുന്നു.

"ബ്രൗസർ-ടെസ്റ്റർ" എന്നത്, ഒരു ബ്രൗസറിന്റെ പൂർണ്ണമായ പ്രവർത്തനക്ഷമതയോ അല്ലെങ്കിൽ അതിന്റെ രൂപകൽപ്പനയുടെ അനുയോജ്യതയോ പരിശോധിക്കുന്നതിനേക്കാൾ, ഫോം (form) അല്ലെങ്കിൽ യൂസർ ഇന്റർഫേസ് (UI) എന്നിവയുടെ സ്ഥിരമായ പ്രവർത്തനരീതികൾ ഉറപ്പാക്കുന്നതിനുള്ള പരീക്ഷണങ്ങളിൽ ശ്രദ്ധ കേന്ദ്രീകരിക്കുന്നു.

റസ്റ്റ് ഭാഷയിൽ മാത്രം പ്രവർത്തിക്കുന്ന റൺടൈം.

ഒരു റസ്റ്റ് പ്രോസസിനുള്ളിൽ മാത്രം പ്രവർത്തിക്കുന്നു. ഇതിന് പുറത്തെ ബ്രൗസർ, വെബ് ഡ്രൈവർ അല്ലെങ്കിൽ നോഡ്.ജെഎസ് പോലുള്ള മറ്റ് സോഫ്റ്റ്‌വെയറുകൾ ആവശ്യമില്ല.

നിശ്ചിത രീതിയിലുള്ള പ്രവര്ത്തനം.

ഇത് രൂപകൽപ്പന ചെയ്ത രീതി അനുസരിച്ച്, ആവർത്തിച്ച് ചെയ്യാൻ സാധിക്കുന്ന പരീക്ഷണങ്ങൾക്ക് അനുയോജ്യമാണ്: കൃത്രിമ ക്ലോക്ക്, കൃത്യമായ ക്രമരഹിത സംഖ്യാ ജനറേറ്റർ, കൂടാതെ വ്യക്തമായ ടൈമർ നിയന്ത്രണ സംവിധാനങ്ങൾ ഇതിൽ അടങ്ങിയിരിക്കുന്നു.

DOM (ഡോക്യുമെന്റ് ഒബ്ജക്റ്റ് മോഡൽ) കൂടാതെ ഇവന്റ് ടെസ്റ്റിംഗ്.

ഇത് ബ്രൗസറുകൾ ഉപയോഗിക്കുന്ന രീതിയിലുള്ള പ്രവർത്തനങ്ങളെ പിന്തുണയ്ക്കുന്നു: സെലക്ടറുകൾ, ഇൻലൈൻ സ്ക്രിപ്റ്റ് എക്സിക്യൂഷൻ, ഇവന്റ് പ്രൊപഗേഷൻ, കൂടാതെ ഡോക്യുമെന്റ് ഒബ്ജക്റ്റ് മോഡൽ (DOM) അപ്‌ഡേറ്റുകൾ.

വേഗത്തിലുള്ള പ്രാദേശിക പ്രതികരണം.

ഫോം-കേന്ദ്രീകൃത യുഐ ടെസ്റ്റിംഗിനുള്ള വേഗതയേറിയ പ്രതികരണ സംവിധാനം, അതേസമയം പിശകുകൾ സംഭവിക്കുമ്പോൾ, അതിന്റെ വിവരങ്ങൾ സെലക്ടറുകളിലും പ്രതീക്ഷിച്ച/വാസ്തവ മൂല്യങ്ങളിലും ശ്രദ്ധ കേന്ദ്രീകരിച്ച് നൽകുന്നു.

ദ്രുത ആരംഭം.

HTML ഉപയോഗിച്ച് ഒരു ടെസ്റ്റിംഗ് ഫ്രെയിംവർക്ക് ഉണ്ടാക്കുക, അതിലൂടെ വിവിധ പ്രവർത്തനങ്ങൾ നടത്താനും, DOM-ൽ ഉണ്ടാകുന്ന മാറ്റങ്ങൾ പരിശോധിക്കാനും സാധിക്കും. ആദ്യം ഒരു ചെറിയ ടെസ്റ്റിംഗ് ഘടന ഉണ്ടാക്കുക, പിന്നീട് ടൈമർ, മോക്ക് API-കൾ എന്നിവ ഉപയോഗിച്ച് അതിനെ വികസിപ്പിക്കുക.

ഇൻസ്റ്റാൾ ചെയ്യുക.

"cargo" എന്ന കമാൻഡിന് "browser_tester" എന്ന ഫയൽ അല്ലെങ്കിൽ ഡയറക്ടറി ചേർക്കുക.

ഒരു സാധാരണ ഉദാഹരണം.

പ്രധാന API സവിശേഷതങ്ങൾ.

"ഹാർനെസ് ആക്ഷൻസ് + അസർഷൻസ്" എന്ന വാക്യത്തെ തർജ്ജമ ചെയ്യാൻ ശ്രമിക്കുന്നു. ഇതിന് കൃത്യമായ ഒരു മലയാള പരിഭാഷ നൽകാൻ സാധ്യമാകില്ല. കാരണം, "ഹാർനെസ്", "ആക്ഷൻസ്", "അസർഷൻസ്" എന്നീ വാക്കുകൾക്ക് മലയാളത്തിൽ നേരിട്ട് തുല്യമായ പദങ്ങൾ ഇല്ല. എന്നിരുന്നാലും, ഈ വാക്യത്തിന്റെ പൊതു ആശയത്തെ 반영ിക്കുന്ന ഒരു പരിഭാഷ താഴെ നൽകുന്നു: "ഒരു പ്രത്യേക ലക്ഷ്യം നേടുന്നതിനുള്ള പ്രവർത്തനങ്ങളും, അതിനെ സാധ്യമാക്കുന്നതിനുള്ള ഉറപ്പുകളും." ഇതൊരു ഏകദേശ പരിഭാഷ മാത്രമാണ്. കൂടുതൽ കൃത്യമായ പരിഭാഷയ്ക്ക്, ഈ വാക്യത്തിന്റെ സന്ദർഭം (context) ആവശ്യമാണ്.

പ്രധാന ഡൊം (DOM) ടെസ്റ്റിംഗ് പ്രവർത്തനങ്ങൾ: `Harness::from_html`, `type_text`, `set_checked`, `click`, `submit`, കൂടാതെ ടെക്സ്റ്റ്/വാല്യു/ചെക്ക് ചെയ്ത അവസ്ഥ/നിലവാരം എന്നിവയുടെ അടിസ്ഥാനത്തിലുള്ള പരിശോധനയ്ക്കുള്ള സഹായ ഉപകരണങ്ങൾ.

നിശ്ചിത സമയ നിയന്ത്രണങ്ങൾ.

അസമന്വിത പ്രവർത്തനങ്ങളെ നിയന്ത്രിക്കാൻ ഒരു കൃത്രിമ ക്ലോക്ക് ഉപയോഗിക്കുക. `advance_time`, `advance_time_to`, `flush` എന്നീ ഫംഗ്‌ഷനുകൾ ഉപയോഗിച്ച് കൃത്യമായ സമയക്രമത്തിൽ മുന്നോട്ട് പോവുക, കൂടാതെ ടൈമർ പരിശോധനയ്ക്കുള്ള API-കളും ഉപയോഗിക്കുക.

മുൻകൂട്ടി തയ്യാറാക്കിയ അനുകരണങ്ങൾ.

പരിശോധനകൾക്ക് തടസ്സമില്ലാത്ത രീതിയിൽ നിലനിർത്താൻ, `set_fetch_mock`, `enqueue_confirm_response`, കൂടാതെ `enqueue_prompt_response` എന്നീ ഫംഗ്‌ഷനുകൾ ഉപയോഗിച്ച്, ഡാറ്റാ സ്വീകരിക്കാനുള്ള പ്രതികരണങ്ങളും, സംഭാഷണത്തിന്റെ ഫലങ്ങളും കൃത്രിമമായി ചേർക്കുക.

ട്രേസിംഗ് (പരിശോധന) & ഡയഗ്നോസ്റ്റിക്സ് (പിരിമുറയ്ക്കൽ).

പരിശോധനയിൽ പരാജയം സംഭവിക്കുമ്പോൾ, ട്രേസ് ലോഗുകൾ പ്രവർത്തനക്ഷമമാക്കി, സംഭവങ്ങൾ/ടൈമർ വിവരങ്ങൾ ശേഖരിക്കുക. ഇത് സംഭവങ്ങളുടെ ക്രമവും, ഡിഫോൾട്ട് പ്രവർത്തനങ്ങളുടെ രീതിയും മനസ്സിലാക്കാൻ സഹായിക്കും, അതുവഴി പിഴവുകൾ കണ്ടെത്താനാകും.

പ്രവർത്തന സമയ നിയന്ത്രണങ്ങൾ.

  • "eval" ഫംഗ്‌ഷൻ, സുരക്ഷയും സ്ഥിരതയും നിലനിർത്തുന്നതിന്റെ ഭാഗമായി, ഉദ്ദേശപൂർവ്വം പിന്തുണയ്ക്കുന്നില്ല.
  • ഈ സോഫ്റ്റ്‌വെയർ, യഥാർത്ഥ വെബ് ബ്രൗസറുകളുമായി 100% പൊരുത്തം നേടുന്നതിനുപകരം, പ്രായോഗികമായ ടെസ്റ്റിംഗ് സാഹചര്യങ്ങൾക്കാണ് രൂപകൽപ്പന ചെയ്തിരിക്കുന്നത്.
  • ബാഹ്യ നെറ്റ്‌വർക്ക് ഇൻപുട്ട്/ഔട്ട്പുട്ട് പ്രവർത്തനങ്ങൾ ഇതിന്റെ പരിധിയിൽ വരില്ല. ടെസ്റ്റിംഗ് ആവശ്യകതകൾ നിറവേറ്റുന്നതിന്, ഫെച്ച് മോക്ക് ഉപയോഗിക്കുക.

നിങ്ങളുടെ ടെസ്റ്റിംഗ് പ്രക്രിയയ്ക്ക് കൂടുതൽ ബ്രൗസർ എപിഐകൾ ആവശ്യമാണെങ്കിൽ, പരിധി (scope) ഒപ്പം മുൻഗണനാ ക്രമം (priority) എന്നിവയെക്കുറിച്ച് ചർച്ച ചെയ്യാൻ, ഒരു പുതിയ പ്രശ്നം (issue) തുറന്ന് അതിൽ ആവശ്യമായ വിവരങ്ങൾ നൽകുക.