හරි අද කරන්න යන්නේ මෙන්න මේ http://opensource.demo.orangehrmlive.com/ එකේ ලොගින්
එකට පොඩි test automation ස්ක්රිප්ට් එකක් ලියන්න
එකට පොඩි test automation ස්ක්රිප්ට් එකක් ලියන්න
අද ලියන ස්ක්රිප්ට් එක දැනට ලියන්න පුළුවන් උපරිමෙන්ම හොදට ලියන්න බලමු අපි
(අලුත්ම වැඩ කෑලි ටිකක් දාන්න යන්නේ Automatically Download Browser Drivers )
(අලුත්ම වැඩ කෑලි ටිකක් දාන්න යන්නේ Automatically Download Browser Drivers )
හරි මුලින්ම InteliJ IDEA open කරගන්න
හරි IDEA open උනාට පස්සේ
File → New → Project ගන්න
එතකොට එන මේ view එකෙන් Maven select කරලා Next කරන්න
ඊළගට එන්නේ මේ view එක එකේ GID එකයි AID එකයි කොටලා Next කරන්න
මම GID එක විදිහට දීලා තියෙන්නේ GID එක දෙන විදිහ ඒ කියන්නේ
com.companyname.projectname (ඔක්කොම සිම්පල් වලින් )
Ex:- ඔබ වැඩ කරන්නේ xyz කියලා company එකකට කියලා හිතපන්කෝ , ඒ xyz company එකේ තියෙන
project බරගනකින් උබ වැඩ කරන්නේ ohrmp කියන project එකේ නම් GID එක වෙන්නේ
project බරගනකින් උබ වැඩ කරන්නේ ohrmp කියන project එකේ නම් GID එක වෙන්නේ
com.xyz.ohrmp
එතකොට AID එක වෙන්නේ only project name ඒ කියන්නේ ohrmp විතරයි
මෙන්න මෙහම
එහම කරලා නෙක්ස්ට් කරන්න එතකොට එන view එකේ project name එක auto fill වෙලාම එයි එකේ
ඔක්කොම සිම්පල් වලින් එන්නේ project name එකේ පලවෙනි අකුර කැපිටල් කරාම ලයින් නේ,
ඒ හින්දා එක විතරක් කරලා ෆිනිෂ් කරන්න
ඔක්කොම සිම්පල් වලින් එන්නේ project name එකේ පලවෙනි අකුර කැපිටල් කරාම ලයින් නේ,
ඒ හින්දා එක විතරක් කරලා ෆිනිෂ් කරන්න
ෆිනිෂ් කරපු ගමන් ම එයි දකුණු පැත්තේ පහලින් මෙන්න මෙහම
ඔකේ Enable Auto - Import එක click කරන්න
මෙන්න මෙහම වෙන්න ඇති පෙන්නනවා ඇත්තේ දැන් view එක
ඔකේ මන් රතු පාටින් මාර්ක් කරලා තියෙන එක click කරලා පproject එක expand කරාම
මෙන්න මෙහම පෙන්නයි
මෙන්න මෙහම පෙන්නයි
හරි දැන් කෝඩ් එක ලියන්න ඕන කරන බඩු ටික ගන්න යන්නේ
ඔන්න හැම automation script එකකටම ඕනම කරන බඩු ලිස්ට් එක , කොහේ හරි ලියන් හිටියට පාඩු නෑ
- Selenium java
- Testng
- Webdriver Manager (අලුත්ම එක , මේක තමයි රසම එක )
Selenium Java කියල කොටලා search button එක click කරන්න
එකේ මන් ඔය Highlight කරලා තියෙන එක උඩින් click කරාම එයි මෙහම view එකක් ,
මේකේ පෙන්නන්නේ මෙච්චර කල් ආව selenium java versions
දැන් අපි කරන්න ඕන මේ ලිස්ට් එකේ තියෙන උඩම එක click කරලා (3.12.0) එකේ දෙන code එක copy
කරගන්න එක , copy කරන්න ඕන නෑ click කරපු ගමන්ම කෝඩ් එක උඩ ඒක automatically copy වෙනවා
මේකේ පෙන්නන්නේ මෙච්චර කල් ආව selenium java versions
දැන් අපි කරන්න ඕන මේ ලිස්ට් එකේ තියෙන උඩම එක click කරලා (3.12.0) එකේ දෙන code එක copy
කරගන්න එක , copy කරන්න ඕන නෑ click කරපු ගමන්ම කෝඩ් එක උඩ ඒක automatically copy වෙනවා
අපි open කරගත්ත project එකේ ඇති pom.xml කියලා file එකක්
ඒක ඩබල් ක්ලික් කරාම මෙහෙම එකක් intelij එකේ දකුණු පැත්තෙන් open වෙයි
ඒක ඩබල් ක්ලික් කරාම මෙහෙම එකක් intelij එකේ දකුණු පැත්තෙන් open වෙයි
ඔන්න මේ XMl ෆයිල් එකට තමයි අපි කොපි කරගත්ත කෝඩ් එක දාන්න ඕන
ඒක දන්නේ මෙන්න මෙහෙම
<version>1.0-SNAPSHOT</version>
එකට යටින් ඔයාලා open කරන්න ඕන
<dependencies > කියලා tag එකක් open කරපු ගමන්ම එකේ close ටැග් එක automatically වැදෙයි
අන්න ඒ open tag එකයි close tag එකයි අතර පොඩි space එකක් හදාගෙන
අර copy කරගත්ත එක එතනට paste කරන්න එතකොට මෙන්න මෙහම දර්ශනය වෙයි
අන්න ඒ open tag එකයි close tag එකයි අතර පොඩි space එකක් හදාගෙන
අර copy කරගත්ත එක එතනට paste කරන්න එතකොට මෙන්න මෙහම දර්ශනය වෙයි
එකත් අර විදිහටම එන ලිස්ට් එකෙන් පලවෙනි එක තෝරාගෙන
එකේ අලුත්ම version එක(6.14.3) අරගෙන එකේ තියෙන code කැල්ල copy කරගෙන ඇවිල්ලා
දාන්න අර කලින් එක දැම්ම තැනට පහලින් මෙන්න මෙහම
එකේ අලුත්ම version එක(6.14.3) අරගෙන එකේ තියෙන code කැල්ල copy කරගෙන ඇවිල්ලා
දාන්න අර කලින් එක දැම්ම තැනට පහලින් මෙන්න මෙහම
දැන් ලිස්ට් එකේ තිබ්බ අයිටම් දෙකක් හරි , ඊලග එකටත් ඒ විදිහටම කරන්න ඕන එකට කලින් ඒක ගැන පොඩ්ඩක් හදුන්වලා දෙන්නම්
ඉස්ස්සර අපි automation script එකක් ලියනකොට එක එක browser එකට අදාල වෙන driver එකක් download
කරගෙන project එකට දාන්න ඕන නැත්තම් අපිට බෑ ඒ අදාල browser එක open කරගන්න
කරගෙන project එකට දාන්න ඕන නැත්තම් අපිට බෑ ඒ අදාල browser එක open කරගන්න
(මම මේක ගැන කලින් පොස්ට් එකක පැහැදිලිවම කිව්වා )
එත් දැන් මේ අපි ගන්න ඉන්න අයිටම් එක හින්ද
අපිට එහම driver එකක් download කරලා project එකට දාගන්න ඕන වෙන්නේ නෑ ,
වැඩේ තවත් ලේසි වෙලා මේකෙන් වෙන්නේ අපි scrip එක ලියල run කරනකොට
අදාල driver එක download කරගන්නවා.
එක වෙන විදිහ බලමු පස්සේ දැන් ගහින් අර විදිහටම එක කඩෙන් ගන්න තියෙන්නේ
අපිට එහම driver එකක් download කරලා project එකට දාගන්න ඕන වෙන්නේ නෑ ,
වැඩේ තවත් ලේසි වෙලා මේකෙන් වෙන්නේ අපි scrip එක ලියල run කරනකොට
අදාල driver එක download කරගන්නවා.
එක වෙන විදිහ බලමු පස්සේ දැන් ගහින් අර විදිහටම එක කඩෙන් ගන්න තියෙන්නේ
ඔක්කොම අයිටම් ටික project එකට දාගත්තම මෙන්න මෙහම පෙන්නයි
හරි දැන්
මුලින්ම project view එකේ src එක expand කරලා එකේ test එක expand කරලා
එකේ තියෙන java එක right click කරලා හදන්න අලුත් class එකක් LoginTest කියලා
(main එකේ නැතුව test එකේ මොකද class එක හදන්නේ කියලා කලින් පොස්ට් එකක කියලා දුන්නා මන් )
එකේ තියෙන java එක right click කරලා හදන්න අලුත් class එකක් LoginTest කියලා
(main එකේ නැතුව test එකේ මොකද class එක හදන්නේ කියලා කලින් පොස්ට් එකක කියලා දුන්නා මන් )
හරි දැන් ඒ හදාගත්ත class එක ඇතුලේ මුලින්ම කරන්න ඕන Selenium Webdriver එකෙන් instance එකක් හදාගන්න එක ,
සරලව කිව්වොත් මේ selenium webdriver එකේ තමයි තියෙන්නේ අපිට ඕන කරන ඔක්කොම code ,
ඒ කියන්නේ අපිට browser එක open කරගන්න site එකකට යන්න මොකක් හරි type කරන්න මොකක් හරි මකන්න
මොකක් හරි click ඕන කරන ඔක්කොම code ටික තියෙන්නේ selenium webdriver එක ඇතුලේ
ඒ හින්ද තමයි අපිට ඕන වෙන්නේ මේකෙන් instance එකක් අපේ project එක අතිලේ හදාගන්න ,
එතකොට අපිට පුළුවන් ඒ instance එක හරහා අපිට ඕන වැඩ ටික කරගන්න
සරලව කිව්වොත් මේ selenium webdriver එකේ තමයි තියෙන්නේ අපිට ඕන කරන ඔක්කොම code ,
ඒ කියන්නේ අපිට browser එක open කරගන්න site එකකට යන්න මොකක් හරි type කරන්න මොකක් හරි මකන්න
මොකක් හරි click ඕන කරන ඔක්කොම code ටික තියෙන්නේ selenium webdriver එක ඇතුලේ
ඒ හින්ද තමයි අපිට ඕන වෙන්නේ මේකෙන් instance එකක් අපේ project එක අතිලේ හදාගන්න ,
එතකොට අපිට පුළුවන් ඒ instance එක හරහා අපිට ඕන වැඩ ටික කරගන්න
මම driver කියාලා instance එකක් හදාගන්නවා webdriver එකෙන් මෙන්න මෙහම
දැන් අපිට පුළුවන් driver කියන එක හරහා Webdriver එකේ තියෙන ඕනෑම code එකකට කතා කරලා වැඩක් කරගන්න (අපි කඩෙන් ගත්ත පලවෙනි බඩුවෙන් තමයි මෙන්න මේක කරගත්තේ )
හරි ඊළගට ඒ හදාගත්ත instance එක යටින් මම
@Test කියලා annotation එකක් ගහනව මේක එන්නේ අපි කඩෙන් ගත්ත දෙවෙනි බඩුවෙන් ,
මෙහම @Test කියල annotation එක දාපු ගමන්ම එකට යටින් අනිවාර්යෙන්ම method එකක් ලියන්න ඕන මෙන්න මෙහම
මෙහම @Test කියල annotation එක දාපු ගමන්ම එකට යටින් අනිවාර්යෙන්ම method එකක් ලියන්න ඕන මෙන්න මෙහම
මම මෙතන ලියල තියෙන method එක තමයි validLogin කියන method එක, මම ඒ method එක ඇතුලේ කරන්න ඉන්නේ අර මම මුලින්ම කිව්ව site එකට (http://opensource.demo.orangehrmlive.com/ )
ලොග් වෙන එක
ලොග් වෙන එක
හරි දැන් ඒ වැඩේ කරන්න යන්නේ මුලින්ම ඕන අපිට browser එක open කරගන්න නේ
අන්න එකට මම අර 3න වෙනි අයිටම් එක use කරනවා මෙන්න මෙහම
අන්න එකට මම අර 3න වෙනි අයිටම් එක use කරනවා මෙන්න මෙහම
දැක්කද මේකෙන් කියන්නේ chrome browser එක ලෑස්ති කරන්න කියලා open කරන්න, හරි සිම්පල් , ඕන firefox open කරගන්න නම් දාන්න ඕන
WebDriverManager.firefoxdriver().setup();
කියලා , internet explorer නම්
WebDriverManager.iedriver().setup();
Edge නම් (Windows 10)
WebDriverManager.edgedriver().setup();
හැබැයි එක පාරකට එකයි (එක බ්රොව්සෙර් එකයි open කරන්න පුළුවන් )
ඊලග කෝඩ් ලයින් එකෙන් මන් කරන්න හදන්නේ ලෑස්ති කරගත්ත browser එක open කරන එක
ඊට කලින් කඩෙන් ගෙන්වා බඩු වල පාවිච්චිය කොහොමද බලමු පොඩි ෆොටෝ කෑල්ලකින්
තේරුණා නේ දැන් ගේනව ඒවගෙන් අපතේ යමක් උනේ නෑ ඔක්කොම පාවිච්චි කර කියලා
හරි මන් කිව්වා ඊලග කෝඩ් ලයින් එකෙන් මන් කරන්න හදන්නේ browser එක open කරන එක කියලා
එක කරන්නේ මෙන්න මෙහම
එක කරන්නේ මෙන්න මෙහම
Selenium වල default browser එකක් open වෙන්නේ ටිකක් පොඩියට ඒ හින්දා ඒක ලොකු කරගන්න
පොඩි code line එකක් මන් මෙහම ලියනවා
පොඩි code line එකක් මන් මෙහම ලියනවා
දැක්කද මම අර කලින් කිව්වේ “සරලව කිව්වොත් මේ selenium webdriver එකේ තමයි තියෙන්නේ අපිට ඕන කරන
ඔක්කොම code ,ඒ කියන්නේ අපිට browser එක open කරගන්න site එකකට යන්න මොකක් හරි type කරන්න
මොකක් හරි මකන්න මොකක් හරි click ඕන කරන ඔක්කොම code ටික තියෙන්නේ selenium webdriver එක
ඇතුලේ ඒ හින්ද තමයි අපිට ඕන වෙන්නේ මේකෙන් instance එකක් අපේ project එක අතිලේ හදාගන්න ,
එතකොට අපිට පුළුවන් ඒ instance එක හරහා අපිට ඕන වැඩ ටික කරගන්න ”
ඔක්කොම code ,ඒ කියන්නේ අපිට browser එක open කරගන්න site එකකට යන්න මොකක් හරි type කරන්න
මොකක් හරි මකන්න මොකක් හරි click ඕන කරන ඔක්කොම code ටික තියෙන්නේ selenium webdriver එක
ඇතුලේ ඒ හින්ද තමයි අපිට ඕන වෙන්නේ මේකෙන් instance එකක් අපේ project එක අතිලේ හදාගන්න ,
එතකොට අපිට පුළුවන් ඒ instance එක හරහා අපිට ඕන වැඩ ටික කරගන්න ”
දැක්කද දැන් ඒ කිව්වා විදිහට හදාගත්ත driver කියන instance එක හරහා මම Webdriver එකට කව්වා
browser එක open කරන්න කියලා මුලින්, ඊට පස්සේ ඒ instance එක හරහාම කිව්වා මන් browser එක maximize
කරන්න කියලත් , ඔය Chromedriver() සහ manage().window().maximize() කියන කෝඩ් තියෙන්නේ
Webdriver එක ඇතුලේ , ඒවාට කතාකරන්න කෙලින්ම බෑ එකට හදාගත්ත නියෝජිතයා තමයි driver කියන්නේ ,
browser එක open කරන්න කියලා මුලින්, ඊට පස්සේ ඒ instance එක හරහාම කිව්වා මන් browser එක maximize
කරන්න කියලත් , ඔය Chromedriver() සහ manage().window().maximize() කියන කෝඩ් තියෙන්නේ
Webdriver එක ඇතුලේ , ඒවාට කතාකරන්න කෙලින්ම බෑ එකට හදාගත්ත නියෝජිතයා තමයි driver කියන්නේ ,
හරි ඊළගට browser එක open කරගෙන කට අරන් බලා ඉදල හරියන්නේ නැ නේ ,
ඊළගට ඕන මම අර මුලින්ම කිව්වා site එකට යන්න, එක කරන්නේ මෙන්න මෙහම
ඊළගට ඕන මම අර මුලින්ම කිව්වා site එකට යන්න, එක කරන්නේ මෙන්න මෙහම
driver.get("http://opensource.demo.orangehrmlive.com/");
දැනට තියෙන ටිකෙන් අපි script එක run කරාම ඔය වැඩ ටික හරියට උනා නම් අපි ඉන්නේ
මෙන්න මේ view එකේ ඒ කියන්නේ අදාල site එකට ඇවිල්ලා
මෙන්න මේ view එකේ ඒ කියන්නේ අදාල site එකට ඇවිල්ලා
දැන් ඊළගට කරන්න ඕන ඔය view එකේ තියෙන username field එකේ username එකයි password field
එකේ password එකයි type කරලා login button එක click කරන එක
එකේ password එකයි type කරලා login button එක click කරන එක
වැඩි කතා ඕන නැ browser එකෙන් http://opensource.demo.orangehrmlive.com/ site එකට manually ගියා ඉස්සලම ඕන කරන username ෆිඑල්ඩ් එක right click කරලා inspect element ගියා
එතකොට පෙන්නයි ඒ element එකේ ඔක්කොම විස්තර
එතකොට පෙන්නයි ඒ element එකේ ඔක්කොම විස්තර
(element catch කරන විදිහ මම කලින් පොස්ට් එකේ කියල තියෙන්නේ )
ඔන්න ඔය විදිහට , මම පහලින් දාන්නම් username ෆිඑල්ඩ් එකේ සම්පුර්ණ element එක
<input name="txtUsername" id="txtUsername" type="text" autocomplete="off">
මේ element එකේ තියෙනවා id="txtUsername" කියලා කැල්ලක් ඒ කියන්නේ අපිට පුළුවන්
මේ view එකේ නැත්තම් මේ webpage එකේ username field එක uniquely identify කරගන්න මෙන්න මේ
id="txtUsername" කියන එකෙන්, දැන් මට ඕන username field එකේ username එක type කරන්න නේ
අන්න එකට මම මේ id="txtUsername" කියන එකත් use කරගන්නවා මෙන්න මෙහම
මේ view එකේ නැත්තම් මේ webpage එකේ username field එක uniquely identify කරගන්න මෙන්න මේ
id="txtUsername" කියන එකෙන්, දැන් මට ඕන username field එකේ username එක type කරන්න නේ
අන්න එකට මම මේ id="txtUsername" කියන එකත් use කරගන්නවා මෙන්න මෙහම
driver.findElement(By.id("txtUsername")).sendKeys("Admin");
දැක්කනේ මම කිව්වා කලින් විදිහටම driver කියන instance එකට id එක txtUsername කියන field එක හොයාගෙන
එකේ Admin කියලා type කරන්න කියලා , හරිම සිම්පල්
එකේ Admin කියලා type කරන්න කියලා , හරිම සිම්පල්
ඊළගට ඕන password field එකේ password එක type කරන්න නේ එකත් මේ විදිහමයි
ඉස්සලම inspect element යනවා
<input name="txtPassword" id="txtPassword" type="password">
මේකෙත් තියෙනවා id="txtPassword"කියල අන්න එක use කරගෙන
password field එකේ password එක type කරන්නේ මෙන්න මෙහම
password field එකේ password එක type කරන්නේ මෙන්න මෙහම
driver.findElement(By.id("txtPassword")).sendKeys("admin");
හරි ඊළගට ඕන ලොගින් button එක click කරන්න නේ එකටත් මුලින්ම inspecr element යනවා
ගහින් ගන්නවා ඒ element එකේ විස්තර
ගහින් ගන්නවා ඒ element එකේ විස්තර
<input type="submit" name="Submit" class="button" id="btnLogin" value="LOGIN">
එකෙත් තියෙනවා id="btnLogin" එක use කරගෙන ලොගින් button එක click කරන්නේ මෙන්න මෙහම
driver.findElement(By.id("btnLogin")).click();
අන්තිමට
driver.close();
කියලා code line එකක් දාගන්න අන්තිමටම
මේකෙන් වෙන්නේ අදාල වැඩ ටික ඉවර වෙලා browser එක close වෙන එක
මේකෙන් වෙන්නේ අදාල වැඩ ටික ඉවර වෙලා browser එක close වෙන එක
ඔක්කොම හරියට ලිව්වා නම් මෙන්න මෙම තියෙන්න ඕන කේක් ගෙඩිය
Public void validLogin() කියන මෙතඩ් නේම් එක ඉස්සරහ තියෙන
කොළ පට ඉතලේ click කරලා scrip එක රන් කරන්න පුළුවන් එතකොට browser එක
automatically open වෙලා http://opensource.demo.orangehrmlive.com/ එකට ගහින් එකේ
automatically ම username එකයි password එකයි type කරලා ලොගින් button එකත් click කරලා
බ්රොව්සෙර් එක automatically ම close වෙලා යයි
කොළ පට ඉතලේ click කරලා scrip එක රන් කරන්න පුළුවන් එතකොට browser එක
automatically open වෙලා http://opensource.demo.orangehrmlive.com/ එකට ගහින් එකේ
automatically ම username එකයි password එකයි type කරලා ලොගින් button එකත් click කරලා
බ්රොව්සෙර් එක automatically ම close වෙලා යයි
මන් අනිත් browser වලටත් මේකම copy කරලා browser එක විතරක් කලින් කිව්වා විදිහට වෙනස් කරනවා
මෙන්න මෙහම
මෙන්න මෙහම
මන් රතුපාටින් කොටු කරලා තියෙන දේ හැමෝටම තේරෙනව වති
අපි උඩින් browser එක මාරු කරා නම් යට driver = new කියලා දෙන browser එකත්
අනිවාර්යෙන්ම ඒ මාරු කරපු browser එකම වෙන්න ඕන
අපි උඩින් browser එක මාරු කරා නම් යට driver = new කියලා දෙන browser එකත්
අනිවාර්යෙන්ම ඒ මාරු කරපු browser එකම වෙන්න ඕන
දැන් ඔක්කොම test තියෙනවා 4ක් මේ 4ම run කරන්න පුළුවන්
public class LoginTest කියන class name එකට වම පැත්තෙන් තියෙන කොලපාට රවුමයි ඉතලයයි click කරලා ,
එකක් ඉවර වෙලා අනිත් එක ලස්සනට රන් වෙයි
public class LoginTest කියන class name එකට වම පැත්තෙන් තියෙන කොලපාට රවුමයි ඉතලයයි click කරලා ,
එකක් ඉවර වෙලා අනිත් එක ලස්සනට රන් වෙයි
(මතක තියාගන්න ඔක්කොම browsers තමන්ගේ machine install වෙලා තියෙන්න ඕන )
අසා සිටිය ඔබ සැමට ස්තුති
==============================================
මන් කලින් ලිව්වා පොස්ට් වල තියෙන ගොඩක්ම ඒවා අයිත් පාරක් පැහැදිලි කරන එක තමයි මේ කරේ ,
හැබැයි අර අන්තිමට supermarket එකෙන් ගත්ත දේ ගැන නම් මම මිට කලින් කියලා නෑ
හැබැයි අර අන්තිමට supermarket එකෙන් ගත්ත දේ ගැන නම් මම මිට කලින් කියලා නෑ
ඊළගට මන් කරන්න ඉන්නේ code එක ලස්සනට manage කරන විදිහයි
Test script එකක් උනාම pass ද fail ද කියලා result එකක තියෙන්න එපයි අන්න ඒක ගන්න විදිහයි
Test script එකක් උනාම pass ද fail ද කියලා result එකක තියෙන්න එපයි අන්න ඒක ගන්න විදිහයි
එහෙනම් ජය ...
ස්තුති අය්යේ ගොඩාක්
ReplyDelete