புரோடிராக்டரிலிருந்து
இந்த பயிற்சி புரோடிராக்டரை பயன்படுத்துபவர்களுக்கும், தங்கள் ஃபிரேம்வொர்க்கை WebdriverIO-க்கு மாற்ற விரும்புபவர்களுக்கும் உதவும். Angular அணி அறிவித்த பிறகு புரோடிராக்டர் இனி ஆதரிக்கப்படாது என்பதால் இது தொடங்கப்பட்டது. WebdriverIO-வின் வடிவமைப்பு முடிவுகள் புரோடிராக்டரின் பல வடிவமைப்புகளால் பாதிக்கப்பட்டுள்ளது, இதனால்தான் இது மாற்றுவதற்கு மிகவும் நெருக்கமான ஃபிரேம்வொர்க் ஆகும். WebdriverIO அணி ஒவ்வொரு புரோடிராக்டர் பங்களிப்பாளரின் பணியையும் பாராட்டுகிறது மற்றும் இந்த பயிற்சி WebdriverIO-க்கு மாறுவதை எளிதாகவும் நேரடியாகவும் செய்யும் என்று நம்புகிறது.
இதற்கு முழுமையாக தானியங்கி செயல்முறை வேண்டும் என்று விரும்பினாலும், நிஜம் வேறுவிதமாக உள்ளது. ஒவ்வொருவரும் வெவ்வேறு அமைப்பைக் கொண்டுள்ளனர் மற்றும் புரோடிராக்டரை வெவ்வேறு வழிகளில் பயன்படுத்துகின்றனர். ஒவ்வொரு படியும் வழிகாட்டுதலாக கருதப்பட வேண்டும், படிப்படியான வழிமுறையாக அல்ல. இந்த மாற்றத்தில் உங்களுக்கு சிரமங்கள் இருந்தால், எங்களை தொடர்பு கொள்ள தயங்காதீர்கள்.
அமைப்பு
புரோடிராக்டர் மற்றும் WebdriverIO API உண்மையில் மிகவும் ஒத்திருக்கிறது, பெரும்பாலான கட்டளைகளை codemod மூலம் தானியங்கி முறையில் மறுஎழுத முடியும் அளவுக்கு.
codemod-ஐ நிறுவ, இயக்கவும்:
npm install jscodeshift @wdio/codemod
உத்தி
பல மாற்ற உத்திகள் உள்ளன. உங்கள் குழுவின் அளவு, சோதனை கோப்புகளின் எண்ணிக்கை மற்றும் மாற்றுவதற்கான அவசரம் ஆகியவற்றைப் பொறுத்து, நீங்கள் எல்லா சோதனைகளையும் ஒரே நேரத்தில் அல்லது கோப்பு வாரியாக மாற்ற முயற்சிக்கலாம். புரோடிராக்டர் Angular பதிப்பு 15 (2022 இறுதி) வரை தொடர்ந்து பராமரிக்கப்படும் என்பதால், உங்களுக்கு இன்னும் போதுமான நேரம் உள்ளது. நீங்கள் புரோடிராக்டர் மற்றும் WebdriverIO சோதனைகளை ஒரே நேரத்தில் இயக்கலாம் மற்றும் புதிய சோதனைகளை WebdriverIO-இல் எழுதத் தொடங்கலாம். உங்கள் நேர வரவு செலவுத் திட்டத்தைக் கொண்டு, நீங்கள் முக்கியமான சோதனை வழக்குகளை முதலில் மாற்றத் தொடங்கலாம் மற்றும் நீங்கள் நீக்கக்கூடிய சோதனைகள் வரை வேலை செய்யலாம்.
முதலில் கான்ஃபிக் கோப்பு
codemod-ஐ நிறுவிய பிறகு, நாம் முதல் கோப்பை மாற்றத் தொடங்கலாம். முதலில் WebdriverIO-வின் கட்டமைப்பு விருப்பங்களைப் பார்க்கவும். கான்ஃபிக் கோப்புகள் மிகவும் சிக்கலானதாக மாறலாம், அத்தியாவசிய பகுதிகளை மட்டும் மாற்றுவது அறிவுடையதாக இருக்கலாம் மற்றும் குறிப்பிட்ட விருப்பங்களைத் தேவைப்படும் சோதனைகள் மாற்றப்படும்போது மீதமுள்ளவற்றை எவ்வாறு சேர்க்கலாம் என்பதைப் பார்க்கலாம்.
முதல் மாற்றத்திற்கு, நாம் கான்ஃபிக் கோப்பை மட்டும் மாற்றுகிறோம் மற்றும் இயக்குகிறோம்:
npx jscodeshift -t ./node_modules/@wdio/codemod/protractor ./conf.ts
உங்கள் கான்ஃபிக் வேறுபெயரில் இருக்கலாம், இருப்பினும் கொள்கை ஒரே மாதிரியாக இருக்க வேண்டும்: முதலில் கான்ஃபிக்கை மாற்றத் தொடங்குங்கள்.
WebdriverIO சார்புகளை நிறுவவும்
அடுத்த படி ஒரு குறைந்தபட்ச WebdriverIO அமைப்பை உருவாக்குவதாகும், அதை நாம் ஒரு ஃபிரேம்வொர்க்கிலிருந்து மற்றொன்றுக்கு மாறும்போது உருவாக்கத் தொடங்குவோம். முதலில் WebdriverIO CLI-ஐ நிறுவுகிறோம்:
npm install --save-dev @wdio/cli
அடுத்து நாம் கட்டமைப்பு வழிகாட்டியை இயக்குகிறோம்:
npx wdio config
இது உங்களை சில கேள்விகளின் வழியாக அழைத்துச் செல்லும். இந்த மாற்ற திட்டத்திற்கு நீங்கள்:
- இயல்புநிலை தேர்வுகளைத் தேர்ந்தெடுக்கவும்
- தானாகவே உதாரண கோப்புகளை உருவாக்க வேண்டாம் என்று பரிந்துரைக்கிறோம்
- WebdriverIO கோப்புகளுக்கு வேறு கோப்புறையைத் தேர்ந்தெடுக்கவும்
- மற்றும் Jasmine-க்கு மேலே Mocha-வைத் தேர்ந்தெடுக்கவும்.
நீங்கள் முன்பு Jasmine உடன் புரோடிராக்டரைப் பயன்படுத்தியிருந்தாலும், Mocha சிறந்த மறுமுயற்சி வழிமுறைகளை வழங்குகிறது. தேர்வு உங்களுடையது!
சிறிய கேள்வித்தாளுக்குப் பிறகு, வழிகாட்டி தேவையான அனைத்து பேக்கேஜ்களையும் நிறுவி, அவற்றை உங்கள் package.json
-இல் சேமிக்கும்.
கான்ஃபிகரேஷன் கோப்பை மாற்றுதல்
conf.ts
-ஐ மாற்றியபின் மற்றும் புதிய wdio.conf.ts
இருக்கும்போது, ஒரு கான்ஃபிகிலிருந்து மற்றொரு கான்ஃபிக்குக் குறியீட்டை மாற்றும் நேரம் இப்போது வந்துவிட்டது. அனைத்து சோதனைகளும் இயங்க அத்தியாவசியமான குறியீட்டை மட்டும் மாற்றுவதை உறுதிப்படுத்தவும். எங்களுடையதில் நாங்கள் ஹூக் செயல்பாடு மற்றும் ஃபிரேம்வொர்க் நேர முடிவை மாற்றுகிறோம்.
இப்போது நாங்கள் எங்கள் wdio.conf.ts
கோப்புடன் மட்டுமே தொடர்வோம், எனவே அசல் புரோடிராக்டர் கான்ஃபிக்கில் எந்த மாற்றங்களும் தேவையில்லை. இரண்டு ஃபிரேம்வொர்க்குகளும் ஒன்றுக்கொன்று அடுத்து இயங்கக்கூடும் மற்றும் நாம் ஒரு கோப்புக்கு ஒரு கோப்பைப் பயன்படுத்தலாம்.
சோதனைக் கோப்பை மாற்றுதல்
முதல் சோதனைக் கோப்பை மாற்ற இப்போது நாம் தயாராக இருக்கிறோம். எளிதாகத் தொடங்க, 3-ஆம் தரப்பு பேக்கேஜ்கள் அல்லது PageObjects போன்ற பிற கோப்புகளுக்கு அதிக சார்புகள் இல்லாத ஒன்றுடன் தொடங்குவோம். எங்கள் உதாரணத்தில் மாற்ற வேண்டிய முதல் கோப்பு first-test.spec.ts
. முதலில் புதிய WebdriverIO கட்டமைப்பு எதிர்பார்க்கும் கோப்புறையை உருவாக்கி, பின்னர் அதை நகர்த்தவும்:
mv mkdir -p ./test/specs/
mv test-suites/first-test.spec.ts ./test/specs
இப்போது இந்தக் கோப்பை மாற்றுவோம்:
npx jscodeshift -t ./node_modules/@wdio/codemod/protractor ./test/specs/first-test.spec.ts
அவ்வளவுதான்! இந்தக் கோப்பு மிகவும் எளிமையானதாக இருப்பதால், நமக்கு கூடுதல் மாற்றங்கள் தேவையில்லை மற்றும் WebdriverIO-ஐ இயக்க முயற்சிக்கலாம்:
npx wdio run wdio.conf.ts
வாழ்த்துக்கள் 🥳 நீங்கள் முதல் கோப்பை வெற்றிகரமாக மாற்றிவிட்டீர்கள்!
அடுத்த படிகள்
இந்த புள்ளியிலிருந்து நீங்கள் சோதனைக்குச் சோதனை மற்றும் பேஜ் ஆப்ஜெக்டிற்கு பேஜ் ஆப்ஜெக்ட் மாற்றத் தொடர்வீர்கள். சில கோப்புகளுக்கு codemod பின்வரும் போன்ற பிழையுடன் தோல்வியடையலாம்:
ERR /path/to/project/test/testdata/failing_submit.js Transformation error (Error transforming /test/testdata/failing_submit.js:2)
Error transforming /test/testdata/failing_submit.js:2
> login_form.submit()
^
The command "submit" is not supported in WebdriverIO. We advise to use the click command to click on the submit button instead. For more information on this configuration, see https://webdriver.io/docs/api/element/click.
at /path/to/project/test/testdata/failing_submit.js:132:0
சில புரோடிராக்டர் கட்டளைகளுக்கு WebdriverIO-இல் மாற்று இல்லை. இந்த சந்தர்ப்பத்தில், codemod அதை எப்படி மறுசீரமைப்பது என்பதற்கான சில ஆலோசனையை உங்களுக்கு வழங்கும். நீங்கள் அத்தகைய பிழை செய்திகளை மிக அதிகமாகக் காண்கிறீர்கள் என்றால், பிரச்சினையை எழுப்பவும் மற்றும் குறிப்பிட்ட மாற்றத்தைச் சேர்க்க கோரிக்கை விடுக்கவும். codemod ஏற்கனவே புரோடிராக்டர் API-இன் பெரும்பகுதியை மாற்றுகிறது, ஆனால் மேம்பாடுகளுக்கு இன்னும் நிறைய இடம் உள்ளது.
முடிவுரை
இந்த பயிற்சி WebdriverIO-க்கு மாறும் செயல்முறையில் உங்களுக்கு சிறிது வழிகாட்டும் என்று நம்புகிறோம். சமூகம் பல்வேறு குழுக்களுடன் பல்வேறு நிறுவனங்களில் அதை சோதிக்கும் போது codemod-ஐ மேம்படுத்த தொடர்கிறது. உங்களுக்கு கருத்துக்கள் இருந்தால் பிரச்சினையை எழுப்ப அல்லது மாற்றச் செயல்முறையில் நீங்கள் சிரமப்பட்டால் விவாதம் தொடங்க தயங்காதீர்கள்.