Sunday, April 30, 2017

කොහොමද Selenium IDE එකෙන් Test Script එකක් Record කරන්නේ සහ Playback කරන්නේ(3 කොටස )


මන් කිව්වනේ අද තමයි වැඩ පටාාන් ගන්නේ කියලා..

මුලින්ම මන් කියලා දෙන්නම් එදා දාගත්ත Selenium IDE එකේ UI එකේ තියන ප්‍රධාන කොටස් මොනවද  කියලා.


  1.Base URL
                මෙතනට දාන්නේ අපිට Test කරන්න ඕන Web Site එකේ Address එක.  
  2.Test Case Panel
                 මෙතනින් පෙනන්නේ දැනට Open වෙලා තියෙන Test Case ටික.
  3.Log Panel
                 Test Case එක Execute කරනකොට එන Runtime Messages පෙන්නේ මේක ඇතුලේ.
  4. Editor 
          අපි Web Site එකට ගිහින් කරන ඔක්කොම Action ටික සටහන් වෙන්නේ මේ කොටුව ඇතුලේ. 

හරි අපි දැන් IDE එක Use කරලා Scrip එකක් ලියමු Run කරමු.මේකට මුලින්ම මම Selenium IDE එකෙන් කරන්න පුළුවන් වැඩ කොටස් දෙකකට බෙදනවා

1. Create Script By Recording
2. Create Script Manually

Create Script By Recording

ඔක්කොටම කලින් Test කරන්න Web Site එකක් තියෙන්න එපයි ,මන් එකට ගන්නේ http://www.phptravels.net/  මේ Site එක මේක Testing Purpose එකටම හදල තියෙන Web Site එකක්.

මේකෙදී මගේ Test Case එක වෙන්නේ http://www.phptravels.net/ Site එකට ගියාම ඒ Site එකේ Title එක PHPTRAVELS | Travel Technology Partner කියලා පෙන්නනවද බලන එකයි දකුණු පැත්තේ උඩම තියෙන My Account එකට ගහින් ලොගින් එකේ වැරදි Username එකක් සහ වැරදි Password එකක් Type කරලා Login එක Click කරාම


ඔය Error Notification  එක පෙන්නනවද කියලා බලන එකයි.මේ දෙකම වෙනවා නම් මගේ Test Case එක Pass කියලා මම Verify කරගන්නවා.

[Web site එකක Title එක මොකක්ද කියල ඒ Site එකට ගියාම ඒ Site එක Open වෙලා තියෙන Tab එකට Cursor එක අරන් ගියාම බලාගන්න පුළුවන්.]




හරි එහෙනම් දායක සභාව ලෑස්ති නේ, අපි වැඩේ  පටාාන් ගමු නෙහ්..
(මම මේක Steps වශයෙන් පැහැදිලි කරනවා තේරුම් ගන්න ලේසි වෙන්න ..සල්ලි තිබ්බට මොලේ වැඩුනේ නැති නිපුන් තත්සරල ට හෙම ඒත් අමාරු නිසා ඇදලත් පෙන්නනවා සමහර තැන් වල ඔන්න.)   

Step 01
          Firefox Browser එක Open කරගෙන Ctrl + Alt + S ගහලා Selenium IDE එකත් Firefox ඇතුලෙම Window එකක් විදිහට open කරගන්න

Step 02

            ඊලගට Base URL කියල තියෙන තැනට http://www.phptravels.net/ දීලා ඉස්සරහින් තියෙන රතුපාට Button එක Click කරලා Start Recording දෙන්න.(Record on උනා නම් ඒ රතුපාට Button එක වටේට නිල් පාට පොඩි කොටුවක් පේනවා) 


IDE එකෙන් කරන්න ඕන ඔච්චරයි දැනට..

Step 03
ඊළගට කරන්න ඕන IDE එක ඔහොමම තියලා Firefox Browser එකෙන් IDE එකේ Base URL එක විදිහට දුන්න Web Site එකටම යන එක. 

Step 04
හරි දැන් අපි ඉන්නේ http://www.phptravels.net Site එකේ මම කිව්වා මට මුලින්ම ඕන Web Site එකේ Title එක  PHPTRAVELS | Travel Technology Partner ද කියල Verify කර ගන්න එක කියල දැන් අපි ඒක කරමු.,


ඒක කරන්න http://www.phptravels.net Site එක ඇතුලත ඕනෑම තැනක  Right Click කරාම එන List එකේ යටම තියෙනවා Show All Available Commands කියල Command එකක් ඒකට ගියාම තියෙනවා අපිට දෙන්න පුළුවන් හැම Command එකක්ම ඒ Site එකේ ඔයා Right Click කරපු තැනට  අදාල වෙන , ඒ Commands වලින් මට ඕන දැන් Title එක Verify කරගන්න නිසා මම තෝරා ගන්නවා assertTitle HPTRAVELS | Travel Technology Partner කියන Command එක .



Right Click කරපු තැනට  අදාල වෙන කියල කිව්වේ මන්  අපි Right Click කලොත්  Site එකේ තියෙන Button එකක් හරි Text Field එකක හරි අපිට පෙන්නන්නේ ඒ Button එකක් හරි Text Field එකට හරි අදාල වෙන Commands.හැබැයි අපි කොහේ Right Click කරත් අපිට assertTitle HPTRAVELS | Travel Technology Partner  කියන එක පෙන්නනවා මොකද Title එක පෙන්නන Tab එක උඩ Right Click කරාම අපිට Show All Available Commands කියන එකට යන්න බැරි නිසා.

දැන් ටිකකට IDE එක අරගෙන බැලුවොත් පෙනෙයි මෙච්චර වෙලා කරපු හැම Action එකක්ම Record වෙලා තියෙනව කියලා මෙන්න මේ විදිහට.



ඊළගට මට ඕන උනේ වැරදි User Credentials දුන්නම Invalid Email Or Password කියන Text එක පෙන්නන එක.

ඒකත් මේ එක්කම Record කරමු.

Title එක verify කරාට පස්සේ My Account එකට ගිහින් Login Click කරලා Invalid UserName එකකුයි Invalid Password එකකුයි දුන්නම එන Error Alert එක කලින් වගේම Right Click කරලා Show All Available Commands ගිහින් assertText css = div.alert.alert-danger Invalid Email or Password Command එක තෝරලා දෙන්න.
(දායක සභාව Command එක ගැන බය වෙන්න එපා,ඒවා පස්සේ කියල දෙන්නම් )

දැන් ගහින් IDE එක බැලුවොත් ඒ කරපු Action ටික Record වෙලා තියෙන විදිහ බලාගන්න පුළුවන් .



හරි දැන් දැන් Record කරලා ඉවරයි මට ඕන උන Test Case එක දැන් Record Off කරලා IDE Window එකේ ඉදල Ctrl + S ගහලා අපි කරපු Actions වලට අදාල Script  එක Save කරගන්න පුළුවන් හැබැයි මේක Save වෙන්නේ .html File එකක් විදිහට.

මම කලින්ම කිව්වනේ Selenium IDE එකේ  Record & Playback කියල එකක් තියෙනවා කියලා දැන් Record කරන එක කරානේ, Playback කරන්න නම් කරන්න තියෙන්නේ පොඩි දෙයයි IDE එකේ Base URL එක ගහපු තැනට යටින් තියෙන පොඩි Bar එකේ Fast එක  Slow පැත්තට කරලා Play Current Test Case කියන Button එක Click කරන්න විතරමයි.


Test Case එක අපි කරනවා වගේම Play කරලා පෙන්නයි.අපි බලාපොරොතු උන විදිහටම Image එක සහ Error Message එක පෙන්නපු නිසා Test Case එකේ Status එක Pass කියලත් පෙන්නයි මෙන්න මේ විදිහට.



දැන් අපිට ඕන නම් අපි දුන්න Values (UserName, Password) වෙනස් කර කර Test Case එක නැවත Playback කරලා Test Case එක Pass වෙනවද Fail වෙනවද කියල බලන්න පුළුවන්.ඒක කරන්නේ අපිට වෙනස් කරන්න ඕන Command එක IDE එකේ Editor Panel එකෙන් තෝරාගෙන ඒ Command එක Click කරාම යට පෙන්නන Value කියන Text Box එකට අපිට ඕන value එක දෙන්න පුළුවන්.



මේ විදිහට Input Fields ගොඩක් තියෙන වෙලාවක (100,200) මේ වගේ එක පාරක් Test Case එක Record කරගත්තම අපිට පුළුවන් ඒ Input Fields වලට වෙනස වෙනස් Values දාල Test කරලා බලන්න .

වැඩ නෙහ්..?

හරි මේ ටික අතිරේක කරුණු ටිකක්....,

අපි ඉස්සල්ල කතා කරානේ Selenium Commands ගැන අන්න ඒ Commands ප්‍රදාන වශයෙන් කොටස් තුනකට බෙදන්න පුළුවන්. (මේ Commands වලට Selenese කියලත් කියනවා)

1.Action
මේ වර්ගයේ Commands කෙලින්ම සම්බන්ද වෙලා තියෙන්නේ Web Page එකක Elements එක්ක.

Elements කිව්වේ Text Box එකක් Button එකක් වගේ ඒවා එක්ක.Button එකක් Click කරන්න Text Box එකකට Value එකක් දාන්න වගේ ඒවා තමා Action වර්ගයේ Commands කියන්නේ.මම එහෙම එකක් අපු තැනකදී ඒක නැවත හදුන්වලා දෙන්නම්.

එතෙක් කට වහන් හිටු.     
2. Accessors
මේ Commands වලින් වෙන්නේ මොකක් හරි Value එකක් පස්සේ පාවිච්චියට ගන්නකම් Store  කරලා තියාගන්න එක.

EX: - මේ වර්ගයේ එකක් තමයි storeLocation කියන්නේ එකෙන් වෙන්නේ අපි දැන් ඉන්න Web Page එකේ URL එක Copy කරලා මොකක් හරි අපි දුන්න Variable එකකට Store කරගන්න එක.
 
3.Assertions
මේ වලින් බලන්නේ අපි Test එක කරනකොට Expect කරපු Condition එක සම්පුර්ණ වෙනවද නැද්ද කියන එක.

උදාහරණයක් විදිහට අපි Selenium IDE  එකෙන් කරපු Test එකේ අපි Condition එකක් විදිහට බැලුවා Invalid Username සහ Invalid Password  එකක් ගහල Login Button එක Click  කරාම Invalid Username and Password කියන Error Message  එක එනවද කියන එක. ඒකෙදි කරේ Assertion Command එකක් ඒ  තමයි assertText කියන Command එක.   

 මේ වර්ගය නැවතත් කොටස් තුනකට බෙදෙනෙවා.

·         Assert:-Test එකේ කොහේදී හරි “assert” Command එකක් Fail උනොතින් Test එක Fail වෙනවා.

·         Verify: - Test එකේ කොහේදී හරි “verify” Command එකක් Fail   උනොතින් ඒක Log එකක් විදිහට සටහන් වෙලා Test Execution එක Fail වෙන් නැතිව දිගටම සිද්ද වෙනවා.

·         WaitFor:- මේකෙදි වෙන්නේ WaitFor කියල දීලා තියෙන Condition එක Pass වෙනකම් ඊළගට තියෙන Command එක Execute කරන්නේ නැතිව ඉන්න එක.



(පස්සේ කියල දෙනවා කියපු එක )
අපිට Test Case එකක් Record කරනකොට Action, Accessors, Assertions කියන වර්ග තුනෙන් Assertions වල තියෙන Assert, Verify, WaitFor කියන Command වර්ග තුන තමයි බොහෝ විට ඕන වෙන්නේ.Action සහ Accessors අවශ්‍ය වෙන්නේ Selenium WebDriver එක Use කරලා Manually Script  එකක් ලියනකොට.

ඒ නිසා තමයි අපේ Test Case එකේ විදිහට Title එක Verify කරගන්න Show All Available Commands කියන එකට ගියාම කොටස් තුනකට බෙදලා Assert, Verify, WaitFor වර්ගයෙන් තියෙන ඒ Test Case එක කරන්න පුළුවන් වෙන හැම  Command එකක්ම පෙන්නුවේ.ඒ වගේ  සමහර වෙලාවට එතනට Action, Accessors, වර්ගයේ Commands එන්නත් බැරි කමක් නෑ .




හරි දැන් Create Script By Recording Part එක ඉවරයි, ඊළග Post එකෙන් කරන්නේ Create Script Manually Part එක. 








Tuesday, April 11, 2017

Selenium IDE කියන්නේ මොකක්ද? Selenium IDE එක Install කරගන්නේ කොහොමද? (2 කොටස)

පලවෙනි පොස්ට් එකට හොද Feedback එකක් තිබ්බා කියල මුලින්ම කියන්න ඕන.දායක සභාවේ මහත්වරුත් (නිපුන් ලට හෙම මේ කියන්නේ ) හොද කොමෙන්ට් දීලා තිබ්බා.තෑන්ක් යූ ඒ ඔක්කොටම.

අද කතා කරන්න යන්නේ Selenium Suite එකේ තියෙන එක Component එකක් වෙන Selenium Integrated Development Environment එක එහෙමත් නැත්තම් Selenium IDE එක ගැන.

මොකක්ද Selenium IDE එක කියන්නේ ?

මේක තමයි Selenium Suite එකේ තියෙන ඉගෙන ගන්න සහ පාවිච්චි කරන්න ලේසිම Tool එක. Tool එකක් කිව්වට මේක Firefox බ්‍රව්සර් එකට එන Extension එකක්.බොහෝ වෙලාවට මේ Selenium IDE එක හදුන්වන්නේ Prototyping Tool විදිහට.ඒ නිසා මේ පාවිච්චි කරලා Complex Test ලියන්න පුළුවන් කමක් නෑ.

මම කලින් කිව්වා වගේ Selenium Suite කියන්නේ Tools කිහිපයක  එකතුවක් ඒ නිසා එකේ ගොඩක් Developers ලත් ඉන්නවා ඒ අතරින් Shinya Kasatani කියන ජපන් ජාතිකයා තමයි මේ Selenium IDE එක නිර්මාණය කරලා තියෙන්නේ.ඔහු විසින් 2006 දී මේ කියන Selenium IDE Tool එක Selenium Project එකට ලබාදීලා තියෙනවා.



සරලවම කිව්වොතින් Selenium IDE එකෙන් පුළුවන් Test Case එකක් Record, Edit, සහ Debug කරන්න වගේම Test Case එකක් හෝ කිහිපයක් නැවත නැවත Execute කරන්න.මේකේ User Interface එකක් තියෙන නිසා කලින් කියපු වැඩ ටික ලේසියෙන්ම කරගන්න හැකියාව ලැබිලා තියෙනවා.Selenium IDE එකේ තියෙන සුවිශේෂී හැකියාවක් තමයි Record and Playback කියන්නේ.

Record and Playback ඒ මොකක්ද ඒ? 😳

ඒ කියන්නේ අපිට පුළුවන් මේ Tool එක පාවිච්චි කරලා අපි Website එකක කරන Action ටික (Login, Form Filling) Record කරගෙන නැවත Playback කරන්න එහෙම Playback කරනකොට අපිට ඕන නම් Input (User Name, Password වගේ ඒවා ) වෙනස් කරමින්  Web Application එක Test කිරීමේ හැකියාවකුත් තියෙනවා.

අපිට සිද්ධ උනොත් Input Fields 200 ක් වගේ තියෙන Web Application එකක Inputs මාරු කර කර බලන්න අපිට මේ Tool එක ගොඩක් ප්‍රයෝජනවත් වෙනවා.මොකද මේකෙදි අපිට එක පාරක් Test Case එක Record කරගෙන එකේ Inputs විතරක් මාරු  කර කර නැවත නැවත Test Case එක Play කිරීමේ හැකියවක් තියෙනවා.  

කතා කරා ඇති වැඩේට බහිමු, 😉

මම මුලින්ම කිව්වනේ Selenium IDE කියන්නේ Firefox Extension එකක් කියලා ඒ නිසා මුලින්ම Firefox Install කරගෙන ඉන්න ඕන.. (ඒක කරගන්න පුළුවන්නේ).

ඊ ලගට Firefox Browser එක Open කරලා මම මේ කියන ගාථාව කියන්න ඕන..

නෑ නෑ බන් ගාථා කිය කියා ඉන්න ඕන නෑ  මෙන්න මේ ලින්ක් එකට යන්න ඕන 😂


ඒ ගියාම මෙන්න මෙහෙම Window එකක් ඒවි 



ඔය Window එකේ Add to Firefox Click කරාම Selenium IDE එක Download වෙනවා ඊට පස්සේ එන

මේ Window එකේ Install Button එක Click කරාම Selenium IDE එක Firefox Browser එකට Install වෙනවා. හරියට උනා නම් Firefox Browser එක Restart කරන්න ඉල්ලයි Restart කරලා  
Ctrl + Alt + S Press කරාම 


මෙහෙම Window (Selenium IDE) එකක් Firefox Browser එක ඇතුලේ Display වෙනවා නම් වැඩේ ගොඩ.. 😇


ගොඩ කිව්වට ඊළගට තමයි වැඩ පටාාාන් ගන්නේ.ඊලග Post එකෙන් මන් කියන්න යන්නේ කොහොමද Selenium IDE එකෙන් Test Script එකක් Record කරන්නේ Playback කරන්නේ සහ Manual Script එකක් ලියන්නේ කොහොමද කියන එක.