diff --git a/.DS_Store b/.DS_Store index 9d34789..b4c7136 100644 Binary files a/.DS_Store and b/.DS_Store differ diff --git a/SeleniumDemoProject/.DS_Store b/DataDrivenFramework/.DS_Store similarity index 84% rename from SeleniumDemoProject/.DS_Store rename to DataDrivenFramework/.DS_Store index fd2dd2a..980cfa6 100644 Binary files a/SeleniumDemoProject/.DS_Store and b/DataDrivenFramework/.DS_Store differ diff --git a/DataDrivenFramework/src/.DS_Store b/DataDrivenFramework/src/.DS_Store new file mode 100644 index 0000000..5333154 Binary files /dev/null and b/DataDrivenFramework/src/.DS_Store differ diff --git a/DataDrivenFramework/src/test/.DS_Store b/DataDrivenFramework/src/test/.DS_Store new file mode 100644 index 0000000..5f4cb49 Binary files /dev/null and b/DataDrivenFramework/src/test/.DS_Store differ diff --git a/DataDrivenFrameworkV2/drivers/IEDriverServer.exe b/DataDrivenFrameworkV2/drivers/IEDriverServer.exe new file mode 100755 index 0000000..c8fa952 Binary files /dev/null and b/DataDrivenFrameworkV2/drivers/IEDriverServer.exe differ diff --git a/DataDrivenFrameworkV2/drivers/chromedriver b/DataDrivenFrameworkV2/drivers/chromedriver new file mode 100755 index 0000000..2ac561d Binary files /dev/null and b/DataDrivenFrameworkV2/drivers/chromedriver differ diff --git a/DataDrivenFrameworkV2/drivers/geckodriver b/DataDrivenFrameworkV2/drivers/geckodriver new file mode 100755 index 0000000..1564f31 Binary files /dev/null and b/DataDrivenFrameworkV2/drivers/geckodriver differ diff --git a/DataDrivenFrameworkV2/drivers/msedgedriver b/DataDrivenFrameworkV2/drivers/msedgedriver new file mode 100755 index 0000000..1997af7 Binary files /dev/null and b/DataDrivenFrameworkV2/drivers/msedgedriver differ diff --git a/DataDrivenFrameworkV2/drivers/operadriver b/DataDrivenFrameworkV2/drivers/operadriver new file mode 100755 index 0000000..7a5e75d Binary files /dev/null and b/DataDrivenFrameworkV2/drivers/operadriver differ diff --git a/DataDrivenFrameworkV2/drivers/sha512_sum b/DataDrivenFrameworkV2/drivers/sha512_sum new file mode 100644 index 0000000..6f8de08 --- /dev/null +++ b/DataDrivenFrameworkV2/drivers/sha512_sum @@ -0,0 +1 @@ +1222dc5afc879a815b1cdb841341d35f48c1e133eac6cf754c8e736a905a8be87939d6306b756c9e33278645bb80a900604e5b0895b30fe06da5c7f15de6989f operadriver \ No newline at end of file diff --git a/DataDrivenFrameworkV2/keywords b/DataDrivenFrameworkV2/keywords new file mode 100644 index 0000000..f22091b --- /dev/null +++ b/DataDrivenFrameworkV2/keywords @@ -0,0 +1,22 @@ +Generic Keywords: +openBrowser +click +type +select +getText +navigate +acceptAlert +dismissAlert + + +Validation Keywords: +validateTitle +validateText +validateElementPresent +validateElementClickable +validateElementDisplayed + + +Application Keywords: +login +selectDate \ No newline at end of file diff --git a/DataDrivenFrameworkV2/pom.xml b/DataDrivenFrameworkV2/pom.xml new file mode 100644 index 0000000..96866e1 --- /dev/null +++ b/DataDrivenFrameworkV2/pom.xml @@ -0,0 +1,124 @@ + + 4.0.0 + SeleniumDDF + DataDrivenFrameworkV2 + 0.0.1-SNAPSHOT + + + org.seleniumhq.selenium + selenium-java + 4.17.0 + + + + org.apache.poi + poi + 5.2.5 + + + + + org.apache.poi + poi-ooxml + 5.2.5 + + + + + org.apache.poi + poi-ooxml-schemas + 4.1.2 + + + + + org.dom4j + dom4j + 2.1.4 + + + + + org.apache.xmlbeans + xmlbeans + 5.2.0 + + + + + + com.googlecode.json-simple + json-simple + 1.1.1 + + + + + + org.testng + testng + 7.9.0 + test + + + + + commons-io + commons-io + 2.15.1 + + + + + com.aventstack + extentreports + 5.1.1 + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.13.0 + + + + org.apache.maven.plugins + maven-surefire-plugin + 3.2.5 + + + src/test/resources/PortfolioSuite.xml + src/test/resources/StockManage.xml + + + + + + org.codehaus.mojo + exec-maven-plugin + 3.2.0 + + + DataDriven_Execution + test + + java + + + + + runner.JSONRunner + test + + + + + + \ No newline at end of file diff --git a/DataDrivenFrameworkV2/reports/Sat-May-11-00_21_56-IST-2024/Index.html b/DataDrivenFrameworkV2/reports/Sat-May-11-00_21_56-IST-2024/Index.html new file mode 100644 index 0000000..2bc28fe --- /dev/null +++ b/DataDrivenFrameworkV2/reports/Sat-May-11-00_21_56-IST-2024/Index.html @@ -0,0 +1,586 @@ + + + + + + + +Data Driven Test Report + + + + + + +
+
+
+
+ +
+
+
+
+
+
+ + +
+
    +
  • +
    +

    Manage Portfolio Suite : Create Portfolio Method 1

    +

    + 12:21:56 am / 00:00:00:001 + Pass +

    +
    +
    +
    +
    +
    +
    Manage Portfolio Suite : Create Portfolio Method 1
    +05.11.2024 12:21:56 am +05.11.2024 12:21:56 am +00:00:00:001#test-id=1 + + + +
    +
    +
    + + + + + + + + + +
    StatusTimestampDetails
    Info12:21:56 am + Starting Test : Manage Portfolio Suite : Create Portfolio Method 1 +
    +
    +
    +
  • +
  • +
    +

    Manage Portfolio Suite : Create Portfolio Method 2

    +

    + 12:21:56 am / 00:02:14:972 + Fail +

    +
    +
    +
    +
    +
    +
    Manage Portfolio Suite : Create Portfolio Method 2
    +05.11.2024 12:21:56 am +05.11.2024 12:24:11 am +00:02:14:972#test-id=2 + + + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    StatusTimestampDetails
    Info12:21:56 am + Starting Test : Manage Portfolio Suite : Create Portfolio Method 2 +
    Info12:21:56 am + Login Application +
    Info12:21:56 am + Opening Browser -- chrome +
    Info12:22:29 am + Opening Web URL : https://money.rediff.com +
    Info12:23:06 am + Perform Click on Locatore : Sign In +
    Info12:23:19 am + Typing Text : anshulc55@rediffmail.com - In Locator : useremail +
    Info12:23:20 am + Typing Text : Test@12345 - In Locator : //*[@id='userpass'] +
    Info12:23:52 am + Perform Click on Locatore : loginsubmit +
    Info12:23:52 am + Creating Portfolio :: port100 +
    Info12:23:52 am + Perform Click on Locatore : createPortfolio +
    Info12:24:03 am + Clear the Default Text from : porfolioname_id +
    Info12:24:10 am + Typing Text : port100 - In Locator : create +
    Info12:24:10 am + Perform Click on Locatore : createPortfolioButton +
    Info12:24:11 am + Selected Value in DropDown : Anshul Portfolio 1 +
    Fail12:24:11 am + Entered port100 is not availble in Portfolio List +
    Fail12:24:11 am + Screenshot +
    Fail12:24:11 am + +
    +
    +
    +
  • +
  • +
    +

    Manage Portfolio Suite : Create Portfolio Method 3

    +

    + 12:24:11 am / 00:00:00:000 + Skip +

    +
    +
    +
    +
    +
    +
    Manage Portfolio Suite : Create Portfolio Method 3
    +05.11.2024 12:24:11 am +05.11.2024 12:24:11 am +00:00:00:000#test-id=3 + + + +
    +
    +
    + + + + + + + + + + + + + + +
    StatusTimestampDetails
    Info12:24:11 am + Starting Test : Manage Portfolio Suite : Create Portfolio Method 3 +
    Skip12:24:11 am + RunMode in Test Data is not True +
    +
    +
    +
  • +
  • +
    +

    Manage Portfolio Suite : Delete Portfolio Method 1

    +

    + 12:24:11 am / 00:00:00:000 + Pass +

    +
    +
    +
    +
    +
    +
    Manage Portfolio Suite : Delete Portfolio Method 1
    +05.11.2024 12:24:11 am +05.11.2024 12:24:11 am +00:00:00:000#test-id=4 + + + +
    +
    +
    + + + + + + + + + +
    StatusTimestampDetails
    Info12:24:11 am + Starting Test : Manage Portfolio Suite : Delete Portfolio Method 1 +
    +
    +
    +
  • +
  • +
    +

    Manage Portfolio Suite : Delete Portfolio Method 2

    +

    + 12:24:11 am / 00:00:00:000 + Skip +

    +
    +
    +
    +
    +
    +
    Manage Portfolio Suite : Delete Portfolio Method 2
    +05.11.2024 12:24:11 am +05.11.2024 12:24:11 am +00:00:00:000#test-id=5 + + + +
    +
    +
    + + + + + + + + + + + + + + +
    StatusTimestampDetails
    Info12:24:11 am + Starting Test : Manage Portfolio Suite : Delete Portfolio Method 2 +
    Skip12:24:11 am + RunMode in Test Data is not True +
    +
    +
    +
  • +
  • +
    +

    Manage Portfolio Suite : Delete Portfolio Method 3

    +

    + 12:24:11 am / 00:00:00:000 + Skip +

    +
    +
    +
    +
    +
    +
    Manage Portfolio Suite : Delete Portfolio Method 3
    +05.11.2024 12:24:11 am +05.11.2024 12:24:11 am +00:00:00:000#test-id=6 + + + +
    +
    +
    + + + + + + + + + + + + + + +
    StatusTimestampDetails
    Info12:24:11 am + Starting Test : Manage Portfolio Suite : Delete Portfolio Method 3 +
    Skip12:24:11 am + RunMode in Test Data is not True +
    +
    +
    +
  • +
+
+
+
+
+
+
+
+
+
+
+
+
+

Started

+

May 11, 2024 12:21:56 am

+
+
+
+
+

Ended

+

May 11, 2024 12:24:11 am

+
+
+
+
+

Tests Passed

+

2

+
+
+
+
+

Tests Failed

+

1

+
+
+
+
+
+
+
+
Tests
+
+
+
+ +
+
+ +
+
+
+
+
+
Log events
+
+
+
+ +
+
+ +
+
+
+
+

Timeline

+
+ +
+
+
+ +
+
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/DataDrivenFrameworkV2/reports/Sat-May-11-00_21_56-IST-2024/screenshots/2024-05-11_00-24-11.png b/DataDrivenFrameworkV2/reports/Sat-May-11-00_21_56-IST-2024/screenshots/2024-05-11_00-24-11.png new file mode 100644 index 0000000..b5dad77 Binary files /dev/null and b/DataDrivenFrameworkV2/reports/Sat-May-11-00_21_56-IST-2024/screenshots/2024-05-11_00-24-11.png differ diff --git a/DataDrivenFrameworkV2/reports/Sat-May-11-00_26_05-IST-2024/Index.html b/DataDrivenFrameworkV2/reports/Sat-May-11-00_26_05-IST-2024/Index.html new file mode 100644 index 0000000..362727e --- /dev/null +++ b/DataDrivenFrameworkV2/reports/Sat-May-11-00_26_05-IST-2024/Index.html @@ -0,0 +1,586 @@ + + + + + + + +Data Driven Test Report + + + + + + +
+
+
+
+ +
+
+
+
+
+
+ + +
+
    +
  • +
    +

    Manage Portfolio Suite : Create Portfolio Method 1

    +

    + 12:26:05 am / 00:00:00:001 + Pass +

    +
    +
    +
    +
    +
    +
    Manage Portfolio Suite : Create Portfolio Method 1
    +05.11.2024 12:26:05 am +05.11.2024 12:26:05 am +00:00:00:001#test-id=1 + + + +
    +
    +
    + + + + + + + + + +
    StatusTimestampDetails
    Info12:26:05 am + Starting Test : Manage Portfolio Suite : Create Portfolio Method 1 +
    +
    +
    +
  • +
  • +
    +

    Manage Portfolio Suite : Create Portfolio Method 2

    +

    + 12:26:05 am / 00:01:46:592 + Fail +

    +
    +
    +
    +
    +
    +
    Manage Portfolio Suite : Create Portfolio Method 2
    +05.11.2024 12:26:05 am +05.11.2024 12:27:52 am +00:01:46:592#test-id=2 + + + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    StatusTimestampDetails
    Info12:26:05 am + Starting Test : Manage Portfolio Suite : Create Portfolio Method 2 +
    Info12:26:05 am + Login Application +
    Info12:26:05 am + Opening Browser -- chrome +
    Info12:26:09 am + Opening Web URL : https://money.rediff.com +
    Info12:26:50 am + Perform Click on Locatore : Sign In +
    Info12:26:58 am + Typing Text : anshulc55@rediffmail.com - In Locator : useremail +
    Info12:27:00 am + Typing Text : Test@12345 - In Locator : //*[@id='userpass'] +
    Info12:27:33 am + Perform Click on Locatore : loginsubmit +
    Info12:27:33 am + Creating Portfolio :: port100 +
    Info12:27:33 am + Perform Click on Locatore : createPortfolio +
    Info12:27:51 am + Clear the Default Text from : porfolioname_id +
    Info12:27:51 am + Typing Text : port100 - In Locator : create +
    Info12:27:51 am + Perform Click on Locatore : createPortfolioButton +
    Info12:27:51 am + Selected Value in DropDown : Anshul Portfolio 1 +
    Fail12:27:51 am + Entered port100 is not availble in Portfolio List +
    Fail12:27:52 am + Screenshot +
    Fail12:27:52 am + +
    +
    +
    +
  • +
  • +
    +

    Manage Portfolio Suite : Create Portfolio Method 3

    +

    + 12:27:52 am / 00:00:00:000 + Skip +

    +
    +
    +
    +
    +
    +
    Manage Portfolio Suite : Create Portfolio Method 3
    +05.11.2024 12:27:52 am +05.11.2024 12:27:52 am +00:00:00:000#test-id=3 + + + +
    +
    +
    + + + + + + + + + + + + + + +
    StatusTimestampDetails
    Info12:27:52 am + Starting Test : Manage Portfolio Suite : Create Portfolio Method 3 +
    Skip12:27:52 am + RunMode in Test Data is not True +
    +
    +
    +
  • +
  • +
    +

    Manage Portfolio Suite : Delete Portfolio Method 1

    +

    + 12:27:52 am / 00:00:00:000 + Pass +

    +
    +
    +
    +
    +
    +
    Manage Portfolio Suite : Delete Portfolio Method 1
    +05.11.2024 12:27:52 am +05.11.2024 12:27:52 am +00:00:00:000#test-id=4 + + + +
    +
    +
    + + + + + + + + + +
    StatusTimestampDetails
    Info12:27:52 am + Starting Test : Manage Portfolio Suite : Delete Portfolio Method 1 +
    +
    +
    +
  • +
  • +
    +

    Manage Portfolio Suite : Delete Portfolio Method 2

    +

    + 12:27:52 am / 00:00:00:000 + Skip +

    +
    +
    +
    +
    +
    +
    Manage Portfolio Suite : Delete Portfolio Method 2
    +05.11.2024 12:27:52 am +05.11.2024 12:27:52 am +00:00:00:000#test-id=5 + + + +
    +
    +
    + + + + + + + + + + + + + + +
    StatusTimestampDetails
    Info12:27:52 am + Starting Test : Manage Portfolio Suite : Delete Portfolio Method 2 +
    Skip12:27:52 am + RunMode in Test Data is not True +
    +
    +
    +
  • +
  • +
    +

    Manage Portfolio Suite : Delete Portfolio Method 3

    +

    + 12:27:52 am / 00:00:00:000 + Skip +

    +
    +
    +
    +
    +
    +
    Manage Portfolio Suite : Delete Portfolio Method 3
    +05.11.2024 12:27:52 am +05.11.2024 12:27:52 am +00:00:00:000#test-id=6 + + + +
    +
    +
    + + + + + + + + + + + + + + +
    StatusTimestampDetails
    Info12:27:52 am + Starting Test : Manage Portfolio Suite : Delete Portfolio Method 3 +
    Skip12:27:52 am + RunMode in Test Data is not True +
    +
    +
    +
  • +
+
+
+
+
+
+
+
+
+
+
+
+
+

Started

+

May 11, 2024 12:26:05 am

+
+
+
+
+

Ended

+

May 11, 2024 12:27:52 am

+
+
+
+
+

Tests Passed

+

2

+
+
+
+
+

Tests Failed

+

1

+
+
+
+
+
+
+
+
Tests
+
+
+
+ +
+
+ +
+
+
+
+
+
Log events
+
+
+
+ +
+
+ +
+
+
+
+

Timeline

+
+ +
+
+
+ +
+
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/DataDrivenFrameworkV2/reports/Sat-May-11-00_26_05-IST-2024/screenshots/2024-05-11_00-27-51.png b/DataDrivenFrameworkV2/reports/Sat-May-11-00_26_05-IST-2024/screenshots/2024-05-11_00-27-51.png new file mode 100644 index 0000000..1b1b22c Binary files /dev/null and b/DataDrivenFrameworkV2/reports/Sat-May-11-00_26_05-IST-2024/screenshots/2024-05-11_00-27-51.png differ diff --git a/DataDrivenFrameworkV2/reports/Sat-May-11-00_29_03-IST-2024/Index.html b/DataDrivenFrameworkV2/reports/Sat-May-11-00_29_03-IST-2024/Index.html new file mode 100644 index 0000000..9e79104 --- /dev/null +++ b/DataDrivenFrameworkV2/reports/Sat-May-11-00_29_03-IST-2024/Index.html @@ -0,0 +1,564 @@ + + + + + + + +Data Driven Test Report + + + + + + +
+
+
+
+ +
+
+
+
+
+
+ + +
+
    +
  • +
    +

    Manage Portfolio Suite : Create Portfolio Method 1

    +

    + 12:29:03 am / 00:00:00:001 + Pass +

    +
    +
    +
    +
    +
    +
    Manage Portfolio Suite : Create Portfolio Method 1
    +05.11.2024 12:29:03 am +05.11.2024 12:29:03 am +00:00:00:001#test-id=1 + + + +
    +
    +
    + + + + + + + + + +
    StatusTimestampDetails
    Info12:29:03 am + Starting Test : Manage Portfolio Suite : Create Portfolio Method 1 +
    +
    +
    +
  • +
  • +
    +

    Manage Portfolio Suite : Create Portfolio Method 2

    +

    + 12:29:03 am / 00:01:47:974 + Pass +

    +
    +
    +
    +
    +
    +
    Manage Portfolio Suite : Create Portfolio Method 2
    +05.11.2024 12:29:03 am +05.11.2024 12:30:51 am +00:01:47:974#test-id=2 + + + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    StatusTimestampDetails
    Info12:29:03 am + Starting Test : Manage Portfolio Suite : Create Portfolio Method 2 +
    Info12:29:03 am + Login Application +
    Info12:29:03 am + Opening Browser -- chrome +
    Info12:29:07 am + Opening Web URL : https://money.rediff.com +
    Info12:29:45 am + Perform Click on Locatore : Sign In +
    Info12:30:00 am + Typing Text : anshulc55@rediffmail.com - In Locator : useremail +
    Info12:30:01 am + Typing Text : Test@12345 - In Locator : //*[@id='userpass'] +
    Info12:30:32 am + Perform Click on Locatore : loginsubmit +
    Info12:30:32 am + Creating Portfolio :: AnshulTestExcel +
    Info12:30:32 am + Perform Click on Locatore : createPortfolio +
    Info12:30:46 am + Clear the Default Text from : porfolioname_id +
    Info12:30:47 am + Typing Text : AnshulTestExcel - In Locator : create +
    Info12:30:47 am + Perform Click on Locatore : createPortfolioButton +
    Info12:30:51 am + Selected Value in DropDown : AnshulTestExcel +
    +
    +
    +
  • +
  • +
    +

    Manage Portfolio Suite : Create Portfolio Method 3

    +

    + 12:30:51 am / 00:00:00:000 + Skip +

    +
    +
    +
    +
    +
    +
    Manage Portfolio Suite : Create Portfolio Method 3
    +05.11.2024 12:30:51 am +05.11.2024 12:30:51 am +00:00:00:000#test-id=3 + + + +
    +
    +
    + + + + + + + + + + + + + + +
    StatusTimestampDetails
    Info12:30:51 am + Starting Test : Manage Portfolio Suite : Create Portfolio Method 3 +
    Skip12:30:51 am + RunMode in Test Data is not True +
    +
    +
    +
  • +
  • +
    +

    Manage Portfolio Suite : Delete Portfolio Method 1

    +

    + 12:30:51 am / 00:00:00:001 + Pass +

    +
    +
    +
    +
    +
    +
    Manage Portfolio Suite : Delete Portfolio Method 1
    +05.11.2024 12:30:51 am +05.11.2024 12:30:51 am +00:00:00:001#test-id=4 + + + +
    +
    +
    + + + + + + + + + +
    StatusTimestampDetails
    Info12:30:51 am + Starting Test : Manage Portfolio Suite : Delete Portfolio Method 1 +
    +
    +
    +
  • +
  • +
    +

    Manage Portfolio Suite : Delete Portfolio Method 2

    +

    + 12:30:51 am / 00:00:00:000 + Skip +

    +
    +
    +
    +
    +
    +
    Manage Portfolio Suite : Delete Portfolio Method 2
    +05.11.2024 12:30:51 am +05.11.2024 12:30:51 am +00:00:00:000#test-id=5 + + + +
    +
    +
    + + + + + + + + + + + + + + +
    StatusTimestampDetails
    Info12:30:51 am + Starting Test : Manage Portfolio Suite : Delete Portfolio Method 2 +
    Skip12:30:51 am + RunMode in Test Data is not True +
    +
    +
    +
  • +
  • +
    +

    Manage Portfolio Suite : Delete Portfolio Method 3

    +

    + 12:30:51 am / 00:00:00:000 + Skip +

    +
    +
    +
    +
    +
    +
    Manage Portfolio Suite : Delete Portfolio Method 3
    +05.11.2024 12:30:51 am +05.11.2024 12:30:51 am +00:00:00:000#test-id=6 + + + +
    +
    +
    + + + + + + + + + + + + + + +
    StatusTimestampDetails
    Info12:30:51 am + Starting Test : Manage Portfolio Suite : Delete Portfolio Method 3 +
    Skip12:30:51 am + RunMode in Test Data is not True +
    +
    +
    +
  • +
+
+
+
+
+
+
+
+
+
+
+
+
+

Started

+

May 11, 2024 12:29:03 am

+
+
+
+
+

Ended

+

May 11, 2024 12:30:51 am

+
+
+
+
+

Tests Passed

+

3

+
+
+
+
+

Tests Failed

+

0

+
+
+
+
+
+
+
+
Tests
+
+
+
+ +
+
+ +
+
+
+
+
+
Log events
+
+
+
+ +
+
+ +
+
+
+
+

Timeline

+
+ +
+
+
+ +
+
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/DataDrivenFrameworkV2/src/main/java/keywords/ApplicationKeywords.java b/DataDrivenFrameworkV2/src/main/java/keywords/ApplicationKeywords.java new file mode 100644 index 0000000..5a192be --- /dev/null +++ b/DataDrivenFrameworkV2/src/main/java/keywords/ApplicationKeywords.java @@ -0,0 +1,124 @@ +package keywords; + +import java.io.FileInputStream; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.List; +import java.util.Properties; + +import org.openqa.selenium.By; +import org.openqa.selenium.WebElement; +import org.testng.asserts.SoftAssert; + +public class ApplicationKeywords extends ValidationKeywords { + + public ApplicationKeywords() { + prop = new Properties(); + try { + FileInputStream fs = new FileInputStream( + System.getProperty("user.dir") + "/src/test/resources/Project.properties"); + prop.load(fs); + } catch (Exception e) { + e.printStackTrace(); + } + + softAssert = new SoftAssert(); + } + + public void goToBuySell(String companyName) { + int rowNum = getRowNumWithCellData("stockTable_id", companyName); + + if (rowNum == -1) { + logError("Stock not present in list"); + } + + driver.findElement(By.cssSelector("table#stock > tbody > tr:nth-child(" + rowNum + ") >td:nth-child(1)")).click(); + driver.findElement(By.cssSelector("table#stock > tbody > tr:nth-child(" + rowNum + ") input.buySell")).click(); + waitforWebPageToLoad(); + } + + + public int findCurrentStockQuantity(String companyName) { + int rowNum = getRowNumWithCellData("stockTable_id", companyName); + + if (rowNum == -1) { + logError("Stock Quantity is 0 as given Stock - " + companyName + " is not present in Stock List"); + return 0; + } + + String quantity = driver.findElement(By.cssSelector("table#stock > tbody > tr:nth-child(" + rowNum + ") >td:nth-child(4)")).getText(); + logInfo(companyName + " :: Stock quality is -- " + quantity); + + return Integer.parseInt(quantity); + + } + + public void openTrasactionHistory(String companyName) { + int rowNum = getRowNumWithCellData("stockTable_id", companyName); + + if (rowNum == -1) { + logError("Stock not present in list"); + } + + driver.findElement(By.cssSelector("table#stock > tbody > tr:nth-child(" + rowNum + ") >td:nth-child(1)")).click(); + driver.findElement(By.cssSelector("table#stock > tbody > tr:nth-child(" + rowNum + ") input.equityTransaction")).click(); + waitforWebPageToLoad(); + } + + public int getRowNumWithCellData(String locatorKey, String data) { + + WebElement table = getElement(locatorKey); + List rows = table.findElements(By.tagName("tr")); + + for (int rNum = 0; rNum < rows.size(); rNum++) { + WebElement row = rows.get(rNum); + List cells = row.findElements(By.tagName("td")); + for (int cNum = 0; cNum < cells.size(); cNum++) { + WebElement cell = cells.get(cNum); + if (!cell.getText().trim().equals("")) + System.out.println("Cell Data :: " + cell.getText()); + if (cell.getText().contains(data)) + return (rNum); + } + } + return -1; // data is not found + } + + public void selectDateFromCalendar(String date) { + logInfo("Selecting the Date :: " + date); + + try { + //Date currentDate = new Date(); // dd-mm-yyyy + SimpleDateFormat dFormat = new SimpleDateFormat("dd-MM-yyyy"); + Date dateToSelect = dFormat.parse(date); + + String day = new SimpleDateFormat("d").format(dateToSelect); + String month = new SimpleDateFormat("MMMM").format(dateToSelect); + String year = new SimpleDateFormat("yyyy").format(dateToSelect); + + String monthYearToBeSelected = month + " " + year; + + String monthYearDisplayed = getElement("monthyear_css").getText(); + + while (!monthYearToBeSelected.equals(monthYearDisplayed)) { + click("datebackButoon_xpath"); + monthYearDisplayed = getElement("monthyear_css").getText(); + } + + driver.findElement(By.xpath("//td[text()='" + day + "']")).click(); + + } catch (Exception e) { + logError(e.getMessage()); + e.printStackTrace(); + } + + } + + public void login() { + + } + + public void selectDate() { + + } +} diff --git a/DataDrivenFrameworkV2/src/main/java/keywords/GenericKeywords.java b/DataDrivenFrameworkV2/src/main/java/keywords/GenericKeywords.java new file mode 100644 index 0000000..f2164ba --- /dev/null +++ b/DataDrivenFrameworkV2/src/main/java/keywords/GenericKeywords.java @@ -0,0 +1,350 @@ +package keywords; + +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.time.Duration; +import java.util.Date; +import java.util.List; +import java.util.Properties; +import java.util.Scanner; +import org.apache.commons.io.FileUtils; +import org.openqa.selenium.By; +import org.openqa.selenium.JavascriptExecutor; +import org.openqa.selenium.Keys; +import org.openqa.selenium.OutputType; +import org.openqa.selenium.TakesScreenshot; +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.chrome.ChromeDriver; +import org.openqa.selenium.chrome.ChromeOptions; +import org.openqa.selenium.edge.EdgeDriver; +import org.openqa.selenium.firefox.FirefoxDriver; +import org.openqa.selenium.firefox.FirefoxOptions; +import org.openqa.selenium.firefox.FirefoxProfile; +import org.openqa.selenium.firefox.ProfilesIni; +import org.openqa.selenium.safari.SafariDriver; +import org.openqa.selenium.support.ui.ExpectedConditions; +import org.openqa.selenium.support.ui.Select; +import org.openqa.selenium.support.ui.WebDriverWait; +import org.testng.Reporter; +import org.testng.asserts.SoftAssert; +import com.aventstack.extentreports.ExtentTest; +import com.aventstack.extentreports.Status; +import com.aventstack.extentreports.markuputils.ExtentColor; +import com.aventstack.extentreports.markuputils.MarkupHelper; +import reports.ExtentManager; + +public class GenericKeywords { + public WebDriver driver; + public Properties prop; + public ExtentTest test; + public SoftAssert softAssert; + + // Acceptable Failures, Critical Failures, Unexpected Failures + + public void openBrowser(String browserKey) { + String browserName = prop.getProperty(browserKey); + logInfo("Opening Browser -- " + browserName); + if (browserName.equalsIgnoreCase("chrome")) { + System.setProperty("webdriver.chrome.driver", System.getProperty("user.dir") + "/drivers/chromedriver"); + ChromeOptions options = new ChromeOptions(); + options.addArguments("--start-maximized", "--disable-infobars"); + options.addArguments("--disable-extensions"); + //options.addArguments("--incognito"); + options.addArguments("--disable-notifications"); + //options.addArguments("ignore-certificate-errors"); + + driver = new ChromeDriver(options); + } else if (browserName.equalsIgnoreCase("firefox")) { + System.setProperty("webdriver.chrome.driver", System.getProperty("user.dir") + "drivers/geckodriver"); + FirefoxOptions options = new FirefoxOptions(); + ProfilesIni profiles = new ProfilesIni(); + FirefoxProfile ffprofile = profiles.getProfile("TestUser"); + ffprofile.setPreference("dom.webnotifications.enabled", false); + ffprofile.setAcceptUntrustedCertificates(true); + ffprofile.setAssumeUntrustedCertificateIssuer(false); + options.setProfile(ffprofile); + driver = new FirefoxDriver(options); + } else if (browserName.equalsIgnoreCase("edge")) { + System.setProperty("webdriver.chrome.driver", System.getProperty("user.dir") + "drivers/msedgedriver"); + driver = new EdgeDriver(); + } else if (browserName.equalsIgnoreCase("safari")) { + driver = new SafariDriver(); + } else { + System.setProperty("webdriver.chrome.driver", System.getProperty("user.dir") + "drivers/chromedriver"); + driver = new ChromeDriver(); + } + + driver.manage().window().maximize(); + driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(30)); + } + + public void setReport(ExtentTest test) { + this.test = test; + } + + public void reportFailure(String msg, boolean isCriticalFailure) { + logError(msg); + takeScreenShot(); + softAssert.fail(msg); + + if (isCriticalFailure) { + Reporter.getCurrentTestResult().getTestContext().setAttribute("isCriticalFailure", "true"); + reportAll(); + } + } + + public void reportFailure(String msg) { + // logError(msg); + // softAssert.fail(msg); + reportFailure(msg, false); + } + + public void reportAll() { + softAssert.assertAll(); + } + + public void takeScreenShot() { + // File Name of Screenshot + Date currentDate = new Date(); + + // Format the date and time + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd_HH-mm-ss"); + String formattedDate = dateFormat.format(currentDate); + + String screenshotFile = formattedDate + ".png"; + + // take screenshot + File srcFile = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE); + + try { + FileUtils.copyFile(srcFile, new File(ExtentManager.screenShotPath + '/' + screenshotFile)); + + // put screenshot file in Extent reports + // test.log(Status.INFO, "Screenshot -- " + // + test.addScreenCaptureFromPath(ExtentManager.screenShotPath + '/' + + // screenshotFile)); + + test.log(Status.FAIL, MarkupHelper.createLabel("Screenshot", ExtentColor.GREEN)); + test.log(Status.FAIL, + ""); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + } + + public void openURL(String URLKey) { + logInfo("Opening Web URL : " + prop.getProperty(URLKey)); + driver.get(prop.getProperty(URLKey)); + } + + public void click(String locatorKey) { + logInfo("Perform Click on Locatore : " + prop.getProperty(locatorKey)); + getElement(locatorKey).click(); + // driver.findElement(By.linkText(prop.getProperty(locatorKey))).click(); + } + + public void clickEnterKey(String locatorKey) { + logInfo("Pressing Enter Key"); + getElement(locatorKey).sendKeys(Keys.ENTER); + } + + public void clickButton(String locatorKey) { + logInfo("Perform Click on Locatore : " + prop.getProperty(locatorKey)); + getElement(locatorKey).click(); + } + + public void type(String locatorKey, String value) { + logInfo("Typing Text : " + value + " - In Locator : " + prop.getProperty(locatorKey)); + getElement(locatorKey).sendKeys(value); + } + + public void selectByVisibleText(String locatorKey, String value) { + logInfo("Selecting Portfolio :: " + value); + Select dropDown = new Select(getElement(locatorKey)); + dropDown.selectByVisibleText(value); + + } + + public void acceptAlert() { + logInfo("Accepting the Alert"); + + WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(60)); + wait.until(ExpectedConditions.alertIsPresent()); + + driver.switchTo().alert().accept(); + logInfo("Accepted the Alert Successfully"); + } + + public void enterCaptcha(String locatorKey) throws InterruptedException { + logInfo("Given Captcha Locator : " + prop.getProperty(locatorKey)); + try (Scanner scanner = new Scanner(System.in)) { + System.out.print("Enter Captcha to fill in the text box: "); + String inputText = scanner.nextLine(); + + getElement(locatorKey).sendKeys(inputText); + } + Thread.sleep(3000); + } + + public WebElement getElement(String locatorKey) { + +// // Element is present +// if (!isElementPresent(locatorKey)) { +// // Report Error +// System.out.println("Element is not Present : " + locatorKey); +// } +// +// // Element is visible +// if (!isElementVisible(locatorKey)) { +// // Report Error +// System.out.println("Element is not Visible : " + locatorKey); +// } + + // Create WebElement and Return WebElement + WebElement element = driver.findElement(getLocator(locatorKey)); + return element; + } + + public List getElements(String locatorKey) { + + // Create WebElement and Return WebElement + List elements = driver.findElements(getLocator(locatorKey)); + return elements; + } + + public boolean isElementPresent(String locatorKey) { + WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(10)); + try { + wait.until(ExpectedConditions.presenceOfElementLocated(getLocator(locatorKey))); + } catch (Exception e) { + reportFailure("Unable to locate Element with Locator : " + getLocator(locatorKey)); + reportFailure(e.getMessage()); + e.printStackTrace(); + return false; + } + return true; + } + + public boolean isElementVisible(String locatorKey) { + WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(10)); + try { + wait.until(ExpectedConditions.visibilityOfElementLocated(getLocator(locatorKey))); + } catch (Exception e) { + reportFailure(e.getMessage()); + e.printStackTrace(); + return false; + } + return true; + } + + public By getLocator(String locatorkey) { + By by = null; + + if (locatorkey.endsWith("_id")) + by = By.id(prop.getProperty(locatorkey)); + else if (locatorkey.endsWith("_xpath")) + by = By.xpath(prop.getProperty(locatorkey)); + else if (locatorkey.endsWith("_css")) + by = By.cssSelector(prop.getProperty(locatorkey)); + else if (locatorkey.endsWith("_linkText")) + by = By.linkText(prop.getProperty(locatorkey)); + else if (locatorkey.endsWith("_partialLinkText")) + by = By.partialLinkText(prop.getProperty(locatorkey)); + else if (locatorkey.endsWith("_name")) + by = By.name(prop.getProperty(locatorkey)); + else if (locatorkey.endsWith("_className")) + by = By.className(prop.getProperty(locatorkey)); + else if (locatorkey.endsWith("_name")) + by = By.name(prop.getProperty(locatorkey)); + else if (locatorkey.endsWith("_tagName")) + by = By.tagName(prop.getProperty(locatorkey)); + return by; + } + + public void logInfo(String msg) { + test.log(Status.INFO, msg); + } + + public void logError(String msg) { + test.log(Status.FAIL, msg); + } + + public void logWarning(String msg) { + test.log(Status.WARNING, msg); + } + + public void logSkip(String msg) { + test.log(Status.SKIP, msg); + } + + public void clear(String locatorKey) { + logInfo("Clear the Default Text from : " + locatorKey); + getElement(locatorKey).clear(); + } + + public void select() { + + } + + public String getText(String locatorKey) { + logInfo("Getting the Text from : " + locatorKey); + return getElement(locatorKey).getText(); + } + + public void navigate() { + + } + + public void dismissAlert() { + + } + + public void quitDriver() { + driver.quit(); + } + + public void waitforWebPageToLoad() { + JavascriptExecutor js = (JavascriptExecutor) driver; + int i = 0; + + while (i != 10) { + String state = (String) js.executeScript("return document.readyState;"); + System.out.println(state); + + if (state.equals("complete")) + break; + else + wait(2); + + i++; + } + + // check for jQuery status + i = 0; + while (i != 10) { + + Long d = (Long) js.executeScript("return jQuery.active;"); + System.out.println(d); + if (d.longValue() == 0) + break; + else + wait(2); + i++; + + } + } + + public void wait(int time) { + try { + Thread.sleep(time * 1000); + } catch (InterruptedException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + +} diff --git a/DataDrivenFrameworkV2/src/main/java/keywords/ValidationKeywords.java b/DataDrivenFrameworkV2/src/main/java/keywords/ValidationKeywords.java new file mode 100644 index 0000000..c6b74e4 --- /dev/null +++ b/DataDrivenFrameworkV2/src/main/java/keywords/ValidationKeywords.java @@ -0,0 +1,47 @@ +package keywords; + +import org.openqa.selenium.support.ui.Select; +import org.testng.Assert; + +public class ValidationKeywords extends GenericKeywords{ + + + public void validateTitle(String expectedTitle) { + logInfo("Expected Title : " + expectedTitle); + Assert.assertEquals(driver.getTitle(), expectedTitle); + } + + public void validateSelectedValueInDropDown(String locatorKey, String value) { + Select dropdown = new Select(getElement(locatorKey)); + String selectedValue = dropdown.getFirstSelectedOption().getText(); + logInfo("Selected Value in DropDown : " + selectedValue); + + if(!selectedValue.equals(value)) { + reportFailure("Entered "+ value + " is not availble in Portfolio List", true); + } + } + + public void validateSelectedValueNotInDropDown(String locatorKey, String value) { + Select dropdown = new Select(getElement(locatorKey)); + String selectedValue = dropdown.getFirstSelectedOption().getText(); + if(selectedValue.equals(value)) { + reportFailure("Portfolio "+ value + " is availble in Portfolio List", true); + } + } + + public void validateText() { + + } + + public void validateElementPresent() { + + } + + public void validateElementClickable() { + + } + + public void validateElementDisplayed() { + + } +} diff --git a/DataDrivenFrameworkV2/src/main/java/reports/ExtentManager.java b/DataDrivenFrameworkV2/src/main/java/reports/ExtentManager.java new file mode 100644 index 0000000..39cfab4 --- /dev/null +++ b/DataDrivenFrameworkV2/src/main/java/reports/ExtentManager.java @@ -0,0 +1,40 @@ +package reports; + +import java.io.File; +import java.util.Date; +import com.aventstack.extentreports.ExtentReports; +import com.aventstack.extentreports.reporter.ExtentSparkReporter; +import com.aventstack.extentreports.reporter.configuration.Theme; + +public class ExtentManager { + + public static ExtentReports reports; + public static String screenShotPath; + + // Initialize Report and create Report + public static ExtentReports getReports() { + if (reports == null) { + reports = new ExtentReports(); + + Date date = new Date(); + + String reportFolderName = date.toString().replaceAll(":", "_").replaceAll(" ", "-"); + String reportPath = System.getProperty("user.dir") + "/reports/" + reportFolderName; + screenShotPath = reportPath + "/screenshots"; + + File file = new File(screenShotPath); + file.mkdirs(); + + ExtentSparkReporter reporter = new ExtentSparkReporter(reportPath); + reporter.config().setTheme(Theme.STANDARD); + reporter.config().setReportName("Production Test Report"); + reporter.config().setDocumentTitle("Data Driven Test Report"); + reporter.config().setEncoding("utf-8"); + + reports.attachReporter(reporter); + + } + return reports; + } + +} diff --git a/DataDrivenFrameworkV2/src/main/java/utils/ExcelUtils.java b/DataDrivenFrameworkV2/src/main/java/utils/ExcelUtils.java new file mode 100644 index 0000000..c80d686 --- /dev/null +++ b/DataDrivenFrameworkV2/src/main/java/utils/ExcelUtils.java @@ -0,0 +1,141 @@ +package utils; + +import java.io.FileInputStream; + +import org.apache.poi.xssf.usermodel.XSSFCell; +import org.apache.poi.xssf.usermodel.XSSFRow; +import org.apache.poi.xssf.usermodel.XSSFSheet; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; +import org.apache.poi.ss.usermodel.CellType; + +public class ExcelUtils { + + public XSSFWorkbook workbook = null; + public FileInputStream fis = null; + public XSSFSheet sheet = null; + public XSSFRow row = null; + private XSSFCell cell = null; + + public ExcelUtils(String filePath) { + try { + fis = new FileInputStream(filePath); + workbook = new XSSFWorkbook(fis); + } catch (Exception e) { + e.printStackTrace(); + } + } + + // Get Row Data + // Get Column Data + + // Get Cell Data + public String getCellData(String sheetName, int colNumber, int rowNumber) { + int sheetIndex = workbook.getSheetIndex(sheetName); + if (sheetIndex == -1) { + return ""; + } + + if (rowNumber <= 0) { + return ""; + } + + if (colNumber < 0) { + return ""; + } + + sheet = workbook.getSheetAt(sheetIndex); + row = sheet.getRow(0); + + row = sheet.getRow(rowNumber - 1); + if (row == null) { + return ""; + } + + cell = row.getCell(colNumber); + if (cell == null) { + return ""; + } + + if (cell.getCellType() == CellType.STRING) { + return cell.getStringCellValue(); + } else if (cell.getCellType() == CellType.NUMERIC || cell.getCellType() == CellType.FORMULA) { + String cellText = String.valueOf(cell.getNumericCellValue()); + return cellText; + } else if (cell.getCellType() == CellType.BLANK) { + return ""; + } else { + return String.valueOf(cell.getBooleanCellValue()); + } + } + + // Get Cell Data + public String getCellData(String sheetName, String colName, int rowNumber) { + int sheetIndex = workbook.getSheetIndex(sheetName); + if (sheetIndex == -1) { + return ""; + } + + if (rowNumber <= 0) { + return ""; + } + + sheet = workbook.getSheetAt(sheetIndex); + row = sheet.getRow(0); + int colum_Num = -1; + + for (int i = 0; i < row.getLastCellNum(); i++) { + if (row.getCell(i).getStringCellValue().trim().equals(colName.trim())) { + colum_Num = i; + } + } + + if (colum_Num == -1) { + return ""; + } + + row = sheet.getRow(rowNumber - 1); + if (row == null) { + return ""; + } + + cell = row.getCell(colum_Num); + if (cell == null) { + return ""; + } + + if (cell.getCellType() == CellType.STRING) { + return cell.getStringCellValue(); + } else if (cell.getCellType() == CellType.NUMERIC || cell.getCellType() == CellType.FORMULA) { + String cellText = String.valueOf(cell.getNumericCellValue()); + return cellText; + } else if (cell.getCellType() == CellType.BLANK) { + return ""; + } else { + return String.valueOf(cell.getBooleanCellValue()); + } + } + + // Get Total Colums + public int getColumnCount(String sheetName) { + int sheetIndex = workbook.getSheetIndex(sheetName); + if (sheetIndex == -1) { + return 0; + } else { + sheet = workbook.getSheetAt(sheetIndex); + row = sheet.getRow(0); + return row.getLastCellNum(); + } + } + + // To get Number of Rows + public int getRowCount(String sheetName) { + int sheetIndex = workbook.getSheetIndex(sheetName); + if (sheetIndex == -1) { + return 0; + } else { + sheet = workbook.getSheetAt(sheetIndex); + return sheet.getLastRowNum() + 1; + } + } + +} diff --git a/DataDrivenFrameworkV2/src/test/java/listner/MyTestNGListener.java b/DataDrivenFrameworkV2/src/test/java/listner/MyTestNGListener.java new file mode 100644 index 0000000..8070e4a --- /dev/null +++ b/DataDrivenFrameworkV2/src/test/java/listner/MyTestNGListener.java @@ -0,0 +1,25 @@ +package listner; + +import org.testng.ITestListener; +import org.testng.ITestResult; + +import com.aventstack.extentreports.ExtentTest; + +public class MyTestNGListener implements ITestListener{ + + public void onTestFailure(ITestResult result) { + ExtentTest test = (ExtentTest) result.getTestContext().getAttribute("extentTest"); + test.fail(result.getThrowable().getMessage()); + } + + public void onTestSuccess(ITestResult result) { + ExtentTest test = (ExtentTest) result.getTestContext().getAttribute("extentTest"); + test.pass("Test Success : " + result.getName()); + + } + + public void onTestSkipped(ITestResult result) { + ExtentTest test = (ExtentTest) result.getTestContext().getAttribute("extentTest"); + test.skip(result.getName() + " :: Test Skipped Due to Critical Error in Previous Test"); + } +} diff --git a/DataDrivenFrameworkV2/src/test/java/runner/DataUtil.java b/DataDrivenFrameworkV2/src/test/java/runner/DataUtil.java new file mode 100644 index 0000000..9130d59 --- /dev/null +++ b/DataDrivenFrameworkV2/src/test/java/runner/DataUtil.java @@ -0,0 +1,79 @@ +package runner; + +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileReader; +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; +import org.json.simple.JSONArray; +import org.json.simple.JSONObject; +import org.json.simple.parser.JSONParser; +import org.json.simple.parser.ParseException; + +public class DataUtil { + + public int getDataSets(String filePath, String dataflag) throws FileNotFoundException, IOException, ParseException { + JSONParser parser = new JSONParser(); + JSONObject json = (JSONObject) parser.parse(new FileReader(filePath)); + + JSONArray testDataSet = (JSONArray) json.get("testdata"); + for (int dataSetID = 0; dataSetID < testDataSet.size(); dataSetID++) { + JSONObject testData = (JSONObject) testDataSet.get(dataSetID); + String dataFlag = (String) testData.get("flag"); + + if (dataFlag.equalsIgnoreCase(dataflag)) { + JSONArray dataSets = (JSONArray) testData.get("data"); + return dataSets.size(); + } + } + return -1; + } + + public JSONObject getTestData(String filePath, String dataflag, int iterationNumber) + throws FileNotFoundException, IOException, ParseException { + JSONParser parser = new JSONParser(); + JSONObject json = (JSONObject) parser.parse(new FileReader(filePath)); + + JSONArray testDataSet = (JSONArray) json.get("testdata"); + for (int dataSetID = 0; dataSetID < testDataSet.size(); dataSetID++) { + JSONObject testData = (JSONObject) testDataSet.get(dataSetID); + String dataFlag = (String) testData.get("flag"); + + if (dataFlag.equalsIgnoreCase(dataflag)) { + JSONArray dataSets = (JSONArray) testData.get("data"); + JSONObject data = (JSONObject) dataSets.get(iterationNumber); + return data; + } + } + return null; + } + + public Map loadClassMethods() throws FileNotFoundException, IOException, ParseException { + Map classMethodMap = new HashMap(); + + String classPath = System.getProperty("user.dir") + "/src/test/resources/projectJSONs/classmethods.json"; + + JSONParser parser = new JSONParser(); + JSONObject classJSON = (JSONObject) parser.parse(new FileReader(new File(classPath))); + + // System.out.println(classJSON.toString()); + JSONArray classDetails = (JSONArray) classJSON.get("classdetails"); + for (int i = 0; i < classDetails.size(); i++) { + JSONObject classDetail = (JSONObject) classDetails.get(i); + // System.out.println(classDetail.toString()); + + String className = (String) classDetail.get("class"); + JSONArray methods = (JSONArray) classDetail.get("methods"); + + for (int j = 0; j < methods.size(); j++) { + String methodName = (String) methods.get(j); + classMethodMap.put(methodName, className); + } + } + + // System.out.println(classMethodMap); + return classMethodMap; + } + +} diff --git a/DataDrivenFrameworkV2/src/test/java/runner/ExcelReader.java b/DataDrivenFrameworkV2/src/test/java/runner/ExcelReader.java new file mode 100644 index 0000000..e7f052f --- /dev/null +++ b/DataDrivenFrameworkV2/src/test/java/runner/ExcelReader.java @@ -0,0 +1,103 @@ +package runner; + +import org.json.simple.JSONObject; + +import utils.ExcelUtils; + +public class ExcelReader { + + // Read Excel File + + public int getDataSets(String sheetName, String dataFlag, String filePath) { + ExcelUtils XlsReader = new ExcelUtils(filePath); + int flagRowNumber = 1; + + while (!XlsReader.getCellData(sheetName, 0, flagRowNumber).equalsIgnoreCase(dataFlag)) { + flagRowNumber++; + } + int dataStartRowNumber = flagRowNumber + 2; + int totalRows = 0; + + while (!XlsReader.getCellData(sheetName, 0, dataStartRowNumber).equals("")) { + totalRows++; + dataStartRowNumber++; + } + System.out.println("Total Rows :: " + totalRows); + return totalRows; + } + + public JSONObject getTestData(String sheetName, String dataFlag, String filePath, int iteration) { + ExcelUtils XlsReader = new ExcelUtils(filePath); + int flagRowNumber = 1; + + while (!XlsReader.getCellData(sheetName, 0, flagRowNumber).equalsIgnoreCase(dataFlag)) { + flagRowNumber++; + } + + int dataStartRowNumber = flagRowNumber + 2; + int colStartRowNumber = flagRowNumber + 1; + int index = 1; + + while (!XlsReader.getCellData(sheetName, 0, dataStartRowNumber).equals("")) { + int colNumber = 0; + JSONObject json = new JSONObject(); + if (index == iteration) { + while (!XlsReader.getCellData(sheetName, colNumber, dataStartRowNumber).equals("")) { + String data = XlsReader.getCellData(sheetName, colNumber, dataStartRowNumber); + String column = XlsReader.getCellData(sheetName, colNumber, colStartRowNumber); + // System.out.println(column + " :: " + data); + json.put(column, data); + colNumber++; + } + return json; + } else { + index++; + } + dataStartRowNumber++; + } + return new JSONObject(); + } + +// public static void main(String[] args) { +// String filePath = System.getProperty("user.dir") +// + "/src/test/resources/projectJSONs/XLS_Data/TestExcelData.xlsx"; +// ExcelUtils XlsReader = new ExcelUtils(filePath); +// +// +// String sheetName = "Manage Stocks"; +// String dataFlag = "sellexistingstock"; +// int iteration = 2; +// +// int flagRowNumber = 1; +// +// while (!XlsReader.getCellData(sheetName, 0, flagRowNumber).equalsIgnoreCase(dataFlag)) { +// flagRowNumber++; +// } +// // System.out.println("Row Number :: " + flagRowNumber); +// +// int dataStartRowNumber = flagRowNumber + 2; +// int colStartRowNumber = flagRowNumber + 1; +// int index = 1; +// +// ExcelReader exl = new ExcelReader(); +// System.out.println(exl.getDataSets(sheetName, dataFlag, filePath)); +// +// System.out.println("************************"); +// while (!XlsReader.getCellData(sheetName, 0, dataStartRowNumber).equals("")) { +// int colNumber = 0; +// if (index == iteration) { +// while (!XlsReader.getCellData(sheetName, colNumber, dataStartRowNumber).equals("")) { +// String data = XlsReader.getCellData(sheetName, colNumber, dataStartRowNumber); +// String column = XlsReader.getCellData(sheetName, colNumber, colStartRowNumber); +// //System.out.println(column + " :: " + data); +// colNumber++; +// } +// break; +// } else { +// index++; +// } +// dataStartRowNumber++; +// } +// } + +} diff --git a/DataDrivenFrameworkV2/src/test/java/runner/JSONRunner.java b/DataDrivenFrameworkV2/src/test/java/runner/JSONRunner.java new file mode 100644 index 0000000..b4951b9 --- /dev/null +++ b/DataDrivenFrameworkV2/src/test/java/runner/JSONRunner.java @@ -0,0 +1,127 @@ +package runner; + +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileReader; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import org.json.simple.JSONArray; +import org.json.simple.JSONObject; +import org.json.simple.parser.JSONParser; +import org.json.simple.parser.ParseException; + +public class JSONRunner { + + // Implement Logic to read the classmethods.json + + public static void main(String[] args) throws FileNotFoundException, IOException, ParseException { + + Map classMethods = new DataUtil().loadClassMethods(); + + String classPath = System.getProperty("user.dir") + "/src/test/resources/projectJSONs/testconfig.json"; + + JSONParser parser = new JSONParser(); + JSONObject classJSON = (JSONObject) parser.parse(new FileReader(new File(classPath))); + // System.out.println(classJSON.toString()); + + String parallelsuites = (String) classJSON.get("parallelsuites"); + JSONArray testsuites = (JSONArray) classJSON.get("testsuites"); + + TestNGRunner testNG = new TestNGRunner(Integer.parseInt(parallelsuites)); + + for (int testID = 0; testID < testsuites.size(); testID++) { + JSONObject testSuite = (JSONObject) testsuites.get(testID); + + String runmode = (String) testSuite.get("runmode"); + if (runmode.equalsIgnoreCase("Yes")) { + String suiteName = (String) testSuite.get("name"); + String paralleltests = (String) testSuite.get("paralleltests"); + String testdatajsonfile = (String) testSuite.get("testdatajsonfile"); + String testdataxlsfile = (String) testSuite.get("testdataxlsfile"); + String suitefilename = (String) testSuite.get("suitefilename"); + + boolean pTest = false; + if (paralleltests.equalsIgnoreCase("Yes")) { + pTest = true; + } + + testNG.createSuite(suiteName, pTest); + System.out.println("Executing Test Suite -- " + suiteName); + + String testsuitePath = System.getProperty("user.dir") + "/src/test/resources/projectJSONs/" + + suitefilename; + + JSONParser suiteParser = new JSONParser(); + JSONObject suiteJson = (JSONObject) suiteParser.parse(new FileReader(new File(testsuitePath))); + + JSONArray suiteTestCases = (JSONArray) suiteJson.get("testcases"); + for (int suiteTest = 0; suiteTest < suiteTestCases.size(); suiteTest++) { + JSONObject suiteTestCase = (JSONObject) suiteTestCases.get(suiteTest); + JSONArray parameternames = (JSONArray) suiteTestCase.get("parameternames"); + JSONArray executions = (JSONArray) suiteTestCase.get("executions"); + + for (int execution = 0; execution < executions.size(); execution++) { + JSONObject testCase = (JSONObject) executions.get(execution); + String executionname = (String) testCase.get("executionname"); + String dataflag = (String) testCase.get("dataflag"); + + // Number of DataSet -- Number of Test Case Execution against Test Data + + // Location for JSON DATA +// String testDataJSONPath = System.getProperty("user.dir") + "/src/test/resources/projectJSONs/" +// + testdatajsonfile; +// int dataSets = new DataUtil().getDataSets(testDataJSONPath, dataflag); + + // Location for Excel Data + String testDataJSONPath = System.getProperty("user.dir") + "/src/test/resources/projectJSONs/" + + testdataxlsfile; + int dataSets = new ExcelReader().getDataSets(suiteName, dataflag, testDataJSONPath); + + for (int dataSetID = 0; dataSetID < dataSets; dataSetID++) { + + JSONArray parametervalues = (JSONArray) testCase.get("parametervalues"); + JSONArray methods = (JSONArray) testCase.get("methods"); + System.out.println("Executing Test Case :: " + executionname); + + testNG.addTest(suiteName + " : " + executionname + " " + (dataSetID + 1)); + for (int params = 0; params < parameternames.size(); params++) { + testNG.addTestParameter((String) parameternames.get(params), + (String) parametervalues.get(params)); + } + + testNG.addTestParameter("testdatajsonfile", testDataJSONPath); + testNG.addTestParameter("dataflag", dataflag); + testNG.addTestParameter("dataSetID", String.valueOf(dataSetID)); + testNG.addTestParameter("suiteName", suiteName); + + // Read Methods and associated Classes + List includeMethods = new ArrayList(); + for (int methodId = 0; methodId < methods.size(); methodId++) { + String methodName = (String) methods.get(methodId); + String className = classMethods.get(methodName); + + if (methodId == methods.size() - 1 + || !((String) classMethods.get((String) methods.get(methodId + 1))) + .equals(className)) { + // next method is from different class + includeMethods.add(methodName); + testNG.addTestClass(className, includeMethods); + // System.out.println(className + " --- " + includeMethods.toString()); + includeMethods = new ArrayList(); + } else { + includeMethods.add(methodName); + } + } + } + } + } + + } + + } + testNG.run(); + } + +} diff --git a/DataDrivenFrameworkV2/src/test/java/runner/Runner.java b/DataDrivenFrameworkV2/src/test/java/runner/Runner.java new file mode 100644 index 0000000..f9386a7 --- /dev/null +++ b/DataDrivenFrameworkV2/src/test/java/runner/Runner.java @@ -0,0 +1,35 @@ +package runner; + +import java.util.ArrayList; +import java.util.List; + +public class Runner { + + public static void main(String[] args) { + TestNGRunner testNG = new TestNGRunner(1); + testNG.createSuite("Manage Stocks", false); + testNG.addListener("listner.MyTestNGListener"); + testNG.addTest("Add Stock Test"); + testNG.addTestParameter("action", "addStock"); + + // Adding doLogin Test Method + List includeMethods = new ArrayList(); + includeMethods.add("doLogin"); + testNG.addTestClass("testcasesrediffPortfolio.ManageSessionTest", includeMethods); + + // Add Select Portfolio Method + includeMethods = new ArrayList(); + includeMethods.add("selectPortfolio"); + testNG.addTestClass("testcasesrediffPortfolio.ManagePortfolioTest", includeMethods); + + // Add "Add Stock" Methods + includeMethods = new ArrayList(); + includeMethods.add("addStockTest"); + includeMethods.add("verifyStockIsPresent"); + includeMethods.add("verifyTransactionHistory"); + testNG.addTestClass("testcasesrediffPortfolio.ManageStocksTest", includeMethods); + + testNG.run(); + } + +} diff --git a/DataDrivenFrameworkV2/src/test/java/runner/TestNGRunner.java b/DataDrivenFrameworkV2/src/test/java/runner/TestNGRunner.java new file mode 100644 index 0000000..a993d43 --- /dev/null +++ b/DataDrivenFrameworkV2/src/test/java/runner/TestNGRunner.java @@ -0,0 +1,97 @@ +package runner; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.testng.TestNG; +import org.testng.xml.XmlClass; +import org.testng.xml.XmlInclude; +import org.testng.xml.XmlSuite; +import org.testng.xml.XmlSuite.ParallelMode; +import org.testng.xml.XmlTest; + +public class TestNGRunner { + + /* + * TestNG -- Object of Complete TestNG + * XmlSuite -- Single Test Suite + * List -- List of All Test Suites + * XmlTest -- Test within the Suite + * List -- All Tests under Single Suite + * Map -- Test Parameters + * XmlClass -- Single Test Class + * List -- All test Classes within Single Test Case + */ + + TestNG testNg; + XmlSuite suite; + List allSuites; + XmlTest test; + List allTests; + Map testParameters; +// XmlClass testClass; + List testClasses; + + public TestNGRunner(int suiteThreadPoolSize) { + testNg = new TestNG(); + allSuites = new ArrayList(); + testNg.setSuiteThreadPoolSize(suiteThreadPoolSize); + testNg.setXmlSuites(allSuites); + } + + public void run() { + testNg.run(); + } + + public void addListener(String listenerFile) { + suite.addListener(listenerFile); + + } + + public void addTestClass(String className, List includedMethodNames) { + XmlClass testClass = new XmlClass(className); + + // Add test Methods + List classMethods = new ArrayList(); + + int priority = 1; + for (String methodName : includedMethodNames) { + XmlInclude method = new XmlInclude(methodName, priority); + classMethods.add(method); + priority++; + } + + testClass.setIncludedMethods(classMethods); + testClasses.add(testClass); + } + + public void addTestParameter(String name, String value) { + testParameters.put(name, value); + } + + public void addTest(String testName) { + test = new XmlTest(suite); + test.setName(testName); + + // Initially this will be blank + testParameters = new HashMap(); + testClasses = new ArrayList(); + + test.setParameters(testParameters); + test.setClasses(testClasses); + } + + public void createSuite(String suiteName, boolean parallelTests) { + suite = new XmlSuite(); + suite.setName(suiteName); + + if (parallelTests) { + suite.setParallel(ParallelMode.TESTS); + } + + allSuites.add(suite); + } + +} diff --git a/DataDrivenFrameworkV2/src/test/java/testCases/CreatePortfolioTest.java b/DataDrivenFrameworkV2/src/test/java/testCases/CreatePortfolioTest.java new file mode 100644 index 0000000..6e21419 --- /dev/null +++ b/DataDrivenFrameworkV2/src/test/java/testCases/CreatePortfolioTest.java @@ -0,0 +1,36 @@ +package testCases; + +import org.testng.annotations.Test; + +import keywords.*; + +public class CreatePortfolioTest extends ApplicationKeywords{ + + @Test + public void createPortFolioTest() throws InterruptedException { + /* + * 1. Open Target WebPage + * 2. Click on SignIn Button/Link + * 3. Enter Login Details + * 4. Click on Submit Button + * 5. Verify you are on Portfolio Page after login + * 6. Click Create Portfolio Link + * 7. Enter the portfolio name + * 8. Click on Create Portfolio Link + */ + + ApplicationKeywords app = new ApplicationKeywords(); + + app.openBrowser("browser_name"); + app.openURL("URL"); + app.click("signIn_linkText"); + app.type("userName_id", "anshulc55@rediffmail.com"); + app.type("password_xpath", "Test@12345"); + app.enterCaptcha("captcha_css"); + app.clickButton("submitBtn_name"); + //app.validateTitle("Rediff Moneywiz | My Portfolio(s)"); + //app.click(); + app.quitDriver(); + } + +} diff --git a/DataDrivenFrameworkV2/src/test/java/testbase/BaseTest.java b/DataDrivenFrameworkV2/src/test/java/testbase/BaseTest.java new file mode 100644 index 0000000..c53ea97 --- /dev/null +++ b/DataDrivenFrameworkV2/src/test/java/testbase/BaseTest.java @@ -0,0 +1,111 @@ +package testbase; + +import java.io.FileNotFoundException; +import java.io.IOException; + +import org.json.simple.JSONObject; +import org.json.simple.parser.ParseException; +import org.testng.ITestContext; +import org.testng.SkipException; +import org.testng.annotations.AfterMethod; +import org.testng.annotations.AfterTest; +import org.testng.annotations.BeforeMethod; +import org.testng.annotations.BeforeTest; + +import com.aventstack.extentreports.ExtentReports; +import com.aventstack.extentreports.ExtentTest; +import com.aventstack.extentreports.Status; + +import keywords.ApplicationKeywords; +import reports.ExtentManager; +import runner.DataUtil; +import runner.ExcelReader; + +public class BaseTest { + public ApplicationKeywords app; + public String number; + public ExtentReports extentReport; + public ExtentTest extentTest; + + @BeforeTest(alwaysRun = true) + public void beforeTest(ITestContext context) throws FileNotFoundException, IOException, ParseException { + // System.out.println("***** Before Test *******"); + // Single App Object for Single Test + // Initialize and Share for All the test Cases + + //Read Test JSON + String testdatajsonfilePath = context.getCurrentXmlTest().getParameter("testdatajsonfile"); + //String testdataxlsfilePath = context.getCurrentXmlTest().getParameter("testdataxlsfile"); + String dataFlag = context.getCurrentXmlTest().getParameter("dataflag"); + int iteration = Integer.parseInt(context.getCurrentXmlTest().getParameter("dataSetID")); + String sheetName = context.getCurrentXmlTest().getParameter("suiteName"); + + System.out.println(testdatajsonfilePath + " " + dataFlag + " " + iteration + " " + sheetName); + + // This is for JSON Reader + //JSONObject data = new DataUtil().getTestData(testdatajsonfilePath, dataFlag, iteration); + + //This is for Excel Reader + JSONObject data = new ExcelReader().getTestData(sheetName, dataFlag, testdatajsonfilePath, iteration); + context.setAttribute("testData", data); + + String runMode = (String) data.get("runmode"); + + app = new ApplicationKeywords(); + + // Init Reports + extentReport = ExtentManager.getReports(); + extentTest = extentReport.createTest(context.getCurrentXmlTest().getName()); + extentTest.log(Status.INFO, "Starting Test : " + context.getCurrentXmlTest().getName()); + + app.setReport(extentTest); + + context.setAttribute("extentReport", extentReport); + context.setAttribute("extentTest", extentTest); + + if (!runMode.equalsIgnoreCase("Yes")) { + extentTest.log(Status.SKIP, "RunMode in Test Data is not True"); + throw new SkipException("RunMode in Test Data is not True"); + } + + + context.setAttribute("app", app); + + } + + @AfterTest(alwaysRun = true) + public void afterTest(ITestContext context) { + // System.out.println("***** After Test *******"); + app = (ApplicationKeywords) context.getAttribute("app"); + if (app != null) { + app.quitDriver(); + } + + extentReport = (ExtentReports) context.getAttribute("extentReport"); + if (extentReport != null) { + extentReport.flush(); + } + + } + + @BeforeMethod(alwaysRun = true) + public void beforeMethod(ITestContext context) { + // System.out.println("***** Before Method *******"); + app = (ApplicationKeywords) context.getAttribute("app"); + extentReport = (ExtentReports) context.getAttribute("extentReport"); + extentTest = (ExtentTest) context.getAttribute("extentTest"); + + String criticalFailure = (String) context.getAttribute("isCriticalFailure"); + if (criticalFailure!=null && criticalFailure.equals("true")) { + app.logSkip("Critical Failure in Prevoius Test Method"); + throw new SkipException("Critical Failure in Prevoius Test Method"); + } + + } + + @AfterMethod(alwaysRun = true) + public void afterMethod(ITestContext context) { + app.reportAll(); + } + +} diff --git a/DataDrivenFrameworkV2/src/test/java/testcasesrediffPortfolio/ManagePortfolioTest.java b/DataDrivenFrameworkV2/src/test/java/testcasesrediffPortfolio/ManagePortfolioTest.java new file mode 100644 index 0000000..46e5774 --- /dev/null +++ b/DataDrivenFrameworkV2/src/test/java/testcasesrediffPortfolio/ManagePortfolioTest.java @@ -0,0 +1,49 @@ +package testcasesrediffPortfolio; + +import org.json.simple.JSONObject; +import org.testng.ITestContext; +import org.testng.annotations.Test; +import testbase.BaseTest; + + +public class ManagePortfolioTest extends BaseTest{ + + @Test + public void createPortfolio(ITestContext context) { + JSONObject data = (JSONObject) context.getAttribute("testData"); + String portfolioName = (String) data.get("portfolioname"); + + app.logInfo("Creating Portfolio :: " + portfolioName); + app.click("createPortfolio_id"); + app.clear("porfolioname_id"); + app.type("porfolioname_id", portfolioName); + app.click("createPortfolioButton_id"); + app.waitforWebPageToLoad(); + app.validateSelectedValueInDropDown("portfolio_dropdown_id", portfolioName); + } + + @Test + public void deletePortfolio(ITestContext context) { + JSONObject data = (JSONObject) context.getAttribute("testData"); + String portfolioName = (String) data.get("portfolioname"); + + app.logInfo("Deleting Porfolio :: " + portfolioName); + app.selectByVisibleText("portfolio_dropdown_id", portfolioName); + app.waitforWebPageToLoad(); + app.click("deletePortfolio_id"); + app.acceptAlert(); + app.waitforWebPageToLoad(); + app.validateSelectedValueNotInDropDown("portfolio_dropdown_id", portfolioName); + + } + + @Test + public void selectPortfolio(ITestContext context) { + + String portfolioName = "Portfolio50"; + + app.logInfo("Selecting Portfolio :: " + portfolioName); + app.selectByVisibleText("portfolio_dropdown_id", portfolioName); + app.waitforWebPageToLoad(); + } +} diff --git a/DataDrivenFrameworkV2/src/test/java/testcasesrediffPortfolio/ManageSessionTest.java b/DataDrivenFrameworkV2/src/test/java/testcasesrediffPortfolio/ManageSessionTest.java new file mode 100644 index 0000000..c3ce681 --- /dev/null +++ b/DataDrivenFrameworkV2/src/test/java/testcasesrediffPortfolio/ManageSessionTest.java @@ -0,0 +1,31 @@ +package testcasesrediffPortfolio; + + +import org.testng.ITestContext; +import org.testng.annotations.Test; +import testbase.BaseTest; + +public class ManageSessionTest extends BaseTest{ + + @Test + public void doLogin(ITestContext context) throws InterruptedException { + app.logInfo("Login Application"); + + app.openBrowser("browser_name"); + app.openURL("URL"); + app.click("signIn_linkText"); + app.waitforWebPageToLoad(); + app.type("userName_id", "anshulc55@rediffmail.com"); + app.type("password_xpath", "Test@12345"); + //app.enterCaptcha("captcha_id"); + app.wait(30); + app.clickButton("submitBtn_id"); + } + + + @Test + public void doLogOut(ITestContext context) { + System.out.println("***** LogOut Application ******"); + //ApplicationKeywords app = new ApplicationKeywords(); + } +} diff --git a/DataDrivenFrameworkV2/src/test/java/testcasesrediffPortfolio/ManageStocksTest.java b/DataDrivenFrameworkV2/src/test/java/testcasesrediffPortfolio/ManageStocksTest.java new file mode 100644 index 0000000..f3a47e3 --- /dev/null +++ b/DataDrivenFrameworkV2/src/test/java/testcasesrediffPortfolio/ManageStocksTest.java @@ -0,0 +1,141 @@ +package testcasesrediffPortfolio; + +import org.json.simple.JSONObject; +import org.testng.ITestContext; +import org.testng.annotations.Parameters; +import org.testng.annotations.Test; + +import testbase.BaseTest; + +public class ManageStocksTest extends BaseTest { + + @Parameters({ "action" }) + @Test + public void modifyStock(String action, ITestContext context) { + JSONObject data = (JSONObject) context.getAttribute("testData"); + String companyName = (String) data.get("companyName"); + String modifiedQuantity = (String) data.get("stockQuantity"); + String stockPrice = (String) data.get("stockPrice"); + String selectionDate = (String) data.get("selectionDate"); + + app.logInfo("Modifying Quantity : " + modifiedQuantity + " of Stock :: " + companyName); + + int quantityBeforeSelling = app.findCurrentStockQuantity(companyName); + context.setAttribute("quantityBeforeSelling", quantityBeforeSelling); + + app.goToBuySell(companyName); + if(action.equals("addStock")) { + app.selectByVisibleText("equityaction_id", "Buy"); + }else { + app.selectByVisibleText("equityaction_id", "Sell"); + } + + app.click("buySellCalendar_id"); + app.selectDateFromCalendar(selectionDate); + app.type("buysellqty_id", modifiedQuantity); + app.type("buysellprice_id", stockPrice); + app.click("buySellStockButton_id"); + app.waitforWebPageToLoad(); + app.logInfo("Stock :: " + companyName + " modified Successfully...."); + } + + @Parameters({ "action" }) + @Test + public void verifyStockQuantity(String action, ITestContext context) { + JSONObject data = (JSONObject) context.getAttribute("testData"); + String companyName = (String) data.get("companyName"); + int modifiedQuantity = Integer.parseInt((String)data.get("stockQuantity")); + int expectedModifiedQuantity = 0; + + app.logInfo("Verify Stock Quantity After Action :: " + action); + int quantity = app.findCurrentStockQuantity(companyName); + + int quantityBeforeSelling = (int) context.getAttribute("quantityBeforeSelling"); + + if (action.equals("sellStock")) { + expectedModifiedQuantity = quantityBeforeSelling - quantity; + } else if (action.equals("addStock")) { + expectedModifiedQuantity = quantity - quantityBeforeSelling; + } + + app.logInfo("Earlier Stock Quantity : " + quantityBeforeSelling); + app.logInfo("New Stock Quantity : " + quantity); + + if (expectedModifiedQuantity != modifiedQuantity) { + app.reportFailure("Expected Modified Quantity is not matching", true); + } + + app.logInfo("Stock Quantity Changed as per expected :: " + expectedModifiedQuantity); + + } + + @Parameters({ "action" }) + @Test + public void verifyTransactionHistory(String action, ITestContext context) { + JSONObject data = (JSONObject) context.getAttribute("testData"); + String companyName = (String) data.get("companyName"); + String modifiedQuantity = (String) data.get("stockQuantity"); + + app.logInfo("Verify Stock Transaction History After Operation :: " + action); + app.openTrasactionHistory(companyName); + String quantityDisplayed = app.getText("trasactionTable_xpath"); + + if(!modifiedQuantity.equals(quantityDisplayed)) { + app.reportFailure("Got changed quantity in transaction history as " + quantityDisplayed, true); + } + + if (action.equals("sellStock")) { + quantityDisplayed = "-" + quantityDisplayed; + } + + app.logInfo("Latest Change in Stock : " + companyName + " is :: " + quantityDisplayed); + } + + @Test + public void addStockTest(ITestContext context) { + JSONObject data = (JSONObject) context.getAttribute("testData"); + String companyName = (String) data.get("companyName"); + String stockQuantity = (String) data.get("stockQuantity"); + String stockPrice = (String) data.get("stockPrice"); + String selectionDate = (String) data.get("selectionDate"); + + app.logInfo("Selecting Stocks in Portfolio"); + + int quantityBeforeSelling = app.findCurrentStockQuantity(companyName); + context.setAttribute("quantityBeforeSelling", quantityBeforeSelling); + + app.click("addStock_id"); + app.type("addstockname_id", companyName); + app.wait(2); + app.clickEnterKey("addstockname_id"); + app.click("stockPurchaseDate_id"); + app.selectDateFromCalendar(selectionDate); + app.type("addstockqty_id", stockQuantity); + app.type("addstockprice_id", stockPrice); + app.click("addStockButton_id"); + app.waitforWebPageToLoad(); + + app.logInfo("Stock Added Successfully...."); + + } + + @Test + public void verifyStockIsPresent(ITestContext context) { + JSONObject data = (JSONObject) context.getAttribute("testData"); + String companyName = (String) data.get("companyName"); + + app.logInfo("Verifying Added Stock in Portfolio..."); + int rowNum = app.getRowNumWithCellData("stockTable_id", companyName); + + if (rowNum == -1) { + app.reportFailure(companyName + " is not present in Stock List!!! ", true); + } + app.logInfo(companyName + " -- Found in Portfolio Stocks"); + } + + @Test + public void modifyStockTest() { + System.out.println("Modifying Stocks in Portfolio..."); + } + +} diff --git a/DataDrivenFrameworkV2/src/test/resources/PortfolioSuite.xml b/DataDrivenFrameworkV2/src/test/resources/PortfolioSuite.xml new file mode 100644 index 0000000..5c678fe --- /dev/null +++ b/DataDrivenFrameworkV2/src/test/resources/PortfolioSuite.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/DataDrivenFrameworkV2/src/test/resources/Project.properties b/DataDrivenFrameworkV2/src/test/resources/Project.properties new file mode 100644 index 0000000..be6ed37 --- /dev/null +++ b/DataDrivenFrameworkV2/src/test/resources/Project.properties @@ -0,0 +1,43 @@ +# Centralized Locator Repository +Key=Value + +# Config +browser_name=chrome +URL=https://money.rediff.com + + +# Page Titles + + +# Common Locators + + +# Login Page Locator +signIn_linkText=Sign In +userName_id=useremail +password_xpath=//*[@id='userpass'] +captcha_id=captcha +submitBtn_id=loginsubmit + + +# Portfolio Page Locator +createPortfolio_id=createPortfolio +porfolioname_id=create +createPortfolioButton_id=createPortfolioButton +portfolio_dropdown_id=portfolioid +deletePortfolio_id=deletePortfolio +addStock_id=addStock +addstockname_id=addstockname +stockPurchaseDate_id=stockPurchaseDate +monthyear_css=div.dpTitleText +datebackButoon_xpath=//*[@id='datepicker']/table/tbody/tr[1]/td[2]/button +addstockqty_id=addstockqty +addstockprice_id=addstockprice +addStockButton_id=addStockButton +stockTable_id=stock +trasactionTable_xpath=//table[@class='dataTable']/tbody/tr[1]/td[3] +equityaction_id=equityaction +buySellCalendar_id=buySellCalendar +buySellStockButton_id=buySellStockButton +buysellqty_id=buysellqty +buysellprice_id=buysellprice \ No newline at end of file diff --git a/DataDrivenFrameworkV2/src/test/resources/StockManage.xml b/DataDrivenFrameworkV2/src/test/resources/StockManage.xml new file mode 100644 index 0000000..cc8dfce --- /dev/null +++ b/DataDrivenFrameworkV2/src/test/resources/StockManage.xml @@ -0,0 +1,84 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/DataDrivenFrameworkV2/src/test/resources/projectJSONs/.DS_Store b/DataDrivenFrameworkV2/src/test/resources/projectJSONs/.DS_Store new file mode 100644 index 0000000..4a675ae Binary files /dev/null and b/DataDrivenFrameworkV2/src/test/resources/projectJSONs/.DS_Store differ diff --git a/DataDrivenFrameworkV2/src/test/resources/projectJSONs/XLS_Data/TestExcelData.xlsx b/DataDrivenFrameworkV2/src/test/resources/projectJSONs/XLS_Data/TestExcelData.xlsx new file mode 100644 index 0000000..0da2b00 Binary files /dev/null and b/DataDrivenFrameworkV2/src/test/resources/projectJSONs/XLS_Data/TestExcelData.xlsx differ diff --git a/DataDrivenFrameworkV2/src/test/resources/projectJSONs/classmethods.json b/DataDrivenFrameworkV2/src/test/resources/projectJSONs/classmethods.json new file mode 100644 index 0000000..eb8a28d --- /dev/null +++ b/DataDrivenFrameworkV2/src/test/resources/projectJSONs/classmethods.json @@ -0,0 +1,30 @@ +{ + "classdetails": [ + { + "class": "testcasesrediffPortfolio.ManageSessionTest", + "methods": [ + "doLogin", + "doLogOut" + ] + }, + { + "class": "testcasesrediffPortfolio.ManagePortfolioTest", + "methods": [ + "createPortfolio", + "deletePortfolio", + "selectPortfolio" + ] + }, + { + "class": "testcasesrediffPortfolio.ManageStocksTest", + "methods": [ + "modifyStock", + "verifyStockQuantity", + "verifyTransactionHistory", + "addStockTest", + "verifyStockIsPresent", + "modifyStockTest" + ] + } + ] +} diff --git a/DataDrivenFrameworkV2/src/test/resources/projectJSONs/suites/portfoliosuite.json b/DataDrivenFrameworkV2/src/test/resources/projectJSONs/suites/portfoliosuite.json new file mode 100644 index 0000000..ea1ac58 --- /dev/null +++ b/DataDrivenFrameworkV2/src/test/resources/projectJSONs/suites/portfoliosuite.json @@ -0,0 +1,42 @@ +{ + "testcases": [ + { + "parameternames": [ + "action" + ], + "executions": [ + { + "runmode": "Yes", + "executionname": "Create Portfolio Method", + "dataflag": "createnewportfolio", + "parametervalues": [ + "addStock" + ], + "methods": [ + "doLogin", + "createPortfolio" + ] + } + ] + }, + { + "parameternames": [ + "action" + ], + "executions": [ + { + "runmode": "Yes", + "executionname": "Delete Portfolio Method", + "dataflag": "deletenewportfolio", + "parametervalues": [ + "addStock" + ], + "methods": [ + "doLogin", + "deletePortfolio" + ] + } + ] + } + ] +} diff --git a/DataDrivenFrameworkV2/src/test/resources/projectJSONs/suites/stocksuite.json b/DataDrivenFrameworkV2/src/test/resources/projectJSONs/suites/stocksuite.json new file mode 100644 index 0000000..6899c90 --- /dev/null +++ b/DataDrivenFrameworkV2/src/test/resources/projectJSONs/suites/stocksuite.json @@ -0,0 +1,74 @@ +{ + "testcases": [ + { + "parameternames": [ + "action" + ], + "executions": [ + { + "runmode": "Yes", + "executionname": "Add Stocks in Portfolio", + "dataflag": "addfreshstock", + "parametervalues": [ + "addStock" + ], + "methods": [ + "doLogin", + "selectPortfolio", + "addStockTest", + "verifyStockIsPresent", + "verifyTransactionHistory" + ] + } + ] + }, + { + "parameternames": [ + "action" + ], + "executions": [ + { + "runmode": "Yes", + "executionname": "Sell Stocks in Portfolio", + "dataflag": "sellexistingstock", + "parametervalues": [ + "sellStock" + ], + "methods": [ + "doLogin", + "selectPortfolio", + "verifyStockIsPresent", + "modifyStock", + "verifyStockIsPresent", + "verifyStockQuantity", + "verifyTransactionHistory" + ] + } + ] + }, + { + "parameternames": [ + "action" + ], + "executions": [ + { + "runmode": "Yes", + "executionname": "Add Stocks in existying Company in Portfolio", + "dataflag": "addexistingstock", + "parametervalues": [ + "addStock" + ], + "methods": [ + "doLogin", + "selectPortfolio", + "verifyStockIsPresent", + "modifyStock", + "verifyStockIsPresent", + "verifyStockQuantity", + "verifyTransactionHistory" + ] + } + ] + } + ] +} diff --git a/DataDrivenFrameworkV2/src/test/resources/projectJSONs/testJSONData/portfolioData.json b/DataDrivenFrameworkV2/src/test/resources/projectJSONs/testJSONData/portfolioData.json new file mode 100644 index 0000000..676587e --- /dev/null +++ b/DataDrivenFrameworkV2/src/test/resources/projectJSONs/testJSONData/portfolioData.json @@ -0,0 +1,38 @@ +{ + "testdata": [ + { + "flag": "createnewportfolio", + "data": [ + { + "portfolioname": "port100", + "runmode": "Yes" + }, + { + "portfolioname": "port200", + "runmode": "No" + }, + { + "portfolioname": "port300", + "runmode": "No" + } + ] + }, + { + "flag": "deletenewportfolio", + "data": [ + { + "portfolioname": "port100", + "runmode": "No" + }, + { + "portfolioname": "port200", + "runmode": "No" + }, + { + "portfolioname": "port300", + "runmode": "No" + } + ] + } + ] +} diff --git a/DataDrivenFrameworkV2/src/test/resources/projectJSONs/testJSONData/stocksData.json b/DataDrivenFrameworkV2/src/test/resources/projectJSONs/testJSONData/stocksData.json new file mode 100644 index 0000000..63aaccf --- /dev/null +++ b/DataDrivenFrameworkV2/src/test/resources/projectJSONs/testJSONData/stocksData.json @@ -0,0 +1,59 @@ +{ + "testdata": [ + { + "flag": "addfreshstock", + "data": [ + { + "portfolioname": "Portfolio50", + "companyName": "HDFC Bank", + "selectionDate": "10-12-2020", + "stockQuantity": "200", + "stockPrice": "300", + "runmode": "Yes" + }, + { + "portfolioname": "Portfolio50", + "companyName": "Kotak Mahindra Bank", + "selectionDate": "21-07-2023", + "stockQuantity": "200", + "stockPrice": "600", + "runmode": "Yes" + } + ] + }, + { + "flag": "sellexistingstock", + "data": [ + { + "portfolioname": "Portfolio50", + "companyName": "HDFC Bank", + "selectionDate": "17-12-2023", + "stockQuantity": "100", + "stockPrice": "400", + "runmode": "Yes" + } + ] + }, + { + "flag": "addexistingstock", + "data": [ + { + "portfolioname": "Portfolio50", + "companyName": "HDFC Bank", + "selectionDate": "17-02-2023", + "stockQuantity": "100", + "stockPrice": "400", + "runmode": "Yes" + }, + { + "portfolioname": "Portfolio50", + "companyName": "Kotak Mahindra Bank", + "selectionDate": "11-04-2019", + "stockQuantity": "100", + "stockPrice": "500", + "runmode": "No" + } + ] + } + ] +} diff --git a/DataDrivenFrameworkV2/src/test/resources/projectJSONs/testconfig.json b/DataDrivenFrameworkV2/src/test/resources/projectJSONs/testconfig.json new file mode 100644 index 0000000..93900f6 --- /dev/null +++ b/DataDrivenFrameworkV2/src/test/resources/projectJSONs/testconfig.json @@ -0,0 +1,25 @@ +{ + "browsers": [ + "chrome", + "firefox" + ], + "parallelsuites": "1", + "testsuites": [ + { + "name": "Manage Portfolio Suite", + "runmode": "Yes", + "paralleltests": "No", + "testdatajsonfile": "testJSONData/portfolioData.json", + "testdataxlsfile": "XLS_Data/TestExcelData.xlsx", + "suitefilename": "suites/portfoliosuite.json" + }, + { + "name": "Manage Stocks", + "runmode": "No", + "paralleltests": "No", + "testdatajsonfile": "testJSONData/stocksData.json", + "testdataxlsfile": "XLS_Data/TestExcelData.xlsx", + "suitefilename": "suites/stocksuite.json" + } + ] +} diff --git a/DataDrivenFrameworkV2/src/test/resources/testng.xml b/DataDrivenFrameworkV2/src/test/resources/testng.xml new file mode 100644 index 0000000..61aff0e --- /dev/null +++ b/DataDrivenFrameworkV2/src/test/resources/testng.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/DataDrivenFrameworkV2/test-output/Default suite/Default test.html b/DataDrivenFrameworkV2/test-output/Default suite/Default test.html new file mode 100644 index 0000000..1e02bc3 --- /dev/null +++ b/DataDrivenFrameworkV2/test-output/Default suite/Default test.html @@ -0,0 +1,85 @@ + + +TestNG: Default test + + + + + + + + +

Default test

+ + + + + + + + + + + +
Tests passed/Failed/Skipped:1/0/0
Started on:Sat Apr 06 17:55:44 IST 2024
Total time:0 seconds (64 ms)
Included groups:
Excluded groups:

+(Hover the method name to see the test class name)

+ + + + + + + + + + + + + +
PASSED TESTS
Test methodAttribute(s)ExceptionTime (seconds)Instance
getReports
Test class: reports.ExtentManager
0reports.ExtentManager@61230f6a

+ + \ No newline at end of file diff --git a/DataDrivenFrameworkV2/test-output/Default suite/Default test.xml b/DataDrivenFrameworkV2/test-output/Default suite/Default test.xml new file mode 100644 index 0000000..dd3badd --- /dev/null +++ b/DataDrivenFrameworkV2/test-output/Default suite/Default test.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/DataDrivenFrameworkV2/test-output/Default suite/testng-failed.xml b/DataDrivenFrameworkV2/test-output/Default suite/testng-failed.xml new file mode 100644 index 0000000..c994580 --- /dev/null +++ b/DataDrivenFrameworkV2/test-output/Default suite/testng-failed.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Create Portfolio Method.html b/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Create Portfolio Method.html new file mode 100644 index 0000000..77cf01f --- /dev/null +++ b/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Create Portfolio Method.html @@ -0,0 +1,170 @@ + + +TestNG: Create Portfolio Method + + + + + + + + +

Create Portfolio Method

+ + + + + + + + + + + +
Tests passed/Failed/Skipped:1/1/0
Started on:Sun Apr 21 18:42:53 IST 2024
Total time:94 seconds (94193 ms)
Included groups:
Excluded groups:

+(Hover the method name to see the test class name)

+ + + + + + + + + + + + + +
FAILED TESTS
Test methodAttribute(s)ExceptionTime (seconds)Instance
createPortfolio
Test class: testcasesrediffPortfolio.ManagePortfolioTest
org.openqa.selenium.UnhandledAlertException: unexpected alert open: {Alert text : Please enter captcha}
+  (Session info: chrome=124.0.6367.61): Please enter captcha
+Build info: version: '4.17.0', revision: 'e52b1be057*'
+System info: os.name: 'Mac OS X', os.arch: 'aarch64', os.version: '14.4.1', java.version: '21.0.1'
+Driver info: org.openqa.selenium.chrome.ChromeDriver
+Command: [226343f036eb099e69fd3cc83205d648, findElement {value=createPortfolio, using=id}]
+Capabilities {acceptInsecureCerts: false, browserName: chrome, browserVersion: 124.0.6367.61, chrome: {chromedriverVersion: 123.0.6312.122 (31f8248cdd9..., userDataDir: /var/folders/rg/b21vyw1s0v7...}, fedcm:accounts: true, goog:chromeOptions: {debuggerAddress: localhost:61957}, networkConnectionEnabled: false, pageLoadStrategy: normal, platformName: mac, proxy: Proxy(), se:cdp: ws://localhost:61957/devtoo..., se:cdpVersion: 124.0.6367.61, setWindowRect: true, strictFileInteractability: false, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}, unhandledPromptBehavior: dismiss and notify, webauthn:extension:credBlob: true, webauthn:extension:largeBlob: true, webauthn:extension:minPinLength: true, webauthn:extension:prf: true, webauthn:virtualAuthenticators: true}
+Session ID: 226343f036eb099e69fd3cc83205d648
+	at org.openqa.selenium.remote.codec.w3c.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:132)
+	at org.openqa.selenium.remote.codec.w3c.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:51)
+	at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:190)
+	at org.openqa.selenium.remote.service.DriverCommandExecutor.invokeExecute(DriverCommandExecutor.java:216)
+	at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:174)
+	at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:519)
+	at org.openqa.selenium.remote.ElementLocation$ElementFinder$2.findElement(ElementLocation.java:165)
+	at org.openqa.selenium.remote.ElementLocation.findElement(ElementLocation.java:59)
+	at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:356)
+	at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:350)
+	at keywords.GenericKeywords.getElement(GenericKeywords.java:208)
+	at keywords.GenericKeywords.click(GenericKeywords.java:146)
+	at testcasesrediffPortfolio.ManagePortfolioTest.createPortfolio(ManagePortfolioTest.java:14)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:104)
+... Removed 22 stack frames
Click to show all stack frames +
org.openqa.selenium.UnhandledAlertException: unexpected alert open: {Alert text : Please enter captcha}
+  (Session info: chrome=124.0.6367.61): Please enter captcha
+Build info: version: '4.17.0', revision: 'e52b1be057*'
+System info: os.name: 'Mac OS X', os.arch: 'aarch64', os.version: '14.4.1', java.version: '21.0.1'
+Driver info: org.openqa.selenium.chrome.ChromeDriver
+Command: [226343f036eb099e69fd3cc83205d648, findElement {value=createPortfolio, using=id}]
+Capabilities {acceptInsecureCerts: false, browserName: chrome, browserVersion: 124.0.6367.61, chrome: {chromedriverVersion: 123.0.6312.122 (31f8248cdd9..., userDataDir: /var/folders/rg/b21vyw1s0v7...}, fedcm:accounts: true, goog:chromeOptions: {debuggerAddress: localhost:61957}, networkConnectionEnabled: false, pageLoadStrategy: normal, platformName: mac, proxy: Proxy(), se:cdp: ws://localhost:61957/devtoo..., se:cdpVersion: 124.0.6367.61, setWindowRect: true, strictFileInteractability: false, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}, unhandledPromptBehavior: dismiss and notify, webauthn:extension:credBlob: true, webauthn:extension:largeBlob: true, webauthn:extension:minPinLength: true, webauthn:extension:prf: true, webauthn:virtualAuthenticators: true}
+Session ID: 226343f036eb099e69fd3cc83205d648
+	at org.openqa.selenium.remote.codec.w3c.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:132)
+	at org.openqa.selenium.remote.codec.w3c.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:51)
+	at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:190)
+	at org.openqa.selenium.remote.service.DriverCommandExecutor.invokeExecute(DriverCommandExecutor.java:216)
+	at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:174)
+	at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:519)
+	at org.openqa.selenium.remote.ElementLocation$ElementFinder$2.findElement(ElementLocation.java:165)
+	at org.openqa.selenium.remote.ElementLocation.findElement(ElementLocation.java:59)
+	at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:356)
+	at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:350)
+	at keywords.GenericKeywords.getElement(GenericKeywords.java:208)
+	at keywords.GenericKeywords.click(GenericKeywords.java:146)
+	at testcasesrediffPortfolio.ManagePortfolioTest.createPortfolio(ManagePortfolioTest.java:14)
+	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
+	at org.testng.internal.invokers.TestInvoker.invokeMethod(TestInvoker.java:664)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethod(TestInvoker.java:228)
+	at org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:63)
+	at org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:961)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:201)
+	at org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:148)
+	at org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:128)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at org.testng.TestRunner.privateRun(TestRunner.java:819)
+	at org.testng.TestRunner.run(TestRunner.java:619)
+	at org.testng.SuiteRunner.runTest(SuiteRunner.java:443)
+	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:437)
+	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:397)
+	at org.testng.SuiteRunner.run(SuiteRunner.java:336)
+	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
+	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1301)
+	at org.testng.TestNG.runSuitesLocally(TestNG.java:1228)
+	at org.testng.TestNG.runSuites(TestNG.java:1134)
+	at org.testng.TestNG.run(TestNG.java:1101)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:104)
+
0testcasesrediffPortfolio.ManagePortfolioTest@26aa12dd

+ + + + + + + + + + + + + +
PASSED TESTS
Test methodAttribute(s)ExceptionTime (seconds)Instance
doLogin
Test class: testcasesrediffPortfolio.ManageSessionTest
93testcasesrediffPortfolio.ManageSessionTest@2a17b7b6

+ + \ No newline at end of file diff --git a/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Create Portfolio Method.xml b/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Create Portfolio Method.xml new file mode 100644 index 0000000..c3b45d4 --- /dev/null +++ b/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Create Portfolio Method.xml @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Delete Portfolio Method.html b/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Delete Portfolio Method.html new file mode 100644 index 0000000..68239ea --- /dev/null +++ b/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Delete Portfolio Method.html @@ -0,0 +1,170 @@ + + +TestNG: Delete Portfolio Method + + + + + + + + +

Delete Portfolio Method

+ + + + + + + + + + + +
Tests passed/Failed/Skipped:1/1/0
Started on:Sun Apr 21 18:44:27 IST 2024
Total time:66 seconds (66429 ms)
Included groups:
Excluded groups:

+(Hover the method name to see the test class name)

+ + + + + + + + + + + + + +
FAILED TESTS
Test methodAttribute(s)ExceptionTime (seconds)Instance
deletePortfolio
Test class: testcasesrediffPortfolio.ManagePortfolioTest
org.openqa.selenium.UnhandledAlertException: unexpected alert open: {Alert text : Please enter captcha}
+  (Session info: chrome=124.0.6367.61): Please enter captcha
+Build info: version: '4.17.0', revision: 'e52b1be057*'
+System info: os.name: 'Mac OS X', os.arch: 'aarch64', os.version: '14.4.1', java.version: '21.0.1'
+Driver info: org.openqa.selenium.chrome.ChromeDriver
+Command: [cb3d705f225d402bb14ffbfe8fcf9112, findElement {value=portfolioid, using=id}]
+Capabilities {acceptInsecureCerts: false, browserName: chrome, browserVersion: 124.0.6367.61, chrome: {chromedriverVersion: 123.0.6312.122 (31f8248cdd9..., userDataDir: /var/folders/rg/b21vyw1s0v7...}, fedcm:accounts: true, goog:chromeOptions: {debuggerAddress: localhost:62126}, networkConnectionEnabled: false, pageLoadStrategy: normal, platformName: mac, proxy: Proxy(), se:cdp: ws://localhost:62126/devtoo..., se:cdpVersion: 124.0.6367.61, setWindowRect: true, strictFileInteractability: false, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}, unhandledPromptBehavior: dismiss and notify, webauthn:extension:credBlob: true, webauthn:extension:largeBlob: true, webauthn:extension:minPinLength: true, webauthn:extension:prf: true, webauthn:virtualAuthenticators: true}
+Session ID: cb3d705f225d402bb14ffbfe8fcf9112
+	at org.openqa.selenium.remote.codec.w3c.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:132)
+	at org.openqa.selenium.remote.codec.w3c.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:51)
+	at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:190)
+	at org.openqa.selenium.remote.service.DriverCommandExecutor.invokeExecute(DriverCommandExecutor.java:216)
+	at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:174)
+	at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:519)
+	at org.openqa.selenium.remote.ElementLocation$ElementFinder$2.findElement(ElementLocation.java:165)
+	at org.openqa.selenium.remote.ElementLocation.findElement(ElementLocation.java:59)
+	at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:356)
+	at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:350)
+	at keywords.GenericKeywords.getElement(GenericKeywords.java:208)
+	at keywords.GenericKeywords.selectByVisibleText(GenericKeywords.java:167)
+	at testcasesrediffPortfolio.ManagePortfolioTest.deletePortfolio(ManagePortfolioTest.java:27)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:104)
+... Removed 22 stack frames
Click to show all stack frames +
org.openqa.selenium.UnhandledAlertException: unexpected alert open: {Alert text : Please enter captcha}
+  (Session info: chrome=124.0.6367.61): Please enter captcha
+Build info: version: '4.17.0', revision: 'e52b1be057*'
+System info: os.name: 'Mac OS X', os.arch: 'aarch64', os.version: '14.4.1', java.version: '21.0.1'
+Driver info: org.openqa.selenium.chrome.ChromeDriver
+Command: [cb3d705f225d402bb14ffbfe8fcf9112, findElement {value=portfolioid, using=id}]
+Capabilities {acceptInsecureCerts: false, browserName: chrome, browserVersion: 124.0.6367.61, chrome: {chromedriverVersion: 123.0.6312.122 (31f8248cdd9..., userDataDir: /var/folders/rg/b21vyw1s0v7...}, fedcm:accounts: true, goog:chromeOptions: {debuggerAddress: localhost:62126}, networkConnectionEnabled: false, pageLoadStrategy: normal, platformName: mac, proxy: Proxy(), se:cdp: ws://localhost:62126/devtoo..., se:cdpVersion: 124.0.6367.61, setWindowRect: true, strictFileInteractability: false, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}, unhandledPromptBehavior: dismiss and notify, webauthn:extension:credBlob: true, webauthn:extension:largeBlob: true, webauthn:extension:minPinLength: true, webauthn:extension:prf: true, webauthn:virtualAuthenticators: true}
+Session ID: cb3d705f225d402bb14ffbfe8fcf9112
+	at org.openqa.selenium.remote.codec.w3c.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:132)
+	at org.openqa.selenium.remote.codec.w3c.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:51)
+	at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:190)
+	at org.openqa.selenium.remote.service.DriverCommandExecutor.invokeExecute(DriverCommandExecutor.java:216)
+	at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:174)
+	at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:519)
+	at org.openqa.selenium.remote.ElementLocation$ElementFinder$2.findElement(ElementLocation.java:165)
+	at org.openqa.selenium.remote.ElementLocation.findElement(ElementLocation.java:59)
+	at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:356)
+	at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:350)
+	at keywords.GenericKeywords.getElement(GenericKeywords.java:208)
+	at keywords.GenericKeywords.selectByVisibleText(GenericKeywords.java:167)
+	at testcasesrediffPortfolio.ManagePortfolioTest.deletePortfolio(ManagePortfolioTest.java:27)
+	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
+	at org.testng.internal.invokers.TestInvoker.invokeMethod(TestInvoker.java:664)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethod(TestInvoker.java:228)
+	at org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:63)
+	at org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:961)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:201)
+	at org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:148)
+	at org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:128)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at org.testng.TestRunner.privateRun(TestRunner.java:819)
+	at org.testng.TestRunner.run(TestRunner.java:619)
+	at org.testng.SuiteRunner.runTest(SuiteRunner.java:443)
+	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:437)
+	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:397)
+	at org.testng.SuiteRunner.run(SuiteRunner.java:336)
+	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
+	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1301)
+	at org.testng.TestNG.runSuitesLocally(TestNG.java:1228)
+	at org.testng.TestNG.runSuites(TestNG.java:1134)
+	at org.testng.TestNG.run(TestNG.java:1101)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:104)
+
0testcasesrediffPortfolio.ManagePortfolioTest@27808f31

+ + + + + + + + + + + + + +
PASSED TESTS
Test methodAttribute(s)ExceptionTime (seconds)Instance
doLogin
Test class: testcasesrediffPortfolio.ManageSessionTest
66testcasesrediffPortfolio.ManageSessionTest@37d31475

+ + \ No newline at end of file diff --git a/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Delete Portfolio Method.xml b/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Delete Portfolio Method.xml new file mode 100644 index 0000000..61deb9e --- /dev/null +++ b/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Delete Portfolio Method.xml @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Create Portfolio Method 1.html b/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Create Portfolio Method 1.html new file mode 100644 index 0000000..a855a72 --- /dev/null +++ b/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Create Portfolio Method 1.html @@ -0,0 +1,274 @@ + + +TestNG: Manage Portfolio Suite : Create Portfolio Method 1 + + + + + + + + +

Manage Portfolio Suite : Create Portfolio Method 1

+ + + + + + + + + + + +
Tests passed/Failed/Skipped:0/0/2
Started on:Sat May 11 00:29:03 IST 2024
Total time:0 seconds (219 ms)
Included groups:
Excluded groups:

+(Hover the method name to see the test class name)

+ + + + + + + + + + + + + + + + + + + + + + + +
FAILED CONFIGURATIONS
Test methodAttribute(s)ExceptionTime (seconds)Instance
beforeTest
Test class: testcasesrediffPortfolio.ManageSessionTest
Parameters: org.testng.TestRunner@62515a47
java.lang.NullPointerException: Cannot invoke "String.equalsIgnoreCase(String)" because "runMode" is null
+	at testbase.BaseTest.beforeTest(BaseTest.java:66)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:124)
+... Removed 19 stack frames
Click to show all stack frames +
java.lang.NullPointerException: Cannot invoke "String.equalsIgnoreCase(String)" because "runMode" is null
+	at testbase.BaseTest.beforeTest(BaseTest.java:66)
+	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:69)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:393)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:326)
+	at org.testng.TestRunner.invokeTestConfigurations(TestRunner.java:661)
+	at org.testng.TestRunner.beforeRun(TestRunner.java:650)
+	at org.testng.TestRunner.run(TestRunner.java:612)
+	at org.testng.SuiteRunner.runTest(SuiteRunner.java:443)
+	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:437)
+	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:397)
+	at org.testng.SuiteRunner.run(SuiteRunner.java:336)
+	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
+	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1301)
+	at org.testng.TestNG.runSuitesLocally(TestNG.java:1228)
+	at org.testng.TestNG.runSuites(TestNG.java:1134)
+	at org.testng.TestNG.run(TestNG.java:1101)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:124)
+
0testcasesrediffPortfolio.ManageSessionTest@7a67e3c6
afterMethod
Test class: testcasesrediffPortfolio.ManageSessionTest
Parameters: org.testng.TestRunner@62515a47
java.lang.NullPointerException: Cannot invoke "keywords.ApplicationKeywords.reportAll()" because "this.app" is null
+	at testbase.BaseTest.afterMethod(BaseTest.java:108)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:124)
+... Removed 27 stack frames
Click to show all stack frames +
java.lang.NullPointerException: Cannot invoke "keywords.ApplicationKeywords.reportAll()" because "this.app" is null
+	at testbase.BaseTest.afterMethod(BaseTest.java:108)
+	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:69)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:393)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:326)
+	at org.testng.internal.invokers.TestInvoker.runConfigMethods(TestInvoker.java:810)
+	at org.testng.internal.invokers.TestInvoker.runAfterConfigurations(TestInvoker.java:779)
+	at org.testng.internal.invokers.TestInvoker.invokeMethod(TestInvoker.java:600)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethod(TestInvoker.java:228)
+	at org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:63)
+	at org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:961)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:201)
+	at org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:148)
+	at org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:128)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at org.testng.TestRunner.privateRun(TestRunner.java:819)
+	at org.testng.TestRunner.run(TestRunner.java:619)
+	at org.testng.SuiteRunner.runTest(SuiteRunner.java:443)
+	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:437)
+	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:397)
+	at org.testng.SuiteRunner.run(SuiteRunner.java:336)
+	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
+	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1301)
+	at org.testng.TestNG.runSuitesLocally(TestNG.java:1228)
+	at org.testng.TestNG.runSuites(TestNG.java:1134)
+	at org.testng.TestNG.run(TestNG.java:1101)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:124)
+
0testcasesrediffPortfolio.ManageSessionTest@7a67e3c6
afterMethod
Test class: testcasesrediffPortfolio.ManagePortfolioTest
Parameters: org.testng.TestRunner@62515a47
java.lang.NullPointerException: Cannot invoke "keywords.ApplicationKeywords.reportAll()" because "this.app" is null
+	at testbase.BaseTest.afterMethod(BaseTest.java:108)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:124)
+... Removed 27 stack frames
Click to show all stack frames +
java.lang.NullPointerException: Cannot invoke "keywords.ApplicationKeywords.reportAll()" because "this.app" is null
+	at testbase.BaseTest.afterMethod(BaseTest.java:108)
+	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:69)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:393)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:326)
+	at org.testng.internal.invokers.TestInvoker.runConfigMethods(TestInvoker.java:810)
+	at org.testng.internal.invokers.TestInvoker.runAfterConfigurations(TestInvoker.java:779)
+	at org.testng.internal.invokers.TestInvoker.invokeMethod(TestInvoker.java:600)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethod(TestInvoker.java:228)
+	at org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:63)
+	at org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:961)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:201)
+	at org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:148)
+	at org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:128)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at org.testng.TestRunner.privateRun(TestRunner.java:819)
+	at org.testng.TestRunner.run(TestRunner.java:619)
+	at org.testng.SuiteRunner.runTest(SuiteRunner.java:443)
+	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:437)
+	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:397)
+	at org.testng.SuiteRunner.run(SuiteRunner.java:336)
+	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
+	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1301)
+	at org.testng.TestNG.runSuitesLocally(TestNG.java:1228)
+	at org.testng.TestNG.runSuites(TestNG.java:1134)
+	at org.testng.TestNG.run(TestNG.java:1101)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:124)
+
0testcasesrediffPortfolio.ManagePortfolioTest@7c8c9a05

+ + + + + + + + + + + + + + + + + + +
SKIPPED TESTS
Test methodAttribute(s)ExceptionTime (seconds)Instance
doLogin
Test class: testcasesrediffPortfolio.ManageSessionTest
Parameters: org.testng.TestRunner@62515a47
java.lang.NullPointerException: Cannot invoke "String.equalsIgnoreCase(String)" because "runMode" is null
+	at testbase.BaseTest.beforeTest(BaseTest.java:66)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:124)
+... Removed 19 stack frames
Click to show all stack frames +
java.lang.NullPointerException: Cannot invoke "String.equalsIgnoreCase(String)" because "runMode" is null
+	at testbase.BaseTest.beforeTest(BaseTest.java:66)
+	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:69)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:393)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:326)
+	at org.testng.TestRunner.invokeTestConfigurations(TestRunner.java:661)
+	at org.testng.TestRunner.beforeRun(TestRunner.java:650)
+	at org.testng.TestRunner.run(TestRunner.java:612)
+	at org.testng.SuiteRunner.runTest(SuiteRunner.java:443)
+	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:437)
+	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:397)
+	at org.testng.SuiteRunner.run(SuiteRunner.java:336)
+	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
+	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1301)
+	at org.testng.TestNG.runSuitesLocally(TestNG.java:1228)
+	at org.testng.TestNG.runSuites(TestNG.java:1134)
+	at org.testng.TestNG.run(TestNG.java:1101)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:124)
+
0testcasesrediffPortfolio.ManageSessionTest@7a67e3c6
createPortfolio
Test class: testcasesrediffPortfolio.ManagePortfolioTest
Parameters: org.testng.TestRunner@62515a47
java.lang.NullPointerException: Cannot invoke "String.equalsIgnoreCase(String)" because "runMode" is null
+	at testbase.BaseTest.beforeTest(BaseTest.java:66)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:124)
+... Removed 19 stack frames
Click to show all stack frames +
java.lang.NullPointerException: Cannot invoke "String.equalsIgnoreCase(String)" because "runMode" is null
+	at testbase.BaseTest.beforeTest(BaseTest.java:66)
+	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:69)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:393)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:326)
+	at org.testng.TestRunner.invokeTestConfigurations(TestRunner.java:661)
+	at org.testng.TestRunner.beforeRun(TestRunner.java:650)
+	at org.testng.TestRunner.run(TestRunner.java:612)
+	at org.testng.SuiteRunner.runTest(SuiteRunner.java:443)
+	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:437)
+	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:397)
+	at org.testng.SuiteRunner.run(SuiteRunner.java:336)
+	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
+	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1301)
+	at org.testng.TestNG.runSuitesLocally(TestNG.java:1228)
+	at org.testng.TestNG.runSuites(TestNG.java:1134)
+	at org.testng.TestNG.run(TestNG.java:1101)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:124)
+
0testcasesrediffPortfolio.ManagePortfolioTest@7c8c9a05

+ + \ No newline at end of file diff --git a/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Create Portfolio Method 1.xml b/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Create Portfolio Method 1.xml new file mode 100644 index 0000000..81f606d --- /dev/null +++ b/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Create Portfolio Method 1.xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Create Portfolio Method 2.html b/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Create Portfolio Method 2.html new file mode 100644 index 0000000..b62160e --- /dev/null +++ b/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Create Portfolio Method 2.html @@ -0,0 +1,90 @@ + + +TestNG: Manage Portfolio Suite : Create Portfolio Method 2 + + + + + + + + +

Manage Portfolio Suite : Create Portfolio Method 2

+ + + + + + + + + + + +
Tests passed/Failed/Skipped:2/0/0
Started on:Sat May 11 00:29:03 IST 2024
Total time:108 seconds (108127 ms)
Included groups:
Excluded groups:

+(Hover the method name to see the test class name)

+ + + + + + + + + + + + + + + + + + +
PASSED TESTS
Test methodAttribute(s)ExceptionTime (seconds)Instance
createPortfolio
Test class: testcasesrediffPortfolio.ManagePortfolioTest
Parameters: org.testng.TestRunner@65e21ce3
18testcasesrediffPortfolio.ManagePortfolioTest@5a755cc1
doLogin
Test class: testcasesrediffPortfolio.ManageSessionTest
Parameters: org.testng.TestRunner@65e21ce3
89testcasesrediffPortfolio.ManageSessionTest@598bd2ba

+ + \ No newline at end of file diff --git a/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Create Portfolio Method 2.xml b/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Create Portfolio Method 2.xml new file mode 100644 index 0000000..915a9e7 --- /dev/null +++ b/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Create Portfolio Method 2.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Create Portfolio Method 3.html b/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Create Portfolio Method 3.html new file mode 100644 index 0000000..6085086 --- /dev/null +++ b/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Create Portfolio Method 3.html @@ -0,0 +1,293 @@ + + +TestNG: Manage Portfolio Suite : Create Portfolio Method 3 + + + + + + + + +

Manage Portfolio Suite : Create Portfolio Method 3

+ + + + + + + + + + + +
Tests passed/Failed/Skipped:0/0/2
Started on:Sat May 11 00:30:51 IST 2024
Total time:0 seconds (18 ms)
Included groups:
Excluded groups:

+(Hover the method name to see the test class name)

+ + + + + + + + + + + + + + + + + + +
FAILED CONFIGURATIONS
Test methodAttribute(s)ExceptionTime (seconds)Instance
afterMethod
Test class: testcasesrediffPortfolio.ManageSessionTest
Parameters: org.testng.TestRunner@712cfb63
java.lang.NullPointerException: Cannot invoke "keywords.ApplicationKeywords.reportAll()" because "this.app" is null
+	at testbase.BaseTest.afterMethod(BaseTest.java:108)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:124)
+... Removed 27 stack frames
Click to show all stack frames +
java.lang.NullPointerException: Cannot invoke "keywords.ApplicationKeywords.reportAll()" because "this.app" is null
+	at testbase.BaseTest.afterMethod(BaseTest.java:108)
+	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:69)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:393)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:326)
+	at org.testng.internal.invokers.TestInvoker.runConfigMethods(TestInvoker.java:810)
+	at org.testng.internal.invokers.TestInvoker.runAfterConfigurations(TestInvoker.java:779)
+	at org.testng.internal.invokers.TestInvoker.invokeMethod(TestInvoker.java:600)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethod(TestInvoker.java:228)
+	at org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:63)
+	at org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:961)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:201)
+	at org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:148)
+	at org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:128)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at org.testng.TestRunner.privateRun(TestRunner.java:819)
+	at org.testng.TestRunner.run(TestRunner.java:619)
+	at org.testng.SuiteRunner.runTest(SuiteRunner.java:443)
+	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:437)
+	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:397)
+	at org.testng.SuiteRunner.run(SuiteRunner.java:336)
+	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
+	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1301)
+	at org.testng.TestNG.runSuitesLocally(TestNG.java:1228)
+	at org.testng.TestNG.runSuites(TestNG.java:1134)
+	at org.testng.TestNG.run(TestNG.java:1101)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:124)
+
0testcasesrediffPortfolio.ManageSessionTest@4f5991f6
afterMethod
Test class: testcasesrediffPortfolio.ManagePortfolioTest
Parameters: org.testng.TestRunner@712cfb63
java.lang.NullPointerException: Cannot invoke "keywords.ApplicationKeywords.reportAll()" because "this.app" is null
+	at testbase.BaseTest.afterMethod(BaseTest.java:108)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:124)
+... Removed 27 stack frames
Click to show all stack frames +
java.lang.NullPointerException: Cannot invoke "keywords.ApplicationKeywords.reportAll()" because "this.app" is null
+	at testbase.BaseTest.afterMethod(BaseTest.java:108)
+	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:69)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:393)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:326)
+	at org.testng.internal.invokers.TestInvoker.runConfigMethods(TestInvoker.java:810)
+	at org.testng.internal.invokers.TestInvoker.runAfterConfigurations(TestInvoker.java:779)
+	at org.testng.internal.invokers.TestInvoker.invokeMethod(TestInvoker.java:600)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethod(TestInvoker.java:228)
+	at org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:63)
+	at org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:961)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:201)
+	at org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:148)
+	at org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:128)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at org.testng.TestRunner.privateRun(TestRunner.java:819)
+	at org.testng.TestRunner.run(TestRunner.java:619)
+	at org.testng.SuiteRunner.runTest(SuiteRunner.java:443)
+	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:437)
+	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:397)
+	at org.testng.SuiteRunner.run(SuiteRunner.java:336)
+	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
+	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1301)
+	at org.testng.TestNG.runSuitesLocally(TestNG.java:1228)
+	at org.testng.TestNG.runSuites(TestNG.java:1134)
+	at org.testng.TestNG.run(TestNG.java:1101)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:124)
+
0testcasesrediffPortfolio.ManagePortfolioTest@484094a5

+ + + + + + + + + + + + + +
SKIPPED CONFIGURATIONS
Test methodAttribute(s)ExceptionTime (seconds)Instance
beforeTest
Test class: testcasesrediffPortfolio.ManageSessionTest
Parameters: org.testng.TestRunner@712cfb63
org.testng.SkipException: RunMode in Test Data is not True
+	at testbase.BaseTest.beforeTest(BaseTest.java:68)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:124)
+... Removed 19 stack frames
Click to show all stack frames +
org.testng.SkipException: RunMode in Test Data is not True
+	at testbase.BaseTest.beforeTest(BaseTest.java:68)
+	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:69)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:393)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:326)
+	at org.testng.TestRunner.invokeTestConfigurations(TestRunner.java:661)
+	at org.testng.TestRunner.beforeRun(TestRunner.java:650)
+	at org.testng.TestRunner.run(TestRunner.java:612)
+	at org.testng.SuiteRunner.runTest(SuiteRunner.java:443)
+	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:437)
+	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:397)
+	at org.testng.SuiteRunner.run(SuiteRunner.java:336)
+	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
+	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1301)
+	at org.testng.TestNG.runSuitesLocally(TestNG.java:1228)
+	at org.testng.TestNG.runSuites(TestNG.java:1134)
+	at org.testng.TestNG.run(TestNG.java:1101)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:124)
+
0testcasesrediffPortfolio.ManageSessionTest@4f5991f6

+ + + + + + + + + + + + + + + + + + +
SKIPPED TESTS
Test methodAttribute(s)ExceptionTime (seconds)Instance
doLogin
Test class: testcasesrediffPortfolio.ManageSessionTest
Parameters: org.testng.TestRunner@712cfb63
org.testng.SkipException: RunMode in Test Data is not True
+	at testbase.BaseTest.beforeTest(BaseTest.java:68)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:124)
+... Removed 19 stack frames
Click to show all stack frames +
org.testng.SkipException: RunMode in Test Data is not True
+	at testbase.BaseTest.beforeTest(BaseTest.java:68)
+	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:69)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:393)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:326)
+	at org.testng.TestRunner.invokeTestConfigurations(TestRunner.java:661)
+	at org.testng.TestRunner.beforeRun(TestRunner.java:650)
+	at org.testng.TestRunner.run(TestRunner.java:612)
+	at org.testng.SuiteRunner.runTest(SuiteRunner.java:443)
+	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:437)
+	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:397)
+	at org.testng.SuiteRunner.run(SuiteRunner.java:336)
+	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
+	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1301)
+	at org.testng.TestNG.runSuitesLocally(TestNG.java:1228)
+	at org.testng.TestNG.runSuites(TestNG.java:1134)
+	at org.testng.TestNG.run(TestNG.java:1101)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:124)
+
0testcasesrediffPortfolio.ManageSessionTest@4f5991f6
createPortfolio
Test class: testcasesrediffPortfolio.ManagePortfolioTest
Parameters: org.testng.TestRunner@712cfb63
java.lang.NullPointerException: Cannot invoke "keywords.ApplicationKeywords.reportAll()" because "this.app" is null
+	at testbase.BaseTest.afterMethod(BaseTest.java:108)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:124)
+... Removed 27 stack frames
Click to show all stack frames +
java.lang.NullPointerException: Cannot invoke "keywords.ApplicationKeywords.reportAll()" because "this.app" is null
+	at testbase.BaseTest.afterMethod(BaseTest.java:108)
+	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:69)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:393)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:326)
+	at org.testng.internal.invokers.TestInvoker.runConfigMethods(TestInvoker.java:810)
+	at org.testng.internal.invokers.TestInvoker.runAfterConfigurations(TestInvoker.java:779)
+	at org.testng.internal.invokers.TestInvoker.invokeMethod(TestInvoker.java:600)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethod(TestInvoker.java:228)
+	at org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:63)
+	at org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:961)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:201)
+	at org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:148)
+	at org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:128)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at org.testng.TestRunner.privateRun(TestRunner.java:819)
+	at org.testng.TestRunner.run(TestRunner.java:619)
+	at org.testng.SuiteRunner.runTest(SuiteRunner.java:443)
+	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:437)
+	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:397)
+	at org.testng.SuiteRunner.run(SuiteRunner.java:336)
+	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
+	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1301)
+	at org.testng.TestNG.runSuitesLocally(TestNG.java:1228)
+	at org.testng.TestNG.runSuites(TestNG.java:1134)
+	at org.testng.TestNG.run(TestNG.java:1101)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:124)
+
0testcasesrediffPortfolio.ManagePortfolioTest@484094a5

+ + \ No newline at end of file diff --git a/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Create Portfolio Method 3.xml b/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Create Portfolio Method 3.xml new file mode 100644 index 0000000..c1f1370 --- /dev/null +++ b/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Create Portfolio Method 3.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Create Portfolio Method 4.html b/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Create Portfolio Method 4.html new file mode 100644 index 0000000..192ca0e --- /dev/null +++ b/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Create Portfolio Method 4.html @@ -0,0 +1,293 @@ + + +TestNG: Manage Portfolio Suite : Create Portfolio Method 4 + + + + + + + + +

Manage Portfolio Suite : Create Portfolio Method 4

+ + + + + + + + + + + +
Tests passed/Failed/Skipped:0/0/2
Started on:Fri May 03 23:53:47 IST 2024
Total time:0 seconds (5 ms)
Included groups:
Excluded groups:

+(Hover the method name to see the test class name)

+ + + + + + + + + + + + + + + + + + +
FAILED CONFIGURATIONS
Test methodAttribute(s)ExceptionTime (seconds)Instance
afterMethod
Test class: testcasesrediffPortfolio.ManageSessionTest
Parameters: org.testng.TestRunner@34f22f9d
java.lang.NullPointerException: Cannot invoke "keywords.ApplicationKeywords.reportAll()" because "this.app" is null
+	at testbase.BaseTest.afterMethod(BaseTest.java:97)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:119)
+... Removed 27 stack frames
Click to show all stack frames +
java.lang.NullPointerException: Cannot invoke "keywords.ApplicationKeywords.reportAll()" because "this.app" is null
+	at testbase.BaseTest.afterMethod(BaseTest.java:97)
+	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:69)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:393)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:326)
+	at org.testng.internal.invokers.TestInvoker.runConfigMethods(TestInvoker.java:810)
+	at org.testng.internal.invokers.TestInvoker.runAfterConfigurations(TestInvoker.java:779)
+	at org.testng.internal.invokers.TestInvoker.invokeMethod(TestInvoker.java:600)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethod(TestInvoker.java:228)
+	at org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:63)
+	at org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:961)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:201)
+	at org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:148)
+	at org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:128)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at org.testng.TestRunner.privateRun(TestRunner.java:819)
+	at org.testng.TestRunner.run(TestRunner.java:619)
+	at org.testng.SuiteRunner.runTest(SuiteRunner.java:443)
+	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:437)
+	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:397)
+	at org.testng.SuiteRunner.run(SuiteRunner.java:336)
+	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
+	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1301)
+	at org.testng.TestNG.runSuitesLocally(TestNG.java:1228)
+	at org.testng.TestNG.runSuites(TestNG.java:1134)
+	at org.testng.TestNG.run(TestNG.java:1101)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:119)
+
0testcasesrediffPortfolio.ManageSessionTest@2c039ac6
afterMethod
Test class: testcasesrediffPortfolio.ManagePortfolioTest
Parameters: org.testng.TestRunner@34f22f9d
java.lang.NullPointerException: Cannot invoke "keywords.ApplicationKeywords.reportAll()" because "this.app" is null
+	at testbase.BaseTest.afterMethod(BaseTest.java:97)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:119)
+... Removed 27 stack frames
Click to show all stack frames +
java.lang.NullPointerException: Cannot invoke "keywords.ApplicationKeywords.reportAll()" because "this.app" is null
+	at testbase.BaseTest.afterMethod(BaseTest.java:97)
+	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:69)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:393)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:326)
+	at org.testng.internal.invokers.TestInvoker.runConfigMethods(TestInvoker.java:810)
+	at org.testng.internal.invokers.TestInvoker.runAfterConfigurations(TestInvoker.java:779)
+	at org.testng.internal.invokers.TestInvoker.invokeMethod(TestInvoker.java:600)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethod(TestInvoker.java:228)
+	at org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:63)
+	at org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:961)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:201)
+	at org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:148)
+	at org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:128)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at org.testng.TestRunner.privateRun(TestRunner.java:819)
+	at org.testng.TestRunner.run(TestRunner.java:619)
+	at org.testng.SuiteRunner.runTest(SuiteRunner.java:443)
+	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:437)
+	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:397)
+	at org.testng.SuiteRunner.run(SuiteRunner.java:336)
+	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
+	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1301)
+	at org.testng.TestNG.runSuitesLocally(TestNG.java:1228)
+	at org.testng.TestNG.runSuites(TestNG.java:1134)
+	at org.testng.TestNG.run(TestNG.java:1101)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:119)
+
0testcasesrediffPortfolio.ManagePortfolioTest@587d1d39

+ + + + + + + + + + + + + +
SKIPPED CONFIGURATIONS
Test methodAttribute(s)ExceptionTime (seconds)Instance
beforeTest
Test class: testcasesrediffPortfolio.ManageSessionTest
Parameters: org.testng.TestRunner@34f22f9d
org.testng.SkipException: RunMode in Test Data is not True
+	at testbase.BaseTest.beforeTest(BaseTest.java:57)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:119)
+... Removed 19 stack frames
Click to show all stack frames +
org.testng.SkipException: RunMode in Test Data is not True
+	at testbase.BaseTest.beforeTest(BaseTest.java:57)
+	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:69)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:393)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:326)
+	at org.testng.TestRunner.invokeTestConfigurations(TestRunner.java:661)
+	at org.testng.TestRunner.beforeRun(TestRunner.java:650)
+	at org.testng.TestRunner.run(TestRunner.java:612)
+	at org.testng.SuiteRunner.runTest(SuiteRunner.java:443)
+	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:437)
+	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:397)
+	at org.testng.SuiteRunner.run(SuiteRunner.java:336)
+	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
+	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1301)
+	at org.testng.TestNG.runSuitesLocally(TestNG.java:1228)
+	at org.testng.TestNG.runSuites(TestNG.java:1134)
+	at org.testng.TestNG.run(TestNG.java:1101)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:119)
+
0testcasesrediffPortfolio.ManageSessionTest@2c039ac6

+ + + + + + + + + + + + + + + + + + +
SKIPPED TESTS
Test methodAttribute(s)ExceptionTime (seconds)Instance
createPortfolio
Test class: testcasesrediffPortfolio.ManagePortfolioTest
java.lang.NullPointerException: Cannot invoke "keywords.ApplicationKeywords.reportAll()" because "this.app" is null
+	at testbase.BaseTest.afterMethod(BaseTest.java:97)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:119)
+... Removed 27 stack frames
Click to show all stack frames +
java.lang.NullPointerException: Cannot invoke "keywords.ApplicationKeywords.reportAll()" because "this.app" is null
+	at testbase.BaseTest.afterMethod(BaseTest.java:97)
+	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:69)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:393)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:326)
+	at org.testng.internal.invokers.TestInvoker.runConfigMethods(TestInvoker.java:810)
+	at org.testng.internal.invokers.TestInvoker.runAfterConfigurations(TestInvoker.java:779)
+	at org.testng.internal.invokers.TestInvoker.invokeMethod(TestInvoker.java:600)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethod(TestInvoker.java:228)
+	at org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:63)
+	at org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:961)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:201)
+	at org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:148)
+	at org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:128)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at org.testng.TestRunner.privateRun(TestRunner.java:819)
+	at org.testng.TestRunner.run(TestRunner.java:619)
+	at org.testng.SuiteRunner.runTest(SuiteRunner.java:443)
+	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:437)
+	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:397)
+	at org.testng.SuiteRunner.run(SuiteRunner.java:336)
+	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
+	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1301)
+	at org.testng.TestNG.runSuitesLocally(TestNG.java:1228)
+	at org.testng.TestNG.runSuites(TestNG.java:1134)
+	at org.testng.TestNG.run(TestNG.java:1101)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:119)
+
0testcasesrediffPortfolio.ManagePortfolioTest@587d1d39
doLogin
Test class: testcasesrediffPortfolio.ManageSessionTest
org.testng.SkipException: RunMode in Test Data is not True
+	at testbase.BaseTest.beforeTest(BaseTest.java:57)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:119)
+... Removed 19 stack frames
Click to show all stack frames +
org.testng.SkipException: RunMode in Test Data is not True
+	at testbase.BaseTest.beforeTest(BaseTest.java:57)
+	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:69)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:393)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:326)
+	at org.testng.TestRunner.invokeTestConfigurations(TestRunner.java:661)
+	at org.testng.TestRunner.beforeRun(TestRunner.java:650)
+	at org.testng.TestRunner.run(TestRunner.java:612)
+	at org.testng.SuiteRunner.runTest(SuiteRunner.java:443)
+	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:437)
+	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:397)
+	at org.testng.SuiteRunner.run(SuiteRunner.java:336)
+	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
+	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1301)
+	at org.testng.TestNG.runSuitesLocally(TestNG.java:1228)
+	at org.testng.TestNG.runSuites(TestNG.java:1134)
+	at org.testng.TestNG.run(TestNG.java:1101)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:119)
+
0testcasesrediffPortfolio.ManageSessionTest@2c039ac6

+ + \ No newline at end of file diff --git a/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Create Portfolio Method 4.xml b/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Create Portfolio Method 4.xml new file mode 100644 index 0000000..1d557d1 --- /dev/null +++ b/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Create Portfolio Method 4.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Create Portfolio Method 5.html b/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Create Portfolio Method 5.html new file mode 100644 index 0000000..c9cfda2 --- /dev/null +++ b/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Create Portfolio Method 5.html @@ -0,0 +1,293 @@ + + +TestNG: Manage Portfolio Suite : Create Portfolio Method 5 + + + + + + + + +

Manage Portfolio Suite : Create Portfolio Method 5

+ + + + + + + + + + + +
Tests passed/Failed/Skipped:0/0/2
Started on:Fri May 03 23:53:47 IST 2024
Total time:0 seconds (5 ms)
Included groups:
Excluded groups:

+(Hover the method name to see the test class name)

+ + + + + + + + + + + + + + + + + + +
FAILED CONFIGURATIONS
Test methodAttribute(s)ExceptionTime (seconds)Instance
afterMethod
Test class: testcasesrediffPortfolio.ManagePortfolioTest
Parameters: org.testng.TestRunner@24111ef1
java.lang.NullPointerException: Cannot invoke "keywords.ApplicationKeywords.reportAll()" because "this.app" is null
+	at testbase.BaseTest.afterMethod(BaseTest.java:97)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:119)
+... Removed 27 stack frames
Click to show all stack frames +
java.lang.NullPointerException: Cannot invoke "keywords.ApplicationKeywords.reportAll()" because "this.app" is null
+	at testbase.BaseTest.afterMethod(BaseTest.java:97)
+	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:69)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:393)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:326)
+	at org.testng.internal.invokers.TestInvoker.runConfigMethods(TestInvoker.java:810)
+	at org.testng.internal.invokers.TestInvoker.runAfterConfigurations(TestInvoker.java:779)
+	at org.testng.internal.invokers.TestInvoker.invokeMethod(TestInvoker.java:600)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethod(TestInvoker.java:228)
+	at org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:63)
+	at org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:961)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:201)
+	at org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:148)
+	at org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:128)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at org.testng.TestRunner.privateRun(TestRunner.java:819)
+	at org.testng.TestRunner.run(TestRunner.java:619)
+	at org.testng.SuiteRunner.runTest(SuiteRunner.java:443)
+	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:437)
+	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:397)
+	at org.testng.SuiteRunner.run(SuiteRunner.java:336)
+	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
+	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1301)
+	at org.testng.TestNG.runSuitesLocally(TestNG.java:1228)
+	at org.testng.TestNG.runSuites(TestNG.java:1134)
+	at org.testng.TestNG.run(TestNG.java:1101)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:119)
+
0testcasesrediffPortfolio.ManagePortfolioTest@6b9651f3
afterMethod
Test class: testcasesrediffPortfolio.ManageSessionTest
Parameters: org.testng.TestRunner@24111ef1
java.lang.NullPointerException: Cannot invoke "keywords.ApplicationKeywords.reportAll()" because "this.app" is null
+	at testbase.BaseTest.afterMethod(BaseTest.java:97)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:119)
+... Removed 27 stack frames
Click to show all stack frames +
java.lang.NullPointerException: Cannot invoke "keywords.ApplicationKeywords.reportAll()" because "this.app" is null
+	at testbase.BaseTest.afterMethod(BaseTest.java:97)
+	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:69)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:393)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:326)
+	at org.testng.internal.invokers.TestInvoker.runConfigMethods(TestInvoker.java:810)
+	at org.testng.internal.invokers.TestInvoker.runAfterConfigurations(TestInvoker.java:779)
+	at org.testng.internal.invokers.TestInvoker.invokeMethod(TestInvoker.java:600)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethod(TestInvoker.java:228)
+	at org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:63)
+	at org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:961)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:201)
+	at org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:148)
+	at org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:128)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at org.testng.TestRunner.privateRun(TestRunner.java:819)
+	at org.testng.TestRunner.run(TestRunner.java:619)
+	at org.testng.SuiteRunner.runTest(SuiteRunner.java:443)
+	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:437)
+	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:397)
+	at org.testng.SuiteRunner.run(SuiteRunner.java:336)
+	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
+	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1301)
+	at org.testng.TestNG.runSuitesLocally(TestNG.java:1228)
+	at org.testng.TestNG.runSuites(TestNG.java:1134)
+	at org.testng.TestNG.run(TestNG.java:1101)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:119)
+
0testcasesrediffPortfolio.ManageSessionTest@5bb21b69

+ + + + + + + + + + + + + +
SKIPPED CONFIGURATIONS
Test methodAttribute(s)ExceptionTime (seconds)Instance
beforeTest
Test class: testcasesrediffPortfolio.ManageSessionTest
Parameters: org.testng.TestRunner@24111ef1
org.testng.SkipException: RunMode in Test Data is not True
+	at testbase.BaseTest.beforeTest(BaseTest.java:57)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:119)
+... Removed 19 stack frames
Click to show all stack frames +
org.testng.SkipException: RunMode in Test Data is not True
+	at testbase.BaseTest.beforeTest(BaseTest.java:57)
+	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:69)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:393)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:326)
+	at org.testng.TestRunner.invokeTestConfigurations(TestRunner.java:661)
+	at org.testng.TestRunner.beforeRun(TestRunner.java:650)
+	at org.testng.TestRunner.run(TestRunner.java:612)
+	at org.testng.SuiteRunner.runTest(SuiteRunner.java:443)
+	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:437)
+	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:397)
+	at org.testng.SuiteRunner.run(SuiteRunner.java:336)
+	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
+	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1301)
+	at org.testng.TestNG.runSuitesLocally(TestNG.java:1228)
+	at org.testng.TestNG.runSuites(TestNG.java:1134)
+	at org.testng.TestNG.run(TestNG.java:1101)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:119)
+
0testcasesrediffPortfolio.ManageSessionTest@5bb21b69

+ + + + + + + + + + + + + + + + + + +
SKIPPED TESTS
Test methodAttribute(s)ExceptionTime (seconds)Instance
doLogin
Test class: testcasesrediffPortfolio.ManageSessionTest
org.testng.SkipException: RunMode in Test Data is not True
+	at testbase.BaseTest.beforeTest(BaseTest.java:57)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:119)
+... Removed 19 stack frames
Click to show all stack frames +
org.testng.SkipException: RunMode in Test Data is not True
+	at testbase.BaseTest.beforeTest(BaseTest.java:57)
+	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:69)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:393)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:326)
+	at org.testng.TestRunner.invokeTestConfigurations(TestRunner.java:661)
+	at org.testng.TestRunner.beforeRun(TestRunner.java:650)
+	at org.testng.TestRunner.run(TestRunner.java:612)
+	at org.testng.SuiteRunner.runTest(SuiteRunner.java:443)
+	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:437)
+	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:397)
+	at org.testng.SuiteRunner.run(SuiteRunner.java:336)
+	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
+	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1301)
+	at org.testng.TestNG.runSuitesLocally(TestNG.java:1228)
+	at org.testng.TestNG.runSuites(TestNG.java:1134)
+	at org.testng.TestNG.run(TestNG.java:1101)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:119)
+
0testcasesrediffPortfolio.ManageSessionTest@5bb21b69
createPortfolio
Test class: testcasesrediffPortfolio.ManagePortfolioTest
java.lang.NullPointerException: Cannot invoke "keywords.ApplicationKeywords.reportAll()" because "this.app" is null
+	at testbase.BaseTest.afterMethod(BaseTest.java:97)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:119)
+... Removed 27 stack frames
Click to show all stack frames +
java.lang.NullPointerException: Cannot invoke "keywords.ApplicationKeywords.reportAll()" because "this.app" is null
+	at testbase.BaseTest.afterMethod(BaseTest.java:97)
+	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:69)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:393)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:326)
+	at org.testng.internal.invokers.TestInvoker.runConfigMethods(TestInvoker.java:810)
+	at org.testng.internal.invokers.TestInvoker.runAfterConfigurations(TestInvoker.java:779)
+	at org.testng.internal.invokers.TestInvoker.invokeMethod(TestInvoker.java:600)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethod(TestInvoker.java:228)
+	at org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:63)
+	at org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:961)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:201)
+	at org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:148)
+	at org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:128)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at org.testng.TestRunner.privateRun(TestRunner.java:819)
+	at org.testng.TestRunner.run(TestRunner.java:619)
+	at org.testng.SuiteRunner.runTest(SuiteRunner.java:443)
+	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:437)
+	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:397)
+	at org.testng.SuiteRunner.run(SuiteRunner.java:336)
+	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
+	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1301)
+	at org.testng.TestNG.runSuitesLocally(TestNG.java:1228)
+	at org.testng.TestNG.runSuites(TestNG.java:1134)
+	at org.testng.TestNG.run(TestNG.java:1101)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:119)
+
0testcasesrediffPortfolio.ManagePortfolioTest@6b9651f3

+ + \ No newline at end of file diff --git a/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Create Portfolio Method 5.xml b/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Create Portfolio Method 5.xml new file mode 100644 index 0000000..6db2910 --- /dev/null +++ b/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Create Portfolio Method 5.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Create Portfolio Method 6.html b/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Create Portfolio Method 6.html new file mode 100644 index 0000000..6f875c9 --- /dev/null +++ b/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Create Portfolio Method 6.html @@ -0,0 +1,293 @@ + + +TestNG: Manage Portfolio Suite : Create Portfolio Method 6 + + + + + + + + +

Manage Portfolio Suite : Create Portfolio Method 6

+ + + + + + + + + + + +
Tests passed/Failed/Skipped:0/0/2
Started on:Fri May 03 23:53:47 IST 2024
Total time:0 seconds (5 ms)
Included groups:
Excluded groups:

+(Hover the method name to see the test class name)

+ + + + + + + + + + + + + + + + + + +
FAILED CONFIGURATIONS
Test methodAttribute(s)ExceptionTime (seconds)Instance
afterMethod
Test class: testcasesrediffPortfolio.ManagePortfolioTest
Parameters: org.testng.TestRunner@388526fb
java.lang.NullPointerException: Cannot invoke "keywords.ApplicationKeywords.reportAll()" because "this.app" is null
+	at testbase.BaseTest.afterMethod(BaseTest.java:97)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:119)
+... Removed 27 stack frames
Click to show all stack frames +
java.lang.NullPointerException: Cannot invoke "keywords.ApplicationKeywords.reportAll()" because "this.app" is null
+	at testbase.BaseTest.afterMethod(BaseTest.java:97)
+	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:69)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:393)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:326)
+	at org.testng.internal.invokers.TestInvoker.runConfigMethods(TestInvoker.java:810)
+	at org.testng.internal.invokers.TestInvoker.runAfterConfigurations(TestInvoker.java:779)
+	at org.testng.internal.invokers.TestInvoker.invokeMethod(TestInvoker.java:600)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethod(TestInvoker.java:228)
+	at org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:63)
+	at org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:961)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:201)
+	at org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:148)
+	at org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:128)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at org.testng.TestRunner.privateRun(TestRunner.java:819)
+	at org.testng.TestRunner.run(TestRunner.java:619)
+	at org.testng.SuiteRunner.runTest(SuiteRunner.java:443)
+	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:437)
+	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:397)
+	at org.testng.SuiteRunner.run(SuiteRunner.java:336)
+	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
+	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1301)
+	at org.testng.TestNG.runSuitesLocally(TestNG.java:1228)
+	at org.testng.TestNG.runSuites(TestNG.java:1134)
+	at org.testng.TestNG.run(TestNG.java:1101)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:119)
+
0testcasesrediffPortfolio.ManagePortfolioTest@7a9273a8
afterMethod
Test class: testcasesrediffPortfolio.ManageSessionTest
Parameters: org.testng.TestRunner@388526fb
java.lang.NullPointerException: Cannot invoke "keywords.ApplicationKeywords.reportAll()" because "this.app" is null
+	at testbase.BaseTest.afterMethod(BaseTest.java:97)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:119)
+... Removed 27 stack frames
Click to show all stack frames +
java.lang.NullPointerException: Cannot invoke "keywords.ApplicationKeywords.reportAll()" because "this.app" is null
+	at testbase.BaseTest.afterMethod(BaseTest.java:97)
+	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:69)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:393)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:326)
+	at org.testng.internal.invokers.TestInvoker.runConfigMethods(TestInvoker.java:810)
+	at org.testng.internal.invokers.TestInvoker.runAfterConfigurations(TestInvoker.java:779)
+	at org.testng.internal.invokers.TestInvoker.invokeMethod(TestInvoker.java:600)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethod(TestInvoker.java:228)
+	at org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:63)
+	at org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:961)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:201)
+	at org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:148)
+	at org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:128)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at org.testng.TestRunner.privateRun(TestRunner.java:819)
+	at org.testng.TestRunner.run(TestRunner.java:619)
+	at org.testng.SuiteRunner.runTest(SuiteRunner.java:443)
+	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:437)
+	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:397)
+	at org.testng.SuiteRunner.run(SuiteRunner.java:336)
+	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
+	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1301)
+	at org.testng.TestNG.runSuitesLocally(TestNG.java:1228)
+	at org.testng.TestNG.runSuites(TestNG.java:1134)
+	at org.testng.TestNG.run(TestNG.java:1101)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:119)
+
0testcasesrediffPortfolio.ManageSessionTest@23d2a7e8

+ + + + + + + + + + + + + +
SKIPPED CONFIGURATIONS
Test methodAttribute(s)ExceptionTime (seconds)Instance
beforeTest
Test class: testcasesrediffPortfolio.ManageSessionTest
Parameters: org.testng.TestRunner@388526fb
org.testng.SkipException: RunMode in Test Data is not True
+	at testbase.BaseTest.beforeTest(BaseTest.java:57)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:119)
+... Removed 19 stack frames
Click to show all stack frames +
org.testng.SkipException: RunMode in Test Data is not True
+	at testbase.BaseTest.beforeTest(BaseTest.java:57)
+	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:69)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:393)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:326)
+	at org.testng.TestRunner.invokeTestConfigurations(TestRunner.java:661)
+	at org.testng.TestRunner.beforeRun(TestRunner.java:650)
+	at org.testng.TestRunner.run(TestRunner.java:612)
+	at org.testng.SuiteRunner.runTest(SuiteRunner.java:443)
+	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:437)
+	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:397)
+	at org.testng.SuiteRunner.run(SuiteRunner.java:336)
+	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
+	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1301)
+	at org.testng.TestNG.runSuitesLocally(TestNG.java:1228)
+	at org.testng.TestNG.runSuites(TestNG.java:1134)
+	at org.testng.TestNG.run(TestNG.java:1101)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:119)
+
0testcasesrediffPortfolio.ManageSessionTest@23d2a7e8

+ + + + + + + + + + + + + + + + + + +
SKIPPED TESTS
Test methodAttribute(s)ExceptionTime (seconds)Instance
doLogin
Test class: testcasesrediffPortfolio.ManageSessionTest
org.testng.SkipException: RunMode in Test Data is not True
+	at testbase.BaseTest.beforeTest(BaseTest.java:57)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:119)
+... Removed 19 stack frames
Click to show all stack frames +
org.testng.SkipException: RunMode in Test Data is not True
+	at testbase.BaseTest.beforeTest(BaseTest.java:57)
+	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:69)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:393)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:326)
+	at org.testng.TestRunner.invokeTestConfigurations(TestRunner.java:661)
+	at org.testng.TestRunner.beforeRun(TestRunner.java:650)
+	at org.testng.TestRunner.run(TestRunner.java:612)
+	at org.testng.SuiteRunner.runTest(SuiteRunner.java:443)
+	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:437)
+	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:397)
+	at org.testng.SuiteRunner.run(SuiteRunner.java:336)
+	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
+	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1301)
+	at org.testng.TestNG.runSuitesLocally(TestNG.java:1228)
+	at org.testng.TestNG.runSuites(TestNG.java:1134)
+	at org.testng.TestNG.run(TestNG.java:1101)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:119)
+
0testcasesrediffPortfolio.ManageSessionTest@23d2a7e8
createPortfolio
Test class: testcasesrediffPortfolio.ManagePortfolioTest
java.lang.NullPointerException: Cannot invoke "keywords.ApplicationKeywords.reportAll()" because "this.app" is null
+	at testbase.BaseTest.afterMethod(BaseTest.java:97)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:119)
+... Removed 27 stack frames
Click to show all stack frames +
java.lang.NullPointerException: Cannot invoke "keywords.ApplicationKeywords.reportAll()" because "this.app" is null
+	at testbase.BaseTest.afterMethod(BaseTest.java:97)
+	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:69)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:393)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:326)
+	at org.testng.internal.invokers.TestInvoker.runConfigMethods(TestInvoker.java:810)
+	at org.testng.internal.invokers.TestInvoker.runAfterConfigurations(TestInvoker.java:779)
+	at org.testng.internal.invokers.TestInvoker.invokeMethod(TestInvoker.java:600)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethod(TestInvoker.java:228)
+	at org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:63)
+	at org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:961)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:201)
+	at org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:148)
+	at org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:128)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at org.testng.TestRunner.privateRun(TestRunner.java:819)
+	at org.testng.TestRunner.run(TestRunner.java:619)
+	at org.testng.SuiteRunner.runTest(SuiteRunner.java:443)
+	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:437)
+	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:397)
+	at org.testng.SuiteRunner.run(SuiteRunner.java:336)
+	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
+	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1301)
+	at org.testng.TestNG.runSuitesLocally(TestNG.java:1228)
+	at org.testng.TestNG.runSuites(TestNG.java:1134)
+	at org.testng.TestNG.run(TestNG.java:1101)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:119)
+
0testcasesrediffPortfolio.ManagePortfolioTest@7a9273a8

+ + \ No newline at end of file diff --git a/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Create Portfolio Method 6.xml b/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Create Portfolio Method 6.xml new file mode 100644 index 0000000..7e090a5 --- /dev/null +++ b/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Create Portfolio Method 6.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Create Portfolio Method.html b/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Create Portfolio Method.html new file mode 100644 index 0000000..bf20d16 --- /dev/null +++ b/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Create Portfolio Method.html @@ -0,0 +1,170 @@ + + +TestNG: Manage Portfolio Suite : Create Portfolio Method + + + + + + + + +

Manage Portfolio Suite : Create Portfolio Method

+ + + + + + + + + + + +
Tests passed/Failed/Skipped:1/1/0
Started on:Fri May 03 22:53:35 IST 2024
Total time:191 seconds (191745 ms)
Included groups:
Excluded groups:

+(Hover the method name to see the test class name)

+ + + + + + + + + + + + + +
FAILED TESTS
Test methodAttribute(s)ExceptionTime (seconds)Instance
createPortfolio
Test class: testcasesrediffPortfolio.ManagePortfolioTest
org.openqa.selenium.UnhandledAlertException: unexpected alert open: {Alert text : Please enter captcha}
+  (Session info: chrome=124.0.6367.119): Please enter captcha
+Build info: version: '4.17.0', revision: 'e52b1be057*'
+System info: os.name: 'Mac OS X', os.arch: 'aarch64', os.version: '14.4.1', java.version: '21.0.1'
+Driver info: org.openqa.selenium.chrome.ChromeDriver
+Command: [2cd5cd0deb29c28d4cf33871bb895236, findElement {value=createPortfolio, using=id}]
+Capabilities {acceptInsecureCerts: false, browserName: chrome, browserVersion: 124.0.6367.119, chrome: {chromedriverVersion: 123.0.6312.122 (31f8248cdd9..., userDataDir: /var/folders/rg/b21vyw1s0v7...}, fedcm:accounts: true, goog:chromeOptions: {debuggerAddress: localhost:55608}, networkConnectionEnabled: false, pageLoadStrategy: normal, platformName: mac, proxy: Proxy(), se:cdp: ws://localhost:55608/devtoo..., se:cdpVersion: 124.0.6367.119, setWindowRect: true, strictFileInteractability: false, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}, unhandledPromptBehavior: dismiss and notify, webauthn:extension:credBlob: true, webauthn:extension:largeBlob: true, webauthn:extension:minPinLength: true, webauthn:extension:prf: true, webauthn:virtualAuthenticators: true}
+Session ID: 2cd5cd0deb29c28d4cf33871bb895236
+	at org.openqa.selenium.remote.codec.w3c.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:132)
+	at org.openqa.selenium.remote.codec.w3c.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:51)
+	at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:190)
+	at org.openqa.selenium.remote.service.DriverCommandExecutor.invokeExecute(DriverCommandExecutor.java:216)
+	at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:174)
+	at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:519)
+	at org.openqa.selenium.remote.ElementLocation$ElementFinder$2.findElement(ElementLocation.java:165)
+	at org.openqa.selenium.remote.ElementLocation.findElement(ElementLocation.java:59)
+	at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:356)
+	at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:350)
+	at keywords.GenericKeywords.getElement(GenericKeywords.java:208)
+	at keywords.GenericKeywords.click(GenericKeywords.java:146)
+	at testcasesrediffPortfolio.ManagePortfolioTest.createPortfolio(ManagePortfolioTest.java:14)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:109)
+... Removed 22 stack frames
Click to show all stack frames +
org.openqa.selenium.UnhandledAlertException: unexpected alert open: {Alert text : Please enter captcha}
+  (Session info: chrome=124.0.6367.119): Please enter captcha
+Build info: version: '4.17.0', revision: 'e52b1be057*'
+System info: os.name: 'Mac OS X', os.arch: 'aarch64', os.version: '14.4.1', java.version: '21.0.1'
+Driver info: org.openqa.selenium.chrome.ChromeDriver
+Command: [2cd5cd0deb29c28d4cf33871bb895236, findElement {value=createPortfolio, using=id}]
+Capabilities {acceptInsecureCerts: false, browserName: chrome, browserVersion: 124.0.6367.119, chrome: {chromedriverVersion: 123.0.6312.122 (31f8248cdd9..., userDataDir: /var/folders/rg/b21vyw1s0v7...}, fedcm:accounts: true, goog:chromeOptions: {debuggerAddress: localhost:55608}, networkConnectionEnabled: false, pageLoadStrategy: normal, platformName: mac, proxy: Proxy(), se:cdp: ws://localhost:55608/devtoo..., se:cdpVersion: 124.0.6367.119, setWindowRect: true, strictFileInteractability: false, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}, unhandledPromptBehavior: dismiss and notify, webauthn:extension:credBlob: true, webauthn:extension:largeBlob: true, webauthn:extension:minPinLength: true, webauthn:extension:prf: true, webauthn:virtualAuthenticators: true}
+Session ID: 2cd5cd0deb29c28d4cf33871bb895236
+	at org.openqa.selenium.remote.codec.w3c.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:132)
+	at org.openqa.selenium.remote.codec.w3c.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:51)
+	at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:190)
+	at org.openqa.selenium.remote.service.DriverCommandExecutor.invokeExecute(DriverCommandExecutor.java:216)
+	at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:174)
+	at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:519)
+	at org.openqa.selenium.remote.ElementLocation$ElementFinder$2.findElement(ElementLocation.java:165)
+	at org.openqa.selenium.remote.ElementLocation.findElement(ElementLocation.java:59)
+	at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:356)
+	at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:350)
+	at keywords.GenericKeywords.getElement(GenericKeywords.java:208)
+	at keywords.GenericKeywords.click(GenericKeywords.java:146)
+	at testcasesrediffPortfolio.ManagePortfolioTest.createPortfolio(ManagePortfolioTest.java:14)
+	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
+	at org.testng.internal.invokers.TestInvoker.invokeMethod(TestInvoker.java:664)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethod(TestInvoker.java:228)
+	at org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:63)
+	at org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:961)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:201)
+	at org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:148)
+	at org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:128)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at org.testng.TestRunner.privateRun(TestRunner.java:819)
+	at org.testng.TestRunner.run(TestRunner.java:619)
+	at org.testng.SuiteRunner.runTest(SuiteRunner.java:443)
+	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:437)
+	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:397)
+	at org.testng.SuiteRunner.run(SuiteRunner.java:336)
+	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
+	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1301)
+	at org.testng.TestNG.runSuitesLocally(TestNG.java:1228)
+	at org.testng.TestNG.runSuites(TestNG.java:1134)
+	at org.testng.TestNG.run(TestNG.java:1101)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:109)
+
0testcasesrediffPortfolio.ManagePortfolioTest@26aa12dd

+ + + + + + + + + + + + + +
PASSED TESTS
Test methodAttribute(s)ExceptionTime (seconds)Instance
doLogin
Test class: testcasesrediffPortfolio.ManageSessionTest
191testcasesrediffPortfolio.ManageSessionTest@2a17b7b6

+ + \ No newline at end of file diff --git a/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Create Portfolio Method.xml b/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Create Portfolio Method.xml new file mode 100644 index 0000000..29cc18a --- /dev/null +++ b/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Create Portfolio Method.xml @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Create Portfolio Method1.html b/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Create Portfolio Method1.html new file mode 100644 index 0000000..9afb0cc --- /dev/null +++ b/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Create Portfolio Method1.html @@ -0,0 +1,293 @@ + + +TestNG: Manage Portfolio Suite : Create Portfolio Method1 + + + + + + + + +

Manage Portfolio Suite : Create Portfolio Method1

+ + + + + + + + + + + +
Tests passed/Failed/Skipped:0/0/2
Started on:Fri May 03 23:50:48 IST 2024
Total time:0 seconds (241 ms)
Included groups:
Excluded groups:

+(Hover the method name to see the test class name)

+ + + + + + + + + + + + + + + + + + +
FAILED CONFIGURATIONS
Test methodAttribute(s)ExceptionTime (seconds)Instance
afterMethod
Test class: testcasesrediffPortfolio.ManageSessionTest
Parameters: org.testng.TestRunner@3c7c886c
java.lang.NullPointerException: Cannot invoke "keywords.ApplicationKeywords.reportAll()" because "this.app" is null
+	at testbase.BaseTest.afterMethod(BaseTest.java:97)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:119)
+... Removed 27 stack frames
Click to show all stack frames +
java.lang.NullPointerException: Cannot invoke "keywords.ApplicationKeywords.reportAll()" because "this.app" is null
+	at testbase.BaseTest.afterMethod(BaseTest.java:97)
+	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:69)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:393)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:326)
+	at org.testng.internal.invokers.TestInvoker.runConfigMethods(TestInvoker.java:810)
+	at org.testng.internal.invokers.TestInvoker.runAfterConfigurations(TestInvoker.java:779)
+	at org.testng.internal.invokers.TestInvoker.invokeMethod(TestInvoker.java:600)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethod(TestInvoker.java:228)
+	at org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:63)
+	at org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:961)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:201)
+	at org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:148)
+	at org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:128)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at org.testng.TestRunner.privateRun(TestRunner.java:819)
+	at org.testng.TestRunner.run(TestRunner.java:619)
+	at org.testng.SuiteRunner.runTest(SuiteRunner.java:443)
+	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:437)
+	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:397)
+	at org.testng.SuiteRunner.run(SuiteRunner.java:336)
+	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
+	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1301)
+	at org.testng.TestNG.runSuitesLocally(TestNG.java:1228)
+	at org.testng.TestNG.runSuites(TestNG.java:1134)
+	at org.testng.TestNG.run(TestNG.java:1101)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:119)
+
0testcasesrediffPortfolio.ManageSessionTest@2a17b7b6
afterMethod
Test class: testcasesrediffPortfolio.ManagePortfolioTest
Parameters: org.testng.TestRunner@3c7c886c
java.lang.NullPointerException: Cannot invoke "keywords.ApplicationKeywords.reportAll()" because "this.app" is null
+	at testbase.BaseTest.afterMethod(BaseTest.java:97)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:119)
+... Removed 27 stack frames
Click to show all stack frames +
java.lang.NullPointerException: Cannot invoke "keywords.ApplicationKeywords.reportAll()" because "this.app" is null
+	at testbase.BaseTest.afterMethod(BaseTest.java:97)
+	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:69)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:393)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:326)
+	at org.testng.internal.invokers.TestInvoker.runConfigMethods(TestInvoker.java:810)
+	at org.testng.internal.invokers.TestInvoker.runAfterConfigurations(TestInvoker.java:779)
+	at org.testng.internal.invokers.TestInvoker.invokeMethod(TestInvoker.java:600)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethod(TestInvoker.java:228)
+	at org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:63)
+	at org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:961)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:201)
+	at org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:148)
+	at org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:128)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at org.testng.TestRunner.privateRun(TestRunner.java:819)
+	at org.testng.TestRunner.run(TestRunner.java:619)
+	at org.testng.SuiteRunner.runTest(SuiteRunner.java:443)
+	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:437)
+	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:397)
+	at org.testng.SuiteRunner.run(SuiteRunner.java:336)
+	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
+	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1301)
+	at org.testng.TestNG.runSuitesLocally(TestNG.java:1228)
+	at org.testng.TestNG.runSuites(TestNG.java:1134)
+	at org.testng.TestNG.run(TestNG.java:1101)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:119)
+
0testcasesrediffPortfolio.ManagePortfolioTest@26aa12dd

+ + + + + + + + + + + + + +
SKIPPED CONFIGURATIONS
Test methodAttribute(s)ExceptionTime (seconds)Instance
beforeTest
Test class: testcasesrediffPortfolio.ManageSessionTest
Parameters: org.testng.TestRunner@3c7c886c
org.testng.SkipException: RunMode in Test Data is not True
+	at testbase.BaseTest.beforeTest(BaseTest.java:57)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:119)
+... Removed 19 stack frames
Click to show all stack frames +
org.testng.SkipException: RunMode in Test Data is not True
+	at testbase.BaseTest.beforeTest(BaseTest.java:57)
+	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:69)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:393)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:326)
+	at org.testng.TestRunner.invokeTestConfigurations(TestRunner.java:661)
+	at org.testng.TestRunner.beforeRun(TestRunner.java:650)
+	at org.testng.TestRunner.run(TestRunner.java:612)
+	at org.testng.SuiteRunner.runTest(SuiteRunner.java:443)
+	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:437)
+	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:397)
+	at org.testng.SuiteRunner.run(SuiteRunner.java:336)
+	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
+	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1301)
+	at org.testng.TestNG.runSuitesLocally(TestNG.java:1228)
+	at org.testng.TestNG.runSuites(TestNG.java:1134)
+	at org.testng.TestNG.run(TestNG.java:1101)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:119)
+
0testcasesrediffPortfolio.ManageSessionTest@2a17b7b6

+ + + + + + + + + + + + + + + + + + +
SKIPPED TESTS
Test methodAttribute(s)ExceptionTime (seconds)Instance
createPortfolio
Test class: testcasesrediffPortfolio.ManagePortfolioTest
java.lang.NullPointerException: Cannot invoke "keywords.ApplicationKeywords.reportAll()" because "this.app" is null
+	at testbase.BaseTest.afterMethod(BaseTest.java:97)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:119)
+... Removed 27 stack frames
Click to show all stack frames +
java.lang.NullPointerException: Cannot invoke "keywords.ApplicationKeywords.reportAll()" because "this.app" is null
+	at testbase.BaseTest.afterMethod(BaseTest.java:97)
+	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:69)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:393)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:326)
+	at org.testng.internal.invokers.TestInvoker.runConfigMethods(TestInvoker.java:810)
+	at org.testng.internal.invokers.TestInvoker.runAfterConfigurations(TestInvoker.java:779)
+	at org.testng.internal.invokers.TestInvoker.invokeMethod(TestInvoker.java:600)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethod(TestInvoker.java:228)
+	at org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:63)
+	at org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:961)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:201)
+	at org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:148)
+	at org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:128)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at org.testng.TestRunner.privateRun(TestRunner.java:819)
+	at org.testng.TestRunner.run(TestRunner.java:619)
+	at org.testng.SuiteRunner.runTest(SuiteRunner.java:443)
+	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:437)
+	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:397)
+	at org.testng.SuiteRunner.run(SuiteRunner.java:336)
+	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
+	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1301)
+	at org.testng.TestNG.runSuitesLocally(TestNG.java:1228)
+	at org.testng.TestNG.runSuites(TestNG.java:1134)
+	at org.testng.TestNG.run(TestNG.java:1101)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:119)
+
0testcasesrediffPortfolio.ManagePortfolioTest@26aa12dd
doLogin
Test class: testcasesrediffPortfolio.ManageSessionTest
org.testng.SkipException: RunMode in Test Data is not True
+	at testbase.BaseTest.beforeTest(BaseTest.java:57)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:119)
+... Removed 19 stack frames
Click to show all stack frames +
org.testng.SkipException: RunMode in Test Data is not True
+	at testbase.BaseTest.beforeTest(BaseTest.java:57)
+	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:69)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:393)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:326)
+	at org.testng.TestRunner.invokeTestConfigurations(TestRunner.java:661)
+	at org.testng.TestRunner.beforeRun(TestRunner.java:650)
+	at org.testng.TestRunner.run(TestRunner.java:612)
+	at org.testng.SuiteRunner.runTest(SuiteRunner.java:443)
+	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:437)
+	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:397)
+	at org.testng.SuiteRunner.run(SuiteRunner.java:336)
+	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
+	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1301)
+	at org.testng.TestNG.runSuitesLocally(TestNG.java:1228)
+	at org.testng.TestNG.runSuites(TestNG.java:1134)
+	at org.testng.TestNG.run(TestNG.java:1101)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:119)
+
0testcasesrediffPortfolio.ManageSessionTest@2a17b7b6

+ + \ No newline at end of file diff --git a/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Create Portfolio Method1.xml b/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Create Portfolio Method1.xml new file mode 100644 index 0000000..4881f86 --- /dev/null +++ b/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Create Portfolio Method1.xml @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Create Portfolio Method2.html b/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Create Portfolio Method2.html new file mode 100644 index 0000000..79509c4 --- /dev/null +++ b/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Create Portfolio Method2.html @@ -0,0 +1,293 @@ + + +TestNG: Manage Portfolio Suite : Create Portfolio Method2 + + + + + + + + +

Manage Portfolio Suite : Create Portfolio Method2

+ + + + + + + + + + + +
Tests passed/Failed/Skipped:0/0/2
Started on:Fri May 03 23:50:48 IST 2024
Total time:0 seconds (8 ms)
Included groups:
Excluded groups:

+(Hover the method name to see the test class name)

+ + + + + + + + + + + + + + + + + + +
FAILED CONFIGURATIONS
Test methodAttribute(s)ExceptionTime (seconds)Instance
afterMethod
Test class: testcasesrediffPortfolio.ManageSessionTest
Parameters: org.testng.TestRunner@72437d8d
java.lang.NullPointerException: Cannot invoke "keywords.ApplicationKeywords.reportAll()" because "this.app" is null
+	at testbase.BaseTest.afterMethod(BaseTest.java:97)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:119)
+... Removed 27 stack frames
Click to show all stack frames +
java.lang.NullPointerException: Cannot invoke "keywords.ApplicationKeywords.reportAll()" because "this.app" is null
+	at testbase.BaseTest.afterMethod(BaseTest.java:97)
+	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:69)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:393)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:326)
+	at org.testng.internal.invokers.TestInvoker.runConfigMethods(TestInvoker.java:810)
+	at org.testng.internal.invokers.TestInvoker.runAfterConfigurations(TestInvoker.java:779)
+	at org.testng.internal.invokers.TestInvoker.invokeMethod(TestInvoker.java:600)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethod(TestInvoker.java:228)
+	at org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:63)
+	at org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:961)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:201)
+	at org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:148)
+	at org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:128)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at org.testng.TestRunner.privateRun(TestRunner.java:819)
+	at org.testng.TestRunner.run(TestRunner.java:619)
+	at org.testng.SuiteRunner.runTest(SuiteRunner.java:443)
+	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:437)
+	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:397)
+	at org.testng.SuiteRunner.run(SuiteRunner.java:336)
+	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
+	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1301)
+	at org.testng.TestNG.runSuitesLocally(TestNG.java:1228)
+	at org.testng.TestNG.runSuites(TestNG.java:1134)
+	at org.testng.TestNG.run(TestNG.java:1101)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:119)
+
0testcasesrediffPortfolio.ManageSessionTest@37d31475
afterMethod
Test class: testcasesrediffPortfolio.ManagePortfolioTest
Parameters: org.testng.TestRunner@72437d8d
java.lang.NullPointerException: Cannot invoke "keywords.ApplicationKeywords.reportAll()" because "this.app" is null
+	at testbase.BaseTest.afterMethod(BaseTest.java:97)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:119)
+... Removed 27 stack frames
Click to show all stack frames +
java.lang.NullPointerException: Cannot invoke "keywords.ApplicationKeywords.reportAll()" because "this.app" is null
+	at testbase.BaseTest.afterMethod(BaseTest.java:97)
+	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:69)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:393)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:326)
+	at org.testng.internal.invokers.TestInvoker.runConfigMethods(TestInvoker.java:810)
+	at org.testng.internal.invokers.TestInvoker.runAfterConfigurations(TestInvoker.java:779)
+	at org.testng.internal.invokers.TestInvoker.invokeMethod(TestInvoker.java:600)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethod(TestInvoker.java:228)
+	at org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:63)
+	at org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:961)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:201)
+	at org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:148)
+	at org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:128)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at org.testng.TestRunner.privateRun(TestRunner.java:819)
+	at org.testng.TestRunner.run(TestRunner.java:619)
+	at org.testng.SuiteRunner.runTest(SuiteRunner.java:443)
+	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:437)
+	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:397)
+	at org.testng.SuiteRunner.run(SuiteRunner.java:336)
+	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
+	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1301)
+	at org.testng.TestNG.runSuitesLocally(TestNG.java:1228)
+	at org.testng.TestNG.runSuites(TestNG.java:1134)
+	at org.testng.TestNG.run(TestNG.java:1101)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:119)
+
0testcasesrediffPortfolio.ManagePortfolioTest@27808f31

+ + + + + + + + + + + + + +
SKIPPED CONFIGURATIONS
Test methodAttribute(s)ExceptionTime (seconds)Instance
beforeTest
Test class: testcasesrediffPortfolio.ManageSessionTest
Parameters: org.testng.TestRunner@72437d8d
org.testng.SkipException: RunMode in Test Data is not True
+	at testbase.BaseTest.beforeTest(BaseTest.java:57)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:119)
+... Removed 19 stack frames
Click to show all stack frames +
org.testng.SkipException: RunMode in Test Data is not True
+	at testbase.BaseTest.beforeTest(BaseTest.java:57)
+	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:69)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:393)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:326)
+	at org.testng.TestRunner.invokeTestConfigurations(TestRunner.java:661)
+	at org.testng.TestRunner.beforeRun(TestRunner.java:650)
+	at org.testng.TestRunner.run(TestRunner.java:612)
+	at org.testng.SuiteRunner.runTest(SuiteRunner.java:443)
+	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:437)
+	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:397)
+	at org.testng.SuiteRunner.run(SuiteRunner.java:336)
+	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
+	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1301)
+	at org.testng.TestNG.runSuitesLocally(TestNG.java:1228)
+	at org.testng.TestNG.runSuites(TestNG.java:1134)
+	at org.testng.TestNG.run(TestNG.java:1101)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:119)
+
0testcasesrediffPortfolio.ManageSessionTest@37d31475

+ + + + + + + + + + + + + + + + + + +
SKIPPED TESTS
Test methodAttribute(s)ExceptionTime (seconds)Instance
createPortfolio
Test class: testcasesrediffPortfolio.ManagePortfolioTest
java.lang.NullPointerException: Cannot invoke "keywords.ApplicationKeywords.reportAll()" because "this.app" is null
+	at testbase.BaseTest.afterMethod(BaseTest.java:97)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:119)
+... Removed 27 stack frames
Click to show all stack frames +
java.lang.NullPointerException: Cannot invoke "keywords.ApplicationKeywords.reportAll()" because "this.app" is null
+	at testbase.BaseTest.afterMethod(BaseTest.java:97)
+	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:69)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:393)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:326)
+	at org.testng.internal.invokers.TestInvoker.runConfigMethods(TestInvoker.java:810)
+	at org.testng.internal.invokers.TestInvoker.runAfterConfigurations(TestInvoker.java:779)
+	at org.testng.internal.invokers.TestInvoker.invokeMethod(TestInvoker.java:600)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethod(TestInvoker.java:228)
+	at org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:63)
+	at org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:961)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:201)
+	at org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:148)
+	at org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:128)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at org.testng.TestRunner.privateRun(TestRunner.java:819)
+	at org.testng.TestRunner.run(TestRunner.java:619)
+	at org.testng.SuiteRunner.runTest(SuiteRunner.java:443)
+	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:437)
+	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:397)
+	at org.testng.SuiteRunner.run(SuiteRunner.java:336)
+	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
+	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1301)
+	at org.testng.TestNG.runSuitesLocally(TestNG.java:1228)
+	at org.testng.TestNG.runSuites(TestNG.java:1134)
+	at org.testng.TestNG.run(TestNG.java:1101)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:119)
+
0testcasesrediffPortfolio.ManagePortfolioTest@27808f31
doLogin
Test class: testcasesrediffPortfolio.ManageSessionTest
org.testng.SkipException: RunMode in Test Data is not True
+	at testbase.BaseTest.beforeTest(BaseTest.java:57)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:119)
+... Removed 19 stack frames
Click to show all stack frames +
org.testng.SkipException: RunMode in Test Data is not True
+	at testbase.BaseTest.beforeTest(BaseTest.java:57)
+	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:69)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:393)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:326)
+	at org.testng.TestRunner.invokeTestConfigurations(TestRunner.java:661)
+	at org.testng.TestRunner.beforeRun(TestRunner.java:650)
+	at org.testng.TestRunner.run(TestRunner.java:612)
+	at org.testng.SuiteRunner.runTest(SuiteRunner.java:443)
+	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:437)
+	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:397)
+	at org.testng.SuiteRunner.run(SuiteRunner.java:336)
+	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
+	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1301)
+	at org.testng.TestNG.runSuitesLocally(TestNG.java:1228)
+	at org.testng.TestNG.runSuites(TestNG.java:1134)
+	at org.testng.TestNG.run(TestNG.java:1101)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:119)
+
0testcasesrediffPortfolio.ManageSessionTest@37d31475

+ + \ No newline at end of file diff --git a/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Create Portfolio Method2.xml b/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Create Portfolio Method2.xml new file mode 100644 index 0000000..75fe460 --- /dev/null +++ b/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Create Portfolio Method2.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Create Portfolio Method3.html b/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Create Portfolio Method3.html new file mode 100644 index 0000000..c86a7e2 --- /dev/null +++ b/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Create Portfolio Method3.html @@ -0,0 +1,293 @@ + + +TestNG: Manage Portfolio Suite : Create Portfolio Method3 + + + + + + + + +

Manage Portfolio Suite : Create Portfolio Method3

+ + + + + + + + + + + +
Tests passed/Failed/Skipped:0/0/2
Started on:Fri May 03 23:50:48 IST 2024
Total time:0 seconds (8 ms)
Included groups:
Excluded groups:

+(Hover the method name to see the test class name)

+ + + + + + + + + + + + + + + + + + +
FAILED CONFIGURATIONS
Test methodAttribute(s)ExceptionTime (seconds)Instance
afterMethod
Test class: testcasesrediffPortfolio.ManageSessionTest
Parameters: org.testng.TestRunner@1f010bf0
java.lang.NullPointerException: Cannot invoke "keywords.ApplicationKeywords.reportAll()" because "this.app" is null
+	at testbase.BaseTest.afterMethod(BaseTest.java:97)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:119)
+... Removed 27 stack frames
Click to show all stack frames +
java.lang.NullPointerException: Cannot invoke "keywords.ApplicationKeywords.reportAll()" because "this.app" is null
+	at testbase.BaseTest.afterMethod(BaseTest.java:97)
+	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:69)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:393)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:326)
+	at org.testng.internal.invokers.TestInvoker.runConfigMethods(TestInvoker.java:810)
+	at org.testng.internal.invokers.TestInvoker.runAfterConfigurations(TestInvoker.java:779)
+	at org.testng.internal.invokers.TestInvoker.invokeMethod(TestInvoker.java:600)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethod(TestInvoker.java:228)
+	at org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:63)
+	at org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:961)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:201)
+	at org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:148)
+	at org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:128)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at org.testng.TestRunner.privateRun(TestRunner.java:819)
+	at org.testng.TestRunner.run(TestRunner.java:619)
+	at org.testng.SuiteRunner.runTest(SuiteRunner.java:443)
+	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:437)
+	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:397)
+	at org.testng.SuiteRunner.run(SuiteRunner.java:336)
+	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
+	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1301)
+	at org.testng.TestNG.runSuitesLocally(TestNG.java:1228)
+	at org.testng.TestNG.runSuites(TestNG.java:1134)
+	at org.testng.TestNG.run(TestNG.java:1101)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:119)
+
0testcasesrediffPortfolio.ManageSessionTest@32d2fa64
afterMethod
Test class: testcasesrediffPortfolio.ManagePortfolioTest
Parameters: org.testng.TestRunner@1f010bf0
java.lang.NullPointerException: Cannot invoke "keywords.ApplicationKeywords.reportAll()" because "this.app" is null
+	at testbase.BaseTest.afterMethod(BaseTest.java:97)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:119)
+... Removed 27 stack frames
Click to show all stack frames +
java.lang.NullPointerException: Cannot invoke "keywords.ApplicationKeywords.reportAll()" because "this.app" is null
+	at testbase.BaseTest.afterMethod(BaseTest.java:97)
+	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:69)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:393)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:326)
+	at org.testng.internal.invokers.TestInvoker.runConfigMethods(TestInvoker.java:810)
+	at org.testng.internal.invokers.TestInvoker.runAfterConfigurations(TestInvoker.java:779)
+	at org.testng.internal.invokers.TestInvoker.invokeMethod(TestInvoker.java:600)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethod(TestInvoker.java:228)
+	at org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:63)
+	at org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:961)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:201)
+	at org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:148)
+	at org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:128)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at org.testng.TestRunner.privateRun(TestRunner.java:819)
+	at org.testng.TestRunner.run(TestRunner.java:619)
+	at org.testng.SuiteRunner.runTest(SuiteRunner.java:443)
+	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:437)
+	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:397)
+	at org.testng.SuiteRunner.run(SuiteRunner.java:336)
+	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
+	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1301)
+	at org.testng.TestNG.runSuitesLocally(TestNG.java:1228)
+	at org.testng.TestNG.runSuites(TestNG.java:1134)
+	at org.testng.TestNG.run(TestNG.java:1101)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:119)
+
0testcasesrediffPortfolio.ManagePortfolioTest@1d8d30f7

+ + + + + + + + + + + + + +
SKIPPED CONFIGURATIONS
Test methodAttribute(s)ExceptionTime (seconds)Instance
beforeTest
Test class: testcasesrediffPortfolio.ManageSessionTest
Parameters: org.testng.TestRunner@1f010bf0
org.testng.SkipException: RunMode in Test Data is not True
+	at testbase.BaseTest.beforeTest(BaseTest.java:57)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:119)
+... Removed 19 stack frames
Click to show all stack frames +
org.testng.SkipException: RunMode in Test Data is not True
+	at testbase.BaseTest.beforeTest(BaseTest.java:57)
+	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:69)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:393)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:326)
+	at org.testng.TestRunner.invokeTestConfigurations(TestRunner.java:661)
+	at org.testng.TestRunner.beforeRun(TestRunner.java:650)
+	at org.testng.TestRunner.run(TestRunner.java:612)
+	at org.testng.SuiteRunner.runTest(SuiteRunner.java:443)
+	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:437)
+	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:397)
+	at org.testng.SuiteRunner.run(SuiteRunner.java:336)
+	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
+	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1301)
+	at org.testng.TestNG.runSuitesLocally(TestNG.java:1228)
+	at org.testng.TestNG.runSuites(TestNG.java:1134)
+	at org.testng.TestNG.run(TestNG.java:1101)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:119)
+
0testcasesrediffPortfolio.ManageSessionTest@32d2fa64

+ + + + + + + + + + + + + + + + + + +
SKIPPED TESTS
Test methodAttribute(s)ExceptionTime (seconds)Instance
createPortfolio
Test class: testcasesrediffPortfolio.ManagePortfolioTest
java.lang.NullPointerException: Cannot invoke "keywords.ApplicationKeywords.reportAll()" because "this.app" is null
+	at testbase.BaseTest.afterMethod(BaseTest.java:97)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:119)
+... Removed 27 stack frames
Click to show all stack frames +
java.lang.NullPointerException: Cannot invoke "keywords.ApplicationKeywords.reportAll()" because "this.app" is null
+	at testbase.BaseTest.afterMethod(BaseTest.java:97)
+	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:69)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:393)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:326)
+	at org.testng.internal.invokers.TestInvoker.runConfigMethods(TestInvoker.java:810)
+	at org.testng.internal.invokers.TestInvoker.runAfterConfigurations(TestInvoker.java:779)
+	at org.testng.internal.invokers.TestInvoker.invokeMethod(TestInvoker.java:600)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethod(TestInvoker.java:228)
+	at org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:63)
+	at org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:961)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:201)
+	at org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:148)
+	at org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:128)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at org.testng.TestRunner.privateRun(TestRunner.java:819)
+	at org.testng.TestRunner.run(TestRunner.java:619)
+	at org.testng.SuiteRunner.runTest(SuiteRunner.java:443)
+	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:437)
+	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:397)
+	at org.testng.SuiteRunner.run(SuiteRunner.java:336)
+	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
+	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1301)
+	at org.testng.TestNG.runSuitesLocally(TestNG.java:1228)
+	at org.testng.TestNG.runSuites(TestNG.java:1134)
+	at org.testng.TestNG.run(TestNG.java:1101)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:119)
+
0testcasesrediffPortfolio.ManagePortfolioTest@1d8d30f7
doLogin
Test class: testcasesrediffPortfolio.ManageSessionTest
org.testng.SkipException: RunMode in Test Data is not True
+	at testbase.BaseTest.beforeTest(BaseTest.java:57)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:119)
+... Removed 19 stack frames
Click to show all stack frames +
org.testng.SkipException: RunMode in Test Data is not True
+	at testbase.BaseTest.beforeTest(BaseTest.java:57)
+	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:69)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:393)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:326)
+	at org.testng.TestRunner.invokeTestConfigurations(TestRunner.java:661)
+	at org.testng.TestRunner.beforeRun(TestRunner.java:650)
+	at org.testng.TestRunner.run(TestRunner.java:612)
+	at org.testng.SuiteRunner.runTest(SuiteRunner.java:443)
+	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:437)
+	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:397)
+	at org.testng.SuiteRunner.run(SuiteRunner.java:336)
+	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
+	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1301)
+	at org.testng.TestNG.runSuitesLocally(TestNG.java:1228)
+	at org.testng.TestNG.runSuites(TestNG.java:1134)
+	at org.testng.TestNG.run(TestNG.java:1101)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:119)
+
0testcasesrediffPortfolio.ManageSessionTest@32d2fa64

+ + \ No newline at end of file diff --git a/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Create Portfolio Method3.xml b/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Create Portfolio Method3.xml new file mode 100644 index 0000000..b869177 --- /dev/null +++ b/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Create Portfolio Method3.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Delete Portfolio Method 1.html b/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Delete Portfolio Method 1.html new file mode 100644 index 0000000..b1d2dd5 --- /dev/null +++ b/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Delete Portfolio Method 1.html @@ -0,0 +1,274 @@ + + +TestNG: Manage Portfolio Suite : Delete Portfolio Method 1 + + + + + + + + +

Manage Portfolio Suite : Delete Portfolio Method 1

+ + + + + + + + + + + +
Tests passed/Failed/Skipped:0/0/2
Started on:Sat May 11 00:30:51 IST 2024
Total time:0 seconds (17 ms)
Included groups:
Excluded groups:

+(Hover the method name to see the test class name)

+ + + + + + + + + + + + + + + + + + + + + + + +
FAILED CONFIGURATIONS
Test methodAttribute(s)ExceptionTime (seconds)Instance
beforeTest
Test class: testcasesrediffPortfolio.ManageSessionTest
Parameters: org.testng.TestRunner@4a163575
java.lang.NullPointerException: Cannot invoke "String.equalsIgnoreCase(String)" because "runMode" is null
+	at testbase.BaseTest.beforeTest(BaseTest.java:66)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:124)
+... Removed 19 stack frames
Click to show all stack frames +
java.lang.NullPointerException: Cannot invoke "String.equalsIgnoreCase(String)" because "runMode" is null
+	at testbase.BaseTest.beforeTest(BaseTest.java:66)
+	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:69)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:393)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:326)
+	at org.testng.TestRunner.invokeTestConfigurations(TestRunner.java:661)
+	at org.testng.TestRunner.beforeRun(TestRunner.java:650)
+	at org.testng.TestRunner.run(TestRunner.java:612)
+	at org.testng.SuiteRunner.runTest(SuiteRunner.java:443)
+	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:437)
+	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:397)
+	at org.testng.SuiteRunner.run(SuiteRunner.java:336)
+	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
+	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1301)
+	at org.testng.TestNG.runSuitesLocally(TestNG.java:1228)
+	at org.testng.TestNG.runSuites(TestNG.java:1134)
+	at org.testng.TestNG.run(TestNG.java:1101)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:124)
+
0testcasesrediffPortfolio.ManageSessionTest@602e0143
afterMethod
Test class: testcasesrediffPortfolio.ManagePortfolioTest
Parameters: org.testng.TestRunner@4a163575
java.lang.NullPointerException: Cannot invoke "keywords.ApplicationKeywords.reportAll()" because "this.app" is null
+	at testbase.BaseTest.afterMethod(BaseTest.java:108)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:124)
+... Removed 27 stack frames
Click to show all stack frames +
java.lang.NullPointerException: Cannot invoke "keywords.ApplicationKeywords.reportAll()" because "this.app" is null
+	at testbase.BaseTest.afterMethod(BaseTest.java:108)
+	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:69)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:393)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:326)
+	at org.testng.internal.invokers.TestInvoker.runConfigMethods(TestInvoker.java:810)
+	at org.testng.internal.invokers.TestInvoker.runAfterConfigurations(TestInvoker.java:779)
+	at org.testng.internal.invokers.TestInvoker.invokeMethod(TestInvoker.java:600)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethod(TestInvoker.java:228)
+	at org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:63)
+	at org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:961)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:201)
+	at org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:148)
+	at org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:128)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at org.testng.TestRunner.privateRun(TestRunner.java:819)
+	at org.testng.TestRunner.run(TestRunner.java:619)
+	at org.testng.SuiteRunner.runTest(SuiteRunner.java:443)
+	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:437)
+	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:397)
+	at org.testng.SuiteRunner.run(SuiteRunner.java:336)
+	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
+	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1301)
+	at org.testng.TestNG.runSuitesLocally(TestNG.java:1228)
+	at org.testng.TestNG.runSuites(TestNG.java:1134)
+	at org.testng.TestNG.run(TestNG.java:1101)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:124)
+
0testcasesrediffPortfolio.ManagePortfolioTest@2c07545f
afterMethod
Test class: testcasesrediffPortfolio.ManageSessionTest
Parameters: org.testng.TestRunner@4a163575
java.lang.NullPointerException: Cannot invoke "keywords.ApplicationKeywords.reportAll()" because "this.app" is null
+	at testbase.BaseTest.afterMethod(BaseTest.java:108)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:124)
+... Removed 27 stack frames
Click to show all stack frames +
java.lang.NullPointerException: Cannot invoke "keywords.ApplicationKeywords.reportAll()" because "this.app" is null
+	at testbase.BaseTest.afterMethod(BaseTest.java:108)
+	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:69)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:393)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:326)
+	at org.testng.internal.invokers.TestInvoker.runConfigMethods(TestInvoker.java:810)
+	at org.testng.internal.invokers.TestInvoker.runAfterConfigurations(TestInvoker.java:779)
+	at org.testng.internal.invokers.TestInvoker.invokeMethod(TestInvoker.java:600)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethod(TestInvoker.java:228)
+	at org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:63)
+	at org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:961)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:201)
+	at org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:148)
+	at org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:128)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at org.testng.TestRunner.privateRun(TestRunner.java:819)
+	at org.testng.TestRunner.run(TestRunner.java:619)
+	at org.testng.SuiteRunner.runTest(SuiteRunner.java:443)
+	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:437)
+	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:397)
+	at org.testng.SuiteRunner.run(SuiteRunner.java:336)
+	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
+	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1301)
+	at org.testng.TestNG.runSuitesLocally(TestNG.java:1228)
+	at org.testng.TestNG.runSuites(TestNG.java:1134)
+	at org.testng.TestNG.run(TestNG.java:1101)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:124)
+
0testcasesrediffPortfolio.ManageSessionTest@602e0143

+ + + + + + + + + + + + + + + + + + +
SKIPPED TESTS
Test methodAttribute(s)ExceptionTime (seconds)Instance
deletePortfolio
Test class: testcasesrediffPortfolio.ManagePortfolioTest
Parameters: org.testng.TestRunner@4a163575
java.lang.NullPointerException: Cannot invoke "String.equalsIgnoreCase(String)" because "runMode" is null
+	at testbase.BaseTest.beforeTest(BaseTest.java:66)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:124)
+... Removed 19 stack frames
Click to show all stack frames +
java.lang.NullPointerException: Cannot invoke "String.equalsIgnoreCase(String)" because "runMode" is null
+	at testbase.BaseTest.beforeTest(BaseTest.java:66)
+	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:69)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:393)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:326)
+	at org.testng.TestRunner.invokeTestConfigurations(TestRunner.java:661)
+	at org.testng.TestRunner.beforeRun(TestRunner.java:650)
+	at org.testng.TestRunner.run(TestRunner.java:612)
+	at org.testng.SuiteRunner.runTest(SuiteRunner.java:443)
+	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:437)
+	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:397)
+	at org.testng.SuiteRunner.run(SuiteRunner.java:336)
+	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
+	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1301)
+	at org.testng.TestNG.runSuitesLocally(TestNG.java:1228)
+	at org.testng.TestNG.runSuites(TestNG.java:1134)
+	at org.testng.TestNG.run(TestNG.java:1101)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:124)
+
0testcasesrediffPortfolio.ManagePortfolioTest@2c07545f
doLogin
Test class: testcasesrediffPortfolio.ManageSessionTest
Parameters: org.testng.TestRunner@4a163575
java.lang.NullPointerException: Cannot invoke "String.equalsIgnoreCase(String)" because "runMode" is null
+	at testbase.BaseTest.beforeTest(BaseTest.java:66)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:124)
+... Removed 19 stack frames
Click to show all stack frames +
java.lang.NullPointerException: Cannot invoke "String.equalsIgnoreCase(String)" because "runMode" is null
+	at testbase.BaseTest.beforeTest(BaseTest.java:66)
+	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:69)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:393)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:326)
+	at org.testng.TestRunner.invokeTestConfigurations(TestRunner.java:661)
+	at org.testng.TestRunner.beforeRun(TestRunner.java:650)
+	at org.testng.TestRunner.run(TestRunner.java:612)
+	at org.testng.SuiteRunner.runTest(SuiteRunner.java:443)
+	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:437)
+	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:397)
+	at org.testng.SuiteRunner.run(SuiteRunner.java:336)
+	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
+	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1301)
+	at org.testng.TestNG.runSuitesLocally(TestNG.java:1228)
+	at org.testng.TestNG.runSuites(TestNG.java:1134)
+	at org.testng.TestNG.run(TestNG.java:1101)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:124)
+
0testcasesrediffPortfolio.ManageSessionTest@602e0143

+ + \ No newline at end of file diff --git a/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Delete Portfolio Method 1.xml b/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Delete Portfolio Method 1.xml new file mode 100644 index 0000000..9000123 --- /dev/null +++ b/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Delete Portfolio Method 1.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Delete Portfolio Method 2.html b/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Delete Portfolio Method 2.html new file mode 100644 index 0000000..2528fff --- /dev/null +++ b/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Delete Portfolio Method 2.html @@ -0,0 +1,293 @@ + + +TestNG: Manage Portfolio Suite : Delete Portfolio Method 2 + + + + + + + + +

Manage Portfolio Suite : Delete Portfolio Method 2

+ + + + + + + + + + + +
Tests passed/Failed/Skipped:0/0/2
Started on:Sat May 11 00:30:51 IST 2024
Total time:0 seconds (16 ms)
Included groups:
Excluded groups:

+(Hover the method name to see the test class name)

+ + + + + + + + + + + + + + + + + + +
FAILED CONFIGURATIONS
Test methodAttribute(s)ExceptionTime (seconds)Instance
afterMethod
Test class: testcasesrediffPortfolio.ManageSessionTest
Parameters: org.testng.TestRunner@3dfa819
java.lang.NullPointerException: Cannot invoke "keywords.ApplicationKeywords.reportAll()" because "this.app" is null
+	at testbase.BaseTest.afterMethod(BaseTest.java:108)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:124)
+... Removed 27 stack frames
Click to show all stack frames +
java.lang.NullPointerException: Cannot invoke "keywords.ApplicationKeywords.reportAll()" because "this.app" is null
+	at testbase.BaseTest.afterMethod(BaseTest.java:108)
+	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:69)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:393)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:326)
+	at org.testng.internal.invokers.TestInvoker.runConfigMethods(TestInvoker.java:810)
+	at org.testng.internal.invokers.TestInvoker.runAfterConfigurations(TestInvoker.java:779)
+	at org.testng.internal.invokers.TestInvoker.invokeMethod(TestInvoker.java:600)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethod(TestInvoker.java:228)
+	at org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:63)
+	at org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:961)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:201)
+	at org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:148)
+	at org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:128)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at org.testng.TestRunner.privateRun(TestRunner.java:819)
+	at org.testng.TestRunner.run(TestRunner.java:619)
+	at org.testng.SuiteRunner.runTest(SuiteRunner.java:443)
+	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:437)
+	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:397)
+	at org.testng.SuiteRunner.run(SuiteRunner.java:336)
+	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
+	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1301)
+	at org.testng.TestNG.runSuitesLocally(TestNG.java:1228)
+	at org.testng.TestNG.runSuites(TestNG.java:1134)
+	at org.testng.TestNG.run(TestNG.java:1101)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:124)
+
0testcasesrediffPortfolio.ManageSessionTest@22f31dec
afterMethod
Test class: testcasesrediffPortfolio.ManagePortfolioTest
Parameters: org.testng.TestRunner@3dfa819
java.lang.NullPointerException: Cannot invoke "keywords.ApplicationKeywords.reportAll()" because "this.app" is null
+	at testbase.BaseTest.afterMethod(BaseTest.java:108)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:124)
+... Removed 27 stack frames
Click to show all stack frames +
java.lang.NullPointerException: Cannot invoke "keywords.ApplicationKeywords.reportAll()" because "this.app" is null
+	at testbase.BaseTest.afterMethod(BaseTest.java:108)
+	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:69)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:393)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:326)
+	at org.testng.internal.invokers.TestInvoker.runConfigMethods(TestInvoker.java:810)
+	at org.testng.internal.invokers.TestInvoker.runAfterConfigurations(TestInvoker.java:779)
+	at org.testng.internal.invokers.TestInvoker.invokeMethod(TestInvoker.java:600)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethod(TestInvoker.java:228)
+	at org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:63)
+	at org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:961)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:201)
+	at org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:148)
+	at org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:128)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at org.testng.TestRunner.privateRun(TestRunner.java:819)
+	at org.testng.TestRunner.run(TestRunner.java:619)
+	at org.testng.SuiteRunner.runTest(SuiteRunner.java:443)
+	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:437)
+	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:397)
+	at org.testng.SuiteRunner.run(SuiteRunner.java:336)
+	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
+	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1301)
+	at org.testng.TestNG.runSuitesLocally(TestNG.java:1228)
+	at org.testng.TestNG.runSuites(TestNG.java:1134)
+	at org.testng.TestNG.run(TestNG.java:1101)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:124)
+
0testcasesrediffPortfolio.ManagePortfolioTest@34c01041

+ + + + + + + + + + + + + +
SKIPPED CONFIGURATIONS
Test methodAttribute(s)ExceptionTime (seconds)Instance
beforeTest
Test class: testcasesrediffPortfolio.ManageSessionTest
Parameters: org.testng.TestRunner@3dfa819
org.testng.SkipException: RunMode in Test Data is not True
+	at testbase.BaseTest.beforeTest(BaseTest.java:68)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:124)
+... Removed 19 stack frames
Click to show all stack frames +
org.testng.SkipException: RunMode in Test Data is not True
+	at testbase.BaseTest.beforeTest(BaseTest.java:68)
+	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:69)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:393)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:326)
+	at org.testng.TestRunner.invokeTestConfigurations(TestRunner.java:661)
+	at org.testng.TestRunner.beforeRun(TestRunner.java:650)
+	at org.testng.TestRunner.run(TestRunner.java:612)
+	at org.testng.SuiteRunner.runTest(SuiteRunner.java:443)
+	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:437)
+	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:397)
+	at org.testng.SuiteRunner.run(SuiteRunner.java:336)
+	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
+	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1301)
+	at org.testng.TestNG.runSuitesLocally(TestNG.java:1228)
+	at org.testng.TestNG.runSuites(TestNG.java:1134)
+	at org.testng.TestNG.run(TestNG.java:1101)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:124)
+
0testcasesrediffPortfolio.ManageSessionTest@22f31dec

+ + + + + + + + + + + + + + + + + + +
SKIPPED TESTS
Test methodAttribute(s)ExceptionTime (seconds)Instance
doLogin
Test class: testcasesrediffPortfolio.ManageSessionTest
Parameters: org.testng.TestRunner@3dfa819
org.testng.SkipException: RunMode in Test Data is not True
+	at testbase.BaseTest.beforeTest(BaseTest.java:68)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:124)
+... Removed 19 stack frames
Click to show all stack frames +
org.testng.SkipException: RunMode in Test Data is not True
+	at testbase.BaseTest.beforeTest(BaseTest.java:68)
+	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:69)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:393)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:326)
+	at org.testng.TestRunner.invokeTestConfigurations(TestRunner.java:661)
+	at org.testng.TestRunner.beforeRun(TestRunner.java:650)
+	at org.testng.TestRunner.run(TestRunner.java:612)
+	at org.testng.SuiteRunner.runTest(SuiteRunner.java:443)
+	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:437)
+	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:397)
+	at org.testng.SuiteRunner.run(SuiteRunner.java:336)
+	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
+	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1301)
+	at org.testng.TestNG.runSuitesLocally(TestNG.java:1228)
+	at org.testng.TestNG.runSuites(TestNG.java:1134)
+	at org.testng.TestNG.run(TestNG.java:1101)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:124)
+
0testcasesrediffPortfolio.ManageSessionTest@22f31dec
deletePortfolio
Test class: testcasesrediffPortfolio.ManagePortfolioTest
Parameters: org.testng.TestRunner@3dfa819
java.lang.NullPointerException: Cannot invoke "keywords.ApplicationKeywords.reportAll()" because "this.app" is null
+	at testbase.BaseTest.afterMethod(BaseTest.java:108)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:124)
+... Removed 27 stack frames
Click to show all stack frames +
java.lang.NullPointerException: Cannot invoke "keywords.ApplicationKeywords.reportAll()" because "this.app" is null
+	at testbase.BaseTest.afterMethod(BaseTest.java:108)
+	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:69)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:393)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:326)
+	at org.testng.internal.invokers.TestInvoker.runConfigMethods(TestInvoker.java:810)
+	at org.testng.internal.invokers.TestInvoker.runAfterConfigurations(TestInvoker.java:779)
+	at org.testng.internal.invokers.TestInvoker.invokeMethod(TestInvoker.java:600)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethod(TestInvoker.java:228)
+	at org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:63)
+	at org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:961)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:201)
+	at org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:148)
+	at org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:128)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at org.testng.TestRunner.privateRun(TestRunner.java:819)
+	at org.testng.TestRunner.run(TestRunner.java:619)
+	at org.testng.SuiteRunner.runTest(SuiteRunner.java:443)
+	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:437)
+	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:397)
+	at org.testng.SuiteRunner.run(SuiteRunner.java:336)
+	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
+	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1301)
+	at org.testng.TestNG.runSuitesLocally(TestNG.java:1228)
+	at org.testng.TestNG.runSuites(TestNG.java:1134)
+	at org.testng.TestNG.run(TestNG.java:1101)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:124)
+
0testcasesrediffPortfolio.ManagePortfolioTest@34c01041

+ + \ No newline at end of file diff --git a/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Delete Portfolio Method 2.xml b/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Delete Portfolio Method 2.xml new file mode 100644 index 0000000..035f4f8 --- /dev/null +++ b/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Delete Portfolio Method 2.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Delete Portfolio Method 3.html b/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Delete Portfolio Method 3.html new file mode 100644 index 0000000..4dfcd36 --- /dev/null +++ b/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Delete Portfolio Method 3.html @@ -0,0 +1,293 @@ + + +TestNG: Manage Portfolio Suite : Delete Portfolio Method 3 + + + + + + + + +

Manage Portfolio Suite : Delete Portfolio Method 3

+ + + + + + + + + + + +
Tests passed/Failed/Skipped:0/0/2
Started on:Sat May 11 00:30:51 IST 2024
Total time:0 seconds (22 ms)
Included groups:
Excluded groups:

+(Hover the method name to see the test class name)

+ + + + + + + + + + + + + + + + + + +
FAILED CONFIGURATIONS
Test methodAttribute(s)ExceptionTime (seconds)Instance
afterMethod
Test class: testcasesrediffPortfolio.ManagePortfolioTest
Parameters: org.testng.TestRunner@5634d0f4
java.lang.NullPointerException: Cannot invoke "keywords.ApplicationKeywords.reportAll()" because "this.app" is null
+	at testbase.BaseTest.afterMethod(BaseTest.java:108)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:124)
+... Removed 27 stack frames
Click to show all stack frames +
java.lang.NullPointerException: Cannot invoke "keywords.ApplicationKeywords.reportAll()" because "this.app" is null
+	at testbase.BaseTest.afterMethod(BaseTest.java:108)
+	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:69)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:393)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:326)
+	at org.testng.internal.invokers.TestInvoker.runConfigMethods(TestInvoker.java:810)
+	at org.testng.internal.invokers.TestInvoker.runAfterConfigurations(TestInvoker.java:779)
+	at org.testng.internal.invokers.TestInvoker.invokeMethod(TestInvoker.java:600)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethod(TestInvoker.java:228)
+	at org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:63)
+	at org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:961)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:201)
+	at org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:148)
+	at org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:128)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at org.testng.TestRunner.privateRun(TestRunner.java:819)
+	at org.testng.TestRunner.run(TestRunner.java:619)
+	at org.testng.SuiteRunner.runTest(SuiteRunner.java:443)
+	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:437)
+	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:397)
+	at org.testng.SuiteRunner.run(SuiteRunner.java:336)
+	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
+	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1301)
+	at org.testng.TestNG.runSuitesLocally(TestNG.java:1228)
+	at org.testng.TestNG.runSuites(TestNG.java:1134)
+	at org.testng.TestNG.run(TestNG.java:1101)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:124)
+
0testcasesrediffPortfolio.ManagePortfolioTest@2c4d1ac
afterMethod
Test class: testcasesrediffPortfolio.ManageSessionTest
Parameters: org.testng.TestRunner@5634d0f4
java.lang.NullPointerException: Cannot invoke "keywords.ApplicationKeywords.reportAll()" because "this.app" is null
+	at testbase.BaseTest.afterMethod(BaseTest.java:108)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:124)
+... Removed 27 stack frames
Click to show all stack frames +
java.lang.NullPointerException: Cannot invoke "keywords.ApplicationKeywords.reportAll()" because "this.app" is null
+	at testbase.BaseTest.afterMethod(BaseTest.java:108)
+	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:69)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:393)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:326)
+	at org.testng.internal.invokers.TestInvoker.runConfigMethods(TestInvoker.java:810)
+	at org.testng.internal.invokers.TestInvoker.runAfterConfigurations(TestInvoker.java:779)
+	at org.testng.internal.invokers.TestInvoker.invokeMethod(TestInvoker.java:600)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethod(TestInvoker.java:228)
+	at org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:63)
+	at org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:961)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:201)
+	at org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:148)
+	at org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:128)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at org.testng.TestRunner.privateRun(TestRunner.java:819)
+	at org.testng.TestRunner.run(TestRunner.java:619)
+	at org.testng.SuiteRunner.runTest(SuiteRunner.java:443)
+	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:437)
+	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:397)
+	at org.testng.SuiteRunner.run(SuiteRunner.java:336)
+	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
+	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1301)
+	at org.testng.TestNG.runSuitesLocally(TestNG.java:1228)
+	at org.testng.TestNG.runSuites(TestNG.java:1134)
+	at org.testng.TestNG.run(TestNG.java:1101)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:124)
+
0testcasesrediffPortfolio.ManageSessionTest@36328d33

+ + + + + + + + + + + + + +
SKIPPED CONFIGURATIONS
Test methodAttribute(s)ExceptionTime (seconds)Instance
beforeTest
Test class: testcasesrediffPortfolio.ManageSessionTest
Parameters: org.testng.TestRunner@5634d0f4
org.testng.SkipException: RunMode in Test Data is not True
+	at testbase.BaseTest.beforeTest(BaseTest.java:68)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:124)
+... Removed 19 stack frames
Click to show all stack frames +
org.testng.SkipException: RunMode in Test Data is not True
+	at testbase.BaseTest.beforeTest(BaseTest.java:68)
+	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:69)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:393)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:326)
+	at org.testng.TestRunner.invokeTestConfigurations(TestRunner.java:661)
+	at org.testng.TestRunner.beforeRun(TestRunner.java:650)
+	at org.testng.TestRunner.run(TestRunner.java:612)
+	at org.testng.SuiteRunner.runTest(SuiteRunner.java:443)
+	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:437)
+	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:397)
+	at org.testng.SuiteRunner.run(SuiteRunner.java:336)
+	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
+	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1301)
+	at org.testng.TestNG.runSuitesLocally(TestNG.java:1228)
+	at org.testng.TestNG.runSuites(TestNG.java:1134)
+	at org.testng.TestNG.run(TestNG.java:1101)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:124)
+
0testcasesrediffPortfolio.ManageSessionTest@36328d33

+ + + + + + + + + + + + + + + + + + +
SKIPPED TESTS
Test methodAttribute(s)ExceptionTime (seconds)Instance
doLogin
Test class: testcasesrediffPortfolio.ManageSessionTest
Parameters: org.testng.TestRunner@5634d0f4
org.testng.SkipException: RunMode in Test Data is not True
+	at testbase.BaseTest.beforeTest(BaseTest.java:68)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:124)
+... Removed 19 stack frames
Click to show all stack frames +
org.testng.SkipException: RunMode in Test Data is not True
+	at testbase.BaseTest.beforeTest(BaseTest.java:68)
+	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:69)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:393)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:326)
+	at org.testng.TestRunner.invokeTestConfigurations(TestRunner.java:661)
+	at org.testng.TestRunner.beforeRun(TestRunner.java:650)
+	at org.testng.TestRunner.run(TestRunner.java:612)
+	at org.testng.SuiteRunner.runTest(SuiteRunner.java:443)
+	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:437)
+	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:397)
+	at org.testng.SuiteRunner.run(SuiteRunner.java:336)
+	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
+	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1301)
+	at org.testng.TestNG.runSuitesLocally(TestNG.java:1228)
+	at org.testng.TestNG.runSuites(TestNG.java:1134)
+	at org.testng.TestNG.run(TestNG.java:1101)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:124)
+
0testcasesrediffPortfolio.ManageSessionTest@36328d33
deletePortfolio
Test class: testcasesrediffPortfolio.ManagePortfolioTest
Parameters: org.testng.TestRunner@5634d0f4
java.lang.NullPointerException: Cannot invoke "keywords.ApplicationKeywords.reportAll()" because "this.app" is null
+	at testbase.BaseTest.afterMethod(BaseTest.java:108)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:124)
+... Removed 27 stack frames
Click to show all stack frames +
java.lang.NullPointerException: Cannot invoke "keywords.ApplicationKeywords.reportAll()" because "this.app" is null
+	at testbase.BaseTest.afterMethod(BaseTest.java:108)
+	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:69)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:393)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:326)
+	at org.testng.internal.invokers.TestInvoker.runConfigMethods(TestInvoker.java:810)
+	at org.testng.internal.invokers.TestInvoker.runAfterConfigurations(TestInvoker.java:779)
+	at org.testng.internal.invokers.TestInvoker.invokeMethod(TestInvoker.java:600)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethod(TestInvoker.java:228)
+	at org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:63)
+	at org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:961)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:201)
+	at org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:148)
+	at org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:128)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at org.testng.TestRunner.privateRun(TestRunner.java:819)
+	at org.testng.TestRunner.run(TestRunner.java:619)
+	at org.testng.SuiteRunner.runTest(SuiteRunner.java:443)
+	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:437)
+	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:397)
+	at org.testng.SuiteRunner.run(SuiteRunner.java:336)
+	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
+	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1301)
+	at org.testng.TestNG.runSuitesLocally(TestNG.java:1228)
+	at org.testng.TestNG.runSuites(TestNG.java:1134)
+	at org.testng.TestNG.run(TestNG.java:1101)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:124)
+
0testcasesrediffPortfolio.ManagePortfolioTest@2c4d1ac

+ + \ No newline at end of file diff --git a/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Delete Portfolio Method 3.xml b/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Delete Portfolio Method 3.xml new file mode 100644 index 0000000..43460f0 --- /dev/null +++ b/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Delete Portfolio Method 3.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Delete Portfolio Method.html b/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Delete Portfolio Method.html new file mode 100644 index 0000000..7963e73 --- /dev/null +++ b/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Delete Portfolio Method.html @@ -0,0 +1,170 @@ + + +TestNG: Manage Portfolio Suite : Delete Portfolio Method + + + + + + + + +

Manage Portfolio Suite : Delete Portfolio Method

+ + + + + + + + + + + +
Tests passed/Failed/Skipped:1/1/0
Started on:Fri May 03 22:56:46 IST 2024
Total time:199 seconds (199075 ms)
Included groups:
Excluded groups:

+(Hover the method name to see the test class name)

+ + + + + + + + + + + + + +
FAILED TESTS
Test methodAttribute(s)ExceptionTime (seconds)Instance
deletePortfolio
Test class: testcasesrediffPortfolio.ManagePortfolioTest
org.openqa.selenium.UnhandledAlertException: unexpected alert open: {Alert text : Please enter captcha}
+  (Session info: chrome=124.0.6367.119): Please enter captcha
+Build info: version: '4.17.0', revision: 'e52b1be057*'
+System info: os.name: 'Mac OS X', os.arch: 'aarch64', os.version: '14.4.1', java.version: '21.0.1'
+Driver info: org.openqa.selenium.chrome.ChromeDriver
+Command: [dae637d7fd54290e3ccc7c841263933a, findElement {value=portfolioid, using=id}]
+Capabilities {acceptInsecureCerts: false, browserName: chrome, browserVersion: 124.0.6367.119, chrome: {chromedriverVersion: 123.0.6312.122 (31f8248cdd9..., userDataDir: /var/folders/rg/b21vyw1s0v7...}, fedcm:accounts: true, goog:chromeOptions: {debuggerAddress: localhost:55916}, networkConnectionEnabled: false, pageLoadStrategy: normal, platformName: mac, proxy: Proxy(), se:cdp: ws://localhost:55916/devtoo..., se:cdpVersion: 124.0.6367.119, setWindowRect: true, strictFileInteractability: false, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}, unhandledPromptBehavior: dismiss and notify, webauthn:extension:credBlob: true, webauthn:extension:largeBlob: true, webauthn:extension:minPinLength: true, webauthn:extension:prf: true, webauthn:virtualAuthenticators: true}
+Session ID: dae637d7fd54290e3ccc7c841263933a
+	at org.openqa.selenium.remote.codec.w3c.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:132)
+	at org.openqa.selenium.remote.codec.w3c.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:51)
+	at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:190)
+	at org.openqa.selenium.remote.service.DriverCommandExecutor.invokeExecute(DriverCommandExecutor.java:216)
+	at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:174)
+	at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:519)
+	at org.openqa.selenium.remote.ElementLocation$ElementFinder$2.findElement(ElementLocation.java:165)
+	at org.openqa.selenium.remote.ElementLocation.findElement(ElementLocation.java:59)
+	at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:356)
+	at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:350)
+	at keywords.GenericKeywords.getElement(GenericKeywords.java:208)
+	at keywords.GenericKeywords.selectByVisibleText(GenericKeywords.java:167)
+	at testcasesrediffPortfolio.ManagePortfolioTest.deletePortfolio(ManagePortfolioTest.java:27)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:109)
+... Removed 22 stack frames
Click to show all stack frames +
org.openqa.selenium.UnhandledAlertException: unexpected alert open: {Alert text : Please enter captcha}
+  (Session info: chrome=124.0.6367.119): Please enter captcha
+Build info: version: '4.17.0', revision: 'e52b1be057*'
+System info: os.name: 'Mac OS X', os.arch: 'aarch64', os.version: '14.4.1', java.version: '21.0.1'
+Driver info: org.openqa.selenium.chrome.ChromeDriver
+Command: [dae637d7fd54290e3ccc7c841263933a, findElement {value=portfolioid, using=id}]
+Capabilities {acceptInsecureCerts: false, browserName: chrome, browserVersion: 124.0.6367.119, chrome: {chromedriverVersion: 123.0.6312.122 (31f8248cdd9..., userDataDir: /var/folders/rg/b21vyw1s0v7...}, fedcm:accounts: true, goog:chromeOptions: {debuggerAddress: localhost:55916}, networkConnectionEnabled: false, pageLoadStrategy: normal, platformName: mac, proxy: Proxy(), se:cdp: ws://localhost:55916/devtoo..., se:cdpVersion: 124.0.6367.119, setWindowRect: true, strictFileInteractability: false, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}, unhandledPromptBehavior: dismiss and notify, webauthn:extension:credBlob: true, webauthn:extension:largeBlob: true, webauthn:extension:minPinLength: true, webauthn:extension:prf: true, webauthn:virtualAuthenticators: true}
+Session ID: dae637d7fd54290e3ccc7c841263933a
+	at org.openqa.selenium.remote.codec.w3c.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:132)
+	at org.openqa.selenium.remote.codec.w3c.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:51)
+	at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:190)
+	at org.openqa.selenium.remote.service.DriverCommandExecutor.invokeExecute(DriverCommandExecutor.java:216)
+	at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:174)
+	at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:519)
+	at org.openqa.selenium.remote.ElementLocation$ElementFinder$2.findElement(ElementLocation.java:165)
+	at org.openqa.selenium.remote.ElementLocation.findElement(ElementLocation.java:59)
+	at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:356)
+	at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:350)
+	at keywords.GenericKeywords.getElement(GenericKeywords.java:208)
+	at keywords.GenericKeywords.selectByVisibleText(GenericKeywords.java:167)
+	at testcasesrediffPortfolio.ManagePortfolioTest.deletePortfolio(ManagePortfolioTest.java:27)
+	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
+	at org.testng.internal.invokers.TestInvoker.invokeMethod(TestInvoker.java:664)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethod(TestInvoker.java:228)
+	at org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:63)
+	at org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:961)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:201)
+	at org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:148)
+	at org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:128)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at org.testng.TestRunner.privateRun(TestRunner.java:819)
+	at org.testng.TestRunner.run(TestRunner.java:619)
+	at org.testng.SuiteRunner.runTest(SuiteRunner.java:443)
+	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:437)
+	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:397)
+	at org.testng.SuiteRunner.run(SuiteRunner.java:336)
+	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
+	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1301)
+	at org.testng.TestNG.runSuitesLocally(TestNG.java:1228)
+	at org.testng.TestNG.runSuites(TestNG.java:1134)
+	at org.testng.TestNG.run(TestNG.java:1101)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:109)
+
0testcasesrediffPortfolio.ManagePortfolioTest@27808f31

+ + + + + + + + + + + + + +
PASSED TESTS
Test methodAttribute(s)ExceptionTime (seconds)Instance
doLogin
Test class: testcasesrediffPortfolio.ManageSessionTest
198testcasesrediffPortfolio.ManageSessionTest@37d31475

+ + \ No newline at end of file diff --git a/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Delete Portfolio Method.xml b/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Delete Portfolio Method.xml new file mode 100644 index 0000000..5e520da --- /dev/null +++ b/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Delete Portfolio Method.xml @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Delete Portfolio Method1.html b/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Delete Portfolio Method1.html new file mode 100644 index 0000000..04add06 --- /dev/null +++ b/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Delete Portfolio Method1.html @@ -0,0 +1,293 @@ + + +TestNG: Manage Portfolio Suite : Delete Portfolio Method1 + + + + + + + + +

Manage Portfolio Suite : Delete Portfolio Method1

+ + + + + + + + + + + +
Tests passed/Failed/Skipped:0/0/2
Started on:Fri May 03 23:50:48 IST 2024
Total time:0 seconds (8 ms)
Included groups:
Excluded groups:

+(Hover the method name to see the test class name)

+ + + + + + + + + + + + + + + + + + +
FAILED CONFIGURATIONS
Test methodAttribute(s)ExceptionTime (seconds)Instance
afterMethod
Test class: testcasesrediffPortfolio.ManageSessionTest
Parameters: org.testng.TestRunner@42039326
java.lang.NullPointerException: Cannot invoke "keywords.ApplicationKeywords.reportAll()" because "this.app" is null
+	at testbase.BaseTest.afterMethod(BaseTest.java:97)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:119)
+... Removed 27 stack frames
Click to show all stack frames +
java.lang.NullPointerException: Cannot invoke "keywords.ApplicationKeywords.reportAll()" because "this.app" is null
+	at testbase.BaseTest.afterMethod(BaseTest.java:97)
+	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:69)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:393)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:326)
+	at org.testng.internal.invokers.TestInvoker.runConfigMethods(TestInvoker.java:810)
+	at org.testng.internal.invokers.TestInvoker.runAfterConfigurations(TestInvoker.java:779)
+	at org.testng.internal.invokers.TestInvoker.invokeMethod(TestInvoker.java:600)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethod(TestInvoker.java:228)
+	at org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:63)
+	at org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:961)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:201)
+	at org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:148)
+	at org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:128)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at org.testng.TestRunner.privateRun(TestRunner.java:819)
+	at org.testng.TestRunner.run(TestRunner.java:619)
+	at org.testng.SuiteRunner.runTest(SuiteRunner.java:443)
+	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:437)
+	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:397)
+	at org.testng.SuiteRunner.run(SuiteRunner.java:336)
+	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
+	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1301)
+	at org.testng.TestNG.runSuitesLocally(TestNG.java:1228)
+	at org.testng.TestNG.runSuites(TestNG.java:1134)
+	at org.testng.TestNG.run(TestNG.java:1101)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:119)
+
0testcasesrediffPortfolio.ManageSessionTest@2c039ac6
afterMethod
Test class: testcasesrediffPortfolio.ManagePortfolioTest
Parameters: org.testng.TestRunner@42039326
java.lang.NullPointerException: Cannot invoke "keywords.ApplicationKeywords.reportAll()" because "this.app" is null
+	at testbase.BaseTest.afterMethod(BaseTest.java:97)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:119)
+... Removed 27 stack frames
Click to show all stack frames +
java.lang.NullPointerException: Cannot invoke "keywords.ApplicationKeywords.reportAll()" because "this.app" is null
+	at testbase.BaseTest.afterMethod(BaseTest.java:97)
+	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:69)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:393)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:326)
+	at org.testng.internal.invokers.TestInvoker.runConfigMethods(TestInvoker.java:810)
+	at org.testng.internal.invokers.TestInvoker.runAfterConfigurations(TestInvoker.java:779)
+	at org.testng.internal.invokers.TestInvoker.invokeMethod(TestInvoker.java:600)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethod(TestInvoker.java:228)
+	at org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:63)
+	at org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:961)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:201)
+	at org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:148)
+	at org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:128)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at org.testng.TestRunner.privateRun(TestRunner.java:819)
+	at org.testng.TestRunner.run(TestRunner.java:619)
+	at org.testng.SuiteRunner.runTest(SuiteRunner.java:443)
+	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:437)
+	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:397)
+	at org.testng.SuiteRunner.run(SuiteRunner.java:336)
+	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
+	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1301)
+	at org.testng.TestNG.runSuitesLocally(TestNG.java:1228)
+	at org.testng.TestNG.runSuites(TestNG.java:1134)
+	at org.testng.TestNG.run(TestNG.java:1101)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:119)
+
0testcasesrediffPortfolio.ManagePortfolioTest@587d1d39

+ + + + + + + + + + + + + +
SKIPPED CONFIGURATIONS
Test methodAttribute(s)ExceptionTime (seconds)Instance
beforeTest
Test class: testcasesrediffPortfolio.ManageSessionTest
Parameters: org.testng.TestRunner@42039326
org.testng.SkipException: RunMode in Test Data is not True
+	at testbase.BaseTest.beforeTest(BaseTest.java:57)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:119)
+... Removed 19 stack frames
Click to show all stack frames +
org.testng.SkipException: RunMode in Test Data is not True
+	at testbase.BaseTest.beforeTest(BaseTest.java:57)
+	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:69)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:393)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:326)
+	at org.testng.TestRunner.invokeTestConfigurations(TestRunner.java:661)
+	at org.testng.TestRunner.beforeRun(TestRunner.java:650)
+	at org.testng.TestRunner.run(TestRunner.java:612)
+	at org.testng.SuiteRunner.runTest(SuiteRunner.java:443)
+	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:437)
+	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:397)
+	at org.testng.SuiteRunner.run(SuiteRunner.java:336)
+	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
+	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1301)
+	at org.testng.TestNG.runSuitesLocally(TestNG.java:1228)
+	at org.testng.TestNG.runSuites(TestNG.java:1134)
+	at org.testng.TestNG.run(TestNG.java:1101)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:119)
+
0testcasesrediffPortfolio.ManageSessionTest@2c039ac6

+ + + + + + + + + + + + + + + + + + +
SKIPPED TESTS
Test methodAttribute(s)ExceptionTime (seconds)Instance
deletePortfolio
Test class: testcasesrediffPortfolio.ManagePortfolioTest
java.lang.NullPointerException: Cannot invoke "keywords.ApplicationKeywords.reportAll()" because "this.app" is null
+	at testbase.BaseTest.afterMethod(BaseTest.java:97)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:119)
+... Removed 27 stack frames
Click to show all stack frames +
java.lang.NullPointerException: Cannot invoke "keywords.ApplicationKeywords.reportAll()" because "this.app" is null
+	at testbase.BaseTest.afterMethod(BaseTest.java:97)
+	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:69)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:393)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:326)
+	at org.testng.internal.invokers.TestInvoker.runConfigMethods(TestInvoker.java:810)
+	at org.testng.internal.invokers.TestInvoker.runAfterConfigurations(TestInvoker.java:779)
+	at org.testng.internal.invokers.TestInvoker.invokeMethod(TestInvoker.java:600)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethod(TestInvoker.java:228)
+	at org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:63)
+	at org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:961)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:201)
+	at org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:148)
+	at org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:128)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at org.testng.TestRunner.privateRun(TestRunner.java:819)
+	at org.testng.TestRunner.run(TestRunner.java:619)
+	at org.testng.SuiteRunner.runTest(SuiteRunner.java:443)
+	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:437)
+	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:397)
+	at org.testng.SuiteRunner.run(SuiteRunner.java:336)
+	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
+	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1301)
+	at org.testng.TestNG.runSuitesLocally(TestNG.java:1228)
+	at org.testng.TestNG.runSuites(TestNG.java:1134)
+	at org.testng.TestNG.run(TestNG.java:1101)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:119)
+
0testcasesrediffPortfolio.ManagePortfolioTest@587d1d39
doLogin
Test class: testcasesrediffPortfolio.ManageSessionTest
org.testng.SkipException: RunMode in Test Data is not True
+	at testbase.BaseTest.beforeTest(BaseTest.java:57)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:119)
+... Removed 19 stack frames
Click to show all stack frames +
org.testng.SkipException: RunMode in Test Data is not True
+	at testbase.BaseTest.beforeTest(BaseTest.java:57)
+	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:69)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:393)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:326)
+	at org.testng.TestRunner.invokeTestConfigurations(TestRunner.java:661)
+	at org.testng.TestRunner.beforeRun(TestRunner.java:650)
+	at org.testng.TestRunner.run(TestRunner.java:612)
+	at org.testng.SuiteRunner.runTest(SuiteRunner.java:443)
+	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:437)
+	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:397)
+	at org.testng.SuiteRunner.run(SuiteRunner.java:336)
+	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
+	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1301)
+	at org.testng.TestNG.runSuitesLocally(TestNG.java:1228)
+	at org.testng.TestNG.runSuites(TestNG.java:1134)
+	at org.testng.TestNG.run(TestNG.java:1101)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:119)
+
0testcasesrediffPortfolio.ManageSessionTest@2c039ac6

+ + \ No newline at end of file diff --git a/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Delete Portfolio Method1.xml b/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Delete Portfolio Method1.xml new file mode 100644 index 0000000..6e9a3e4 --- /dev/null +++ b/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Delete Portfolio Method1.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Delete Portfolio Method2.html b/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Delete Portfolio Method2.html new file mode 100644 index 0000000..081e8f1 --- /dev/null +++ b/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Delete Portfolio Method2.html @@ -0,0 +1,293 @@ + + +TestNG: Manage Portfolio Suite : Delete Portfolio Method2 + + + + + + + + +

Manage Portfolio Suite : Delete Portfolio Method2

+ + + + + + + + + + + +
Tests passed/Failed/Skipped:0/0/2
Started on:Fri May 03 23:50:48 IST 2024
Total time:0 seconds (5 ms)
Included groups:
Excluded groups:

+(Hover the method name to see the test class name)

+ + + + + + + + + + + + + + + + + + +
FAILED CONFIGURATIONS
Test methodAttribute(s)ExceptionTime (seconds)Instance
afterMethod
Test class: testcasesrediffPortfolio.ManagePortfolioTest
Parameters: org.testng.TestRunner@6e4566f1
java.lang.NullPointerException: Cannot invoke "keywords.ApplicationKeywords.reportAll()" because "this.app" is null
+	at testbase.BaseTest.afterMethod(BaseTest.java:97)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:119)
+... Removed 27 stack frames
Click to show all stack frames +
java.lang.NullPointerException: Cannot invoke "keywords.ApplicationKeywords.reportAll()" because "this.app" is null
+	at testbase.BaseTest.afterMethod(BaseTest.java:97)
+	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:69)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:393)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:326)
+	at org.testng.internal.invokers.TestInvoker.runConfigMethods(TestInvoker.java:810)
+	at org.testng.internal.invokers.TestInvoker.runAfterConfigurations(TestInvoker.java:779)
+	at org.testng.internal.invokers.TestInvoker.invokeMethod(TestInvoker.java:600)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethod(TestInvoker.java:228)
+	at org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:63)
+	at org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:961)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:201)
+	at org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:148)
+	at org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:128)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at org.testng.TestRunner.privateRun(TestRunner.java:819)
+	at org.testng.TestRunner.run(TestRunner.java:619)
+	at org.testng.SuiteRunner.runTest(SuiteRunner.java:443)
+	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:437)
+	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:397)
+	at org.testng.SuiteRunner.run(SuiteRunner.java:336)
+	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
+	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1301)
+	at org.testng.TestNG.runSuitesLocally(TestNG.java:1228)
+	at org.testng.TestNG.runSuites(TestNG.java:1134)
+	at org.testng.TestNG.run(TestNG.java:1101)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:119)
+
0testcasesrediffPortfolio.ManagePortfolioTest@6b9651f3
afterMethod
Test class: testcasesrediffPortfolio.ManageSessionTest
Parameters: org.testng.TestRunner@6e4566f1
java.lang.NullPointerException: Cannot invoke "keywords.ApplicationKeywords.reportAll()" because "this.app" is null
+	at testbase.BaseTest.afterMethod(BaseTest.java:97)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:119)
+... Removed 27 stack frames
Click to show all stack frames +
java.lang.NullPointerException: Cannot invoke "keywords.ApplicationKeywords.reportAll()" because "this.app" is null
+	at testbase.BaseTest.afterMethod(BaseTest.java:97)
+	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:69)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:393)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:326)
+	at org.testng.internal.invokers.TestInvoker.runConfigMethods(TestInvoker.java:810)
+	at org.testng.internal.invokers.TestInvoker.runAfterConfigurations(TestInvoker.java:779)
+	at org.testng.internal.invokers.TestInvoker.invokeMethod(TestInvoker.java:600)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethod(TestInvoker.java:228)
+	at org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:63)
+	at org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:961)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:201)
+	at org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:148)
+	at org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:128)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at org.testng.TestRunner.privateRun(TestRunner.java:819)
+	at org.testng.TestRunner.run(TestRunner.java:619)
+	at org.testng.SuiteRunner.runTest(SuiteRunner.java:443)
+	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:437)
+	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:397)
+	at org.testng.SuiteRunner.run(SuiteRunner.java:336)
+	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
+	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1301)
+	at org.testng.TestNG.runSuitesLocally(TestNG.java:1228)
+	at org.testng.TestNG.runSuites(TestNG.java:1134)
+	at org.testng.TestNG.run(TestNG.java:1101)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:119)
+
0testcasesrediffPortfolio.ManageSessionTest@5bb21b69

+ + + + + + + + + + + + + +
SKIPPED CONFIGURATIONS
Test methodAttribute(s)ExceptionTime (seconds)Instance
beforeTest
Test class: testcasesrediffPortfolio.ManageSessionTest
Parameters: org.testng.TestRunner@6e4566f1
org.testng.SkipException: RunMode in Test Data is not True
+	at testbase.BaseTest.beforeTest(BaseTest.java:57)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:119)
+... Removed 19 stack frames
Click to show all stack frames +
org.testng.SkipException: RunMode in Test Data is not True
+	at testbase.BaseTest.beforeTest(BaseTest.java:57)
+	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:69)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:393)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:326)
+	at org.testng.TestRunner.invokeTestConfigurations(TestRunner.java:661)
+	at org.testng.TestRunner.beforeRun(TestRunner.java:650)
+	at org.testng.TestRunner.run(TestRunner.java:612)
+	at org.testng.SuiteRunner.runTest(SuiteRunner.java:443)
+	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:437)
+	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:397)
+	at org.testng.SuiteRunner.run(SuiteRunner.java:336)
+	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
+	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1301)
+	at org.testng.TestNG.runSuitesLocally(TestNG.java:1228)
+	at org.testng.TestNG.runSuites(TestNG.java:1134)
+	at org.testng.TestNG.run(TestNG.java:1101)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:119)
+
0testcasesrediffPortfolio.ManageSessionTest@5bb21b69

+ + + + + + + + + + + + + + + + + + +
SKIPPED TESTS
Test methodAttribute(s)ExceptionTime (seconds)Instance
doLogin
Test class: testcasesrediffPortfolio.ManageSessionTest
org.testng.SkipException: RunMode in Test Data is not True
+	at testbase.BaseTest.beforeTest(BaseTest.java:57)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:119)
+... Removed 19 stack frames
Click to show all stack frames +
org.testng.SkipException: RunMode in Test Data is not True
+	at testbase.BaseTest.beforeTest(BaseTest.java:57)
+	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:69)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:393)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:326)
+	at org.testng.TestRunner.invokeTestConfigurations(TestRunner.java:661)
+	at org.testng.TestRunner.beforeRun(TestRunner.java:650)
+	at org.testng.TestRunner.run(TestRunner.java:612)
+	at org.testng.SuiteRunner.runTest(SuiteRunner.java:443)
+	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:437)
+	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:397)
+	at org.testng.SuiteRunner.run(SuiteRunner.java:336)
+	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
+	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1301)
+	at org.testng.TestNG.runSuitesLocally(TestNG.java:1228)
+	at org.testng.TestNG.runSuites(TestNG.java:1134)
+	at org.testng.TestNG.run(TestNG.java:1101)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:119)
+
0testcasesrediffPortfolio.ManageSessionTest@5bb21b69
deletePortfolio
Test class: testcasesrediffPortfolio.ManagePortfolioTest
java.lang.NullPointerException: Cannot invoke "keywords.ApplicationKeywords.reportAll()" because "this.app" is null
+	at testbase.BaseTest.afterMethod(BaseTest.java:97)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:119)
+... Removed 27 stack frames
Click to show all stack frames +
java.lang.NullPointerException: Cannot invoke "keywords.ApplicationKeywords.reportAll()" because "this.app" is null
+	at testbase.BaseTest.afterMethod(BaseTest.java:97)
+	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:69)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:393)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:326)
+	at org.testng.internal.invokers.TestInvoker.runConfigMethods(TestInvoker.java:810)
+	at org.testng.internal.invokers.TestInvoker.runAfterConfigurations(TestInvoker.java:779)
+	at org.testng.internal.invokers.TestInvoker.invokeMethod(TestInvoker.java:600)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethod(TestInvoker.java:228)
+	at org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:63)
+	at org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:961)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:201)
+	at org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:148)
+	at org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:128)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at org.testng.TestRunner.privateRun(TestRunner.java:819)
+	at org.testng.TestRunner.run(TestRunner.java:619)
+	at org.testng.SuiteRunner.runTest(SuiteRunner.java:443)
+	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:437)
+	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:397)
+	at org.testng.SuiteRunner.run(SuiteRunner.java:336)
+	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
+	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1301)
+	at org.testng.TestNG.runSuitesLocally(TestNG.java:1228)
+	at org.testng.TestNG.runSuites(TestNG.java:1134)
+	at org.testng.TestNG.run(TestNG.java:1101)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:119)
+
0testcasesrediffPortfolio.ManagePortfolioTest@6b9651f3

+ + \ No newline at end of file diff --git a/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Delete Portfolio Method2.xml b/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Delete Portfolio Method2.xml new file mode 100644 index 0000000..88f8496 --- /dev/null +++ b/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Delete Portfolio Method2.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Delete Portfolio Method3.html b/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Delete Portfolio Method3.html new file mode 100644 index 0000000..53fcc72 --- /dev/null +++ b/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Delete Portfolio Method3.html @@ -0,0 +1,293 @@ + + +TestNG: Manage Portfolio Suite : Delete Portfolio Method3 + + + + + + + + +

Manage Portfolio Suite : Delete Portfolio Method3

+ + + + + + + + + + + +
Tests passed/Failed/Skipped:0/0/2
Started on:Fri May 03 23:50:48 IST 2024
Total time:0 seconds (5 ms)
Included groups:
Excluded groups:

+(Hover the method name to see the test class name)

+ + + + + + + + + + + + + + + + + + +
FAILED CONFIGURATIONS
Test methodAttribute(s)ExceptionTime (seconds)Instance
afterMethod
Test class: testcasesrediffPortfolio.ManagePortfolioTest
Parameters: org.testng.TestRunner@5dcb4f5f
java.lang.NullPointerException: Cannot invoke "keywords.ApplicationKeywords.reportAll()" because "this.app" is null
+	at testbase.BaseTest.afterMethod(BaseTest.java:97)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:119)
+... Removed 27 stack frames
Click to show all stack frames +
java.lang.NullPointerException: Cannot invoke "keywords.ApplicationKeywords.reportAll()" because "this.app" is null
+	at testbase.BaseTest.afterMethod(BaseTest.java:97)
+	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:69)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:393)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:326)
+	at org.testng.internal.invokers.TestInvoker.runConfigMethods(TestInvoker.java:810)
+	at org.testng.internal.invokers.TestInvoker.runAfterConfigurations(TestInvoker.java:779)
+	at org.testng.internal.invokers.TestInvoker.invokeMethod(TestInvoker.java:600)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethod(TestInvoker.java:228)
+	at org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:63)
+	at org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:961)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:201)
+	at org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:148)
+	at org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:128)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at org.testng.TestRunner.privateRun(TestRunner.java:819)
+	at org.testng.TestRunner.run(TestRunner.java:619)
+	at org.testng.SuiteRunner.runTest(SuiteRunner.java:443)
+	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:437)
+	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:397)
+	at org.testng.SuiteRunner.run(SuiteRunner.java:336)
+	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
+	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1301)
+	at org.testng.TestNG.runSuitesLocally(TestNG.java:1228)
+	at org.testng.TestNG.runSuites(TestNG.java:1134)
+	at org.testng.TestNG.run(TestNG.java:1101)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:119)
+
0testcasesrediffPortfolio.ManagePortfolioTest@7a9273a8
afterMethod
Test class: testcasesrediffPortfolio.ManageSessionTest
Parameters: org.testng.TestRunner@5dcb4f5f
java.lang.NullPointerException: Cannot invoke "keywords.ApplicationKeywords.reportAll()" because "this.app" is null
+	at testbase.BaseTest.afterMethod(BaseTest.java:97)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:119)
+... Removed 27 stack frames
Click to show all stack frames +
java.lang.NullPointerException: Cannot invoke "keywords.ApplicationKeywords.reportAll()" because "this.app" is null
+	at testbase.BaseTest.afterMethod(BaseTest.java:97)
+	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:69)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:393)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:326)
+	at org.testng.internal.invokers.TestInvoker.runConfigMethods(TestInvoker.java:810)
+	at org.testng.internal.invokers.TestInvoker.runAfterConfigurations(TestInvoker.java:779)
+	at org.testng.internal.invokers.TestInvoker.invokeMethod(TestInvoker.java:600)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethod(TestInvoker.java:228)
+	at org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:63)
+	at org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:961)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:201)
+	at org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:148)
+	at org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:128)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at org.testng.TestRunner.privateRun(TestRunner.java:819)
+	at org.testng.TestRunner.run(TestRunner.java:619)
+	at org.testng.SuiteRunner.runTest(SuiteRunner.java:443)
+	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:437)
+	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:397)
+	at org.testng.SuiteRunner.run(SuiteRunner.java:336)
+	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
+	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1301)
+	at org.testng.TestNG.runSuitesLocally(TestNG.java:1228)
+	at org.testng.TestNG.runSuites(TestNG.java:1134)
+	at org.testng.TestNG.run(TestNG.java:1101)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:119)
+
0testcasesrediffPortfolio.ManageSessionTest@23d2a7e8

+ + + + + + + + + + + + + +
SKIPPED CONFIGURATIONS
Test methodAttribute(s)ExceptionTime (seconds)Instance
beforeTest
Test class: testcasesrediffPortfolio.ManageSessionTest
Parameters: org.testng.TestRunner@5dcb4f5f
org.testng.SkipException: RunMode in Test Data is not True
+	at testbase.BaseTest.beforeTest(BaseTest.java:57)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:119)
+... Removed 19 stack frames
Click to show all stack frames +
org.testng.SkipException: RunMode in Test Data is not True
+	at testbase.BaseTest.beforeTest(BaseTest.java:57)
+	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:69)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:393)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:326)
+	at org.testng.TestRunner.invokeTestConfigurations(TestRunner.java:661)
+	at org.testng.TestRunner.beforeRun(TestRunner.java:650)
+	at org.testng.TestRunner.run(TestRunner.java:612)
+	at org.testng.SuiteRunner.runTest(SuiteRunner.java:443)
+	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:437)
+	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:397)
+	at org.testng.SuiteRunner.run(SuiteRunner.java:336)
+	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
+	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1301)
+	at org.testng.TestNG.runSuitesLocally(TestNG.java:1228)
+	at org.testng.TestNG.runSuites(TestNG.java:1134)
+	at org.testng.TestNG.run(TestNG.java:1101)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:119)
+
0testcasesrediffPortfolio.ManageSessionTest@23d2a7e8

+ + + + + + + + + + + + + + + + + + +
SKIPPED TESTS
Test methodAttribute(s)ExceptionTime (seconds)Instance
deletePortfolio
Test class: testcasesrediffPortfolio.ManagePortfolioTest
java.lang.NullPointerException: Cannot invoke "keywords.ApplicationKeywords.reportAll()" because "this.app" is null
+	at testbase.BaseTest.afterMethod(BaseTest.java:97)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:119)
+... Removed 27 stack frames
Click to show all stack frames +
java.lang.NullPointerException: Cannot invoke "keywords.ApplicationKeywords.reportAll()" because "this.app" is null
+	at testbase.BaseTest.afterMethod(BaseTest.java:97)
+	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:69)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:393)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:326)
+	at org.testng.internal.invokers.TestInvoker.runConfigMethods(TestInvoker.java:810)
+	at org.testng.internal.invokers.TestInvoker.runAfterConfigurations(TestInvoker.java:779)
+	at org.testng.internal.invokers.TestInvoker.invokeMethod(TestInvoker.java:600)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethod(TestInvoker.java:228)
+	at org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:63)
+	at org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:961)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:201)
+	at org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:148)
+	at org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:128)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at org.testng.TestRunner.privateRun(TestRunner.java:819)
+	at org.testng.TestRunner.run(TestRunner.java:619)
+	at org.testng.SuiteRunner.runTest(SuiteRunner.java:443)
+	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:437)
+	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:397)
+	at org.testng.SuiteRunner.run(SuiteRunner.java:336)
+	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
+	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1301)
+	at org.testng.TestNG.runSuitesLocally(TestNG.java:1228)
+	at org.testng.TestNG.runSuites(TestNG.java:1134)
+	at org.testng.TestNG.run(TestNG.java:1101)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:119)
+
0testcasesrediffPortfolio.ManagePortfolioTest@7a9273a8
doLogin
Test class: testcasesrediffPortfolio.ManageSessionTest
org.testng.SkipException: RunMode in Test Data is not True
+	at testbase.BaseTest.beforeTest(BaseTest.java:57)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:119)
+... Removed 19 stack frames
Click to show all stack frames +
org.testng.SkipException: RunMode in Test Data is not True
+	at testbase.BaseTest.beforeTest(BaseTest.java:57)
+	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:69)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:393)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:326)
+	at org.testng.TestRunner.invokeTestConfigurations(TestRunner.java:661)
+	at org.testng.TestRunner.beforeRun(TestRunner.java:650)
+	at org.testng.TestRunner.run(TestRunner.java:612)
+	at org.testng.SuiteRunner.runTest(SuiteRunner.java:443)
+	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:437)
+	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:397)
+	at org.testng.SuiteRunner.run(SuiteRunner.java:336)
+	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
+	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1301)
+	at org.testng.TestNG.runSuitesLocally(TestNG.java:1228)
+	at org.testng.TestNG.runSuites(TestNG.java:1134)
+	at org.testng.TestNG.run(TestNG.java:1101)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:119)
+
0testcasesrediffPortfolio.ManageSessionTest@23d2a7e8

+ + \ No newline at end of file diff --git a/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Delete Portfolio Method3.xml b/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Delete Portfolio Method3.xml new file mode 100644 index 0000000..ee03b86 --- /dev/null +++ b/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/Manage Portfolio Suite _ Delete Portfolio Method3.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/testng-failed.xml b/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/testng-failed.xml new file mode 100644 index 0000000..de0b4e9 --- /dev/null +++ b/DataDrivenFrameworkV2/test-output/Manage Portfolio Suite/testng-failed.xml @@ -0,0 +1,139 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/DataDrivenFrameworkV2/test-output/Manage Stocks/Add Stock Test.html b/DataDrivenFrameworkV2/test-output/Manage Stocks/Add Stock Test.html new file mode 100644 index 0000000..564bcdd --- /dev/null +++ b/DataDrivenFrameworkV2/test-output/Manage Stocks/Add Stock Test.html @@ -0,0 +1,105 @@ + + +TestNG: Add Stock Test + + + + + + + + +

Add Stock Test

+ + + + + + + + + + + +
Tests passed/Failed/Skipped:5/0/0
Started on:Sat Apr 20 17:11:28 IST 2024
Total time:241 seconds (241470 ms)
Included groups:
Excluded groups:

+(Hover the method name to see the test class name)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PASSED TESTS
Test methodAttribute(s)ExceptionTime (seconds)Instance
doLogin
Test class: testcasesrediffPortfolio.ManageSessionTest
88testcasesrediffPortfolio.ManageSessionTest@30b8a058
addStockTest
Test class: testcasesrediffPortfolio.ManageStocksTest
Parameters: org.testng.TestRunner@54d901aa
68testcasesrediffPortfolio.ManageStocksTest@5d76b067
selectPortfolio
Test class: testcasesrediffPortfolio.ManagePortfolioTest
20testcasesrediffPortfolio.ManagePortfolioTest@7d0587f1
verifyTransactionHistory
Test class: testcasesrediffPortfolio.ManageStocksTest
Parameters: addStock, org.testng.TestRunner@54d901aa
33testcasesrediffPortfolio.ManageStocksTest@5d76b067
verifyStockIsPresent
Test class: testcasesrediffPortfolio.ManageStocksTest
Parameters: org.testng.TestRunner@54d901aa
30testcasesrediffPortfolio.ManageStocksTest@5d76b067

+ + \ No newline at end of file diff --git a/DataDrivenFrameworkV2/test-output/Manage Stocks/Add Stock Test.xml b/DataDrivenFrameworkV2/test-output/Manage Stocks/Add Stock Test.xml new file mode 100644 index 0000000..d5ea8d9 --- /dev/null +++ b/DataDrivenFrameworkV2/test-output/Manage Stocks/Add Stock Test.xml @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/DataDrivenFrameworkV2/test-output/Manage Stocks/Add Stocks in Portfolio.html b/DataDrivenFrameworkV2/test-output/Manage Stocks/Add Stocks in Portfolio.html new file mode 100644 index 0000000..5e983f8 --- /dev/null +++ b/DataDrivenFrameworkV2/test-output/Manage Stocks/Add Stocks in Portfolio.html @@ -0,0 +1,105 @@ + + +TestNG: Add Stocks in Portfolio + + + + + + + + +

Add Stocks in Portfolio

+ + + + + + + + + + + +
Tests passed/Failed/Skipped:5/0/0
Started on:Sun Apr 21 11:16:02 IST 2024
Total time:227 seconds (227199 ms)
Included groups:
Excluded groups:

+(Hover the method name to see the test class name)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PASSED TESTS
Test methodAttribute(s)ExceptionTime (seconds)Instance
doLogin
Test class: testcasesrediffPortfolio.ManageSessionTest
87testcasesrediffPortfolio.ManageSessionTest@711f39f9
verifyTransactionHistory
Test class: testcasesrediffPortfolio.ManageStocksTest
Parameters: addStock, org.testng.TestRunner@422b8438
33testcasesrediffPortfolio.ManageStocksTest@48503868
addStockTest
Test class: testcasesrediffPortfolio.ManageStocksTest
Parameters: org.testng.TestRunner@422b8438
51testcasesrediffPortfolio.ManageStocksTest@48503868
selectPortfolio
Test class: testcasesrediffPortfolio.ManagePortfolioTest
22testcasesrediffPortfolio.ManagePortfolioTest@10bbd20a
verifyStockIsPresent
Test class: testcasesrediffPortfolio.ManageStocksTest
Parameters: org.testng.TestRunner@422b8438
32testcasesrediffPortfolio.ManageStocksTest@48503868

+ + \ No newline at end of file diff --git a/DataDrivenFrameworkV2/test-output/Manage Stocks/Add Stocks in Portfolio.xml b/DataDrivenFrameworkV2/test-output/Manage Stocks/Add Stocks in Portfolio.xml new file mode 100644 index 0000000..5486287 --- /dev/null +++ b/DataDrivenFrameworkV2/test-output/Manage Stocks/Add Stocks in Portfolio.xml @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/DataDrivenFrameworkV2/test-output/Manage Stocks/Add Stocks in existying Company in Portfolio.html b/DataDrivenFrameworkV2/test-output/Manage Stocks/Add Stocks in existying Company in Portfolio.html new file mode 100644 index 0000000..9918b04 --- /dev/null +++ b/DataDrivenFrameworkV2/test-output/Manage Stocks/Add Stocks in existying Company in Portfolio.html @@ -0,0 +1,515 @@ + + +TestNG: Add Stocks in existying Company in Portfolio + + + + + + + + +

Add Stocks in existying Company in Portfolio

+ + + + + + + + + + + +
Tests passed/Failed/Skipped:1/5/0
Started on:Sun Apr 21 11:24:21 IST 2024
Total time:152 seconds (152881 ms)
Included groups:
Excluded groups:

+(Hover the method name to see the test class name)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FAILED TESTS
Test methodAttribute(s)ExceptionTime (seconds)Instance
modifyStock
Test class: testcasesrediffPortfolio.ManageStocksTest
Parameters: addStock, org.testng.TestRunner@360e9c06
org.openqa.selenium.WebDriverException: disconnected: unable to send message to renderer
+  (failed to check if window was closed: disconnected: not connected to DevTools)
+  (Session info: chrome=124.0.6367.61)
+Build info: version: '4.17.0', revision: 'e52b1be057*'
+System info: os.name: 'Mac OS X', os.arch: 'aarch64', os.version: '14.4.1', java.version: '21.0.1'
+Driver info: org.openqa.selenium.chrome.ChromeDriver
+Command: [b6b303629dd280eeaf7837f7facaa528, findElement {using=id, value=stock}]
+Capabilities {acceptInsecureCerts: false, browserName: chrome, browserVersion: 124.0.6367.61, chrome: {chromedriverVersion: 123.0.6312.122 (31f8248cdd9..., userDataDir: /var/folders/rg/b21vyw1s0v7...}, fedcm:accounts: true, goog:chromeOptions: {debuggerAddress: localhost:60313}, networkConnectionEnabled: false, pageLoadStrategy: normal, platformName: mac, proxy: Proxy(), se:cdp: ws://localhost:60313/devtoo..., se:cdpVersion: 124.0.6367.61, setWindowRect: true, strictFileInteractability: false, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}, unhandledPromptBehavior: dismiss and notify, webauthn:extension:credBlob: true, webauthn:extension:largeBlob: true, webauthn:extension:minPinLength: true, webauthn:extension:prf: true, webauthn:virtualAuthenticators: true}
+Session ID: b6b303629dd280eeaf7837f7facaa528
+	at org.openqa.selenium.remote.codec.w3c.W3CHttpResponseCodec.createException(W3CHttpResponseCodec.java:185)
+	at org.openqa.selenium.remote.codec.w3c.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:134)
+	at org.openqa.selenium.remote.codec.w3c.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:51)
+	at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:190)
+	at org.openqa.selenium.remote.service.DriverCommandExecutor.invokeExecute(DriverCommandExecutor.java:216)
+	at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:174)
+	at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:519)
+	at org.openqa.selenium.remote.ElementLocation$ElementFinder$2.findElement(ElementLocation.java:165)
+	at org.openqa.selenium.remote.ElementLocation.findElement(ElementLocation.java:59)
+	at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:356)
+	at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:350)
+	at keywords.GenericKeywords.getElement(GenericKeywords.java:208)
+	at keywords.ApplicationKeywords.getRowNumWithCellData(ApplicationKeywords.java:70)
+	at keywords.ApplicationKeywords.findCurrentStockQuantity(ApplicationKeywords.java:42)
+	at testcasesrediffPortfolio.ManageStocksTest.modifyStock(ManageStocksTest.java:21)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:104)
+... Removed 25 stack frames
Click to show all stack frames +
org.openqa.selenium.WebDriverException: disconnected: unable to send message to renderer
+  (failed to check if window was closed: disconnected: not connected to DevTools)
+  (Session info: chrome=124.0.6367.61)
+Build info: version: '4.17.0', revision: 'e52b1be057*'
+System info: os.name: 'Mac OS X', os.arch: 'aarch64', os.version: '14.4.1', java.version: '21.0.1'
+Driver info: org.openqa.selenium.chrome.ChromeDriver
+Command: [b6b303629dd280eeaf7837f7facaa528, findElement {using=id, value=stock}]
+Capabilities {acceptInsecureCerts: false, browserName: chrome, browserVersion: 124.0.6367.61, chrome: {chromedriverVersion: 123.0.6312.122 (31f8248cdd9..., userDataDir: /var/folders/rg/b21vyw1s0v7...}, fedcm:accounts: true, goog:chromeOptions: {debuggerAddress: localhost:60313}, networkConnectionEnabled: false, pageLoadStrategy: normal, platformName: mac, proxy: Proxy(), se:cdp: ws://localhost:60313/devtoo..., se:cdpVersion: 124.0.6367.61, setWindowRect: true, strictFileInteractability: false, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}, unhandledPromptBehavior: dismiss and notify, webauthn:extension:credBlob: true, webauthn:extension:largeBlob: true, webauthn:extension:minPinLength: true, webauthn:extension:prf: true, webauthn:virtualAuthenticators: true}
+Session ID: b6b303629dd280eeaf7837f7facaa528
+	at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:62)
+	at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:502)
+	at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:486)
+	at org.openqa.selenium.remote.codec.w3c.W3CHttpResponseCodec.createException(W3CHttpResponseCodec.java:185)
+	at org.openqa.selenium.remote.codec.w3c.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:134)
+	at org.openqa.selenium.remote.codec.w3c.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:51)
+	at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:190)
+	at org.openqa.selenium.remote.service.DriverCommandExecutor.invokeExecute(DriverCommandExecutor.java:216)
+	at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:174)
+	at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:519)
+	at org.openqa.selenium.remote.ElementLocation$ElementFinder$2.findElement(ElementLocation.java:165)
+	at org.openqa.selenium.remote.ElementLocation.findElement(ElementLocation.java:59)
+	at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:356)
+	at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:350)
+	at keywords.GenericKeywords.getElement(GenericKeywords.java:208)
+	at keywords.ApplicationKeywords.getRowNumWithCellData(ApplicationKeywords.java:70)
+	at keywords.ApplicationKeywords.findCurrentStockQuantity(ApplicationKeywords.java:42)
+	at testcasesrediffPortfolio.ManageStocksTest.modifyStock(ManageStocksTest.java:21)
+	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
+	at org.testng.internal.invokers.TestInvoker.invokeMethod(TestInvoker.java:664)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethod(TestInvoker.java:228)
+	at org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:63)
+	at org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:961)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:201)
+	at org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:148)
+	at org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:128)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at org.testng.TestRunner.privateRun(TestRunner.java:819)
+	at org.testng.TestRunner.run(TestRunner.java:619)
+	at org.testng.SuiteRunner.runTest(SuiteRunner.java:443)
+	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:437)
+	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:397)
+	at org.testng.SuiteRunner.run(SuiteRunner.java:336)
+	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
+	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1301)
+	at org.testng.TestNG.runSuitesLocally(TestNG.java:1228)
+	at org.testng.TestNG.runSuites(TestNG.java:1134)
+	at org.testng.TestNG.run(TestNG.java:1101)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:104)
+
3testcasesrediffPortfolio.ManageStocksTest@4abdb505
verifyTransactionHistory
Test class: testcasesrediffPortfolio.ManageStocksTest
Parameters: addStock, org.testng.TestRunner@360e9c06
org.openqa.selenium.WebDriverException: disconnected: not connected to DevTools
+  (failed to check if window was closed: disconnected: not connected to DevTools)
+  (Session info: chrome=124.0.6367.61)
+Build info: version: '4.17.0', revision: 'e52b1be057*'
+System info: os.name: 'Mac OS X', os.arch: 'aarch64', os.version: '14.4.1', java.version: '21.0.1'
+Driver info: org.openqa.selenium.chrome.ChromeDriver
+Command: [b6b303629dd280eeaf7837f7facaa528, findElement {using=id, value=stock}]
+Capabilities {acceptInsecureCerts: false, browserName: chrome, browserVersion: 124.0.6367.61, chrome: {chromedriverVersion: 123.0.6312.122 (31f8248cdd9..., userDataDir: /var/folders/rg/b21vyw1s0v7...}, fedcm:accounts: true, goog:chromeOptions: {debuggerAddress: localhost:60313}, networkConnectionEnabled: false, pageLoadStrategy: normal, platformName: mac, proxy: Proxy(), se:cdp: ws://localhost:60313/devtoo..., se:cdpVersion: 124.0.6367.61, setWindowRect: true, strictFileInteractability: false, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}, unhandledPromptBehavior: dismiss and notify, webauthn:extension:credBlob: true, webauthn:extension:largeBlob: true, webauthn:extension:minPinLength: true, webauthn:extension:prf: true, webauthn:virtualAuthenticators: true}
+Session ID: b6b303629dd280eeaf7837f7facaa528
+	at org.openqa.selenium.remote.codec.w3c.W3CHttpResponseCodec.createException(W3CHttpResponseCodec.java:185)
+	at org.openqa.selenium.remote.codec.w3c.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:134)
+	at org.openqa.selenium.remote.codec.w3c.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:51)
+	at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:190)
+	at org.openqa.selenium.remote.service.DriverCommandExecutor.invokeExecute(DriverCommandExecutor.java:216)
+	at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:174)
+	at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:519)
+	at org.openqa.selenium.remote.ElementLocation$ElementFinder$2.findElement(ElementLocation.java:165)
+	at org.openqa.selenium.remote.ElementLocation.findElement(ElementLocation.java:59)
+	at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:356)
+	at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:350)
+	at keywords.GenericKeywords.getElement(GenericKeywords.java:208)
+	at keywords.ApplicationKeywords.getRowNumWithCellData(ApplicationKeywords.java:70)
+	at keywords.ApplicationKeywords.openTrasactionHistory(ApplicationKeywords.java:57)
+	at testcasesrediffPortfolio.ManageStocksTest.verifyTransactionHistory(ManageStocksTest.java:76)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:104)
+... Removed 25 stack frames
Click to show all stack frames +
org.openqa.selenium.WebDriverException: disconnected: not connected to DevTools
+  (failed to check if window was closed: disconnected: not connected to DevTools)
+  (Session info: chrome=124.0.6367.61)
+Build info: version: '4.17.0', revision: 'e52b1be057*'
+System info: os.name: 'Mac OS X', os.arch: 'aarch64', os.version: '14.4.1', java.version: '21.0.1'
+Driver info: org.openqa.selenium.chrome.ChromeDriver
+Command: [b6b303629dd280eeaf7837f7facaa528, findElement {using=id, value=stock}]
+Capabilities {acceptInsecureCerts: false, browserName: chrome, browserVersion: 124.0.6367.61, chrome: {chromedriverVersion: 123.0.6312.122 (31f8248cdd9..., userDataDir: /var/folders/rg/b21vyw1s0v7...}, fedcm:accounts: true, goog:chromeOptions: {debuggerAddress: localhost:60313}, networkConnectionEnabled: false, pageLoadStrategy: normal, platformName: mac, proxy: Proxy(), se:cdp: ws://localhost:60313/devtoo..., se:cdpVersion: 124.0.6367.61, setWindowRect: true, strictFileInteractability: false, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}, unhandledPromptBehavior: dismiss and notify, webauthn:extension:credBlob: true, webauthn:extension:largeBlob: true, webauthn:extension:minPinLength: true, webauthn:extension:prf: true, webauthn:virtualAuthenticators: true}
+Session ID: b6b303629dd280eeaf7837f7facaa528
+	at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:62)
+	at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:502)
+	at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:486)
+	at org.openqa.selenium.remote.codec.w3c.W3CHttpResponseCodec.createException(W3CHttpResponseCodec.java:185)
+	at org.openqa.selenium.remote.codec.w3c.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:134)
+	at org.openqa.selenium.remote.codec.w3c.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:51)
+	at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:190)
+	at org.openqa.selenium.remote.service.DriverCommandExecutor.invokeExecute(DriverCommandExecutor.java:216)
+	at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:174)
+	at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:519)
+	at org.openqa.selenium.remote.ElementLocation$ElementFinder$2.findElement(ElementLocation.java:165)
+	at org.openqa.selenium.remote.ElementLocation.findElement(ElementLocation.java:59)
+	at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:356)
+	at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:350)
+	at keywords.GenericKeywords.getElement(GenericKeywords.java:208)
+	at keywords.ApplicationKeywords.getRowNumWithCellData(ApplicationKeywords.java:70)
+	at keywords.ApplicationKeywords.openTrasactionHistory(ApplicationKeywords.java:57)
+	at testcasesrediffPortfolio.ManageStocksTest.verifyTransactionHistory(ManageStocksTest.java:76)
+	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
+	at org.testng.internal.invokers.TestInvoker.invokeMethod(TestInvoker.java:664)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethod(TestInvoker.java:228)
+	at org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:63)
+	at org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:961)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:201)
+	at org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:148)
+	at org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:128)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at org.testng.TestRunner.privateRun(TestRunner.java:819)
+	at org.testng.TestRunner.run(TestRunner.java:619)
+	at org.testng.SuiteRunner.runTest(SuiteRunner.java:443)
+	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:437)
+	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:397)
+	at org.testng.SuiteRunner.run(SuiteRunner.java:336)
+	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
+	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1301)
+	at org.testng.TestNG.runSuitesLocally(TestNG.java:1228)
+	at org.testng.TestNG.runSuites(TestNG.java:1134)
+	at org.testng.TestNG.run(TestNG.java:1101)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:104)
+
0testcasesrediffPortfolio.ManageStocksTest@4abdb505
selectPortfolio
Test class: testcasesrediffPortfolio.ManagePortfolioTest
org.openqa.selenium.NoSuchElementException: no such element: Unable to locate element: {"method":"css selector","selector":"#portfolioid"}
+  (Session info: chrome=124.0.6367.61)
+For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors#no-such-element-exception
+Build info: version: '4.17.0', revision: 'e52b1be057*'
+System info: os.name: 'Mac OS X', os.arch: 'aarch64', os.version: '14.4.1', java.version: '21.0.1'
+Driver info: org.openqa.selenium.chrome.ChromeDriver
+Command: [b6b303629dd280eeaf7837f7facaa528, findElement {using=id, value=portfolioid}]
+Capabilities {acceptInsecureCerts: false, browserName: chrome, browserVersion: 124.0.6367.61, chrome: {chromedriverVersion: 123.0.6312.122 (31f8248cdd9..., userDataDir: /var/folders/rg/b21vyw1s0v7...}, fedcm:accounts: true, goog:chromeOptions: {debuggerAddress: localhost:60313}, networkConnectionEnabled: false, pageLoadStrategy: normal, platformName: mac, proxy: Proxy(), se:cdp: ws://localhost:60313/devtoo..., se:cdpVersion: 124.0.6367.61, setWindowRect: true, strictFileInteractability: false, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}, unhandledPromptBehavior: dismiss and notify, webauthn:extension:credBlob: true, webauthn:extension:largeBlob: true, webauthn:extension:minPinLength: true, webauthn:extension:prf: true, webauthn:virtualAuthenticators: true}
+Session ID: b6b303629dd280eeaf7837f7facaa528
+	at org.openqa.selenium.remote.codec.w3c.W3CHttpResponseCodec.createException(W3CHttpResponseCodec.java:185)
+	at org.openqa.selenium.remote.codec.w3c.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:134)
+	at org.openqa.selenium.remote.codec.w3c.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:51)
+	at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:190)
+	at org.openqa.selenium.remote.service.DriverCommandExecutor.invokeExecute(DriverCommandExecutor.java:216)
+	at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:174)
+	at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:519)
+	at org.openqa.selenium.remote.ElementLocation$ElementFinder$2.findElement(ElementLocation.java:165)
+	at org.openqa.selenium.remote.ElementLocation.findElement(ElementLocation.java:59)
+	at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:356)
+	at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:350)
+	at keywords.GenericKeywords.getElement(GenericKeywords.java:208)
+	at keywords.GenericKeywords.selectByVisibleText(GenericKeywords.java:167)
+	at testcasesrediffPortfolio.ManagePortfolioTest.selectPortfolio(ManagePortfolioTest.java:42)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:104)
+... Removed 25 stack frames
Click to show all stack frames +
org.openqa.selenium.NoSuchElementException: no such element: Unable to locate element: {"method":"css selector","selector":"#portfolioid"}
+  (Session info: chrome=124.0.6367.61)
+For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors#no-such-element-exception
+Build info: version: '4.17.0', revision: 'e52b1be057*'
+System info: os.name: 'Mac OS X', os.arch: 'aarch64', os.version: '14.4.1', java.version: '21.0.1'
+Driver info: org.openqa.selenium.chrome.ChromeDriver
+Command: [b6b303629dd280eeaf7837f7facaa528, findElement {using=id, value=portfolioid}]
+Capabilities {acceptInsecureCerts: false, browserName: chrome, browserVersion: 124.0.6367.61, chrome: {chromedriverVersion: 123.0.6312.122 (31f8248cdd9..., userDataDir: /var/folders/rg/b21vyw1s0v7...}, fedcm:accounts: true, goog:chromeOptions: {debuggerAddress: localhost:60313}, networkConnectionEnabled: false, pageLoadStrategy: normal, platformName: mac, proxy: Proxy(), se:cdp: ws://localhost:60313/devtoo..., se:cdpVersion: 124.0.6367.61, setWindowRect: true, strictFileInteractability: false, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}, unhandledPromptBehavior: dismiss and notify, webauthn:extension:credBlob: true, webauthn:extension:largeBlob: true, webauthn:extension:minPinLength: true, webauthn:extension:prf: true, webauthn:virtualAuthenticators: true}
+Session ID: b6b303629dd280eeaf7837f7facaa528
+	at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:62)
+	at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:502)
+	at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:486)
+	at org.openqa.selenium.remote.codec.w3c.W3CHttpResponseCodec.createException(W3CHttpResponseCodec.java:185)
+	at org.openqa.selenium.remote.codec.w3c.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:134)
+	at org.openqa.selenium.remote.codec.w3c.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:51)
+	at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:190)
+	at org.openqa.selenium.remote.service.DriverCommandExecutor.invokeExecute(DriverCommandExecutor.java:216)
+	at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:174)
+	at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:519)
+	at org.openqa.selenium.remote.ElementLocation$ElementFinder$2.findElement(ElementLocation.java:165)
+	at org.openqa.selenium.remote.ElementLocation.findElement(ElementLocation.java:59)
+	at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:356)
+	at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:350)
+	at keywords.GenericKeywords.getElement(GenericKeywords.java:208)
+	at keywords.GenericKeywords.selectByVisibleText(GenericKeywords.java:167)
+	at testcasesrediffPortfolio.ManagePortfolioTest.selectPortfolio(ManagePortfolioTest.java:42)
+	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
+	at org.testng.internal.invokers.TestInvoker.invokeMethod(TestInvoker.java:664)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethod(TestInvoker.java:228)
+	at org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:63)
+	at org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:961)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:201)
+	at org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:148)
+	at org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:128)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at org.testng.TestRunner.privateRun(TestRunner.java:819)
+	at org.testng.TestRunner.run(TestRunner.java:619)
+	at org.testng.SuiteRunner.runTest(SuiteRunner.java:443)
+	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:437)
+	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:397)
+	at org.testng.SuiteRunner.run(SuiteRunner.java:336)
+	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
+	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1301)
+	at org.testng.TestNG.runSuitesLocally(TestNG.java:1228)
+	at org.testng.TestNG.runSuites(TestNG.java:1134)
+	at org.testng.TestNG.run(TestNG.java:1101)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:104)
+
30testcasesrediffPortfolio.ManagePortfolioTest@26a7b76d
verifyStockIsPresent
Test class: testcasesrediffPortfolio.ManageStocksTest
Parameters: org.testng.TestRunner@360e9c06
org.openqa.selenium.NoSuchElementException: no such element: Unable to locate element: {"method":"css selector","selector":"#stock"}
+  (Session info: chrome=124.0.6367.61)
+For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors#no-such-element-exception
+Build info: version: '4.17.0', revision: 'e52b1be057*'
+System info: os.name: 'Mac OS X', os.arch: 'aarch64', os.version: '14.4.1', java.version: '21.0.1'
+Driver info: org.openqa.selenium.chrome.ChromeDriver
+Command: [b6b303629dd280eeaf7837f7facaa528, findElement {using=id, value=stock}]
+Capabilities {acceptInsecureCerts: false, browserName: chrome, browserVersion: 124.0.6367.61, chrome: {chromedriverVersion: 123.0.6312.122 (31f8248cdd9..., userDataDir: /var/folders/rg/b21vyw1s0v7...}, fedcm:accounts: true, goog:chromeOptions: {debuggerAddress: localhost:60313}, networkConnectionEnabled: false, pageLoadStrategy: normal, platformName: mac, proxy: Proxy(), se:cdp: ws://localhost:60313/devtoo..., se:cdpVersion: 124.0.6367.61, setWindowRect: true, strictFileInteractability: false, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}, unhandledPromptBehavior: dismiss and notify, webauthn:extension:credBlob: true, webauthn:extension:largeBlob: true, webauthn:extension:minPinLength: true, webauthn:extension:prf: true, webauthn:virtualAuthenticators: true}
+Session ID: b6b303629dd280eeaf7837f7facaa528
+	at org.openqa.selenium.remote.codec.w3c.W3CHttpResponseCodec.createException(W3CHttpResponseCodec.java:185)
+	at org.openqa.selenium.remote.codec.w3c.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:134)
+	at org.openqa.selenium.remote.codec.w3c.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:51)
+	at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:190)
+	at org.openqa.selenium.remote.service.DriverCommandExecutor.invokeExecute(DriverCommandExecutor.java:216)
+	at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:174)
+	at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:519)
+	at org.openqa.selenium.remote.ElementLocation$ElementFinder$2.findElement(ElementLocation.java:165)
+	at org.openqa.selenium.remote.ElementLocation.findElement(ElementLocation.java:59)
+	at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:356)
+	at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:350)
+	at keywords.GenericKeywords.getElement(GenericKeywords.java:208)
+	at keywords.ApplicationKeywords.getRowNumWithCellData(ApplicationKeywords.java:70)
+	at testcasesrediffPortfolio.ManageStocksTest.verifyStockIsPresent(ManageStocksTest.java:122)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:104)
+... Removed 25 stack frames
Click to show all stack frames +
org.openqa.selenium.NoSuchElementException: no such element: Unable to locate element: {"method":"css selector","selector":"#stock"}
+  (Session info: chrome=124.0.6367.61)
+For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors#no-such-element-exception
+Build info: version: '4.17.0', revision: 'e52b1be057*'
+System info: os.name: 'Mac OS X', os.arch: 'aarch64', os.version: '14.4.1', java.version: '21.0.1'
+Driver info: org.openqa.selenium.chrome.ChromeDriver
+Command: [b6b303629dd280eeaf7837f7facaa528, findElement {using=id, value=stock}]
+Capabilities {acceptInsecureCerts: false, browserName: chrome, browserVersion: 124.0.6367.61, chrome: {chromedriverVersion: 123.0.6312.122 (31f8248cdd9..., userDataDir: /var/folders/rg/b21vyw1s0v7...}, fedcm:accounts: true, goog:chromeOptions: {debuggerAddress: localhost:60313}, networkConnectionEnabled: false, pageLoadStrategy: normal, platformName: mac, proxy: Proxy(), se:cdp: ws://localhost:60313/devtoo..., se:cdpVersion: 124.0.6367.61, setWindowRect: true, strictFileInteractability: false, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}, unhandledPromptBehavior: dismiss and notify, webauthn:extension:credBlob: true, webauthn:extension:largeBlob: true, webauthn:extension:minPinLength: true, webauthn:extension:prf: true, webauthn:virtualAuthenticators: true}
+Session ID: b6b303629dd280eeaf7837f7facaa528
+	at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:62)
+	at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:502)
+	at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:486)
+	at org.openqa.selenium.remote.codec.w3c.W3CHttpResponseCodec.createException(W3CHttpResponseCodec.java:185)
+	at org.openqa.selenium.remote.codec.w3c.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:134)
+	at org.openqa.selenium.remote.codec.w3c.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:51)
+	at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:190)
+	at org.openqa.selenium.remote.service.DriverCommandExecutor.invokeExecute(DriverCommandExecutor.java:216)
+	at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:174)
+	at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:519)
+	at org.openqa.selenium.remote.ElementLocation$ElementFinder$2.findElement(ElementLocation.java:165)
+	at org.openqa.selenium.remote.ElementLocation.findElement(ElementLocation.java:59)
+	at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:356)
+	at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:350)
+	at keywords.GenericKeywords.getElement(GenericKeywords.java:208)
+	at keywords.ApplicationKeywords.getRowNumWithCellData(ApplicationKeywords.java:70)
+	at testcasesrediffPortfolio.ManageStocksTest.verifyStockIsPresent(ManageStocksTest.java:122)
+	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
+	at org.testng.internal.invokers.TestInvoker.invokeMethod(TestInvoker.java:664)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethod(TestInvoker.java:228)
+	at org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:63)
+	at org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:961)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:201)
+	at org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:148)
+	at org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:128)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at org.testng.TestRunner.privateRun(TestRunner.java:819)
+	at org.testng.TestRunner.run(TestRunner.java:619)
+	at org.testng.SuiteRunner.runTest(SuiteRunner.java:443)
+	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:437)
+	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:397)
+	at org.testng.SuiteRunner.run(SuiteRunner.java:336)
+	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
+	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1301)
+	at org.testng.TestNG.runSuitesLocally(TestNG.java:1228)
+	at org.testng.TestNG.runSuites(TestNG.java:1134)
+	at org.testng.TestNG.run(TestNG.java:1101)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:104)
+
30testcasesrediffPortfolio.ManageStocksTest@4abdb505
verifyStockQuantity
Test class: testcasesrediffPortfolio.ManageStocksTest
Parameters: addStock, org.testng.TestRunner@360e9c06
org.openqa.selenium.WebDriverException: disconnected: not connected to DevTools
+  (failed to check if window was closed: disconnected: not connected to DevTools)
+  (Session info: chrome=124.0.6367.61)
+Build info: version: '4.17.0', revision: 'e52b1be057*'
+System info: os.name: 'Mac OS X', os.arch: 'aarch64', os.version: '14.4.1', java.version: '21.0.1'
+Driver info: org.openqa.selenium.chrome.ChromeDriver
+Command: [b6b303629dd280eeaf7837f7facaa528, findElement {using=id, value=stock}]
+Capabilities {acceptInsecureCerts: false, browserName: chrome, browserVersion: 124.0.6367.61, chrome: {chromedriverVersion: 123.0.6312.122 (31f8248cdd9..., userDataDir: /var/folders/rg/b21vyw1s0v7...}, fedcm:accounts: true, goog:chromeOptions: {debuggerAddress: localhost:60313}, networkConnectionEnabled: false, pageLoadStrategy: normal, platformName: mac, proxy: Proxy(), se:cdp: ws://localhost:60313/devtoo..., se:cdpVersion: 124.0.6367.61, setWindowRect: true, strictFileInteractability: false, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}, unhandledPromptBehavior: dismiss and notify, webauthn:extension:credBlob: true, webauthn:extension:largeBlob: true, webauthn:extension:minPinLength: true, webauthn:extension:prf: true, webauthn:virtualAuthenticators: true}
+Session ID: b6b303629dd280eeaf7837f7facaa528
+	at org.openqa.selenium.remote.codec.w3c.W3CHttpResponseCodec.createException(W3CHttpResponseCodec.java:185)
+	at org.openqa.selenium.remote.codec.w3c.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:134)
+	at org.openqa.selenium.remote.codec.w3c.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:51)
+	at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:190)
+	at org.openqa.selenium.remote.service.DriverCommandExecutor.invokeExecute(DriverCommandExecutor.java:216)
+	at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:174)
+	at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:519)
+	at org.openqa.selenium.remote.ElementLocation$ElementFinder$2.findElement(ElementLocation.java:165)
+	at org.openqa.selenium.remote.ElementLocation.findElement(ElementLocation.java:59)
+	at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:356)
+	at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:350)
+	at keywords.GenericKeywords.getElement(GenericKeywords.java:208)
+	at keywords.ApplicationKeywords.getRowNumWithCellData(ApplicationKeywords.java:70)
+	at keywords.ApplicationKeywords.findCurrentStockQuantity(ApplicationKeywords.java:42)
+	at testcasesrediffPortfolio.ManageStocksTest.verifyStockQuantity(ManageStocksTest.java:48)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:104)
+... Removed 25 stack frames
Click to show all stack frames +
org.openqa.selenium.WebDriverException: disconnected: not connected to DevTools
+  (failed to check if window was closed: disconnected: not connected to DevTools)
+  (Session info: chrome=124.0.6367.61)
+Build info: version: '4.17.0', revision: 'e52b1be057*'
+System info: os.name: 'Mac OS X', os.arch: 'aarch64', os.version: '14.4.1', java.version: '21.0.1'
+Driver info: org.openqa.selenium.chrome.ChromeDriver
+Command: [b6b303629dd280eeaf7837f7facaa528, findElement {using=id, value=stock}]
+Capabilities {acceptInsecureCerts: false, browserName: chrome, browserVersion: 124.0.6367.61, chrome: {chromedriverVersion: 123.0.6312.122 (31f8248cdd9..., userDataDir: /var/folders/rg/b21vyw1s0v7...}, fedcm:accounts: true, goog:chromeOptions: {debuggerAddress: localhost:60313}, networkConnectionEnabled: false, pageLoadStrategy: normal, platformName: mac, proxy: Proxy(), se:cdp: ws://localhost:60313/devtoo..., se:cdpVersion: 124.0.6367.61, setWindowRect: true, strictFileInteractability: false, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}, unhandledPromptBehavior: dismiss and notify, webauthn:extension:credBlob: true, webauthn:extension:largeBlob: true, webauthn:extension:minPinLength: true, webauthn:extension:prf: true, webauthn:virtualAuthenticators: true}
+Session ID: b6b303629dd280eeaf7837f7facaa528
+	at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:62)
+	at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:502)
+	at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:486)
+	at org.openqa.selenium.remote.codec.w3c.W3CHttpResponseCodec.createException(W3CHttpResponseCodec.java:185)
+	at org.openqa.selenium.remote.codec.w3c.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:134)
+	at org.openqa.selenium.remote.codec.w3c.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:51)
+	at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:190)
+	at org.openqa.selenium.remote.service.DriverCommandExecutor.invokeExecute(DriverCommandExecutor.java:216)
+	at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:174)
+	at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:519)
+	at org.openqa.selenium.remote.ElementLocation$ElementFinder$2.findElement(ElementLocation.java:165)
+	at org.openqa.selenium.remote.ElementLocation.findElement(ElementLocation.java:59)
+	at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:356)
+	at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:350)
+	at keywords.GenericKeywords.getElement(GenericKeywords.java:208)
+	at keywords.ApplicationKeywords.getRowNumWithCellData(ApplicationKeywords.java:70)
+	at keywords.ApplicationKeywords.findCurrentStockQuantity(ApplicationKeywords.java:42)
+	at testcasesrediffPortfolio.ManageStocksTest.verifyStockQuantity(ManageStocksTest.java:48)
+	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
+	at org.testng.internal.invokers.TestInvoker.invokeMethod(TestInvoker.java:664)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethod(TestInvoker.java:228)
+	at org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:63)
+	at org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:961)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:201)
+	at org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:148)
+	at org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:128)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at org.testng.TestRunner.privateRun(TestRunner.java:819)
+	at org.testng.TestRunner.run(TestRunner.java:619)
+	at org.testng.SuiteRunner.runTest(SuiteRunner.java:443)
+	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:437)
+	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:397)
+	at org.testng.SuiteRunner.run(SuiteRunner.java:336)
+	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
+	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1301)
+	at org.testng.TestNG.runSuitesLocally(TestNG.java:1228)
+	at org.testng.TestNG.runSuites(TestNG.java:1134)
+	at org.testng.TestNG.run(TestNG.java:1101)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:104)
+
0testcasesrediffPortfolio.ManageStocksTest@4abdb505

+ + + + + + + + + + + + + +
PASSED TESTS
Test methodAttribute(s)ExceptionTime (seconds)Instance
doLogin
Test class: testcasesrediffPortfolio.ManageSessionTest
89testcasesrediffPortfolio.ManageSessionTest@7a9273a8

+ + \ No newline at end of file diff --git a/DataDrivenFrameworkV2/test-output/Manage Stocks/Add Stocks in existying Company in Portfolio.xml b/DataDrivenFrameworkV2/test-output/Manage Stocks/Add Stocks in existying Company in Portfolio.xml new file mode 100644 index 0000000..1b7f064 --- /dev/null +++ b/DataDrivenFrameworkV2/test-output/Manage Stocks/Add Stocks in existying Company in Portfolio.xml @@ -0,0 +1,230 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/DataDrivenFrameworkV2/test-output/Manage Stocks/Sell Stocks in Portfolio.html b/DataDrivenFrameworkV2/test-output/Manage Stocks/Sell Stocks in Portfolio.html new file mode 100644 index 0000000..e136be3 --- /dev/null +++ b/DataDrivenFrameworkV2/test-output/Manage Stocks/Sell Stocks in Portfolio.html @@ -0,0 +1,218 @@ + + +TestNG: Sell Stocks in Portfolio + + + + + + + + +

Sell Stocks in Portfolio

+ + + + + + + + + + + +
Tests passed/Failed/Skipped:5/1/0
Started on:Sun Apr 21 11:19:50 IST 2024
Total time:271 seconds (271546 ms)
Included groups:
Excluded groups:

+(Hover the method name to see the test class name)

+ + + + + + + + + + + + + +
FAILED CONFIGURATIONS
Test methodAttribute(s)ExceptionTime (seconds)Instance
afterMethod
Test class: testcasesrediffPortfolio.ManageStocksTest
Parameters: org.testng.TestRunner@4d499d65
java.lang.AssertionError: The following asserts failed:
+	Got changed quantity in transaction history as -100
+	at keywords.GenericKeywords.reportAll(GenericKeywords.java:105)
+	at testbase.BaseTest.afterMethod(BaseTest.java:74)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:104)
+... Removed 29 stack frames
Click to show all stack frames +
java.lang.AssertionError: The following asserts failed:
+	Got changed quantity in transaction history as -100
+	at org.testng.asserts.SoftAssert.assertAll(SoftAssert.java:46)
+	at org.testng.asserts.SoftAssert.assertAll(SoftAssert.java:30)
+	at keywords.GenericKeywords.reportAll(GenericKeywords.java:105)
+	at testbase.BaseTest.afterMethod(BaseTest.java:74)
+	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:69)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:393)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:326)
+	at org.testng.internal.invokers.TestInvoker.runConfigMethods(TestInvoker.java:810)
+	at org.testng.internal.invokers.TestInvoker.runAfterConfigurations(TestInvoker.java:779)
+	at org.testng.internal.invokers.TestInvoker.invokeMethod(TestInvoker.java:755)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethod(TestInvoker.java:228)
+	at org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:63)
+	at org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:961)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:201)
+	at org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:148)
+	at org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:128)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at org.testng.TestRunner.privateRun(TestRunner.java:819)
+	at org.testng.TestRunner.run(TestRunner.java:619)
+	at org.testng.SuiteRunner.runTest(SuiteRunner.java:443)
+	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:437)
+	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:397)
+	at org.testng.SuiteRunner.run(SuiteRunner.java:336)
+	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
+	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1301)
+	at org.testng.TestNG.runSuitesLocally(TestNG.java:1228)
+	at org.testng.TestNG.runSuites(TestNG.java:1134)
+	at org.testng.TestNG.run(TestNG.java:1101)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:104)
+
0testcasesrediffPortfolio.ManageStocksTest@687080dc

+ + + + + + + + + + + + + +
FAILED TESTS
Test methodAttribute(s)ExceptionTime (seconds)Instance
verifyTransactionHistory
Test class: testcasesrediffPortfolio.ManageStocksTest
Parameters: sellStock, org.testng.TestRunner@4d499d65
java.lang.AssertionError: The following asserts failed:
+	Got changed quantity in transaction history as -100
+	at keywords.GenericKeywords.reportAll(GenericKeywords.java:105)
+	at keywords.GenericKeywords.reportFailure(GenericKeywords.java:94)
+	at testcasesrediffPortfolio.ManageStocksTest.verifyTransactionHistory(ManageStocksTest.java:80)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:104)
+... Removed 24 stack frames
Click to show all stack frames +
java.lang.AssertionError: The following asserts failed:
+	Got changed quantity in transaction history as -100
+	at org.testng.asserts.SoftAssert.assertAll(SoftAssert.java:46)
+	at org.testng.asserts.SoftAssert.assertAll(SoftAssert.java:30)
+	at keywords.GenericKeywords.reportAll(GenericKeywords.java:105)
+	at keywords.GenericKeywords.reportFailure(GenericKeywords.java:94)
+	at testcasesrediffPortfolio.ManageStocksTest.verifyTransactionHistory(ManageStocksTest.java:80)
+	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
+	at org.testng.internal.invokers.TestInvoker.invokeMethod(TestInvoker.java:664)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethod(TestInvoker.java:228)
+	at org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:63)
+	at org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:961)
+	at org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:201)
+	at org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:148)
+	at org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:128)
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
+	at org.testng.TestRunner.privateRun(TestRunner.java:819)
+	at org.testng.TestRunner.run(TestRunner.java:619)
+	at org.testng.SuiteRunner.runTest(SuiteRunner.java:443)
+	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:437)
+	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:397)
+	at org.testng.SuiteRunner.run(SuiteRunner.java:336)
+	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
+	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1301)
+	at org.testng.TestNG.runSuitesLocally(TestNG.java:1228)
+	at org.testng.TestNG.runSuites(TestNG.java:1134)
+	at org.testng.TestNG.run(TestNG.java:1101)
+	at runner.TestNGRunner.run(TestNGRunner.java:45)
+	at runner.JSONRunner.main(JSONRunner.java:104)
+
36testcasesrediffPortfolio.ManageStocksTest@687080dc

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PASSED TESTS
Test methodAttribute(s)ExceptionTime (seconds)Instance
selectPortfolio
Test class: testcasesrediffPortfolio.ManagePortfolioTest
17testcasesrediffPortfolio.ManagePortfolioTest@38bc8ab5
verifyStockIsPresent
Test class: testcasesrediffPortfolio.ManageStocksTest
Parameters: org.testng.TestRunner@4d499d65
31testcasesrediffPortfolio.ManageStocksTest@687080dc
doLogin
Test class: testcasesrediffPortfolio.ManageSessionTest
83testcasesrediffPortfolio.ManageSessionTest@6b9651f3
modifyStock
Test class: testcasesrediffPortfolio.ManageStocksTest
Parameters: sellStock, org.testng.TestRunner@4d499d65
70testcasesrediffPortfolio.ManageStocksTest@687080dc
verifyStockQuantity
Test class: testcasesrediffPortfolio.ManageStocksTest
Parameters: sellStock, org.testng.TestRunner@4d499d65
31testcasesrediffPortfolio.ManageStocksTest@687080dc

+ + \ No newline at end of file diff --git a/DataDrivenFrameworkV2/test-output/Manage Stocks/Sell Stocks in Portfolio.xml b/DataDrivenFrameworkV2/test-output/Manage Stocks/Sell Stocks in Portfolio.xml new file mode 100644 index 0000000..b96cb1d --- /dev/null +++ b/DataDrivenFrameworkV2/test-output/Manage Stocks/Sell Stocks in Portfolio.xml @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/DataDrivenFrameworkV2/test-output/Manage Stocks/testng-failed.xml b/DataDrivenFrameworkV2/test-output/Manage Stocks/testng-failed.xml new file mode 100644 index 0000000..40f2487 --- /dev/null +++ b/DataDrivenFrameworkV2/test-output/Manage Stocks/testng-failed.xml @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/DataDrivenFrameworkV2/test-output/Suite/Add Stock Test.html b/DataDrivenFrameworkV2/test-output/Suite/Add Stock Test.html new file mode 100644 index 0000000..658a1e2 --- /dev/null +++ b/DataDrivenFrameworkV2/test-output/Suite/Add Stock Test.html @@ -0,0 +1,110 @@ + + +TestNG: Add Stock Test + + + + + + + + +

Add Stock Test

+ + + + + + + + + + + +
Tests passed/Failed/Skipped:6/0/0
Started on:Wed Apr 17 21:26:37 IST 2024
Total time:272 seconds (272980 ms)
Included groups:
Excluded groups:

+(Hover the method name to see the test class name)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PASSED TESTS
Test methodAttribute(s)ExceptionTime (seconds)Instance
addStockTest
Test class: testcasesrediffPortfolio.ManageStocksTest
6testcasesrediffPortfolio.ManageStocksTest@61df66b6
verifyStockIsPresent
Test class: testcasesrediffPortfolio.ManageStocksTest
60testcasesrediffPortfolio.ManageStocksTest@61df66b6
verifyTransactionHistory
Test class: testcasesrediffPortfolio.ManageStocksTest
62testcasesrediffPortfolio.ManageStocksTest@61df66b6
doLogin
Test class: testcasesrediffPortfolio.ManageSessionTest
79testcasesrediffPortfolio.ManageSessionTest@c33b74f
verifyStockQuantity
Test class: testcasesrediffPortfolio.ManageStocksTest
60testcasesrediffPortfolio.ManageStocksTest@61df66b6
selectPortfolio
Test class: testcasesrediffPortfolio.ManagePortfolioTest
4testcasesrediffPortfolio.ManagePortfolioTest@291ae

+ + \ No newline at end of file diff --git a/DataDrivenFrameworkV2/test-output/Suite/Add Stock Test.xml b/DataDrivenFrameworkV2/test-output/Suite/Add Stock Test.xml new file mode 100644 index 0000000..5a412bb --- /dev/null +++ b/DataDrivenFrameworkV2/test-output/Suite/Add Stock Test.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/DataDrivenFrameworkV2/test-output/Suite/Create Portfolio Test.html b/DataDrivenFrameworkV2/test-output/Suite/Create Portfolio Test.html new file mode 100644 index 0000000..88db2bc --- /dev/null +++ b/DataDrivenFrameworkV2/test-output/Suite/Create Portfolio Test.html @@ -0,0 +1,161 @@ + + +TestNG: Create Portfolio Test + + + + + + + + +

Create Portfolio Test

+ + + + + + + + + + + +
Tests passed/Failed/Skipped:0/0/1
Started on:Sat May 04 00:40:16 IST 2024
Total time:0 seconds (27 ms)
Included groups:
Excluded groups:

+(Hover the method name to see the test class name)

+ + + + + + + + + + + + + +
FAILED CONFIGURATIONS
Test methodAttribute(s)ExceptionTime (seconds)Instance
beforeTest
Test class: testcasesrediffPortfolio.ManageSessionTest
Parameters: org.testng.TestRunner@c730b35
java.lang.NumberFormatException: Cannot parse null string
+	at java.base/java.lang.Integer.parseInt(Integer.java:623)
+	at java.base/java.lang.Integer.parseInt(Integer.java:777)
+	at testbase.BaseTest.beforeTest(BaseTest.java:38)
+... Removed 22 stack frames
Click to show all stack frames +
java.lang.NumberFormatException: Cannot parse null string
+	at java.base/java.lang.Integer.parseInt(Integer.java:623)
+	at java.base/java.lang.Integer.parseInt(Integer.java:777)
+	at testbase.BaseTest.beforeTest(BaseTest.java:38)
+	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:69)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:393)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:326)
+	at org.testng.TestRunner.invokeTestConfigurations(TestRunner.java:661)
+	at org.testng.TestRunner.beforeRun(TestRunner.java:650)
+	at org.testng.TestRunner.run(TestRunner.java:612)
+	at org.testng.SuiteRunner.runTest(SuiteRunner.java:443)
+	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:437)
+	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:397)
+	at org.testng.SuiteRunner.run(SuiteRunner.java:336)
+	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
+	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1301)
+	at org.testng.TestNG.runSuitesLocally(TestNG.java:1228)
+	at org.testng.TestNG.runSuites(TestNG.java:1134)
+	at org.testng.TestNG.run(TestNG.java:1101)
+	at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:115)
+	at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:251)
+	at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:77)
+
0testcasesrediffPortfolio.ManageSessionTest@619713e5

+ + + + + + + + + + + + + +
SKIPPED TESTS
Test methodAttribute(s)ExceptionTime (seconds)Instance
doLogin
Test class: testcasesrediffPortfolio.ManageSessionTest
Parameters: org.testng.TestRunner@c730b35
java.lang.NumberFormatException: Cannot parse null string
+	at java.base/java.lang.Integer.parseInt(Integer.java:623)
+	at java.base/java.lang.Integer.parseInt(Integer.java:777)
+	at testbase.BaseTest.beforeTest(BaseTest.java:38)
+... Removed 22 stack frames
Click to show all stack frames +
java.lang.NumberFormatException: Cannot parse null string
+	at java.base/java.lang.Integer.parseInt(Integer.java:623)
+	at java.base/java.lang.Integer.parseInt(Integer.java:777)
+	at testbase.BaseTest.beforeTest(BaseTest.java:38)
+	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
+	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:69)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:393)
+	at org.testng.internal.invokers.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:326)
+	at org.testng.TestRunner.invokeTestConfigurations(TestRunner.java:661)
+	at org.testng.TestRunner.beforeRun(TestRunner.java:650)
+	at org.testng.TestRunner.run(TestRunner.java:612)
+	at org.testng.SuiteRunner.runTest(SuiteRunner.java:443)
+	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:437)
+	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:397)
+	at org.testng.SuiteRunner.run(SuiteRunner.java:336)
+	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
+	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
+	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1301)
+	at org.testng.TestNG.runSuitesLocally(TestNG.java:1228)
+	at org.testng.TestNG.runSuites(TestNG.java:1134)
+	at org.testng.TestNG.run(TestNG.java:1101)
+	at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:115)
+	at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:251)
+	at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:77)
+
0testcasesrediffPortfolio.ManageSessionTest@619713e5

+ + \ No newline at end of file diff --git a/DataDrivenFrameworkV2/test-output/Suite/Create Portfolio Test.xml b/DataDrivenFrameworkV2/test-output/Suite/Create Portfolio Test.xml new file mode 100644 index 0000000..521edcc --- /dev/null +++ b/DataDrivenFrameworkV2/test-output/Suite/Create Portfolio Test.xml @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/DataDrivenFrameworkV2/test-output/Suite/Delete Portfolio Test.html b/DataDrivenFrameworkV2/test-output/Suite/Delete Portfolio Test.html new file mode 100644 index 0000000..40fe13b --- /dev/null +++ b/DataDrivenFrameworkV2/test-output/Suite/Delete Portfolio Test.html @@ -0,0 +1,90 @@ + + +TestNG: Delete Portfolio Test + + + + + + + + +

Delete Portfolio Test

+ + + + + + + + + + + +
Tests passed/Failed/Skipped:2/0/0
Started on:Sun Apr 14 18:23:14 IST 2024
Total time:69 seconds (69630 ms)
Included groups:
Excluded groups:

+(Hover the method name to see the test class name)

+ + + + + + + + + + + + + + + + + + +
PASSED TESTS
Test methodAttribute(s)ExceptionTime (seconds)Instance
deletePortfolio
Test class: testcasesrediffPortfolio.ManagePortfolioTest
22testcasesrediffPortfolio.ManagePortfolioTest@67d48005
doLogin
Test class: testcasesrediffPortfolio.ManageSessionTest
46testcasesrediffPortfolio.ManageSessionTest@294425a7

+ + \ No newline at end of file diff --git a/DataDrivenFrameworkV2/test-output/Suite/Delete Portfolio Test.xml b/DataDrivenFrameworkV2/test-output/Suite/Delete Portfolio Test.xml new file mode 100644 index 0000000..ed12462 --- /dev/null +++ b/DataDrivenFrameworkV2/test-output/Suite/Delete Portfolio Test.xml @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/DataDrivenFrameworkV2/test-output/Suite/Lofin Application Test.html b/DataDrivenFrameworkV2/test-output/Suite/Lofin Application Test.html new file mode 100644 index 0000000..0f7983c --- /dev/null +++ b/DataDrivenFrameworkV2/test-output/Suite/Lofin Application Test.html @@ -0,0 +1,85 @@ + + +TestNG: Lofin Application Test + + + + + + + + +

Lofin Application Test

+ + + + + + + + + + + +
Tests passed/Failed/Skipped:1/0/0
Started on:Fri Apr 05 22:14:04 IST 2024
Total time:0 seconds (20 ms)
Included groups:
Excluded groups:

+(Hover the method name to see the test class name)

+ + + + + + + + + + + + + +
PASSED TESTS
Test methodAttribute(s)ExceptionTime (seconds)Instance
doLogin
Test class: testcasesrediffPortfolio.ManageSessionTest
0testcasesrediffPortfolio.ManageSessionTest@17046283

+ + \ No newline at end of file diff --git a/DataDrivenFrameworkV2/test-output/Suite/Lofin Application Test.xml b/DataDrivenFrameworkV2/test-output/Suite/Lofin Application Test.xml new file mode 100644 index 0000000..293df81 --- /dev/null +++ b/DataDrivenFrameworkV2/test-output/Suite/Lofin Application Test.xml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/DataDrivenFrameworkV2/test-output/Suite/Modify Stock Test -- Sell Stock.html b/DataDrivenFrameworkV2/test-output/Suite/Modify Stock Test -- Sell Stock.html new file mode 100644 index 0000000..2339595 --- /dev/null +++ b/DataDrivenFrameworkV2/test-output/Suite/Modify Stock Test -- Sell Stock.html @@ -0,0 +1,110 @@ + + +TestNG: Modify Stock Test -- Sell Stock + + + + + + + + +

Modify Stock Test -- Sell Stock

+ + + + + + + + + + + +
Tests passed/Failed/Skipped:6/0/0
Started on:Wed Apr 17 23:36:59 IST 2024
Total time:213 seconds (213075 ms)
Included groups:
Excluded groups:

+(Hover the method name to see the test class name)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PASSED TESTS
Test methodAttribute(s)ExceptionTime (seconds)Instance
doLogin
Test class: testcasesrediffPortfolio.ManageSessionTest
52testcasesrediffPortfolio.ManageSessionTest@243c4f91
selectPortfolio
Test class: testcasesrediffPortfolio.ManagePortfolioTest
3testcasesrediffPortfolio.ManagePortfolioTest@5119fb47
modifyStock
Test class: testcasesrediffPortfolio.ManageStocksTest
Parameters: org.testng.TestRunner@78e16155
64testcasesrediffPortfolio.ManageStocksTest@7193666c
verifyStockIsPresent
Test class: testcasesrediffPortfolio.ManageStocksTest
Parameters: org.testng.TestRunner@78e16155
30testcasesrediffPortfolio.ManageStocksTest@7193666c
verifyStockQuantity
Test class: testcasesrediffPortfolio.ManageStocksTest
Parameters: sellStock, org.testng.TestRunner@78e16155
30testcasesrediffPortfolio.ManageStocksTest@7193666c
verifyTransactionHistory
Test class: testcasesrediffPortfolio.ManageStocksTest
Parameters: sellStock, org.testng.TestRunner@78e16155
32testcasesrediffPortfolio.ManageStocksTest@7193666c

+ + \ No newline at end of file diff --git a/DataDrivenFrameworkV2/test-output/Suite/Modify Stock Test -- Sell Stock.xml b/DataDrivenFrameworkV2/test-output/Suite/Modify Stock Test -- Sell Stock.xml new file mode 100644 index 0000000..ff95a4f --- /dev/null +++ b/DataDrivenFrameworkV2/test-output/Suite/Modify Stock Test -- Sell Stock.xml @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/DataDrivenFrameworkV2/test-output/Suite/Modify Stock Test _ Add Stock.html b/DataDrivenFrameworkV2/test-output/Suite/Modify Stock Test _ Add Stock.html new file mode 100644 index 0000000..2cb98b4 --- /dev/null +++ b/DataDrivenFrameworkV2/test-output/Suite/Modify Stock Test _ Add Stock.html @@ -0,0 +1,110 @@ + + +TestNG: Modify Stock Test : Add Stock + + + + + + + + +

Modify Stock Test : Add Stock

+ + + + + + + + + + + +
Tests passed/Failed/Skipped:6/0/0
Started on:Fri Apr 19 20:16:16 IST 2024
Total time:292 seconds (292539 ms)
Included groups:
Excluded groups:

+(Hover the method name to see the test class name)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PASSED TESTS
Test methodAttribute(s)ExceptionTime (seconds)Instance
doLogin
Test class: testcasesrediffPortfolio.ManageSessionTest
79testcasesrediffPortfolio.ManageSessionTest@243c4f91
selectPortfolio
Test class: testcasesrediffPortfolio.ManagePortfolioTest
24testcasesrediffPortfolio.ManagePortfolioTest@5119fb47
verifyStockIsPresent
Test class: testcasesrediffPortfolio.ManageStocksTest
Parameters: org.testng.TestRunner@78e16155
31testcasesrediffPortfolio.ManageStocksTest@7193666c
verifyStockQuantity
Test class: testcasesrediffPortfolio.ManageStocksTest
Parameters: addStock, org.testng.TestRunner@78e16155
35testcasesrediffPortfolio.ManageStocksTest@7193666c
modifyStock
Test class: testcasesrediffPortfolio.ManageStocksTest
Parameters: addStock, org.testng.TestRunner@78e16155
86testcasesrediffPortfolio.ManageStocksTest@7193666c
verifyTransactionHistory
Test class: testcasesrediffPortfolio.ManageStocksTest
Parameters: addStock, org.testng.TestRunner@78e16155
34testcasesrediffPortfolio.ManageStocksTest@7193666c

+ + \ No newline at end of file diff --git a/DataDrivenFrameworkV2/test-output/Suite/Modify Stock Test _ Add Stock.xml b/DataDrivenFrameworkV2/test-output/Suite/Modify Stock Test _ Add Stock.xml new file mode 100644 index 0000000..c313d81 --- /dev/null +++ b/DataDrivenFrameworkV2/test-output/Suite/Modify Stock Test _ Add Stock.xml @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/DataDrivenFrameworkV2/test-output/Suite/Test.html b/DataDrivenFrameworkV2/test-output/Suite/Test.html new file mode 100644 index 0000000..45c16eb --- /dev/null +++ b/DataDrivenFrameworkV2/test-output/Suite/Test.html @@ -0,0 +1,110 @@ + + +TestNG: Test + + + + + + + + +

Test

+ + + + + + + + + + + +
Tests passed/Failed/Skipped:6/0/0
Started on:Thu Apr 04 22:35:14 IST 2024
Total time:0 seconds (22 ms)
Included groups:
Excluded groups:

+(Hover the method name to see the test class name)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PASSED TESTS
Test methodAttribute(s)ExceptionTime (seconds)Instance
deletePortfolio
Test class: testcasesrediffPortfolio.ManagePortfolioTest
0testcasesrediffPortfolio.ManagePortfolioTest@72a7c7e0
createPortfolio
Test class: testcasesrediffPortfolio.ManagePortfolioTest
0testcasesrediffPortfolio.ManagePortfolioTest@72a7c7e0
addStockTest
Test class: testcasesrediffPortfolio.ManageStocksTest
0testcasesrediffPortfolio.ManageStocksTest@2e4b8173
doLogin
Test class: testcasesrediffPortfolio.ManageSessionTest
0testcasesrediffPortfolio.ManageSessionTest@418e7838
doLogOut
Test class: testcasesrediffPortfolio.ManageSessionTest
0testcasesrediffPortfolio.ManageSessionTest@418e7838
modifyStockTest
Test class: testcasesrediffPortfolio.ManageStocksTest
0testcasesrediffPortfolio.ManageStocksTest@2e4b8173

+ + \ No newline at end of file diff --git a/DataDrivenFrameworkV2/test-output/Suite/Test.xml b/DataDrivenFrameworkV2/test-output/Suite/Test.xml new file mode 100644 index 0000000..2887f0b --- /dev/null +++ b/DataDrivenFrameworkV2/test-output/Suite/Test.xml @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/DataDrivenFrameworkV2/test-output/Suite/testng-failed.xml b/DataDrivenFrameworkV2/test-output/Suite/testng-failed.xml new file mode 100644 index 0000000..f1fc5ab --- /dev/null +++ b/DataDrivenFrameworkV2/test-output/Suite/testng-failed.xml @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/DataDrivenFrameworkV2/test-output/bullet_point.png b/DataDrivenFrameworkV2/test-output/bullet_point.png new file mode 100644 index 0000000..176e6d5 Binary files /dev/null and b/DataDrivenFrameworkV2/test-output/bullet_point.png differ diff --git a/DataDrivenFrameworkV2/test-output/collapseall.gif b/DataDrivenFrameworkV2/test-output/collapseall.gif new file mode 100644 index 0000000..a2d80a9 Binary files /dev/null and b/DataDrivenFrameworkV2/test-output/collapseall.gif differ diff --git a/DataDrivenFrameworkV2/test-output/emailable-report.html b/DataDrivenFrameworkV2/test-output/emailable-report.html new file mode 100644 index 0000000..c8a7ed5 --- /dev/null +++ b/DataDrivenFrameworkV2/test-output/emailable-report.html @@ -0,0 +1,168 @@ + + + + +TestNG Report + + + + + + + + + + + + + +
Test# Passed# Skipped# Retried# FailedTime (ms)Included GroupsExcluded Groups
Manage Portfolio Suite
Manage Portfolio Suite : Create Portfolio Method 10200219
Manage Portfolio Suite : Create Portfolio Method 22000108,127
Manage Portfolio Suite : Create Portfolio Method 3020018
Manage Portfolio Suite : Delete Portfolio Method 1020017
Manage Portfolio Suite : Delete Portfolio Method 2020016
Manage Portfolio Suite : Delete Portfolio Method 3020022
Total21000108,419
+ + + + + + +
ClassMethodStartTime (ms)
Manage Portfolio Suite
Manage Portfolio Suite : Create Portfolio Method 1 — failed (configuration methods)
testcasesrediffPortfolio.ManagePortfolioTestafterMethod17153675434420
testcasesrediffPortfolio.ManageSessionTestafterMethod17153675434410
beforeTest171536754334689
Manage Portfolio Suite : Create Portfolio Method 1 — skipped
testcasesrediffPortfolio.ManagePortfolioTestcreatePortfolio17153675434420
testcasesrediffPortfolio.ManageSessionTestdoLogin17153675434410
Manage Portfolio Suite : Create Portfolio Method 2 — passed
testcasesrediffPortfolio.ManagePortfolioTestcreatePortfolio171536763285618708
testcasesrediffPortfolio.ManageSessionTestdoLogin171536754359189263
Manage Portfolio Suite : Create Portfolio Method 3 — failed (configuration methods)
testcasesrediffPortfolio.ManagePortfolioTestafterMethod17153676517170
testcasesrediffPortfolio.ManageSessionTestafterMethod17153676517170
Manage Portfolio Suite : Create Portfolio Method 3 — skipped (configuration methods)
testcasesrediffPortfolio.ManageSessionTestbeforeTest171536765170313
Manage Portfolio Suite : Create Portfolio Method 3 — skipped
testcasesrediffPortfolio.ManagePortfolioTestcreatePortfolio17153676517170
testcasesrediffPortfolio.ManageSessionTestdoLogin17153676517170
Manage Portfolio Suite : Delete Portfolio Method 1 — failed (configuration methods)
testcasesrediffPortfolio.ManagePortfolioTestafterMethod17153676517370
testcasesrediffPortfolio.ManageSessionTestafterMethod17153676517360
beforeTest171536765172412
Manage Portfolio Suite : Delete Portfolio Method 1 — skipped
testcasesrediffPortfolio.ManagePortfolioTestdeletePortfolio17153676517370
testcasesrediffPortfolio.ManageSessionTestdoLogin17153676517360
Manage Portfolio Suite : Delete Portfolio Method 2 — failed (configuration methods)
testcasesrediffPortfolio.ManagePortfolioTestafterMethod17153676517550
testcasesrediffPortfolio.ManageSessionTestafterMethod17153676517541
Manage Portfolio Suite : Delete Portfolio Method 2 — skipped (configuration methods)
testcasesrediffPortfolio.ManageSessionTestbeforeTest171536765174311
Manage Portfolio Suite : Delete Portfolio Method 2 — skipped
testcasesrediffPortfolio.ManagePortfolioTestdeletePortfolio17153676517550
testcasesrediffPortfolio.ManageSessionTestdoLogin17153676517540
Manage Portfolio Suite : Delete Portfolio Method 3 — failed (configuration methods)
testcasesrediffPortfolio.ManagePortfolioTestafterMethod17153676517780
testcasesrediffPortfolio.ManageSessionTestafterMethod17153676517780
Manage Portfolio Suite : Delete Portfolio Method 3 — skipped (configuration methods)
testcasesrediffPortfolio.ManageSessionTestbeforeTest171536765176116
Manage Portfolio Suite : Delete Portfolio Method 3 — skipped
testcasesrediffPortfolio.ManagePortfolioTestdeletePortfolio17153676517780
testcasesrediffPortfolio.ManageSessionTestdoLogin17153676517780
+

Manage Portfolio Suite : Create Portfolio Method 1

testcasesrediffPortfolio.ManagePortfolioTest#afterMethod

Parameter #1
org.testng.TestRunner@62515a47
Exception
java.lang.NullPointerException: Cannot invoke "keywords.ApplicationKeywords.reportAll()" because "this.app" is null + at testbase.BaseTest.afterMethod(BaseTest.java:108) + at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) + at runner.TestNGRunner.run(TestNGRunner.java:45) + at runner.JSONRunner.main(JSONRunner.java:124) +... Removed 27 stack frames

back to summary

+

testcasesrediffPortfolio.ManageSessionTest#afterMethod

Parameter #1
org.testng.TestRunner@62515a47
Exception
java.lang.NullPointerException: Cannot invoke "keywords.ApplicationKeywords.reportAll()" because "this.app" is null + at testbase.BaseTest.afterMethod(BaseTest.java:108) + at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) + at runner.TestNGRunner.run(TestNGRunner.java:45) + at runner.JSONRunner.main(JSONRunner.java:124) +... Removed 27 stack frames

back to summary

+

testcasesrediffPortfolio.ManageSessionTest#beforeTest

Parameter #1
org.testng.TestRunner@62515a47
Exception
java.lang.NullPointerException: Cannot invoke "String.equalsIgnoreCase(String)" because "runMode" is null + at testbase.BaseTest.beforeTest(BaseTest.java:66) + at runner.TestNGRunner.run(TestNGRunner.java:45) + at runner.JSONRunner.main(JSONRunner.java:124) +... Removed 19 stack frames

back to summary

+

testcasesrediffPortfolio.ManagePortfolioTest#createPortfolio

Parameter #1
org.testng.TestRunner@62515a47
Exception
java.lang.NullPointerException: Cannot invoke "String.equalsIgnoreCase(String)" because "runMode" is null + at testbase.BaseTest.beforeTest(BaseTest.java:66) + at runner.TestNGRunner.run(TestNGRunner.java:45) + at runner.JSONRunner.main(JSONRunner.java:124) +... Removed 19 stack frames

back to summary

+

testcasesrediffPortfolio.ManageSessionTest#doLogin

Parameter #1
org.testng.TestRunner@62515a47
Exception
java.lang.NullPointerException: Cannot invoke "String.equalsIgnoreCase(String)" because "runMode" is null + at testbase.BaseTest.beforeTest(BaseTest.java:66) + at runner.TestNGRunner.run(TestNGRunner.java:45) + at runner.JSONRunner.main(JSONRunner.java:124) +... Removed 19 stack frames

back to summary

+

Manage Portfolio Suite : Create Portfolio Method 2

testcasesrediffPortfolio.ManagePortfolioTest#createPortfolio

Parameter #1
org.testng.TestRunner@65e21ce3

back to summary

+

testcasesrediffPortfolio.ManageSessionTest#doLogin

Parameter #1
org.testng.TestRunner@65e21ce3

back to summary

+

Manage Portfolio Suite : Create Portfolio Method 3

testcasesrediffPortfolio.ManagePortfolioTest#afterMethod

Parameter #1
org.testng.TestRunner@712cfb63
Exception
java.lang.NullPointerException: Cannot invoke "keywords.ApplicationKeywords.reportAll()" because "this.app" is null + at testbase.BaseTest.afterMethod(BaseTest.java:108) + at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) + at runner.TestNGRunner.run(TestNGRunner.java:45) + at runner.JSONRunner.main(JSONRunner.java:124) +... Removed 27 stack frames

back to summary

+

testcasesrediffPortfolio.ManageSessionTest#afterMethod

Parameter #1
org.testng.TestRunner@712cfb63
Exception
java.lang.NullPointerException: Cannot invoke "keywords.ApplicationKeywords.reportAll()" because "this.app" is null + at testbase.BaseTest.afterMethod(BaseTest.java:108) + at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) + at runner.TestNGRunner.run(TestNGRunner.java:45) + at runner.JSONRunner.main(JSONRunner.java:124) +... Removed 27 stack frames

back to summary

+

testcasesrediffPortfolio.ManageSessionTest#beforeTest

Parameter #1
org.testng.TestRunner@712cfb63
Exception
org.testng.SkipException: RunMode in Test Data is not True + at testbase.BaseTest.beforeTest(BaseTest.java:68) + at runner.TestNGRunner.run(TestNGRunner.java:45) + at runner.JSONRunner.main(JSONRunner.java:124) +... Removed 19 stack frames

back to summary

+

testcasesrediffPortfolio.ManagePortfolioTest#createPortfolio

Parameter #1
org.testng.TestRunner@712cfb63
Exception
java.lang.NullPointerException: Cannot invoke "keywords.ApplicationKeywords.reportAll()" because "this.app" is null + at testbase.BaseTest.afterMethod(BaseTest.java:108) + at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) + at runner.TestNGRunner.run(TestNGRunner.java:45) + at runner.JSONRunner.main(JSONRunner.java:124) +... Removed 27 stack frames

back to summary

+

testcasesrediffPortfolio.ManageSessionTest#doLogin

Parameter #1
org.testng.TestRunner@712cfb63
Exception
org.testng.SkipException: RunMode in Test Data is not True + at testbase.BaseTest.beforeTest(BaseTest.java:68) + at runner.TestNGRunner.run(TestNGRunner.java:45) + at runner.JSONRunner.main(JSONRunner.java:124) +... Removed 19 stack frames

back to summary

+

Manage Portfolio Suite : Delete Portfolio Method 1

testcasesrediffPortfolio.ManagePortfolioTest#afterMethod

Parameter #1
org.testng.TestRunner@4a163575
Exception
java.lang.NullPointerException: Cannot invoke "keywords.ApplicationKeywords.reportAll()" because "this.app" is null + at testbase.BaseTest.afterMethod(BaseTest.java:108) + at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) + at runner.TestNGRunner.run(TestNGRunner.java:45) + at runner.JSONRunner.main(JSONRunner.java:124) +... Removed 27 stack frames

back to summary

+

testcasesrediffPortfolio.ManageSessionTest#afterMethod

Parameter #1
org.testng.TestRunner@4a163575
Exception
java.lang.NullPointerException: Cannot invoke "keywords.ApplicationKeywords.reportAll()" because "this.app" is null + at testbase.BaseTest.afterMethod(BaseTest.java:108) + at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) + at runner.TestNGRunner.run(TestNGRunner.java:45) + at runner.JSONRunner.main(JSONRunner.java:124) +... Removed 27 stack frames

back to summary

+

testcasesrediffPortfolio.ManageSessionTest#beforeTest

Parameter #1
org.testng.TestRunner@4a163575
Exception
java.lang.NullPointerException: Cannot invoke "String.equalsIgnoreCase(String)" because "runMode" is null + at testbase.BaseTest.beforeTest(BaseTest.java:66) + at runner.TestNGRunner.run(TestNGRunner.java:45) + at runner.JSONRunner.main(JSONRunner.java:124) +... Removed 19 stack frames

back to summary

+

testcasesrediffPortfolio.ManagePortfolioTest#deletePortfolio

Parameter #1
org.testng.TestRunner@4a163575
Exception
java.lang.NullPointerException: Cannot invoke "String.equalsIgnoreCase(String)" because "runMode" is null + at testbase.BaseTest.beforeTest(BaseTest.java:66) + at runner.TestNGRunner.run(TestNGRunner.java:45) + at runner.JSONRunner.main(JSONRunner.java:124) +... Removed 19 stack frames

back to summary

+

testcasesrediffPortfolio.ManageSessionTest#doLogin

Parameter #1
org.testng.TestRunner@4a163575
Exception
java.lang.NullPointerException: Cannot invoke "String.equalsIgnoreCase(String)" because "runMode" is null + at testbase.BaseTest.beforeTest(BaseTest.java:66) + at runner.TestNGRunner.run(TestNGRunner.java:45) + at runner.JSONRunner.main(JSONRunner.java:124) +... Removed 19 stack frames

back to summary

+

Manage Portfolio Suite : Delete Portfolio Method 2

testcasesrediffPortfolio.ManagePortfolioTest#afterMethod

Parameter #1
org.testng.TestRunner@3dfa819
Exception
java.lang.NullPointerException: Cannot invoke "keywords.ApplicationKeywords.reportAll()" because "this.app" is null + at testbase.BaseTest.afterMethod(BaseTest.java:108) + at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) + at runner.TestNGRunner.run(TestNGRunner.java:45) + at runner.JSONRunner.main(JSONRunner.java:124) +... Removed 27 stack frames

back to summary

+

testcasesrediffPortfolio.ManageSessionTest#afterMethod

Parameter #1
org.testng.TestRunner@3dfa819
Exception
java.lang.NullPointerException: Cannot invoke "keywords.ApplicationKeywords.reportAll()" because "this.app" is null + at testbase.BaseTest.afterMethod(BaseTest.java:108) + at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) + at runner.TestNGRunner.run(TestNGRunner.java:45) + at runner.JSONRunner.main(JSONRunner.java:124) +... Removed 27 stack frames

back to summary

+

testcasesrediffPortfolio.ManageSessionTest#beforeTest

Parameter #1
org.testng.TestRunner@3dfa819
Exception
org.testng.SkipException: RunMode in Test Data is not True + at testbase.BaseTest.beforeTest(BaseTest.java:68) + at runner.TestNGRunner.run(TestNGRunner.java:45) + at runner.JSONRunner.main(JSONRunner.java:124) +... Removed 19 stack frames

back to summary

+

testcasesrediffPortfolio.ManagePortfolioTest#deletePortfolio

Parameter #1
org.testng.TestRunner@3dfa819
Exception
java.lang.NullPointerException: Cannot invoke "keywords.ApplicationKeywords.reportAll()" because "this.app" is null + at testbase.BaseTest.afterMethod(BaseTest.java:108) + at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) + at runner.TestNGRunner.run(TestNGRunner.java:45) + at runner.JSONRunner.main(JSONRunner.java:124) +... Removed 27 stack frames

back to summary

+

testcasesrediffPortfolio.ManageSessionTest#doLogin

Parameter #1
org.testng.TestRunner@3dfa819
Exception
org.testng.SkipException: RunMode in Test Data is not True + at testbase.BaseTest.beforeTest(BaseTest.java:68) + at runner.TestNGRunner.run(TestNGRunner.java:45) + at runner.JSONRunner.main(JSONRunner.java:124) +... Removed 19 stack frames

back to summary

+

Manage Portfolio Suite : Delete Portfolio Method 3

testcasesrediffPortfolio.ManagePortfolioTest#afterMethod

Parameter #1
org.testng.TestRunner@5634d0f4
Exception
java.lang.NullPointerException: Cannot invoke "keywords.ApplicationKeywords.reportAll()" because "this.app" is null + at testbase.BaseTest.afterMethod(BaseTest.java:108) + at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) + at runner.TestNGRunner.run(TestNGRunner.java:45) + at runner.JSONRunner.main(JSONRunner.java:124) +... Removed 27 stack frames

back to summary

+

testcasesrediffPortfolio.ManageSessionTest#afterMethod

Parameter #1
org.testng.TestRunner@5634d0f4
Exception
java.lang.NullPointerException: Cannot invoke "keywords.ApplicationKeywords.reportAll()" because "this.app" is null + at testbase.BaseTest.afterMethod(BaseTest.java:108) + at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) + at runner.TestNGRunner.run(TestNGRunner.java:45) + at runner.JSONRunner.main(JSONRunner.java:124) +... Removed 27 stack frames

back to summary

+

testcasesrediffPortfolio.ManageSessionTest#beforeTest

Parameter #1
org.testng.TestRunner@5634d0f4
Exception
org.testng.SkipException: RunMode in Test Data is not True + at testbase.BaseTest.beforeTest(BaseTest.java:68) + at runner.TestNGRunner.run(TestNGRunner.java:45) + at runner.JSONRunner.main(JSONRunner.java:124) +... Removed 19 stack frames

back to summary

+

testcasesrediffPortfolio.ManagePortfolioTest#deletePortfolio

Parameter #1
org.testng.TestRunner@5634d0f4
Exception
java.lang.NullPointerException: Cannot invoke "keywords.ApplicationKeywords.reportAll()" because "this.app" is null + at testbase.BaseTest.afterMethod(BaseTest.java:108) + at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) + at runner.TestNGRunner.run(TestNGRunner.java:45) + at runner.JSONRunner.main(JSONRunner.java:124) +... Removed 27 stack frames

back to summary

+

testcasesrediffPortfolio.ManageSessionTest#doLogin

Parameter #1
org.testng.TestRunner@5634d0f4
Exception
org.testng.SkipException: RunMode in Test Data is not True + at testbase.BaseTest.beforeTest(BaseTest.java:68) + at runner.TestNGRunner.run(TestNGRunner.java:45) + at runner.JSONRunner.main(JSONRunner.java:124) +... Removed 19 stack frames

back to summary

+ + diff --git a/DataDrivenFrameworkV2/test-output/failed.png b/DataDrivenFrameworkV2/test-output/failed.png new file mode 100644 index 0000000..c117be5 Binary files /dev/null and b/DataDrivenFrameworkV2/test-output/failed.png differ diff --git a/DataDrivenFrameworkV2/test-output/index.html b/DataDrivenFrameworkV2/test-output/index.html new file mode 100644 index 0000000..14c70cc --- /dev/null +++ b/DataDrivenFrameworkV2/test-output/index.html @@ -0,0 +1,931 @@ + + + + + + TestNG reports + + + + + + + + + + +
+ Test results + +
+ 1 suite +
+ +
+
+
+
+
+ + testcasesrediffPortfolio.ManagePortfolioTest +
+
+
+
+ + + createPortfolio + (org.testng.TestRunner@62515a47) +
java.lang.NullPointerException: Cannot invoke "String.equalsIgnoreCase(String)" because "runMode" is null + at testbase.BaseTest.beforeTest(BaseTest.java:66) + at runner.TestNGRunner.run(TestNGRunner.java:45) + at runner.JSONRunner.main(JSONRunner.java:124) +... Removed 19 stack frames +
+
+
+
+
+ + + createPortfolio + (org.testng.TestRunner@712cfb63) +
java.lang.NullPointerException: Cannot invoke "keywords.ApplicationKeywords.reportAll()" because "this.app" is null + at testbase.BaseTest.afterMethod(BaseTest.java:108) + at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) + at runner.TestNGRunner.run(TestNGRunner.java:45) + at runner.JSONRunner.main(JSONRunner.java:124) +... Removed 27 stack frames +
+
+
+
+
+ + + deletePortfolio + (org.testng.TestRunner@4a163575) +
java.lang.NullPointerException: Cannot invoke "String.equalsIgnoreCase(String)" because "runMode" is null + at testbase.BaseTest.beforeTest(BaseTest.java:66) + at runner.TestNGRunner.run(TestNGRunner.java:45) + at runner.JSONRunner.main(JSONRunner.java:124) +... Removed 19 stack frames +
+
+
+
+
+ + + deletePortfolio + (org.testng.TestRunner@3dfa819) +
java.lang.NullPointerException: Cannot invoke "keywords.ApplicationKeywords.reportAll()" because "this.app" is null + at testbase.BaseTest.afterMethod(BaseTest.java:108) + at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) + at runner.TestNGRunner.run(TestNGRunner.java:45) + at runner.JSONRunner.main(JSONRunner.java:124) +... Removed 27 stack frames +
+
+
+
+
+ + + deletePortfolio + (org.testng.TestRunner@5634d0f4) +
java.lang.NullPointerException: Cannot invoke "keywords.ApplicationKeywords.reportAll()" because "this.app" is null + at testbase.BaseTest.afterMethod(BaseTest.java:108) + at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) + at runner.TestNGRunner.run(TestNGRunner.java:45) + at runner.JSONRunner.main(JSONRunner.java:124) +... Removed 27 stack frames +
+
+
+
+
+
+
+ + testcasesrediffPortfolio.ManageSessionTest +
+
+
+
+ + + doLogin + (org.testng.TestRunner@62515a47) +
java.lang.NullPointerException: Cannot invoke "String.equalsIgnoreCase(String)" because "runMode" is null + at testbase.BaseTest.beforeTest(BaseTest.java:66) + at runner.TestNGRunner.run(TestNGRunner.java:45) + at runner.JSONRunner.main(JSONRunner.java:124) +... Removed 19 stack frames +
+
+
+
+
+ + + doLogin + (org.testng.TestRunner@712cfb63) +
org.testng.SkipException: RunMode in Test Data is not True + at testbase.BaseTest.beforeTest(BaseTest.java:68) + at runner.TestNGRunner.run(TestNGRunner.java:45) + at runner.JSONRunner.main(JSONRunner.java:124) +... Removed 19 stack frames +
+
+
+
+
+ + + doLogin + (org.testng.TestRunner@4a163575) +
java.lang.NullPointerException: Cannot invoke "String.equalsIgnoreCase(String)" because "runMode" is null + at testbase.BaseTest.beforeTest(BaseTest.java:66) + at runner.TestNGRunner.run(TestNGRunner.java:45) + at runner.JSONRunner.main(JSONRunner.java:124) +... Removed 19 stack frames +
+
+
+
+
+ + + doLogin + (org.testng.TestRunner@3dfa819) +
org.testng.SkipException: RunMode in Test Data is not True + at testbase.BaseTest.beforeTest(BaseTest.java:68) + at runner.TestNGRunner.run(TestNGRunner.java:45) + at runner.JSONRunner.main(JSONRunner.java:124) +... Removed 19 stack frames +
+
+
+
+
+ + + doLogin + (org.testng.TestRunner@5634d0f4) +
org.testng.SkipException: RunMode in Test Data is not True + at testbase.BaseTest.beforeTest(BaseTest.java:68) + at runner.TestNGRunner.run(TestNGRunner.java:45) + at runner.JSONRunner.main(JSONRunner.java:124) +... Removed 19 stack frames +
+
+
+
+
+
+
+ + testcasesrediffPortfolio.ManagePortfolioTest +
+
+
+
+ + + createPortfolio + (org.testng.TestRunner@65e21ce3) +
+
+
+
+
+
+ + testcasesrediffPortfolio.ManageSessionTest +
+
+
+
+ + + doLogin + (org.testng.TestRunner@65e21ce3) +
+
+
+
+
+
+
+
+
+
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd">
+<suite name="Manage Portfolio Suite">
+  <test thread-count="5" name="Manage Portfolio Suite : Create Portfolio Method 1">
+    <parameter name="dataSetID" value="0"/>
+    <parameter name="action" value="addStock"/>
+    <parameter name="testdatajsonfile" value="/Users/anshul/java_selenium/DataDrivenFrameworkV2/src/test/resources/projectJSONs/XLS_Data/TestExcelData.xlsx"/>
+    <parameter name="dataflag" value="createnewportfolio"/>
+    <parameter name="suiteName" value="Manage Portfolio Suite"/>
+    <classes>
+      <class name="testcasesrediffPortfolio.ManageSessionTest">
+        <methods>
+          <include name="doLogin"/>
+        </methods>
+      </class> <!-- testcasesrediffPortfolio.ManageSessionTest -->
+      <class name="testcasesrediffPortfolio.ManagePortfolioTest">
+        <methods>
+          <include name="createPortfolio"/>
+        </methods>
+      </class> <!-- testcasesrediffPortfolio.ManagePortfolioTest -->
+    </classes>
+  </test> <!-- Manage Portfolio Suite : Create Portfolio Method 1 -->
+  <test thread-count="5" name="Manage Portfolio Suite : Create Portfolio Method 2">
+    <parameter name="dataSetID" value="1"/>
+    <parameter name="action" value="addStock"/>
+    <parameter name="testdatajsonfile" value="/Users/anshul/java_selenium/DataDrivenFrameworkV2/src/test/resources/projectJSONs/XLS_Data/TestExcelData.xlsx"/>
+    <parameter name="dataflag" value="createnewportfolio"/>
+    <parameter name="suiteName" value="Manage Portfolio Suite"/>
+    <classes>
+      <class name="testcasesrediffPortfolio.ManageSessionTest">
+        <methods>
+          <include name="doLogin"/>
+        </methods>
+      </class> <!-- testcasesrediffPortfolio.ManageSessionTest -->
+      <class name="testcasesrediffPortfolio.ManagePortfolioTest">
+        <methods>
+          <include name="createPortfolio"/>
+        </methods>
+      </class> <!-- testcasesrediffPortfolio.ManagePortfolioTest -->
+    </classes>
+  </test> <!-- Manage Portfolio Suite : Create Portfolio Method 2 -->
+  <test thread-count="5" name="Manage Portfolio Suite : Create Portfolio Method 3">
+    <parameter name="dataSetID" value="2"/>
+    <parameter name="action" value="addStock"/>
+    <parameter name="testdatajsonfile" value="/Users/anshul/java_selenium/DataDrivenFrameworkV2/src/test/resources/projectJSONs/XLS_Data/TestExcelData.xlsx"/>
+    <parameter name="dataflag" value="createnewportfolio"/>
+    <parameter name="suiteName" value="Manage Portfolio Suite"/>
+    <classes>
+      <class name="testcasesrediffPortfolio.ManageSessionTest">
+        <methods>
+          <include name="doLogin"/>
+        </methods>
+      </class> <!-- testcasesrediffPortfolio.ManageSessionTest -->
+      <class name="testcasesrediffPortfolio.ManagePortfolioTest">
+        <methods>
+          <include name="createPortfolio"/>
+        </methods>
+      </class> <!-- testcasesrediffPortfolio.ManagePortfolioTest -->
+    </classes>
+  </test> <!-- Manage Portfolio Suite : Create Portfolio Method 3 -->
+  <test thread-count="5" name="Manage Portfolio Suite : Delete Portfolio Method 1">
+    <parameter name="dataSetID" value="0"/>
+    <parameter name="action" value="addStock"/>
+    <parameter name="testdatajsonfile" value="/Users/anshul/java_selenium/DataDrivenFrameworkV2/src/test/resources/projectJSONs/XLS_Data/TestExcelData.xlsx"/>
+    <parameter name="dataflag" value="deletenewportfolio"/>
+    <parameter name="suiteName" value="Manage Portfolio Suite"/>
+    <classes>
+      <class name="testcasesrediffPortfolio.ManageSessionTest">
+        <methods>
+          <include name="doLogin"/>
+        </methods>
+      </class> <!-- testcasesrediffPortfolio.ManageSessionTest -->
+      <class name="testcasesrediffPortfolio.ManagePortfolioTest">
+        <methods>
+          <include name="deletePortfolio"/>
+        </methods>
+      </class> <!-- testcasesrediffPortfolio.ManagePortfolioTest -->
+    </classes>
+  </test> <!-- Manage Portfolio Suite : Delete Portfolio Method 1 -->
+  <test thread-count="5" name="Manage Portfolio Suite : Delete Portfolio Method 2">
+    <parameter name="dataSetID" value="1"/>
+    <parameter name="action" value="addStock"/>
+    <parameter name="testdatajsonfile" value="/Users/anshul/java_selenium/DataDrivenFrameworkV2/src/test/resources/projectJSONs/XLS_Data/TestExcelData.xlsx"/>
+    <parameter name="dataflag" value="deletenewportfolio"/>
+    <parameter name="suiteName" value="Manage Portfolio Suite"/>
+    <classes>
+      <class name="testcasesrediffPortfolio.ManageSessionTest">
+        <methods>
+          <include name="doLogin"/>
+        </methods>
+      </class> <!-- testcasesrediffPortfolio.ManageSessionTest -->
+      <class name="testcasesrediffPortfolio.ManagePortfolioTest">
+        <methods>
+          <include name="deletePortfolio"/>
+        </methods>
+      </class> <!-- testcasesrediffPortfolio.ManagePortfolioTest -->
+    </classes>
+  </test> <!-- Manage Portfolio Suite : Delete Portfolio Method 2 -->
+  <test thread-count="5" name="Manage Portfolio Suite : Delete Portfolio Method 3">
+    <parameter name="dataSetID" value="2"/>
+    <parameter name="action" value="addStock"/>
+    <parameter name="testdatajsonfile" value="/Users/anshul/java_selenium/DataDrivenFrameworkV2/src/test/resources/projectJSONs/XLS_Data/TestExcelData.xlsx"/>
+    <parameter name="dataflag" value="deletenewportfolio"/>
+    <parameter name="suiteName" value="Manage Portfolio Suite"/>
+    <classes>
+      <class name="testcasesrediffPortfolio.ManageSessionTest">
+        <methods>
+          <include name="doLogin"/>
+        </methods>
+      </class> <!-- testcasesrediffPortfolio.ManageSessionTest -->
+      <class name="testcasesrediffPortfolio.ManagePortfolioTest">
+        <methods>
+          <include name="deletePortfolio"/>
+        </methods>
+      </class> <!-- testcasesrediffPortfolio.ManagePortfolioTest -->
+    </classes>
+  </test> <!-- Manage Portfolio Suite : Delete Portfolio Method 3 -->
+</suite> <!-- Manage Portfolio Suite -->
+            
+
+
+
+
+ Tests for Manage Portfolio Suite +
+
+
    +
  • + Manage Portfolio Suite : Create Portfolio Method 1 (2 classes) +
  • +
  • + Manage Portfolio Suite : Create Portfolio Method 2 (2 classes) +
  • +
  • + Manage Portfolio Suite : Create Portfolio Method 3 (2 classes) +
  • +
  • + Manage Portfolio Suite : Delete Portfolio Method 1 (2 classes) +
  • +
  • + Manage Portfolio Suite : Delete Portfolio Method 2 (2 classes) +
  • +
  • + Manage Portfolio Suite : Delete Portfolio Method 3 (2 classes) +
  • +
+
+
+
+
+ Groups for Manage Portfolio Suite +
+
+
+
+
+
+ Times for Manage Portfolio Suite +
+
+
+ + Total running time: 1 minutes +
+
+
+
+
+
+
+ Reporter output for Manage Portfolio Suite +
+
+
+
+
+
+ 30 ignored methods +
+
+
+ testcasesrediffPortfolio.ManagePortfolioTest +
+ createPortfolio +
+ afterTest +
+ selectPortfolio +
+ beforeTest +
+ selectPortfolio +
+ afterTest +
+ afterTest +
+ deletePortfolio +
+ selectPortfolio +
+ selectPortfolio +
+ beforeTest +
+ afterTest +
+ selectPortfolio +
+ beforeTest +
+ createPortfolio +
+ createPortfolio +
+ beforeTest +
+ beforeTest +
+ deletePortfolio +
+ selectPortfolio +
+ beforeTest +
+ afterTest +
+ deletePortfolio +
+ afterTest +
+
+
+
+ testcasesrediffPortfolio.ManageSessionTest +
+ doLogOut +
+ doLogOut +
+ doLogOut +
+ doLogOut +
+ doLogOut +
+ doLogOut +
+
+
+
+
+
+
+ Methods in chronological order +
+
+
+
testcasesrediffPortfolio.ManageSessionTest
+
+ + + beforeTest(org.testng.TestRunner@62515a47) + 0 ms +
+
+ beforeMethod(org.testng.TestRunner@62515a47) + 94 ms +
+
+ + + afterMethod(org.testng.TestRunner@62515a47) + 95 ms +
+
+ afterTest(org.testng.TestRunner@62515a47) + 96 ms +
+
+
+
testcasesrediffPortfolio.ManagePortfolioTest
+
+ beforeMethod(org.testng.TestRunner@62515a47) + 96 ms +
+
+ + + afterMethod(org.testng.TestRunner@62515a47) + 96 ms +
+
+
+
testcasesrediffPortfolio.ManageSessionTest
+
+ beforeTest(org.testng.TestRunner@65e21ce3) + 227 ms +
+
+ beforeMethod(org.testng.TestRunner@65e21ce3) + 245 ms +
+
+ doLogin(org.testng.TestRunner@65e21ce3) + 245 ms +
+
+ afterMethod(org.testng.TestRunner@65e21ce3) + 89509 ms +
+
+
+
testcasesrediffPortfolio.ManagePortfolioTest
+
+ createPortfolio(org.testng.TestRunner@65e21ce3) + 89510 ms +
+
+ beforeMethod(org.testng.TestRunner@65e21ce3) + 89510 ms +
+
+ afterMethod(org.testng.TestRunner@65e21ce3) + 108218 ms +
+
+
+
testcasesrediffPortfolio.ManageSessionTest
+
+ afterTest(org.testng.TestRunner@65e21ce3) + 108219 ms +
+
+ beforeTest(org.testng.TestRunner@712cfb63) + 108357 ms +
+
+ beforeMethod(org.testng.TestRunner@712cfb63) + 108370 ms +
+
+ afterTest(org.testng.TestRunner@712cfb63) + 108371 ms +
+
+ + + afterMethod(org.testng.TestRunner@712cfb63) + 108371 ms +
+
+
+
testcasesrediffPortfolio.ManagePortfolioTest
+
+ beforeMethod(org.testng.TestRunner@712cfb63) + 108371 ms +
+
+ + + afterMethod(org.testng.TestRunner@712cfb63) + 108371 ms +
+
+
+
testcasesrediffPortfolio.ManageSessionTest
+
+ + + beforeTest(org.testng.TestRunner@4a163575) + 108378 ms +
+
+ beforeMethod(org.testng.TestRunner@4a163575) + 108390 ms +
+
+ + + afterMethod(org.testng.TestRunner@4a163575) + 108390 ms +
+
+
+
testcasesrediffPortfolio.ManagePortfolioTest
+
+ + + afterMethod(org.testng.TestRunner@4a163575) + 108391 ms +
+
+
+
testcasesrediffPortfolio.ManageSessionTest
+
+ afterTest(org.testng.TestRunner@4a163575) + 108391 ms +
+
+
+
testcasesrediffPortfolio.ManagePortfolioTest
+
+ beforeMethod(org.testng.TestRunner@4a163575) + 108391 ms +
+
+
+
testcasesrediffPortfolio.ManageSessionTest
+
+ beforeTest(org.testng.TestRunner@3dfa819) + 108397 ms +
+
+ beforeMethod(org.testng.TestRunner@3dfa819) + 108408 ms +
+
+ + + afterMethod(org.testng.TestRunner@3dfa819) + 108408 ms +
+
+ afterTest(org.testng.TestRunner@3dfa819) + 108409 ms +
+
+
+
testcasesrediffPortfolio.ManagePortfolioTest
+
+ beforeMethod(org.testng.TestRunner@3dfa819) + 108409 ms +
+
+ + + afterMethod(org.testng.TestRunner@3dfa819) + 108409 ms +
+
+
+
testcasesrediffPortfolio.ManageSessionTest
+
+ beforeTest(org.testng.TestRunner@5634d0f4) + 108415 ms +
+
+
+
testcasesrediffPortfolio.ManagePortfolioTest
+
+ + + afterMethod(org.testng.TestRunner@5634d0f4) + 108432 ms +
+
+
+
testcasesrediffPortfolio.ManageSessionTest
+
+ beforeMethod(org.testng.TestRunner@5634d0f4) + 108432 ms +
+
+ + + afterMethod(org.testng.TestRunner@5634d0f4) + 108432 ms +
+
+
+
testcasesrediffPortfolio.ManagePortfolioTest
+
+ beforeMethod(org.testng.TestRunner@5634d0f4) + 108432 ms +
+
+
+
testcasesrediffPortfolio.ManageSessionTest
+
+ afterTest(org.testng.TestRunner@5634d0f4) + 108433 ms +
+
+
+
+
+ + + diff --git a/DataDrivenFrameworkV2/test-output/jquery-3.6.0.min.js b/DataDrivenFrameworkV2/test-output/jquery-3.6.0.min.js new file mode 100644 index 0000000..c4c6022 --- /dev/null +++ b/DataDrivenFrameworkV2/test-output/jquery-3.6.0.min.js @@ -0,0 +1,2 @@ +/*! jQuery v3.6.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.0",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="
",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0 + + + + diff --git a/DataDrivenFrameworkV2/test-output/junitreports/TEST-testCases.CreatePortfolioTest.xml b/DataDrivenFrameworkV2/test-output/junitreports/TEST-testCases.CreatePortfolioTest.xml new file mode 100644 index 0000000..5f7fcce --- /dev/null +++ b/DataDrivenFrameworkV2/test-output/junitreports/TEST-testCases.CreatePortfolioTest.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/DataDrivenFrameworkV2/test-output/junitreports/TEST-testcasesrediffPortfolio.ManagePortfolioTest.xml b/DataDrivenFrameworkV2/test-output/junitreports/TEST-testcasesrediffPortfolio.ManagePortfolioTest.xml new file mode 100644 index 0000000..08deec5 --- /dev/null +++ b/DataDrivenFrameworkV2/test-output/junitreports/TEST-testcasesrediffPortfolio.ManagePortfolioTest.xml @@ -0,0 +1,205 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/DataDrivenFrameworkV2/test-output/junitreports/TEST-testcasesrediffPortfolio.ManageSessionTest.xml b/DataDrivenFrameworkV2/test-output/junitreports/TEST-testcasesrediffPortfolio.ManageSessionTest.xml new file mode 100644 index 0000000..bc1de50 --- /dev/null +++ b/DataDrivenFrameworkV2/test-output/junitreports/TEST-testcasesrediffPortfolio.ManageSessionTest.xml @@ -0,0 +1,261 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/DataDrivenFrameworkV2/test-output/junitreports/TEST-testcasesrediffPortfolio.ManageStocksTest.xml b/DataDrivenFrameworkV2/test-output/junitreports/TEST-testcasesrediffPortfolio.ManageStocksTest.xml new file mode 100644 index 0000000..92df25d --- /dev/null +++ b/DataDrivenFrameworkV2/test-output/junitreports/TEST-testcasesrediffPortfolio.ManageStocksTest.xml @@ -0,0 +1,349 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/DataDrivenFrameworkV2/test-output/navigator-bullet.png b/DataDrivenFrameworkV2/test-output/navigator-bullet.png new file mode 100644 index 0000000..36d90d3 Binary files /dev/null and b/DataDrivenFrameworkV2/test-output/navigator-bullet.png differ diff --git a/DataDrivenFrameworkV2/test-output/passed.png b/DataDrivenFrameworkV2/test-output/passed.png new file mode 100644 index 0000000..45e85bb Binary files /dev/null and b/DataDrivenFrameworkV2/test-output/passed.png differ diff --git a/DataDrivenFrameworkV2/test-output/skipped.png b/DataDrivenFrameworkV2/test-output/skipped.png new file mode 100644 index 0000000..c36a324 Binary files /dev/null and b/DataDrivenFrameworkV2/test-output/skipped.png differ diff --git a/DataDrivenFrameworkV2/test-output/testng-failed.xml b/DataDrivenFrameworkV2/test-output/testng-failed.xml new file mode 100644 index 0000000..de0b4e9 --- /dev/null +++ b/DataDrivenFrameworkV2/test-output/testng-failed.xml @@ -0,0 +1,139 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/DataDrivenFrameworkV2/test-output/testng-reports.css b/DataDrivenFrameworkV2/test-output/testng-reports.css new file mode 100644 index 0000000..d7b75c4 --- /dev/null +++ b/DataDrivenFrameworkV2/test-output/testng-reports.css @@ -0,0 +1,326 @@ +body { + margin: 0 0 5px 5px; +} + +ul { + margin: 0; +} + +li { + list-style-type: none; +} + +a { + text-decoration: none; +} + +a:hover { + text-decoration: underline; +} + +.navigator-selected { + background: #ffa500; +} + +.wrapper { + position: absolute; + top: 60px; + bottom: 0; + left: 400px; + right: 0; + overflow: auto; +} + +.navigator-root { + position: absolute; + top: 60px; + bottom: 0; + left: 0; + width: 400px; + overflow-y: auto; +} + +.suite { + margin: 0 10px 10px 0; + background-color: #fff8dc; +} + +.suite-name { + padding-left: 10px; + font-size: 25px; + font-family: Times, sans-serif; +} + +.main-panel-header { + padding: 5px; + background-color: #9FB4D9; /*afeeee*/; + font-family: monospace; + font-size: 18px; +} + +.main-panel-content { + padding: 5px; + margin-bottom: 10px; + background-color: #DEE8FC; /*d0ffff*/; +} + +.rounded-window { + border-radius: 10px; + border-style: solid; + border-width: 1px; +} + +.rounded-window-top { + border-top-right-radius: 10px 10px; + border-top-left-radius: 10px 10px; + border-style: solid; + border-width: 1px; + overflow: auto; +} + +.light-rounded-window-top { + border-top-right-radius: 10px 10px; + border-top-left-radius: 10px 10px; +} + +.rounded-window-bottom { + border-style: solid; + border-width: 0 1px 1px 1px; + border-bottom-right-radius: 10px 10px; + border-bottom-left-radius: 10px 10px; + overflow: auto; +} + +.method-name { + font-size: 12px; + font-family: monospace; +} + +.method-content { + border-style: solid; + border-width: 0 0 1px 0; + margin-bottom: 10px; + padding-bottom: 5px; + width: 80%; +} + +.parameters { + font-size: 14px; + font-family: monospace; +} + +.stack-trace { + white-space: pre; + font-family: monospace; + font-size: 12px; + font-weight: bold; + margin-top: 0; + margin-left: 20px; +} + +.testng-xml { + font-family: monospace; +} + +.method-list-content { + margin-left: 10px; +} + +.navigator-suite-content { + margin-left: 10px; + font: 12px 'Lucida Grande'; +} + +.suite-section-title { + margin-top: 10px; + width: 80%; + border-style: solid; + border-width: 1px 0 0 0; + font-family: Times, sans-serif; + font-size: 18px; + font-weight: bold; +} + +.suite-section-content { + list-style-image: url(bullet_point.png); +} + +.top-banner-root { + position: absolute; + top: 0; + height: 45px; + left: 0; + right: 0; + padding: 5px; + margin: 0 0 5px 0; + background-color: #0066ff; + font-family: Times, sans-serif; + color: #fff; + text-align: center; +} +.button{ + position: absolute; + margin-left:500px; + margin-top:8px; + background-color: white; + color:#0066ff; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-weight:bold; + border-color:#0066ff ; + border-radius:25px; + cursor: pointer; + height:30px; + width:150px; + outline:none; + +} + +.top-banner-title-font { + font-size: 25px; +} + +.test-name { + font-family: 'Lucida Grande', sans-serif; + font-size: 16px; +} + +.suite-icon { + padding: 5px; + float: right; + height: 20px; +} + +.test-group { + font: 20px 'Lucida Grande'; + margin: 5px 5px 10px 5px; + border-width: 0 0 1px 0; + border-style: solid; + padding: 5px; +} + +.test-group-name { + font-weight: bold; +} + +.method-in-group { + font-size: 16px; + margin-left: 80px; +} + +table.google-visualization-table-table { + width: 100%; +} + +.reporter-method-name { + font-size: 14px; + font-family: monospace; +} + +.reporter-method-output-div { + padding: 5px; + margin: 0 0 5px 20px; + font-size: 12px; + font-family: monospace; + border-width: 0 0 0 1px; + border-style: solid; +} + +.ignored-class-div { + font-size: 14px; + font-family: monospace; +} + +.ignored-methods-div { + padding: 5px; + margin: 0 0 5px 20px; + font-size: 12px; + font-family: monospace; + border-width: 0 0 0 1px; + border-style: solid; +} + +.border-failed { + border-top-left-radius: 10px 10px; + border-bottom-left-radius: 10px 10px; + border-style: solid; + border-width: 0 0 0 10px; + border-color: #f00; +} + +.border-skipped { + border-top-left-radius: 10px 10px; + border-bottom-left-radius: 10px 10px; + border-style: solid; + border-width: 0 0 0 10px; + border-color: #edc600; +} + +.border-passed { + border-top-left-radius: 10px 10px; + border-bottom-left-radius: 10px 10px; + border-style: solid; + border-width: 0 0 0 10px; + border-color: #19f52d; +} + +.times-div { + text-align: center; + padding: 5px; +} + +.suite-total-time { + font: 16px 'Lucida Grande'; +} + +.configuration-suite { + margin-left: 20px; +} + +.configuration-test { + margin-left: 40px; +} + +.configuration-class { + margin-left: 60px; +} + +.configuration-method { + margin-left: 80px; +} + +.test-method { + margin-left: 100px; +} + +.chronological-class { + background-color: skyblue; + border-style: solid; + border-width: 0 0 1px 1px; +} + +.method-start { + float: right; +} + +.chronological-class-name { + padding: 0 0 0 5px; + color: #008; +} + +.after, .before, .test-method { + font-family: monospace; + font-size: 14px; +} + +.navigator-suite-header { + font-size: 22px; + margin: 0 10px 5px 0; + background-color: #deb887; + text-align: center; +} + +.collapse-all-icon { + padding: 5px; + float: right; +} +/*retro Theme*/ diff --git a/DataDrivenFrameworkV2/test-output/testng-reports.js b/DataDrivenFrameworkV2/test-output/testng-reports.js new file mode 100644 index 0000000..c1a84a3 --- /dev/null +++ b/DataDrivenFrameworkV2/test-output/testng-reports.js @@ -0,0 +1,122 @@ +$(document).ready(function() { + $('a.navigator-link').on("click", function() { + // Extract the panel for this link + var panel = getPanelName($(this)); + + // Mark this link as currently selected + $('.navigator-link').parent().removeClass('navigator-selected'); + $(this).parent().addClass('navigator-selected'); + + showPanel(panel); + }); + + installMethodHandlers('failed'); + installMethodHandlers('skipped'); + installMethodHandlers('passed', true); // hide passed methods by default + + $('a.method').on("click", function() { + showMethod($(this)); + return false; + }); + + // Hide all the panels and display the first one (do this last + // to make sure the click() will invoke the listeners) + $('.panel').hide(); + $('.navigator-link').first().trigger("click"); + + // Collapse/expand the suites + $('a.collapse-all-link').on("click", function() { + var contents = $('.navigator-suite-content'); + if (contents.css('display') == 'none') { + contents.show(); + } else { + contents.hide(); + } + }); +}); + +// The handlers that take care of showing/hiding the methods +function installMethodHandlers(name, hide) { + function getContent(t) { + return $('.method-list-content.' + name + "." + t.attr('panel-name')); + } + + function getHideLink(t, name) { + var s = 'a.hide-methods.' + name + "." + t.attr('panel-name'); + return $(s); + } + + function getShowLink(t, name) { + return $('a.show-methods.' + name + "." + t.attr('panel-name')); + } + + function getMethodPanelClassSel(element, name) { + var panelName = getPanelName(element); + var sel = '.' + panelName + "-class-" + name; + return $(sel); + } + + $('a.hide-methods.' + name).on("click", function() { + var w = getContent($(this)); + w.hide(); + getHideLink($(this), name).hide(); + getShowLink($(this), name).show(); + getMethodPanelClassSel($(this), name).hide(); + }); + + $('a.show-methods.' + name).on("click", function() { + var w = getContent($(this)); + w.show(); + getHideLink($(this), name).show(); + getShowLink($(this), name).hide(); + showPanel(getPanelName($(this))); + getMethodPanelClassSel($(this), name).show(); + }); + + if (hide) { + $('a.hide-methods.' + name).trigger("click"); + } else { + $('a.show-methods.' + name).trigger("click"); + } +} + +function getHashForMethod(element) { + return element.attr('hash-for-method'); +} + +function getPanelName(element) { + return element.attr('panel-name'); +} + +function showPanel(panelName) { + $('.panel').hide(); + var panel = $('.panel[panel-name="' + panelName + '"]'); + panel.show(); +} + +function showMethod(element) { + var hashTag = getHashForMethod(element); + var panelName = getPanelName(element); + showPanel(panelName); + var current = document.location.href; + var base = current.substring(0, current.indexOf('#')) + document.location.href = base + '#' + hashTag; + var newPosition = $(document).scrollTop() - 65; + $(document).scrollTop(newPosition); +} + +function drawTable() { + for (var i = 0; i < suiteTableInitFunctions.length; i++) { + window[suiteTableInitFunctions[i]](); + } + + for (var k in window.suiteTableData) { + var v = window.suiteTableData[k]; + var div = v.tableDiv; + var data = v.tableData + var table = new google.visualization.Table(document.getElementById(div)); + table.draw(data, { + showRowNumber : false + }); + } +} diff --git a/DataDrivenFrameworkV2/test-output/testng-reports1.css b/DataDrivenFrameworkV2/test-output/testng-reports1.css new file mode 100644 index 0000000..570323f --- /dev/null +++ b/DataDrivenFrameworkV2/test-output/testng-reports1.css @@ -0,0 +1,344 @@ +body { + background-color: whitesmoke; + margin: 0 0 5px 5px; +} +ul { + margin-top: 10px; + margin-left:-10px; +} + li { + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + padding:5px 5px; + } + a { + text-decoration: none; + color: black; + font-size: 14px; + } + + a:hover { + color:black ; + text-decoration: underline; + } + + .navigator-selected { + /* #ffa500; Mouse hover color after click Orange.*/ + background:#027368 + } + + .wrapper { + position: absolute; + top: 60px; + bottom: 0; + left: 400px; + right: 0; + margin-right:9px; + overflow: auto;/*imortant*/ + } + + .navigator-root { + position: absolute; + top: 60px; + bottom: 0; + left: 0; + width: 400px; + overflow-y: auto;/*important*/ + } + + .suite { + margin: -5px 10px 10px 5px; + background-color: whitesmoke ;/*Colour of the left bside box*/ + } + + .suite-name { + font-size: 24px; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;/*All TEST SUITE*/ + color: white; + } + + .main-panel-header { + padding: 5px; + background-color: #027368; /*afeeee*/; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + color:white; + font-size: 18px; + } + + .main-panel-content { + padding: 5px; + margin-bottom: 10px; + background-color: #CCD0D1; /*d0ffff*/; /*Belongs to backGround of rightSide boxes*/ + } + + .rounded-window { + border-style: dotted; + border-width: 1px;/*Border of left Side box*/ + background-color: whitesmoke; + border-radius: 10px; + } + + .rounded-window-top { + border-top-right-radius: 10px 10px; + border-top-left-radius: 10px 10px; + border-style: solid; + border-width: 1px; + overflow: auto;/*Top of RightSide box*/ + } + + .light-rounded-window-top { + background-color: #027368; + padding-left:120px; + border-radius: 10px; + + } + + .rounded-window-bottom { + border-bottom-right-radius: 10px 10px; + border-bottom-left-radius: 10px 10px; + overflow: auto;/*Bottom of rightSide box*/ + } + + .method-name { + font-size: 14px; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-weight: bold; + } + + .method-content { + border-style: solid; + border-width: 0 0 1px 0; + margin-bottom: 10px; + padding-bottom: 5px; + width: 100%; + } + + .parameters { + font-size: 14px; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + } + + .stack-trace { + white-space: pre; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 12px; + font-weight: bold; + margin-top: 0; + margin-left: 20px; /*Error Stack Trace Message*/ + } + + .testng-xml { + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + } + + .method-list-content { + margin-left: 10px; + } + + .navigator-suite-content { + margin-left: 10px; + font: 12px 'Lucida Grande'; + } + + .suite-section-title { + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 14px; + font-weight:bold; + background-color: #8C8887; + margin-left: -10px; + margin-top:10px; + padding:6px; + } + + .suite-section-content { + list-style-image: url(bullet_point.png); + background-color: whitesmoke; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + overflow: hidden; + } + + .top-banner-root { + position: absolute; + top: 0; + height: 45px; + left: 0; + right: 0; + padding: 5px; + margin: 0 0 5px 0; + background-color: #027368; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 18px; + color: #fff; + text-align: center;/*Belongs to the Top of Report*//*Status: - Completed*/ + } + + .top-banner-title-font { + font-size: 25px; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + padding: 3px; + float: right; + } + + .test-name { + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 16px; + } + + .suite-icon { + padding: 5px; + float: right; + height: 20px; + } + + .test-group { + font: 20px 'Lucida Grande'; + margin: 5px 5px 10px 5px; + border-width: 0 0 1px 0; + border-style: solid; + padding: 5px; + } + + .test-group-name { + font-weight: bold; + } + + .method-in-group { + font-size: 16px; + margin-left: 80px; + } + + table.google-visualization-table-table { + width: 100%; + } + + .reporter-method-name { + font-size: 14px; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + } + + .reporter-method-output-div { + padding: 5px; + margin: 0 0 5px 20px; + font-size: 12px; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + border-width: 0 0 0 1px; + border-style: solid; + } + + .ignored-class-div { + font-size: 14px; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + } + + .ignored-methods-div { + padding: 5px; + margin: 0 0 5px 20px; + font-size: 12px; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + border-width: 0 0 0 1px; + border-style: solid; + } + + .border-failed { + border-radius:2px; + border-style: solid; + border-width: 0 0 0 10px; + border-color: #F20505; + } + + .border-skipped { + border-radius:2px; + border-style: solid; + border-width: 0 0 0 10px; + border-color: #F2BE22; + } + + .border-passed { + border-radius:2px; + border-style: solid; + border-width: 0 0 0 10px; + border-color: #038C73; + } + + .times-div { + text-align: center; + padding: 5px; + } + + .suite-total-time { + font: 16px 'Lucida Grande'; + } + + .configuration-suite { + margin-left: 20px; + } + + .configuration-test { + margin-left: 40px; + } + + .configuration-class { + margin-left: 60px; + } + + .configuration-method { + margin-left: 80px; + } + + .test-method { + margin-left: 100px; + } + + .chronological-class { + background-color: #CCD0D1; + border-width: 0 0 1px 1px;/*Chronological*/ + } + + .method-start { + float: right; + } + + .chronological-class-name { + padding: 0 0 0 5px; + margin-top:5px; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + color: #008; + } + + .after, .before, .test-method { + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 14px; + margin-top:5px; + } + + .navigator-suite-header { + font-size: 18px; + margin: 0px 10px 10px 5px; + padding: 5px; + border-radius: 10px; + background-color: #027368; + color: white; + font-weight:bold; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + text-align: center; /*All Suites on top of left box*//*Status: -Completed*/ + } + + .collapse-all-icon { + padding: 3px; + float: right; + } + .button{ + position: absolute; + margin-left:500px; + margin-top:8px; + background-color: white; + color:#027368; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-weight:bold; + border-color:#027368; + border-radius:25px; + cursor: pointer; + height:30px; + width:150px; + outline: none; +} +/*Author: - Akhil Gullapalli*/ \ No newline at end of file diff --git a/DataDrivenFrameworkV2/test-output/testng-reports2.js b/DataDrivenFrameworkV2/test-output/testng-reports2.js new file mode 100644 index 0000000..5342859 --- /dev/null +++ b/DataDrivenFrameworkV2/test-output/testng-reports2.js @@ -0,0 +1,76 @@ +window.onload = function () { + let cookies = document.cookie; + let cookieValue = cookies.split('='); + if (cookieValue[1] === 'null' || localStorage.getItem('Theme') === 'null') { + document.getElementById('retro').setAttribute('disabled', 'false'); + } else if (cookieValue[1] === 'Switch Ultra Theme' || + localStorage.getItem('Theme') === 'Switch Ultra Theme') { + document.getElementById('button').innerText = "Switch Retro Theme"; + document.getElementById('retro').setAttribute('disabled', 'false'); + + } else if (cookieValue[1] === 'Switch Retro Theme' || + localStorage.getItem('Theme') === 'Switch Retro Theme') { + if (cookieValue[1] === 'Switch Ultra Theme' || + localStorage.getItem('Theme') === 'Switch Ultra Theme') { + document.getElementById('button').innerText = "Switch Retro Theme"; + document.getElementById('retro').setAttribute('disabled', 'false'); + + document.getElementById('button').innerText = "Switch Ultra Theme"; + document.getElementById('retro').removeAttribute('disabled'); + document.getElementById('ultra').setAttribute('disabled', 'false'); + localStorage.setItem('Theme', select); + + } else if (select === 'Switch Ultra Theme') { + document.getElementById('button').innerText = "Switch Retro Theme"; + document.getElementById('ultra').removeAttribute('disabled'); + document.getElementById('retro').setAttribute('disabled', 'false'); + localStorage.setItem('Theme', select); + } + } else if (cookieValue[1] === 'Switch Retro Theme' || + localStorage.getItem('Theme') === 'Switch Retro Theme') { + document.getElementById('button').innerText = "Switch Ultra Theme"; + document.getElementById('ultra').setAttribute('disabled', 'false'); + } +} +document.getElementById('button').onclick = function () { + let select = document.getElementById('button').innerText; + if (select === 'Switch Retro Theme') { + let d = new Date(); + days = 365; + d.setTime(+d + (days * 86400000)); //24 * 60 * 60 * 1000 + document.cookie = "Theme =" + select + "; expires=" + d.toGMTString() + ";"; + document.getElementById('button').innerText = "Switch Ultra Theme"; + document.getElementById('retro').removeAttribute('disabled'); + document.getElementById('ultra').setAttribute('disabled', 'false'); + localStorage.setItem('Theme', select); + + } else if (select === 'Switch Ultra Theme') { + let d = new Date(); + days = 365; + d.setTime(+d + (days * 86400000)); //24 * 60 * 60 * 1000 + document.cookie = "Theme =" + select + "; expires=" + d.toGMTString() + ";"; + document.getElementById('button').innerText = "Switch Retro Theme"; + document.getElementById('ultra').removeAttribute('disabled'); + document.getElementById('retro').setAttribute('disabled', 'false'); + localStorage.setItem('Theme', select); + } +} +//Function to mouse hovering affect. +document.getElementById('button').onmouseover = function () { + document.getElementById('button').style.borderRadius = "25px"; + document.getElementById('button').style.width = "180px"; + document.getElementById('button').style.height = "45px"; + document.getElementById('button').style.marginTop = "1px"; + +} +//Function to mouse out affect +document.getElementById('button').onmouseout = function () { + document.getElementById('button').style.borderRadius = "25px"; + document.getElementById('button').style.width = "150px"; + document.getElementById('button').style.height = "30px"; + document.getElementById('button').style.marginTop = "8px"; + +} + +//This is the file where we handle the switching of the Themes. +/*Author:- Akhil Gullapalli*/ diff --git a/DataDrivenFrameworkV2/test-output/testng-results.xml b/DataDrivenFrameworkV2/test-output/testng-results.xml new file mode 100644 index 0000000..da32722 --- /dev/null +++ b/DataDrivenFrameworkV2/test-output/testng-results.xml @@ -0,0 +1,1465 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/DataDrivenFrameworkV2/testng.xml b/DataDrivenFrameworkV2/testng.xml new file mode 100644 index 0000000..bcf905e --- /dev/null +++ b/DataDrivenFrameworkV2/testng.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SeleniumDemoProject/drivers/IEDriverServer.exe b/SeleniumDemoProject/drivers/IEDriverServer.exe new file mode 100755 index 0000000..c8fa952 Binary files /dev/null and b/SeleniumDemoProject/drivers/IEDriverServer.exe differ diff --git a/SeleniumDemoProject/drivers/chromedriver b/SeleniumDemoProject/drivers/chromedriver new file mode 100755 index 0000000..08b0e00 Binary files /dev/null and b/SeleniumDemoProject/drivers/chromedriver differ diff --git a/SeleniumDemoProject/drivers/geckodriver b/SeleniumDemoProject/drivers/geckodriver new file mode 100755 index 0000000..1564f31 Binary files /dev/null and b/SeleniumDemoProject/drivers/geckodriver differ diff --git a/SeleniumDemoProject/drivers/msedgedriver b/SeleniumDemoProject/drivers/msedgedriver new file mode 100755 index 0000000..1997af7 Binary files /dev/null and b/SeleniumDemoProject/drivers/msedgedriver differ diff --git a/SeleniumDemoProject/drivers/operadriver b/SeleniumDemoProject/drivers/operadriver new file mode 100755 index 0000000..7a5e75d Binary files /dev/null and b/SeleniumDemoProject/drivers/operadriver differ diff --git a/SeleniumDemoProject/drivers/sha512_sum b/SeleniumDemoProject/drivers/sha512_sum new file mode 100644 index 0000000..6f8de08 --- /dev/null +++ b/SeleniumDemoProject/drivers/sha512_sum @@ -0,0 +1 @@ +1222dc5afc879a815b1cdb841341d35f48c1e133eac6cf754c8e736a905a8be87939d6306b756c9e33278645bb80a900604e5b0895b30fe06da5c7f15de6989f operadriver \ No newline at end of file diff --git a/SeleniumDemoProject/src/test/java/LiveDemoProject/BaseClass.java b/SeleniumDemoProject/src/test/java/LiveDemoProject/BaseClass.java deleted file mode 100644 index 320f068..0000000 --- a/SeleniumDemoProject/src/test/java/LiveDemoProject/BaseClass.java +++ /dev/null @@ -1,33 +0,0 @@ -package LiveDemoProject; - -import java.time.Duration; - -import org.openqa.selenium.WebDriver; -import org.openqa.selenium.chrome.ChromeDriver; -import org.testng.annotations.AfterMethod; -import org.testng.annotations.BeforeMethod; - -public class BaseClass { - - //Common Methods in Base Class - //Test Class will inherit the BaseClass - WebDriver driver = null; - - @BeforeMethod - public void init() { - System.setProperty("webdriver.chrome.driver", System.getProperty("user.dir") + "/drivers/chromedriver"); - - driver = new ChromeDriver(); - driver.manage().window().maximize(); - driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(60)); - - //driver.get("https://the-internet.herokuapp.com/upload"); - - } - - @AfterMethod - public void finish() { - driver.quit(); - } - -} diff --git a/SeleniumDemoProject/src/test/java/LiveDemoProject/LoginTestClass.java b/SeleniumDemoProject/src/test/java/LiveDemoProject/LoginTestClass.java deleted file mode 100644 index 78efe12..0000000 --- a/SeleniumDemoProject/src/test/java/LiveDemoProject/LoginTestClass.java +++ /dev/null @@ -1,42 +0,0 @@ -package LiveDemoProject; - -import java.util.Scanner; - -import org.openqa.selenium.By; -import org.openqa.selenium.Keys; -import org.testng.Assert; -import org.testng.annotations.Test; - -public class LoginTestClass extends BaseClass{ - - @Test - public void rediffMoneyLoginTest() throws InterruptedException { - driver.get("https://money.rediff.com/index.html"); - - //SingIn - driver.findElement(By.linkText("Sign In")).click(); - Assert.assertEquals(driver.getTitle(), "Indian stock markets: Login to Portfolio"); - - //Fill the SignIn Details - driver.findElement(By.id("useremail")).sendKeys("anshulc55@rediffmail.com"); - driver.findElement(By.id("userpass")).sendKeys("Test@12345"); - - //Code to Ask user Input for Captcha - Scanner scanner = new Scanner(System.in); - System.out.print("Enter Captcha to fill in the text box: "); - String inputText = scanner.nextLine(); - - //Ask Captcha from user - driver.findElement(By.id("captcha")).sendKeys(inputText); -// driver.findElement(By.id("loginsubmit")).click(); -// Thread.sleep(10000); - - //Automate Keyboard EnterPress - driver.findElement(By.id("userpass")).sendKeys(Keys.ENTER); - Thread.sleep(10000); - - - Assert.assertEquals(driver.getTitle(), "Rediff Moneywiz | My Portfolio(s)"); - } - -} diff --git a/SeleniumDemoProject/src/test/java/PilotProject/BookAppointment.java b/SeleniumDemoProject/src/test/java/PilotProject/BookAppointment.java new file mode 100644 index 0000000..8b53744 --- /dev/null +++ b/SeleniumDemoProject/src/test/java/PilotProject/BookAppointment.java @@ -0,0 +1,92 @@ +package PilotProject; + +import java.time.Duration; + +import org.openqa.selenium.By; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.support.ui.ExpectedConditions; +import org.openqa.selenium.support.ui.Select; +import org.openqa.selenium.support.ui.WebDriverWait; +import org.testng.Assert; +import org.testng.annotations.Test; + +public class BookAppointment extends TestBaseClass { + + @Test + public void bookAppointmentTest() throws InterruptedException { + + // Read Data and Locators from Properties file. + driver.get(prop.getProperty("url")); + waitforWebPageToLoad(); + + // Open Consultation Pop-Up + driver.findElement(By.linkText(prop.getProperty("doctor_name"))).click(); + waitforWebPageToLoad(); + driver.findElement(By.xpath(prop.getProperty("Consultation_btn"))).click(); + + // Validate presence and visibility of Name and any other field + WebDriverWait wait = new WebDriverWait(driver, Duration.ofMinutes(2)); + wait.until(ExpectedConditions.presenceOfElementLocated(By.id(prop.getProperty("name_id")))); + wait.until(ExpectedConditions.elementToBeClickable(By.id(prop.getProperty("email_id")))); + + // Enter Name, Email, Mobile + driver.findElement(By.id(prop.getProperty("name_id"))).sendKeys(prop.getProperty("patient_name")); + driver.findElement(By.id(prop.getProperty("email_id"))).sendKeys(prop.getProperty("patient_email")); + driver.findElement(By.id(prop.getProperty("mobile_id"))).sendKeys(prop.getProperty("patient_mobile")); + + // Validate the Text Below the Date Field + WebElement dateText = driver.findElement(By.xpath(prop.getProperty("dateText_xpath"))); + Assert.assertEquals(dateText.getText(), + "Preferred Date and Time is subject to change. Our support team will be in contact with you within 24 hours."); + + // Validate Options in Gender + WebElement genderDropDown = driver.findElement(By.id(prop.getProperty("gender_id"))); + Select dropdown = new Select(genderDropDown); + dropdown.getOptions(); + for (WebElement dropDownValue : dropdown.getOptions()) { + System.out.println(dropDownValue.getText()); + } + + dropdown.selectByVisibleText("Male"); + + // Enter Date of Birth 12/12/2005 + datePickerFromDropDownCalender("dobCalendar_id", prop.getProperty("dob")); + // Thread.sleep(8000); + + // Validate the presence and visibility of Preferred Visiting Field 1 + wait.until( + ExpectedConditions.presenceOfAllElementsLocatedBy(By.id(prop.getProperty("calenderPrederDate1_id")))); + wait.until(ExpectedConditions.visibilityOfElementLocated(By.id(prop.getProperty("calenderPrederDate1_id")))); + + // Select Preferred Visiting Date - Tomorrow + datePickerFromSlidingCalender(prop.getProperty("appointment1_date")); + // Thread.sleep(8000); + + // Validate the presence and visibility of Preferred Visiting Field 2 + // Select Preferred Visiting Date - Day After Tomorrow + + // Verify the Visibility of UHID + Assert.assertFalse(driver.findElement(By.id(prop.getProperty("uhid_id"))).isDisplayed()); + + // Check Yes Radio Button + driver.findElement(By.id(prop.getProperty("radioBtnYes_id"))).click(); + Assert.assertTrue(driver.findElement(By.id(prop.getProperty("uhid_id"))).isDisplayed()); + + // Enter UHID + driver.findElement(By.id(prop.getProperty("uhid_id"))).sendKeys(prop.getProperty("UHID")); + + // Click No Radio Button and Check UHID + driver.findElement(By.id(prop.getProperty("radioBtnNo_id"))).click(); + Assert.assertFalse(driver.findElement(By.id(prop.getProperty("uhid_id"))).isDisplayed()); + + // Click Yes , Verify UHID Field and Compare the Existing UHID + driver.findElement(By.id(prop.getProperty("radioBtnYes_id"))).click(); + Assert.assertTrue(driver.findElement(By.id(prop.getProperty("uhid_id"))).isDisplayed()); + String actualUHID = driver.findElement(By.id(prop.getProperty("uhid_id"))).getAttribute("value"); + String expectedUHID = prop.getProperty("UHID"); + Thread.sleep(5000); + Assert.assertEquals(actualUHID, expectedUHID); + + } + +} diff --git a/SeleniumDemoProject/src/test/java/PilotProject/BookAppointmentOnDemand.java b/SeleniumDemoProject/src/test/java/PilotProject/BookAppointmentOnDemand.java new file mode 100644 index 0000000..caa0116 --- /dev/null +++ b/SeleniumDemoProject/src/test/java/PilotProject/BookAppointmentOnDemand.java @@ -0,0 +1,69 @@ +package PilotProject; + +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Iterator; +import java.util.List; +import java.util.Set; +import org.openqa.selenium.By; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.support.ui.Select; +import org.testng.Assert; +import org.testng.annotations.Test; + +public class BookAppointmentOnDemand extends TestBaseClass { + + @Test + public void bookAppointmentTest() throws InterruptedException { + + // Open Website + driver.get(prop.getProperty("url")); + waitforWebPageToLoad(); + + // Open Docker Appointment Page + driver.findElement(By.linkText(prop.getProperty("OnDemandDoctor"))).click(); + + // Handle New Tab Window + Set windowIds = driver.getWindowHandles(); + Iterator itr = windowIds.iterator(); + + String appointmentPageID = itr.next(); + String bookAppointmentPageID = itr.next(); + + driver.switchTo().window(bookAppointmentPageID); + + // Verify Appointment page +// Assert.assertEquals(driver.findElement(By.xpath(prop.getProperty("doctorverification_xpath"))), +// prop.getProperty("OnDemandDoctor")); + + // Select Appointment Date + selectAppointmentDate(); + + // Go to Appointment + driver.findElement(By.id(prop.getProperty("gotoAppointment_id"))).click(); + driver.findElement(By.xpath(prop.getProperty("cancelPopUp_xpath"))).click(); + + // Enter Mobile Details + driver.findElement(By.xpath(prop.getProperty("mobileNumber_xpath"))).sendKeys("9716180701"); + driver.findElement(By.xpath(prop.getProperty("continue_xpath"))).click(); + Thread.sleep(8000); + + //selectfromDropDown(driver.findElement(By.id("titleDropdown_id")), prop.getProperty("nameTitle")); + driver.findElement(By.id(prop.getProperty("firstName"))).sendKeys(prop.getProperty("FirstName")); + driver.findElement(By.xpath(prop.getProperty("lastName_xpath"))).sendKeys(prop.getProperty("LastName")); + + // Select DOB + driver.findElement(By.id(prop.getProperty("dob_id"))).click(); + datePickerFromDropDownCalender("dob_id", prop.getProperty("dob")); + + // Select State + selectfromDropDown(driver.findElement(By.id(prop.getProperty("state_id"))), prop.getProperty("StateName")); + + //Select City + selectfromDropDown(driver.findElement(By.id(prop.getProperty("city_id"))), prop.getProperty("CityName")); + Thread.sleep(10000); + + } + +} diff --git a/SeleniumDemoProject/src/test/java/PilotProject/TestBaseClass.java b/SeleniumDemoProject/src/test/java/PilotProject/TestBaseClass.java new file mode 100644 index 0000000..4d043bd --- /dev/null +++ b/SeleniumDemoProject/src/test/java/PilotProject/TestBaseClass.java @@ -0,0 +1,229 @@ +package PilotProject; + +import java.time.Duration; +import java.util.Calendar; +import java.util.Date; +import java.util.List; +import java.util.Properties; +import java.io.FileInputStream; +import java.text.ParseException; +import java.text.SimpleDateFormat; + +import org.openqa.selenium.Alert; +import org.openqa.selenium.By; +import org.openqa.selenium.JavascriptExecutor; +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.chrome.ChromeDriver; +import org.openqa.selenium.support.ui.Select; +import org.testng.annotations.AfterMethod; +import org.testng.annotations.BeforeMethod; + +public class TestBaseClass { + + WebDriver driver = null; + Properties prop = null; + + public void selectAppointmentDate() { + waitforWebPageToLoad(); + String displayDate = driver.findElement(By.xpath(prop.getProperty("displayDate_xpath"))).getText(); + System.out.println("Display Date : " + displayDate); + + // Add 4 days ahead date in display date + String appointmentDay = addInDisplayDate(displayDate); + + List allDates = driver.findElements(By.xpath(prop.getProperty("allDates_xapth"))); + boolean isDateSelected = false; + for (WebElement date : allDates) { + if (date.getText().equals(appointmentDay)) { + date.click(); + isDateSelected = true; + } + } + + if (!isDateSelected) { + driver.findElement(By.xpath(prop.getProperty("nextWeek_xpath"))).click(); + List allNewDates = driver.findElements(By.xpath(prop.getProperty("allDates_xapth"))); + for (WebElement date : allNewDates) { + if (date.getText().equals(appointmentDay)) { + date.click(); + } + } + } + } + + public String addInDisplayDate(String displayDate) { + // Display Date format -- Sat, 16 Mar + SimpleDateFormat dateFormat = new SimpleDateFormat("EEE, d MMM"); + String newDate = null; + try { + Calendar calendar = Calendar.getInstance(); + calendar.setTime(dateFormat.parse(displayDate)); + + // Add 4 days + calendar.add(Calendar.DAY_OF_MONTH, 5); + SimpleDateFormat dateFormatNew = new SimpleDateFormat("d"); + newDate = dateFormatNew.format(calendar.getTime()); + System.out.println("New Date : " + newDate); + } catch (ParseException e) { + e.printStackTrace(); + } + return newDate; + } + + public void datePickerFromSlidingCalender(String suppliedDate) { + SimpleDateFormat datFormat = new SimpleDateFormat("dd-MM-yyyy"); + + try { + Date dateYear = datFormat.parse(suppliedDate); + Date currentDate = new Date(); + + String year = new SimpleDateFormat("yyyy").format(dateYear); + String month = new SimpleDateFormat("MMMM").format(dateYear); + + String appDate = month + " " + year; + System.out.println("Supplied Month and Year : " + appDate); + + driver.findElement(By.id(prop.getProperty("calenderPrederDate1_id"))).click(); + + String monthYearDisplayed = driver.findElement(By.xpath(prop.getProperty("calenderPrederDate1Title_xpath"))) + .getText(); + System.out.println("Getting Calender Month and Year : " + monthYearDisplayed); + + while (!appDate.equals(monthYearDisplayed)) { + + // Click on forward and Backward + if (dateYear.compareTo(currentDate) == 1) { + // Click on forward + driver.findElement(By.xpath(prop.getProperty("forwardCalenderClick_xpath"))).click(); + } else if (dateYear.compareTo(currentDate) == -1) { + // Click on Backward + driver.findElement(By.xpath(prop.getProperty("backwardCalenderClick_xpath"))).click(); + } + + monthYearDisplayed = driver.findElement(By.xpath(prop.getProperty("calenderPrederDate1Title_xpath"))) + .getText(); + System.out.println("Displayed Month and year in Loop : " + monthYearDisplayed); + } + + // Select Day + String day = new SimpleDateFormat("d").format(dateYear); + System.out.println("Supplied Date Day : " + day); + + WebElement calenderDay = driver.findElement(By.xpath("//a[text()='" + day + "']")); + calenderDay.click(); + + } catch (ParseException e) { + e.printStackTrace(); + } + } + + public void datePickerFromDropDownCalender(String calenderProperty, String suppliedDate) { + SimpleDateFormat datFormat = new SimpleDateFormat("dd-MM-yyyy"); + + try { + Date dob_year = datFormat.parse(suppliedDate); + + String year = new SimpleDateFormat("yyyy").format(dob_year); + System.out.println("Supplied Date Year : " + year); + + driver.findElement(By.id(prop.getProperty(calenderProperty))).click(); + WebElement calenderYear = driver.findElement(By.xpath(prop.getProperty("dobCalendarYear_xpath"))); + selectfromDropDown(calenderYear, year); + + // Select Month + String month = new SimpleDateFormat("MMM").format(dob_year); + System.out.println("Supplied Date Month : " + month); + + WebElement calenderMonth = driver.findElement(By.xpath(prop.getProperty("dobCalenderMonth_xpath"))); + selectfromDropDown(calenderMonth, month); + + // Select Day + String day = new SimpleDateFormat("d").format(dob_year); + System.out.println("Supplied Date Day : " + day); + + WebElement calenderDay = driver.findElement(By.xpath("//a[text()='" + day + "']")); + calenderDay.click(); + + } catch (ParseException e) { + e.printStackTrace(); + } + } + + public void selectfromDropDown(WebElement element, String selecatble) { + Select dropdown = new Select(element); + dropdown.selectByVisibleText(selecatble); + } + + + public void dismissAlert() { + Alert alert = driver.switchTo().alert(); + alert.dismiss(); + } + + @BeforeMethod + public void init() { + System.setProperty("webdriver.chrome.driver", System.getProperty("user.dir") + "/drivers/chromedriver"); + + driver = new ChromeDriver(); + driver.manage().window().maximize(); + driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(60)); + + prop = new Properties(); + try { + FileInputStream fStream = new FileInputStream( + System.getProperty("user.dir") + "/src/test/resources/sakrahospital_bookAppoitment.properties"); + prop.load(fStream); + + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + @AfterMethod + public void finish() { + driver.quit(); + } + + public void waitforWebPageToLoad() { + JavascriptExecutor js = (JavascriptExecutor) driver; + int i = 0; + + while (i != 10) { + String state = (String) js.executeScript("return document.readyState;"); + System.out.println(state); + + if (state.equals("complete")) + break; + else + wait(2); + + i++; + } + + // check for jQuery status + i = 0; + while (i != 10) { + + Long d = (Long) js.executeScript("return jQuery.active;"); + System.out.println(d); + if (d.longValue() == 0) + break; + else + wait(2); + i++; + + } + } + + public void wait(int time) { + try { + Thread.sleep(time * 1000); + } catch (InterruptedException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + +} diff --git a/SeleniumDemoProject/src/test/java/PilotProject/TestHandsOn.java b/SeleniumDemoProject/src/test/java/PilotProject/TestHandsOn.java new file mode 100644 index 0000000..e47d8cd --- /dev/null +++ b/SeleniumDemoProject/src/test/java/PilotProject/TestHandsOn.java @@ -0,0 +1,60 @@ +package PilotProject; + +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.Date; + +import org.testng.annotations.Test; + +public class TestHandsOn { + + + + + @Test + public void calendarTest() throws ParseException { + + /* + * Date Formats + * dd-MM-yyyy -- 11/04/2024 + * dd-MMM-yyy -- 11-Apr-2024 + * dd-MMMM-yyyy -- 11-April-2024 + */ + + SimpleDateFormat datFormat = new SimpleDateFormat("dd-MM-yyyy"); + + String dob="12-07-2025"; + + Date currentDate = new Date(); + + Date suppliedDate = datFormat.parse(dob); + + if(currentDate.compareTo(suppliedDate) == 1) { + System.out.println(currentDate.compareTo(suppliedDate)); + }else { + System.out.println(currentDate.compareTo(suppliedDate)); + } + + String currentD = datFormat.format(currentDate); + + //Extract the Day + String day = new SimpleDateFormat("dd").format(currentDate); + System.out.println("Current Day : " + day); + + //Extract Month + String monthNumeric = new SimpleDateFormat("MM").format(currentDate); + System.out.println("Current Month : " + monthNumeric); + + String monthString = new SimpleDateFormat("MMM").format(currentDate); + System.out.println("Current Month : " + monthString); + + String monthFullName = new SimpleDateFormat("MMMM").format(currentDate); + System.out.println("Current Month : " + monthFullName); + + //Extract Year + String year = new SimpleDateFormat("yyyy").format(currentDate); + System.out.println("Current Year : " + year); + + } + +} diff --git a/SeleniumDemoProject/src/test/resources/sakrahospital_bookAppoitment.properties b/SeleniumDemoProject/src/test/resources/sakrahospital_bookAppoitment.properties new file mode 100644 index 0000000..e5f6e6b --- /dev/null +++ b/SeleniumDemoProject/src/test/resources/sakrahospital_bookAppoitment.properties @@ -0,0 +1,53 @@ +# Data +url=https://www.sakraworldhospital.com/request-appointment +doctor_name=Dr. Sunil Kumar N.K. +patient_name=Anshul Chauhan +patient_email=abc@gmail.com +patient_mobile=9716180700 +dob=12-12-2005 +appointment1_date=12-07-2024 +UHID=606700051221 + +# Data for Second Test +OnDemandDoctor=Dr. Manjunath Malige +nameTitle=Mr. +FirstName=Anshul +LastName=Chauhan +StateName=Uttar Pradesh +CityName=Noida Complex + + +# Locators +doctorverification_xpath=//*[@title='Dr. Manjunath Malige'] +displayDate_xpath=//*[@class='pickadate-header']/h3 +allDates_xapth=//*[@ng-click='setDate(d)'] +nextWeek_xpath=//*[@ng-show='allowNextMonth'] +gotoAppointment_id=gotoLogin +mobileNumber_xpath=//*[@name='mobile_number'] +continue_xpath=//*[@class='form-group5']/div/button +cancelPopUp_xpath=//*[@ng-click='psuno()'] +titleDropdown_id=salutation +firstName=first_name +lastName_xpath=//*[@ng-model='user.last_name'] +dob_id=dob +state_id=state +city_id=city + + + +Consultation_btn=//*[@class='btn login-btn transition'][@data-target='#request-appointment'][@onclick='addhvURL(54,56, 1)'] +name_id=req_name +email_id=req_email +mobile_id=req_mobile +dateText_xpath=//*[@id="request-appointment"]/div/div/div[2]/form/div[6]/label +gender_id=req_gender +dobCalendar_id=req_datebirth +dobCalendarYear_xpath=//*[@class='ui-datepicker-year'][@data-handler='selectYear'] +dobCalenderMonth_xpath=//*[@class='ui-datepicker-month'][@data-handler='selectMonth'] +calenderPrederDate1_id=req_prefdate1 +calenderPrederDate1Title_xpath=//*[@class='ui-datepicker-title'] +backwardCalenderClick_xpath=//span[text()='Prev'] +forwardCalenderClick_xpath=//span[text()='Next'] +uhid_id=req_uhid +radioBtnYes_id=radio1 +radioBtnNo_id=radio2 \ No newline at end of file diff --git a/SeleniumDemoProject/test-output/Default suite/Default test.html b/SeleniumDemoProject/test-output/Default suite/Default test.html index 5a3f817..6601892 100644 --- a/SeleniumDemoProject/test-output/Default suite/Default test.html +++ b/SeleniumDemoProject/test-output/Default suite/Default test.html @@ -57,9 +57,9 @@

Default test

- + - + @@ -76,10 +76,10 @@

Default test

Tests passed/Failed/Skipped:1/0/0
Started on:Tue Mar 12 22:39:56 IST 2024Started on:Sun Mar 17 00:04:51 IST 2024
Total time:85 seconds (85881 ms)
Total time:82 seconds (82250 ms)
Included groups:
- + - - + +
Instance
rediffMoneyLoginTest
Test class: LiveDemoProject.LoginTestClass
bookAppointmentTest
Test class: PilotProject.BookAppointmentOnDemand
81LiveDemoProject.LoginTestClass@418e7838
76PilotProject.BookAppointmentOnDemand@70e8f8e

\ No newline at end of file diff --git a/SeleniumDemoProject/test-output/Default suite/Default test.xml b/SeleniumDemoProject/test-output/Default suite/Default test.xml index 08dd0ed..92911e9 100644 --- a/SeleniumDemoProject/test-output/Default suite/Default test.xml +++ b/SeleniumDemoProject/test-output/Default suite/Default test.xml @@ -1,5 +1,5 @@ - - + + diff --git a/SeleniumDemoProject/test-output/Default suite/testng-failed.xml b/SeleniumDemoProject/test-output/Default suite/testng-failed.xml index 7a28a34..976cff6 100644 --- a/SeleniumDemoProject/test-output/Default suite/testng-failed.xml +++ b/SeleniumDemoProject/test-output/Default suite/testng-failed.xml @@ -3,13 +3,13 @@ - + + - - + diff --git a/SeleniumDemoProject/test-output/emailable-report.html b/SeleniumDemoProject/test-output/emailable-report.html index d9a8e65..a23386d 100644 --- a/SeleniumDemoProject/test-output/emailable-report.html +++ b/SeleniumDemoProject/test-output/emailable-report.html @@ -9,10 +9,10 @@ - +
Test# Passed# Skipped# Retried# FailedTime (ms)Included GroupsExcluded Groups
Default suite
Default test100085,881
Default test100082,250
- +
ClassMethodStartTime (ms)
Default suite
Default test — passed
LiveDemoProject.LoginTestClassrediffMoneyLoginTest171026340130881344
ClassMethodStartTime (ms)
Default suite
Default test — passed
PilotProject.BookAppointmentOnDemandbookAppointmentTest171061409657376820
-

Default test

LiveDemoProject.LoginTestClass#rediffMoneyLoginTest

back to summary

+

Default test

PilotProject.BookAppointmentOnDemand#bookAppointmentTest

back to summary

diff --git a/SeleniumDemoProject/test-output/index.html b/SeleniumDemoProject/test-output/index.html index c245ac1..5315c3f 100644 --- a/SeleniumDemoProject/test-output/index.html +++ b/SeleniumDemoProject/test-output/index.html @@ -103,7 +103,7 @@ @@ -121,14 +121,14 @@
- LiveDemoProject.LoginTestClass + PilotProject.BookAppointmentOnDemand
- - - rediffMoneyLoginTest + + + bookAppointmentTest
@@ -136,7 +136,7 @@
- /private/var/folders/rg/b21vyw1s0v727y0fc2phllm00000gn/T/testng-eclipse--661863176/testng-customsuite.xml + /private/var/folders/rg/b21vyw1s0v727y0fc2phllm00000gn/T/testng-eclipse--1422282426/testng-customsuite.xml
@@ -145,7 +145,7 @@
 <suite name="Default suite" guice-stage="DEVELOPMENT">
   <test thread-count="5" name="Default test" verbose="2">
     <classes>
-      <class name="LiveDemoProject.LoginTestClass"/>
+      <class name="PilotProject.BookAppointmentOnDemand"/>
     </classes>
   </test> <!-- Default test -->
 </suite> <!-- Default suite -->
@@ -187,9 +187,9 @@
 data.addColumn('number', 'Time (ms)');
 data.addRows(1);
 data.setCell(0, 0, 0)
-data.setCell(0, 1, 'rediffMoneyLoginTest')
-data.setCell(0, 2, 'LiveDemoProject.LoginTestClass')
-data.setCell(0, 3, 81344);
+data.setCell(0, 1, 'bookAppointmentTest')
+data.setCell(0, 2, 'PilotProject.BookAppointmentOnDemand')
+data.setCell(0, 3, 76820);
 window.suiteTableData['Default_suite']= { tableData: data, tableDiv: 'times-div-Default_suite'}
 return data;
 }
@@ -220,18 +220,18 @@
           
-
LiveDemoProject.LoginTestClass
+
PilotProject.BookAppointmentOnDemand
init 0 ms
- rediffMoneyLoginTest - 4387 ms + bookAppointmentTest + 5261 ms
finish - 85733 ms + 82083 ms
diff --git a/SeleniumDemoProject/test-output/junitreports/TEST-LiveDemoProject.CreatePortfolio.xml b/SeleniumDemoProject/test-output/junitreports/TEST-LiveDemoProject.CreatePortfolio.xml new file mode 100644 index 0000000..f3b34cb --- /dev/null +++ b/SeleniumDemoProject/test-output/junitreports/TEST-LiveDemoProject.CreatePortfolio.xml @@ -0,0 +1,63 @@ + + + + + + + + + diff --git a/SeleniumDemoProject/test-output/junitreports/TEST-PilotProject.BookAppointment.xml b/SeleniumDemoProject/test-output/junitreports/TEST-PilotProject.BookAppointment.xml new file mode 100644 index 0000000..6f7ae23 --- /dev/null +++ b/SeleniumDemoProject/test-output/junitreports/TEST-PilotProject.BookAppointment.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/SeleniumDemoProject/test-output/junitreports/TEST-PilotProject.BookAppointmentOnDemand.xml b/SeleniumDemoProject/test-output/junitreports/TEST-PilotProject.BookAppointmentOnDemand.xml new file mode 100644 index 0000000..04baace --- /dev/null +++ b/SeleniumDemoProject/test-output/junitreports/TEST-PilotProject.BookAppointmentOnDemand.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/SeleniumDemoProject/test-output/junitreports/TEST-PilotProject.TestHandsOn.xml b/SeleniumDemoProject/test-output/junitreports/TEST-PilotProject.TestHandsOn.xml new file mode 100644 index 0000000..8eee179 --- /dev/null +++ b/SeleniumDemoProject/test-output/junitreports/TEST-PilotProject.TestHandsOn.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/SeleniumDemoProject/test-output/testng-failed.xml b/SeleniumDemoProject/test-output/testng-failed.xml index 7a28a34..976cff6 100644 --- a/SeleniumDemoProject/test-output/testng-failed.xml +++ b/SeleniumDemoProject/test-output/testng-failed.xml @@ -3,13 +3,13 @@ - + + - - + diff --git a/SeleniumDemoProject/test-output/testng-results.xml b/SeleniumDemoProject/test-output/testng-results.xml index 5c098ba..6d7a133 100644 --- a/SeleniumDemoProject/test-output/testng-results.xml +++ b/SeleniumDemoProject/test-output/testng-results.xml @@ -2,24 +2,24 @@ - + - - - + + + - + - - + + - + diff --git a/ai-selenium-test-generator/.DS_Store b/ai-selenium-test-generator/.DS_Store new file mode 100644 index 0000000..add1d71 Binary files /dev/null and b/ai-selenium-test-generator/.DS_Store differ diff --git a/ai-selenium-test-generator/config.properties b/ai-selenium-test-generator/config.properties new file mode 100644 index 0000000..9847a1d --- /dev/null +++ b/ai-selenium-test-generator/config.properties @@ -0,0 +1 @@ +OPENAI_API_KEY= \ No newline at end of file diff --git a/ai-selenium-test-generator/generated-tests/AI_GeneratedTest_20251113_213940.json b/ai-selenium-test-generator/generated-tests/AI_GeneratedTest_20251113_213940.json new file mode 100644 index 0000000..1777369 --- /dev/null +++ b/ai-selenium-test-generator/generated-tests/AI_GeneratedTest_20251113_213940.json @@ -0,0 +1,57 @@ +{ + "testCaseName": "Verify Upcoming Anniversaries panel on Buzz in OrangeHRM Demo", + "description": "Open the OrangeHRM demo site, log in, navigate to the Buzz section, verify the 'Upcoming Anniversaries' panel is visible, and print the list of people with upcoming anniversaries.", + "steps": [ + { + "stepNumber": 1, + "action": "Navigate to URL", + "target": "https://opensource-demo.orangehrmlive.com/", + "inputs": { + "url": "https://opensource-demo.orangehrmlive.com/" + }, + "expected": "OrangeHRM login page is displayed with username and password fields visible." + }, + { + "stepNumber": 2, + "action": "Enter text", + "target": "Username input field (name='username')", + "inputs": { + "text": "Admin" + }, + "expected": "Username field contains the text 'Admin'." + }, + { + "stepNumber": 3, + "action": "Enter text (secure)", + "target": "Password input field (name='password')", + "inputs": { + "text": "admin123" + }, + "expected": "Password field is populated (masked) without validation errors." + }, + { + "stepNumber": 4, + "action": "Click", + "target": "Login button (type='submit')", + "expected": "User is logged in and the Dashboard/Home page is displayed; left navigation menu is visible and contains the 'Buzz' menu item." + }, + { + "stepNumber": 5, + "action": "Click", + "target": "Left navigation menu item with visible text 'Buzz'", + "expected": "Buzz page loads successfully. Buzz page header or content specific to Buzz is visible." + }, + { + "stepNumber": 6, + "action": "Verify visibility", + "target": "Panel with header/title text 'Upcoming Anniversaries' on the Buzz page", + "expected": "'Upcoming Anniversaries' panel is present in the DOM and visible to the user." + }, + { + "stepNumber": 7, + "action": "Extract and print list items", + "target": "Employee name elements within the 'Upcoming Anniversaries' panel (e.g., list items under the panel)", + "expected": "The names of people with upcoming anniversaries are captured and printed to the test logs. If no entries are present, print 'No upcoming anniversaries'." + } + ] +} \ No newline at end of file diff --git a/ai-selenium-test-generator/generated-tests/AI_GeneratedTest_20251113_214149.json b/ai-selenium-test-generator/generated-tests/AI_GeneratedTest_20251113_214149.json new file mode 100644 index 0000000..d582e1e --- /dev/null +++ b/ai-selenium-test-generator/generated-tests/AI_GeneratedTest_20251113_214149.json @@ -0,0 +1,147 @@ +{ + "testCases": [ + { + "testCaseName": "Verify Upcoming Anniversaries panel is visible on Buzz after valid login", + "description": "Open OrangeHRM demo site, log in with valid credentials, navigate to Buzz, verify the 'Upcoming Anniversaries' panel is displayed, and print the list of people shown.", + "steps": [ + { + "stepNumber": 1, + "action": "Open URL in a browser", + "target": "https://opensource-demo.orangehrmlive.com/", + "inputValues": null, + "expectedValidations": [ + "Login page is displayed", + "Username and Password input fields are visible", + "Login button is visible" + ] + }, + { + "stepNumber": 2, + "action": "Enter username", + "target": "Login page - Username field", + "inputValues": { + "username": "Admin" + }, + "expectedValidations": [ + "Username field contains 'Admin'" + ] + }, + { + "stepNumber": 3, + "action": "Enter password", + "target": "Login page - Password field", + "inputValues": { + "password": "admin123" + }, + "expectedValidations": [ + "Password field is populated (masked)" + ] + }, + { + "stepNumber": 4, + "action": "Click the Login button", + "target": "Login page - Login button", + "inputValues": null, + "expectedValidations": [ + "User is authenticated and navigated to the application (e.g., Dashboard/Home)", + "Main navigation sidebar is visible", + "'Buzz' menu item is present" + ] + }, + { + "stepNumber": 5, + "action": "Navigate to Buzz", + "target": "Main navigation - 'Buzz' menu item", + "inputValues": null, + "expectedValidations": [ + "Buzz page loads successfully", + "Buzz page header or identifier is visible" + ] + }, + { + "stepNumber": 6, + "action": "Verify the 'Upcoming Anniversaries' panel visibility", + "target": "Buzz page - 'Upcoming Anniversaries' panel", + "inputValues": null, + "expectedValidations": [ + "'Upcoming Anniversaries' panel is present in the Buzz page layout", + "Panel title text equals 'Upcoming Anniversaries'", + "Panel is visible (not collapsed or hidden)" + ] + }, + { + "stepNumber": 7, + "action": "Capture and print the list of people with upcoming anniversaries", + "target": "Buzz page - 'Upcoming Anniversaries' panel - list items (names)", + "inputValues": null, + "expectedValidations": [ + "All displayed names within the 'Upcoming Anniversaries' panel are retrieved", + "Names are printed/logged in the test output in display order", + "If no names are present, print/log 'No upcoming anniversaries'" + ] + } + ] + }, + { + "testCaseName": "Negative - Invalid login prevents access to Buzz and Upcoming Anniversaries panel", + "description": "Attempt to log in with invalid credentials and verify that access to Buzz (and the 'Upcoming Anniversaries' panel) is not granted.", + "steps": [ + { + "stepNumber": 1, + "action": "Open URL in a browser", + "target": "https://opensource-demo.orangehrmlive.com/", + "inputValues": null, + "expectedValidations": [ + "Login page is displayed", + "Username and Password input fields are visible", + "Login button is visible" + ] + }, + { + "stepNumber": 2, + "action": "Enter username", + "target": "Login page - Username field", + "inputValues": { + "username": "Admin" + }, + "expectedValidations": [ + "Username field contains 'Admin'" + ] + }, + { + "stepNumber": 3, + "action": "Enter invalid password", + "target": "Login page - Password field", + "inputValues": { + "password": "wrongpass" + }, + "expectedValidations": [ + "Password field is populated (masked)" + ] + }, + { + "stepNumber": 4, + "action": "Click the Login button", + "target": "Login page - Login button", + "inputValues": null, + "expectedValidations": [ + "Login remains on the Login page", + "Error message 'Invalid credentials' is displayed", + "Main navigation sidebar is not available" + ] + }, + { + "stepNumber": 5, + "action": "Verify Buzz and 'Upcoming Anniversaries' are not accessible", + "target": "Application navigation and content area", + "inputValues": null, + "expectedValidations": [ + "'Buzz' menu item is not accessible when not authenticated", + "'Upcoming Anniversaries' panel is not displayed", + "User cannot navigate to the Buzz page without a valid session" + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/ai-selenium-test-generator/pom.xml b/ai-selenium-test-generator/pom.xml new file mode 100644 index 0000000..114aac6 --- /dev/null +++ b/ai-selenium-test-generator/pom.xml @@ -0,0 +1,59 @@ + + 4.0.0 + ai-selenium + ai-selenium-test-generator + 0.0.1-SNAPSHOT + + + + com.openai + openai-java + 4.6.1 + + + + + org.seleniumhq.selenium + selenium-java + 4.28.1 + + + + + org.json + json + 20250517 + + + + + org.testng + testng + 7.11.0 + test + + + + + com.aventstack + extentreports + 5.1.1 + + + + + + + UTF-8 + 21 + 21 + 21 + + + + + + diff --git a/ai-selenium-test-generator/reports/ExtentReport.html b/ai-selenium-test-generator/reports/ExtentReport.html new file mode 100644 index 0000000..a86e270 --- /dev/null +++ b/ai-selenium-test-generator/reports/ExtentReport.html @@ -0,0 +1,386 @@ + + + + + + + + + + + + + + +
+
+
+
+ +
+
+
+
+
+
+ + +
+
    +
  • +
    +

    Login and Verify Personal Information on OrangeHRM Demo

    +

    + 11:35:01 am / 00:00:11:448 + Pass +

    +
    +
    +
    +
    +
    +
    Login and Verify Personal Information on OrangeHRM Demo
    +11.15.2025 11:35:01 am +11.15.2025 11:35:12 am +00:00:11:448#test-id=1 + + + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    StatusTimestampDetails
    Info11:35:01 am + Step 1: Navigate to URL: https://opensource-demo.orangehrmlive.com/ +
    Pass11:35:08 am + Login page loads successfully (username and password fields are present). +
    Info11:35:08 am + Step 2: Verify page title equals 'OrangeHRM'. +
    Pass11:35:08 am + Title equals 'OrangeHRM'. +
    Info11:35:08 am + Step 3: Enter text into Username field: 'Admin'. +
    Pass11:35:08 am + Username field contains 'Admin'. +
    Info11:35:08 am + Step 4: Enter text into Password field: 'admin123'. +
    Pass11:35:08 am + Password field is populated and masked. +
    Info11:35:08 am + Step 5: Click on Login button. +
    Pass11:35:10 am + User is authenticated and navigated away from login page. +
    Info11:35:10 am + Step 6: Verify 'Dashboard' header is visible. +
    Pass11:35:10 am + Dashboard page is displayed (header 'Dashboard' visible; URL contains '/dashboard'). +
    Info11:35:10 am + Step 7: Click sidebar menu item 'My Info'. +
    Pass11:35:12 am + Navigation to 'My Info' page initiated. +
    Info11:35:12 am + Step 8: Verify 'Personal Details' section header is visible. +
    Pass11:35:12 am + 'Personal Details' section is displayed. +
    Info11:35:12 am + Step 9: Read value from 'First Name' field. +
    Pass11:35:12 am + Captured 'firstNameValue' successfully. +
    Info11:35:12 am + Step 10: Print/Log 'firstNameValue'. +
    Pass11:35:12 am + The value of 'firstNameValue' is: +
    Info11:35:12 am + Step 11: Assert that 'firstNameValue' is not empty. +
    +
    +
    +
  • +
+
+
+
+
+
+
+
+
+
+
+
+
+

Started

+

Nov 15, 2025 11:34:59 am

+
+
+
+
+

Ended

+

Nov 15, 2025 11:35:12 am

+
+
+
+
+

Tests Passed

+

1

+
+
+
+
+

Tests Failed

+

0

+
+
+
+
+
+
+
+
Tests
+
+
+
+ +
+
+ +
+
+
+
+
+
Log events
+
+
+
+ +
+
+ +
+
+
+
+

Timeline

+
+ +
+
+
+ +
+
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/ai-selenium-test-generator/src/.DS_Store b/ai-selenium-test-generator/src/.DS_Store new file mode 100644 index 0000000..c47cebd Binary files /dev/null and b/ai-selenium-test-generator/src/.DS_Store differ diff --git a/ai-selenium-test-generator/src/main/java/Config.java b/ai-selenium-test-generator/src/main/java/Config.java new file mode 100644 index 0000000..0a9cd2e --- /dev/null +++ b/ai-selenium-test-generator/src/main/java/Config.java @@ -0,0 +1,15 @@ +import java.io.FileInputStream; +import java.io.IOException; +import java.util.Properties; + +public class Config { + public static String getApiKey() { + try { + Properties props = new Properties(); + props.load(new FileInputStream("config.properties")); + return props.getProperty("OPENAI_API_KEY"); + } catch (IOException e) { + throw new RuntimeException("Failed to read API key from config file", e); + } + } +} diff --git a/ai-selenium-test-generator/src/main/java/GenerateTestFromExternalizeStory.java b/ai-selenium-test-generator/src/main/java/GenerateTestFromExternalizeStory.java new file mode 100644 index 0000000..7f732c9 --- /dev/null +++ b/ai-selenium-test-generator/src/main/java/GenerateTestFromExternalizeStory.java @@ -0,0 +1,26 @@ + +public class GenerateTestFromExternalizeStory { + + public static void main(String[] args) { +// String story = UserStoryReader.readFromClasspath("user-story.txt"); +// System.out.println(story); + + String resourcePath = "user-story.txt"; + + try { + System.out.println("Reading user story from resource: " + resourcePath); + String story = UserStoryReader.readFromClasspath(resourcePath); + + System.out.println("User story content:\n" + story + "\n"); + System.out.println("Sending user story to AI..."); + + String generatedCode = OpenAIClientWrapper.generateCodeFromStory(story); + System.out.println("\nAI Generated Test Code:\n"); + + System.out.println(generatedCode); + }catch(Exception e) { + + } + } + +} diff --git a/ai-selenium-test-generator/src/main/java/GenerateTestFromStory.java b/ai-selenium-test-generator/src/main/java/GenerateTestFromStory.java new file mode 100644 index 0000000..8d2641f --- /dev/null +++ b/ai-selenium-test-generator/src/main/java/GenerateTestFromStory.java @@ -0,0 +1,36 @@ +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; + +public class GenerateTestFromStory { + + public static void main(String[] args) { + + String userStory = """ + As a registered user, + I want to log in to the website with valid credentials + so that I can access my dashboard. + + Acceptance Criteria: + - Navigate to https://opensource-demo.orangehrmlive.com/ + - Verify the Page Title + - Enter valid username and password + - Verify successful login by checking dashboard visibility or Page Title + """; + + try { + System.out.println("Sending user story to AI..."); + String generatedCode = OpenAIClientWrapper.generateCodeFromStory(userStory); + System.out.println("\nAI Generated Test Code:\n"); + // System.out.println(generatedCode); + + // build timestamped filename and save + String ts = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMdd_HHmmss")); + String fileName = "generated-tests/AI_GeneratedTest_" + ts + ".java"; + OpenAIClientWrapper.saveToFile(generatedCode, fileName); + System.out.println("\nSaved generated File: " + fileName); + + } catch (Exception e) { + e.printStackTrace(); + } + } +} diff --git a/ai-selenium-test-generator/src/main/java/JsonTestCaseGenerator.java b/ai-selenium-test-generator/src/main/java/JsonTestCaseGenerator.java new file mode 100644 index 0000000..1be5c4b --- /dev/null +++ b/ai-selenium-test-generator/src/main/java/JsonTestCaseGenerator.java @@ -0,0 +1,67 @@ +import java.io.IOException; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; + +import com.openai.client.OpenAIClient; +import com.openai.client.okhttp.OpenAIOkHttpClient; +import com.openai.models.ChatModel; +import com.openai.models.chat.completions.ChatCompletion; +import com.openai.models.chat.completions.ChatCompletionCreateParams; +import com.openai.models.responses.ResponseCreateParams; + +public class JsonTestCaseGenerator { + + public static void main(String[] args) { + String resourcePath = "user-story.txt"; + + System.out.println("Reading user story from resource: " + resourcePath); + String userStory = UserStoryReader.readFromClasspath("user-story.txt"); + + System.out.println("\nSending user story to AI for JSON Test Case generation...\n"); + + try { + String jsonOutput = generateJsonTestCase(userStory); + //System.out.println("AI generated structured JSON Test Case:\n" + jsonOutput); + + // build timestamped filename and save + String ts = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMdd_HHmmss")); + String fileName = "src/test/resources/AI_Generated_JSON_Test.json"; + OpenAIClientWrapper.saveToFile(jsonOutput, fileName); + System.out.println("\nSaved generated File: " + fileName); + + } catch(Exception e) { + e.printStackTrace(); + } + } + + + private static String generateJsonTestCase(String userStory) throws IOException{ + + String systemPrompt = """ + You are an expert Test Automation Engineer. + Convert the following user story or requirement into a structured JSON Test Case. + Use clear fields: testCaseName, description, and steps (each step should include + step number, action, target, and any input values or expected validations). + Do NOT include code. Only return valid JSON. + """; + + String apiKey = Config.getApiKey(); + OpenAIClient client = OpenAIOkHttpClient.builder().apiKey(apiKey).build(); + + // Create chat completion parameters + ChatCompletionCreateParams params = ChatCompletionCreateParams.builder().model(ChatModel.GPT_5) + .addSystemMessage(systemPrompt).addUserMessage("User Story / Acceptance Criteria:\n\n" + userStory) + .build(); + + // Call the API + ChatCompletion result = client.chat().completions().create(params); + + // Extract content + String JsonTestCase = result.choices().get(0).message().content() + .orElseThrow(() -> new IOException("No content in OpenAI response")); + + return JsonTestCase.trim(); + + } + +} diff --git a/ai-selenium-test-generator/src/main/java/Main.java b/ai-selenium-test-generator/src/main/java/Main.java new file mode 100644 index 0000000..43b5b27 --- /dev/null +++ b/ai-selenium-test-generator/src/main/java/Main.java @@ -0,0 +1,22 @@ +import com.openai.client.OpenAIClient; +import com.openai.client.okhttp.OpenAIOkHttpClient; +import com.openai.models.responses.Response; +import com.openai.models.responses.ResponseCreateParams; + +public class Main { + public static void main(String[] args) { + + //System.out.println("Key: " + System.getenv("OPENAI_API_KEY")); + + // Create client from environment variables + OpenAIClient client = OpenAIOkHttpClient.fromEnv(); + + ResponseCreateParams params = ResponseCreateParams.builder() + .input("Hey, You are free to use the Internet. now tell me, what is the current time and temprature of New Jersey, Use city - Jersey City") + .model("gpt-5") + .build(); + + Response response = client.responses().create(params); + System.out.println(response.output()); + } +} \ No newline at end of file diff --git a/ai-selenium-test-generator/src/main/java/OpenAIClientWrapper.java b/ai-selenium-test-generator/src/main/java/OpenAIClientWrapper.java new file mode 100644 index 0000000..eddd64f --- /dev/null +++ b/ai-selenium-test-generator/src/main/java/OpenAIClientWrapper.java @@ -0,0 +1,141 @@ +import java.util.logging.Logger; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.StandardOpenOption; + +import com.openai.client.OpenAIClient; +import com.openai.client.okhttp.OpenAIOkHttpClient; +import com.openai.models.chat.completions.ChatCompletion; +import com.openai.models.chat.completions.ChatCompletionCreateParams; +import com.openai.models.ChatModel; + +/** + * + * This class connects to the OpenAI API to generate Selenium + TestNG Java test + * cases automatically from user stories or requirements. + */ + +public class OpenAIClientWrapper { + private static final Logger LOGGER = Logger.getLogger(OpenAIClientWrapper.class.getName()); + private static OpenAIClient client; + + public OpenAIClientWrapper() { + String apiKey = Config.getApiKey(); + if (apiKey == null || apiKey.isBlank()) { + throw new IllegalArgumentException("API key must not be blank"); + } + this.client = OpenAIOkHttpClient.builder().apiKey(apiKey).build(); + System.out.println(client); + } + + private static void initClientIfNeeded() { + if (client == null) { + synchronized (OpenAIClientWrapper.class) { + if (client == null) { + String apiKey = Config.getApiKey(); + if (apiKey == null || apiKey.isBlank()) { + throw new IllegalArgumentException("API key must not be blank"); + } + // This is compatible with openai-java 4.6.1 style you used earlier + client = OpenAIOkHttpClient.builder().apiKey(apiKey).build(); + LOGGER.info("OpenAI client initialized."); + } + } + } + } + + // Generates Java source code for a Selenium + TestNG test based on the given + // user story. + public static String generateCodeFromStory(String userStory) throws IOException { + if (userStory == null || userStory.isBlank()) { + throw new IllegalArgumentException("userStory must not be blank"); + } + + initClientIfNeeded(); + + // Construct the system prompt + String systemPrompt = """ + You are an expert Test Automation Engineer. Generate a clean, maintainable Selenium + TestNG test in Java. + Provide full Java source code with imports, class, method, ChromeDriver setup and teardown, descriptive naming, and assertions. + """; + + // Create chat completion parameters + ChatCompletionCreateParams params = ChatCompletionCreateParams.builder().model(ChatModel.GPT_5) + .addSystemMessage(systemPrompt).addUserMessage("User Story / Acceptance Criteria:\n\n" + userStory) + .build(); + + // Call the API + ChatCompletion result = client.chat().completions().create(params); + + // Extract content + String code = result.choices().get(0).message().content() + .orElseThrow(() -> new IOException("No content in OpenAI response")); + + return code.trim(); + } + + + // Generates Java source code for a Selenium + TestNG + Extent Report based on the given + // user story. + public static String generateCodeFromStoryWithReport(String userStory) throws IOException { + if (userStory == null || userStory.isBlank()) { + throw new IllegalArgumentException("userStory must not be blank"); + } + + initClientIfNeeded(); + + // Construct the system prompt + String systemPrompt = """ + You are an expert Test Automation Engineer. Generate a clean, maintainable Selenium + TestNG test class in Java + that includes full Extent Reports integration. + Requirements: + - Return ONLY valid Java source code (no explanations, no markdown). + - Include package, all necessary imports, and a single public class. + - Use ChromeDriver in @BeforeClass and quit driver in @AfterClass. + - Initialize ExtentReports (ExtentSparkReporter) in @BeforeClass and call extent.flush() in @AfterClass. + - Create an ExtentTest for the test and log each logical step using test.info(...), test.pass(...), and test.fail(...). + - On exceptions, capture a screenshot, save it under a reports/screenshots folder, and attach it to the report using MediaEntityBuilder. + - Implement the test steps derived from the provided input. + - Use clear, descriptive class and method names. Keep one @Test method per logical test-case. + - Include appropriate TestNG assertions (Assert.assertTrue / Assert.assertFalse / Assert.assertEquals). + - Do not include any external library setup instructions or extra commentary — only the Java test class source. + """; + + // Create chat completion parameters + ChatCompletionCreateParams params = ChatCompletionCreateParams.builder().model(ChatModel.GPT_5) + .addSystemMessage(systemPrompt).addUserMessage("User Story / Acceptance Criteria:\n\n" + userStory) + .build(); + + // Call the API + ChatCompletion result = client.chat().completions().create(params); + + // Extract content + String code = result.choices().get(0).message().content() + .orElseThrow(() -> new IOException("No content in OpenAI response")); + + return code.trim(); + } + + // Saves the generated code to a .java file. + public static void saveToFile(String code, String fileName) throws IOException { + if (code == null || code.isBlank()) { + throw new IllegalArgumentException("code must not be blank"); + } + if (fileName == null || fileName.isBlank()) { + throw new IllegalArgumentException("fileName must not be blank"); + } + + Path path = Path.of(fileName).toAbsolutePath(); + + // Ensure parent directories exist + Path parent = path.getParent(); + if (parent != null && !Files.exists(parent)) { + Files.createDirectories(parent); + } + + Files.writeString(path, code, StandardOpenOption.CREATE, StandardOpenOption.TRUNCATE_EXISTING); + LOGGER.info("Saved generated code to: " + path); + } + +} diff --git a/ai-selenium-test-generator/src/main/java/SampleTestOpenAI.java b/ai-selenium-test-generator/src/main/java/SampleTestOpenAI.java new file mode 100644 index 0000000..4a8a018 --- /dev/null +++ b/ai-selenium-test-generator/src/main/java/SampleTestOpenAI.java @@ -0,0 +1,37 @@ +import com.openai.client.OpenAIClient; +import com.openai.client.okhttp.OpenAIOkHttpClient; +import com.openai.models.responses.Response; +import com.openai.models.responses.ResponseCreateParams; +import java.util.List; + +public class SampleTestOpenAI { + + public static void main(String[] args) { + String apiKey = Config.getApiKey(); + OpenAIClient client = OpenAIOkHttpClient.builder().apiKey(apiKey).build(); + + // Example user story to generate test cases from + String userStory = "As a registered user, I want to reset my password so that I can regain access if I forget it."; + + // Build prompt: be explicit about required output format + String prompt = "You are a software QA engineer. Given the following user story, generate 3 test cases in Gherkin format (Given/When/Then).\n" + + "Provide each test case with:\n" + "- Title\n" + "- Preconditions\n" + + "- Steps in Gherkin (Given/When/Then)\n" + "- Expected result summary\n\n" + "User story:\n" + + userStory + + "\n\nRespond only with a JSON array of objects with fields: title, preconditions, gherkin, expected.\n"; + + ResponseCreateParams params = ResponseCreateParams.builder() + .input(prompt).model("gpt-4.1").build(); + + try { + Response response = client.responses().create(params); + // The SDK returns a Response object — print the model output(s) + System.out.println("Raw response object: " + response); + } catch (Exception e) { + System.err.println("Error calling OpenAI: " + e.getMessage()); + e.printStackTrace(); + } + + } + +} diff --git a/ai-selenium-test-generator/src/main/java/SeleniumCodeGenerator.java b/ai-selenium-test-generator/src/main/java/SeleniumCodeGenerator.java new file mode 100644 index 0000000..111d467 --- /dev/null +++ b/ai-selenium-test-generator/src/main/java/SeleniumCodeGenerator.java @@ -0,0 +1,36 @@ +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; + +public class SeleniumCodeGenerator { + + public static void main(String[] args) throws IOException { + + String resourcePath = "src/test/resources/AI_Generated_JSON_Test.json"; + +// System.out.println("Reading the Test Cases from path: " + resourcePath); +// String userStory = UserStoryReader.readFromClasspath(resourcePath); + + System.out.println("Reading JSON test case file: " + resourcePath); + String userStory = Files.readString(Path.of(resourcePath)); + System.out.println("\nSending Test Cases to AI for Selenium Script generation...\n"); + + try { + String generatedCode = OpenAIClientWrapper.generateCodeFromStory(userStory); + System.out.println("\nAI Generated Test Code:\n"); + //System.out.println(generatedCode); + + // build timestamped filename and save + String ts = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMdd_HHmmss")); + String fileName = "src/test/java/AI_GeneratedTest_" + ts + ".java"; + OpenAIClientWrapper.saveToFile(generatedCode, fileName); + System.out.println("\nSaved generated File: " + fileName); + + } catch (Exception e){ + e.printStackTrace(); + } + } + +} diff --git a/ai-selenium-test-generator/src/main/java/SeleniumCodeGeneratorWithExtentReport.java b/ai-selenium-test-generator/src/main/java/SeleniumCodeGeneratorWithExtentReport.java new file mode 100644 index 0000000..3fce2e8 --- /dev/null +++ b/ai-selenium-test-generator/src/main/java/SeleniumCodeGeneratorWithExtentReport.java @@ -0,0 +1,36 @@ +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; + +public class SeleniumCodeGeneratorWithExtentReport { + + public static void main(String[] args) throws IOException { + + String resourcePath = "src/test/resources/AI_Generated_JSON_Test.json"; + +// System.out.println("Reading the Test Cases from path: " + resourcePath); +// String userStory = UserStoryReader.readFromClasspath(resourcePath); + + System.out.println("Reading JSON test case file: " + resourcePath); + String userStory = Files.readString(Path.of(resourcePath)); + System.out.println("\nSending Test Cases to AI for Selenium Script generation...\n"); + + try { + String generatedCode = OpenAIClientWrapper.generateCodeFromStoryWithReport(userStory); + System.out.println("\nAI Generated Test Code:\n"); + //System.out.println(generatedCode); + + // build timestamped filename and save + String ts = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMdd_HHmmss")); + String fileName = "src/test/java/AI_GeneratedTest_" + ts + ".java"; + OpenAIClientWrapper.saveToFile(generatedCode, fileName); + System.out.println("\nSaved generated File: " + fileName); + + } catch (Exception e){ + e.printStackTrace(); + } + } + +} diff --git a/ai-selenium-test-generator/src/main/java/UserStoryReader.java b/ai-selenium-test-generator/src/main/java/UserStoryReader.java new file mode 100644 index 0000000..888e387 --- /dev/null +++ b/ai-selenium-test-generator/src/main/java/UserStoryReader.java @@ -0,0 +1,38 @@ +import java.io.InputStream; +import java.io.BufferedReader; +import java.io.InputStreamReader; +import java.nio.charset.StandardCharsets; + +public class UserStoryReader { + + public static String readFromClasspath(String userStoryPath) { + + if (userStoryPath == null || userStoryPath.isBlank()) { + throw new IllegalArgumentException("Given userStoryPath must not be null or empty"); + } + + try { + InputStream inputStream = UserStoryReader.class.getClassLoader().getResourceAsStream(userStoryPath); + + if (inputStream == null) { + throw new RuntimeException("File not found in resources: " + userStoryPath); + } + + BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, StandardCharsets.UTF_8)); + StringBuilder content = new StringBuilder(); + String line; + + while ((line = reader.readLine()) != null) { + content.append(line).append(System.lineSeparator()); + } + + reader.close(); + return content.toString().trim(); + + } catch (Exception e) { + throw new RuntimeException("Error reading file: " + userStoryPath, e); + } + + } + +} diff --git a/ai-selenium-test-generator/src/main/resources/user-story.txt b/ai-selenium-test-generator/src/main/resources/user-story.txt new file mode 100644 index 0000000..a276c70 --- /dev/null +++ b/ai-selenium-test-generator/src/main/resources/user-story.txt @@ -0,0 +1,14 @@ +As a registered user, +I want to log in to the OrangeHRM demo site with valid credentials +so that I can access my dashboard and verify my personal information. + +Acceptance Criteria: +- Navigate to https://opensource-demo.orangehrmlive.com/ +- Verify the Page Title is "OrangeHRM" +- Enter valid username and password (username: Admin, password: admin123) +- Verify successful login by checking that the dashboard page loads +- Click on the "My Info" menu item in the sidebar +- Verify that the "Personal Details" section is displayed +- Read the value of the "First Name" field +- Print the "First Name" value in the console +- Assert that the "First Name" value is not empty diff --git a/ai-selenium-test-generator/src/test/java/OrangeHRMLoginAndVerifyPersonalInfoTest.java b/ai-selenium-test-generator/src/test/java/OrangeHRMLoginAndVerifyPersonalInfoTest.java new file mode 100644 index 0000000..887c073 --- /dev/null +++ b/ai-selenium-test-generator/src/test/java/OrangeHRMLoginAndVerifyPersonalInfoTest.java @@ -0,0 +1,110 @@ +import org.openqa.selenium.By; +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.chrome.ChromeDriver; +import org.openqa.selenium.chrome.ChromeOptions; +import org.openqa.selenium.support.ui.ExpectedConditions; +import org.openqa.selenium.support.ui.WebDriverWait; +import org.testng.Assert; +import org.testng.annotations.AfterClass; +import org.testng.annotations.BeforeClass; +import org.testng.annotations.Test; + +import java.time.Duration; + +public class OrangeHRMLoginAndVerifyPersonalInfoTest { + + private WebDriver driver; + private WebDriverWait wait; + + // Locators + private final By usernameField = By.cssSelector("input[name='username']"); + private final By passwordField = By.cssSelector("input[name='password']"); + private final By loginButton = By.cssSelector("button[type='submit']"); + private final By dashboardHeader = By.xpath("//header//h6[normalize-space()='Dashboard']"); + private final By myInfoMenuItem = By.xpath("//span[normalize-space()='My Info']"); + private final By personalDetailsHeader = By.xpath("//h6[normalize-space()='Personal Details']"); + private final By firstNameField = By.cssSelector("input[name='firstName']"); + + @BeforeClass + public void setUp() { + ChromeOptions options = new ChromeOptions(); + // Optional: run headless by setting -Dheadless=true + if ("true".equalsIgnoreCase(System.getProperty("headless"))) { + options.addArguments("--headless=new"); + } + options.addArguments("--window-size=1920,1080"); + driver = new ChromeDriver(options); // Selenium Manager will resolve the driver + wait = new WebDriverWait(driver, Duration.ofSeconds(15)); + driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(0)); + } + + @AfterClass + public void tearDown() { + if (driver != null) { + driver.quit(); + } + } + + @Test(description = "Login and Verify Personal Information on OrangeHRM Demo") + public void testLoginAndVerifyPersonalInformation() { + // Step 1: Navigate to URL and validate login fields are present + driver.navigate().to("https://opensource-demo.orangehrmlive.com/"); + WebElement usernameInput = waitForVisible(usernameField); + WebElement passwordInput = waitForVisible(passwordField); + Assert.assertTrue(usernameInput.isDisplayed() && usernameInput.isEnabled(), "Username field should be present and enabled."); + Assert.assertTrue(passwordInput.isDisplayed() && passwordInput.isEnabled(), "Password field should be present and enabled."); + + // Step 2: Verify page title equals 'OrangeHRM' + wait.until(ExpectedConditions.titleIs("OrangeHRM")); + Assert.assertEquals(driver.getTitle(), "OrangeHRM", "Page title should be 'OrangeHRM'."); + + // Step 3: Enter username and validate + usernameInput.clear(); + usernameInput.sendKeys("Admin"); + Assert.assertEquals(usernameInput.getAttribute("value"), "Admin", "Username field should contain 'Admin'."); + + // Step 4: Enter password and validate it's populated and masked + passwordInput.clear(); + passwordInput.sendKeys("admin123"); + String passwordType = passwordInput.getAttribute("type"); + String passwordValue = passwordInput.getAttribute("value"); + Assert.assertEquals(passwordType, "password", "Password field type should be 'password' (masked)."); + Assert.assertTrue(passwordValue != null && !passwordValue.isEmpty(), "Password field should be populated."); + + // Step 5: Click Login and ensure navigation away from login page + waitForClickable(loginButton).click(); + + // Step 6: Verify Dashboard is displayed + WebElement dashboard = waitForVisible(dashboardHeader); + Assert.assertEquals(dashboard.getText().trim(), "Dashboard", "Dashboard header should be visible with text 'Dashboard'."); + // Optional URL check if present + // Assert.assertTrue(driver.getCurrentUrl().contains("/dashboard"), "URL should contain '/dashboard' after login."); + + // Step 7: Click 'My Info' from sidebar + waitForClickable(myInfoMenuItem).click(); + + // Step 8: Verify 'Personal Details' section is displayed + WebElement personalDetails = waitForVisible(personalDetailsHeader); + Assert.assertEquals(personalDetails.getText().trim(), "Personal Details", "'Personal Details' section header should be visible."); + + // Step 9: Read First Name field value + WebElement firstNameInput = waitForVisible(firstNameField); + String firstNameValue = firstNameInput.getAttribute("value"); + + // Step 10: Print/Log the First Name value + System.out.println("Captured First Name value: " + firstNameValue); + + // Step 11: Assert First Name is not empty + Assert.assertTrue(firstNameValue != null && firstNameValue.trim().length() > 0, "First Name value should not be empty."); + } + + // Helper methods + private WebElement waitForVisible(By locator) { + return wait.until(ExpectedConditions.visibilityOfElementLocated(locator)); + } + + private WebElement waitForClickable(By locator) { + return wait.until(ExpectedConditions.elementToBeClickable(locator)); + } +} \ No newline at end of file diff --git a/ai-selenium-test-generator/src/test/java/OrangeHRMLoginTest_Source.java b/ai-selenium-test-generator/src/test/java/OrangeHRMLoginTest_Source.java new file mode 100644 index 0000000..98d8a6e --- /dev/null +++ b/ai-selenium-test-generator/src/test/java/OrangeHRMLoginTest_Source.java @@ -0,0 +1,89 @@ +import org.openqa.selenium.By; +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.chrome.ChromeDriver; +import org.openqa.selenium.chrome.ChromeOptions; +import org.openqa.selenium.support.ui.ExpectedConditions; +import org.openqa.selenium.support.ui.WebDriverWait; +import org.testng.Assert; +import org.testng.annotations.AfterClass; +import org.testng.annotations.BeforeClass; +import org.testng.annotations.Test; + +import java.time.Duration; + +public class OrangeHRMLoginTest_Source { + + private WebDriver driver; + private WebDriverWait wait; + + private static final String BASE_URL = "https://opensource-demo.orangehrmlive.com/"; + private static final String VALID_USERNAME = "Admin"; + private static final String VALID_PASSWORD = "admin123"; + private static final String EXPECTED_LOGIN_TITLE = "OrangeHRM"; + + // Locators + private static final By USERNAME_INPUT = By.name("username"); + private static final By PASSWORD_INPUT = By.name("password"); + private static final By LOGIN_BUTTON = By.cssSelector("button[type='submit']"); + private static final By DASHBOARD_HEADER = By.cssSelector("h6.oxd-text.oxd-text--h6.oxd-topbar-header-breadcrumb-module"); + + @BeforeClass(alwaysRun = true) + public void setUp() { + // Selenium 4.6+ will manage the ChromeDriver binary automatically + ChromeOptions options = new ChromeOptions(); + // options.addArguments("--headless=new"); // Uncomment for headless runs in CI + driver = new ChromeDriver(options); + wait = new WebDriverWait(driver, Duration.ofSeconds(10)); + driver.manage().window().maximize(); + } + + @AfterClass(alwaysRun = true) + public void tearDown() { + if (driver != null) { + driver.quit(); + } + } + + @Test(description = "As a registered user, I can log in with valid credentials and access the dashboard") + public void userCanLoginWithValidCredentials() { + // Navigate to the application + driver.get(BASE_URL); + + // Ensure login page is loaded + waitForVisible(USERNAME_INPUT); + + // Verify the Page Title + String actualLoginTitle = driver.getTitle(); + Assert.assertEquals(actualLoginTitle, EXPECTED_LOGIN_TITLE, "Login page title should match expected."); + + // Enter valid username and password and submit + login(VALID_USERNAME, VALID_PASSWORD); + + // Verify successful login by checking that the Dashboard is visible + WebElement dashboardHeading = waitForVisible(DASHBOARD_HEADER); + Assert.assertTrue(dashboardHeading.isDisplayed(), "Dashboard heading should be visible after login."); + Assert.assertEquals(dashboardHeading.getText().trim(), "Dashboard", "User should land on the Dashboard."); + + // Optional: Also verify URL contains 'dashboard' and title remains consistent + Assert.assertTrue(driver.getCurrentUrl().toLowerCase().contains("dashboard"), + "Current URL should contain 'dashboard' after login."); + Assert.assertEquals(driver.getTitle(), EXPECTED_LOGIN_TITLE, "Page title remains consistent after login."); + } + + // Helper methods + + private void login(String username, String password) { + WebElement usernameField = waitForVisible(USERNAME_INPUT); + WebElement passwordField = waitForVisible(PASSWORD_INPUT); + usernameField.clear(); + usernameField.sendKeys(username); + passwordField.clear(); + passwordField.sendKeys(password); + driver.findElement(LOGIN_BUTTON).click(); + } + + private WebElement waitForVisible(By locator) { + return wait.until(ExpectedConditions.visibilityOfElementLocated(locator)); + } +} \ No newline at end of file diff --git a/ai-selenium-test-generator/src/test/java/OrangeHRMLoginTests.java b/ai-selenium-test-generator/src/test/java/OrangeHRMLoginTests.java new file mode 100644 index 0000000..73647c0 --- /dev/null +++ b/ai-selenium-test-generator/src/test/java/OrangeHRMLoginTests.java @@ -0,0 +1,220 @@ +import org.openqa.selenium.By; +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.chrome.ChromeDriver; +import org.openqa.selenium.chrome.ChromeOptions; +import org.openqa.selenium.support.ui.ExpectedConditions; +import org.openqa.selenium.support.ui.WebDriverWait; +import org.testng.Assert; +import org.testng.annotations.AfterClass; +import org.testng.annotations.BeforeClass; +import org.testng.annotations.BeforeMethod; +import org.testng.annotations.Test; +import com.aventstack.extentreports.ExtentReports; + +import java.time.Duration; +import java.util.List; + +public class OrangeHRMLoginTests { + + private WebDriver driver; + private WebDriverWait wait; + ExtentReports extent; + + // Test data and URLs + private static final String BASE_URL = "https://opensource-demo.orangehrmlive.com/"; + private static final String VALID_USERNAME = "Admin"; + private static final String VALID_PASSWORD = "admin123"; + private static final String INVALID_PASSWORD = "wrongpass"; + private static final String EXPECTED_TITLE = "OrangeHRM"; + + // Locators + private final By usernameField = By.name("username"); + private final By passwordField = By.name("password"); + private final By loginButton = By.cssSelector("button[type='submit']"); + private final By loginFormContainer = By.cssSelector("div.orangehrm-login-form"); + + private final By dashboardHeader = By.xpath("//h6[normalize-space()='Dashboard']"); + private final By userMenuName = By.cssSelector("p.oxd-userdropdown-name"); + private final By userMenuAvatar = By.cssSelector("img.oxd-userdropdown-img"); + private final By logoutLink = By.xpath("//a[normalize-space()='Logout']"); + + private final By invalidCredentialsAlert = By.xpath("//p[contains(@class,'oxd-alert-content-text') and contains(normalize-space(),'Invalid credentials')]"); + + @BeforeClass + public void setUp() { + ChromeOptions options = new ChromeOptions(); + options.addArguments("--start-maximized"); + // options.addArguments("--headless=new"); // Uncomment for headless execution if needed + driver = new ChromeDriver(options); + wait = new WebDriverWait(driver, Duration.ofSeconds(15)); + } + + @AfterClass(alwaysRun = true) + public void tearDown() { + if (driver != null) { + driver.quit(); + } + } + + @BeforeMethod + public void navigateToLoginAndEnsureLoggedOut() { + driver.get(BASE_URL); + // If already logged in, log out to start from the login page for each test + if (!isElementVisibleQuick(loginFormContainer)) { + if (isElementVisibleQuick(userMenuName) || isElementVisibleQuick(userMenuAvatar)) { + openUserMenu(); + safeClick(logoutLink); + } + } + waitUntilVisible(loginFormContainer); + wait.until(ExpectedConditions.titleIs(EXPECTED_TITLE)); + } + + @Test(description = "Login with valid credentials - verify Dashboard visibility and URL contains /dashboard") + public void loginWithValidCredentials_VerifyDashboardVisibility() { + // Step 1-2: On login page, verify title + Assert.assertEquals(driver.getTitle(), EXPECTED_TITLE, "Login page title should be 'OrangeHRM'."); + + // Step 3-4: Enter username and password + type(usernameField, VALID_USERNAME, true); + Assert.assertEquals(getAttribute(usernameField, "value"), VALID_USERNAME, "Username field should contain 'Admin'."); + + type(passwordField, VALID_PASSWORD, true); + // Can't assert masked content directly; verify field is of type 'password' + Assert.assertEquals(getAttribute(passwordField, "type"), "password", "Password field should be masked."); + + // Step 5: Click Login + safeClick(loginButton); + + // Step 6: Verify Dashboard header visible + waitUntilVisible(dashboardHeader); + Assert.assertTrue(isElementVisible(dashboardHeader), "Dashboard header with text 'Dashboard' should be visible."); + + // Step 7: Verify URL contains '/dashboard' + wait.until(ExpectedConditions.urlContains("/dashboard")); + Assert.assertTrue(driver.getCurrentUrl().contains("/dashboard"), "URL should contain '/dashboard' after successful login."); + } + + @Test(description = "Login with valid credentials - verify Page Title after login and topbar user menu visible") + public void loginWithValidCredentials_VerifyTitleAndTopbar() { + // Step 1-2: On login page, verify title + Assert.assertEquals(driver.getTitle(), EXPECTED_TITLE, "Login page title should be 'OrangeHRM'."); + + // Step 3-4: Enter username and password + type(usernameField, VALID_USERNAME, true); + Assert.assertEquals(getAttribute(usernameField, "value"), VALID_USERNAME, "Username field should contain 'Admin'."); + type(passwordField, VALID_PASSWORD, true); + Assert.assertEquals(getAttribute(passwordField, "type"), "password", "Password field should be masked."); + + // Step 5: Click Login + safeClick(loginButton); + + // Step 6: Verify page title remains 'OrangeHRM' after login + wait.until(ExpectedConditions.titleIs(EXPECTED_TITLE)); + Assert.assertEquals(driver.getTitle(), EXPECTED_TITLE, "Page title should remain 'OrangeHRM' after login."); + + // Step 7: Verify user/topbar menu is visible + // Accept either avatar or user name as valid topbar/authenticated indicator + boolean topbarVisible = waitUntilAnyVisible(userMenuAvatar, userMenuName); + Assert.assertTrue(topbarVisible, "User/topbar menu should be visible, indicating an authenticated session."); + } + + @Test(description = "Login with invalid password - verify error handling and that user remains on login page") + public void loginWithInvalidPassword_VerifyErrorHandling() { + // Step 1-2: On login page, verify title + Assert.assertEquals(driver.getTitle(), EXPECTED_TITLE, "Login page title should be 'OrangeHRM'."); + + // Step 3-4: Enter username and invalid password + type(usernameField, VALID_USERNAME, true); + Assert.assertEquals(getAttribute(usernameField, "value"), VALID_USERNAME, "Username field should contain 'Admin'."); + type(passwordField, INVALID_PASSWORD, true); + Assert.assertEquals(getAttribute(passwordField, "type"), "password", "Password field should be masked."); + + // Step 5: Click Login + safeClick(loginButton); + + // Step 6: Verify error message 'Invalid credentials' is displayed + waitUntilVisible(invalidCredentialsAlert); + Assert.assertTrue(isElementVisible(invalidCredentialsAlert), "Error message 'Invalid credentials' should be displayed."); + + // Step 7: Verify user remains on login page (URL contains '/auth/login') + wait.until(ExpectedConditions.urlContains("/auth/login")); + Assert.assertTrue(driver.getCurrentUrl().contains("/auth/login"), + "User should remain on the login page; URL should contain '/auth/login'."); + + // Step 8: Verify Dashboard is not visible + Assert.assertFalse(isElementVisibleQuick(dashboardHeader), "Dashboard should not be visible after failed login."); + } + + // Helper methods + + private void type(By locator, String text, boolean clear) { + WebElement el = waitUntilVisible(locator); + if (clear) el.clear(); + el.sendKeys(text); + } + + private void safeClick(By locator) { + WebElement el = waitUntilClickable(locator); + el.click(); + } + + private String getAttribute(By locator, String attribute) { + return waitUntilVisible(locator).getAttribute(attribute); + } + + private WebElement waitUntilVisible(By locator) { + return wait.until(ExpectedConditions.visibilityOfElementLocated(locator)); + } + + private WebElement waitUntilClickable(By locator) { + return wait.until(ExpectedConditions.elementToBeClickable(locator)); + } + + private boolean isElementVisible(By locator) { + try { + WebElement el = waitUntilVisible(locator); + return el.isDisplayed(); + } catch (Exception e) { + return false; + } + } + + private boolean isElementVisibleQuick(By locator) { + try { + WebDriverWait shortWait = new WebDriverWait(driver, Duration.ofSeconds(3)); + WebElement el = shortWait.until(ExpectedConditions.visibilityOfElementLocated(locator)); + return el.isDisplayed(); + } catch (Exception e) { + return false; + } + } + + private boolean waitUntilAnyVisible(By... locators) { + long end = System.currentTimeMillis() + Duration.ofSeconds(10).toMillis(); + while (System.currentTimeMillis() < end) { + for (By locator : locators) { + List elements = driver.findElements(locator); + if (!elements.isEmpty() && elements.get(0).isDisplayed()) { + return true; + } + } + try { + Thread.sleep(250); + } catch (InterruptedException ignored) { + } + } + return false; + } + + private void openUserMenu() { + // Try avatar first, then user name, to open dropdown menu + if (isElementVisibleQuick(userMenuAvatar)) { + safeClick(userMenuAvatar); + } else { + safeClick(userMenuName); + } + waitUntilVisible(logoutLink); + } +} \ No newline at end of file diff --git a/ai-selenium-test-generator/src/test/java/OrangeHRMUpcomingAnniversariesTest.java b/ai-selenium-test-generator/src/test/java/OrangeHRMUpcomingAnniversariesTest.java new file mode 100644 index 0000000..0b702c1 --- /dev/null +++ b/ai-selenium-test-generator/src/test/java/OrangeHRMUpcomingAnniversariesTest.java @@ -0,0 +1,231 @@ +import org.openqa.selenium.*; +import org.openqa.selenium.chrome.ChromeDriver; +import org.openqa.selenium.chrome.ChromeOptions; +import org.openqa.selenium.interactions.Actions; +import org.openqa.selenium.support.ui.ExpectedConditions; +import org.openqa.selenium.support.ui.WebDriverWait; +import org.testng.Assert; +import org.testng.annotations.*; + +import java.time.Duration; +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + +public class OrangeHRMUpcomingAnniversariesTest { + + private WebDriver driver; + private WebDriverWait wait; + + private static final String BASE_URL = "https://opensource-demo.orangehrmlive.com/"; + private static final String USERNAME = "Admin"; + private static final String PASSWORD = "admin123"; + + @BeforeClass(alwaysRun = true) + public void setUpChromeDriver() { + //WebDriverManager.chromedriver().setup(); + ChromeOptions options = new ChromeOptions(); + // options.addArguments("--headless=new"); // Uncomment if you want to run headless + options.addArguments("--start-maximized"); + options.addArguments("--disable-gpu"); + options.addArguments("--no-sandbox"); + driver = new ChromeDriver(options); + wait = new WebDriverWait(driver, Duration.ofSeconds(15)); + } + + @AfterClass(alwaysRun = true) + public void tearDown() { + if (driver != null) { + try { + // Try to log out if still logged in + openUserDropdownIfPresent(); + clickIfPresent(By.xpath("//a[normalize-space()='Logout']")); + } catch (Exception ignored) { + } finally { + driver.quit(); + } + } + } + + @Test(description = "Verify Upcoming Anniversaries list on Buzz page and print entries") + public void verifyAndPrintUpcomingAnniversaries() { + // 1) Open home page + driver.get(BASE_URL); + + // 2) Log in with valid credentials + wait.until(ExpectedConditions.visibilityOfElementLocated(By.name("username"))).sendKeys(USERNAME); + driver.findElement(By.name("password")).sendKeys(PASSWORD); + driver.findElement(By.cssSelector("button[type='submit']")).click(); + + // Wait for post-login landing (Dashboard visible or sidebar present) + wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("div.oxd-sidepanel"))); + + // 3) Navigate to Buzz section via sidebar + By buzzMenu = By.xpath("//span[normalize-space()='Buzz']/ancestor::a"); + wait.until(ExpectedConditions.elementToBeClickable(buzzMenu)).click(); + + // Wait for Buzz page header to appear + wait.until(ExpectedConditions.or( + ExpectedConditions.visibilityOfElementLocated(By.xpath("//h6[normalize-space()='Buzz']")), + ExpectedConditions.visibilityOfElementLocated(By.xpath("//h6[contains(normalize-space(),'Buzz')]")) + )); + + // 4) Verify "Upcoming Anniversaries" panel is visible (scroll into view if needed) + WebElement anniversariesHeader = wait.until(ExpectedConditions.visibilityOfElementLocated( + By.xpath("//h6[normalize-space()='Upcoming Anniversaries' or contains(.,'Upcoming Anniversaries')]") + )); + scrollIntoView(anniversariesHeader); + + // The container/card that holds the panel body + WebElement anniversariesPanelContainer = anniversariesHeader.findElement(By.xpath("./ancestor::div[contains(@class,'oxd-card') or contains(@class,'orangehrm')][1]")); + Assert.assertTrue(anniversariesPanelContainer.isDisplayed(), "'Upcoming Anniversaries' panel should be visible"); + + // 5) If the panel is collapsed or initially empty, try expanding by clicking header + List entryCandidates = findAnniversaryEntryContainers(anniversariesPanelContainer); + if (entryCandidates.isEmpty()) { + safeClick(anniversariesHeader); // attempt to expand + // small wait for expand animation/content load + sleep(500); + entryCandidates = findAnniversaryEntryContainers(anniversariesPanelContainer); + } + + // 6) Extract names (and optionally dates) under "Upcoming Anniversaries" + List formattedEntries = extractNameAndDateFromAnniversaryItems(entryCandidates); + + // 7) Assert at least one entry is present and print them + Assert.assertTrue(formattedEntries.size() > 0, "Expected at least one upcoming anniversary entry"); + String output = "Upcoming Anniversaries: [" + String.join(", ", formattedEntries) + "]"; + System.out.println(output); + + // 8) Clean up: log out + openUserDropdownIfPresent(); + wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//a[normalize-space()='Logout']"))).click(); + + // Verify logout brings back login form + wait.until(ExpectedConditions.visibilityOfElementLocated(By.name("username"))); + } + + // Helper: Attempt to find each anniversary entry container in the panel + private List findAnniversaryEntryContainers(WebElement panelContainer) { + // Try common structures used in OrangeHRM sidebars + List items = new ArrayList<>(); + + // Most specific guess: employee details cards in the buzz sidebar + items.addAll(panelContainer.findElements(By.xpath(".//div[contains(@class,'employee-details') or contains(@class,'employee')][.//p]"))); + + // Fallbacks: list items or generic rows + if (items.isEmpty()) { + items.addAll(panelContainer.findElements(By.xpath(".//li[.//p]"))); + } + if (items.isEmpty()) { + items.addAll(panelContainer.findElements(By.xpath(".//div[contains(@class,'list') or contains(@class,'item') or contains(@class,'row')][.//p]"))); + } + + // Filter out containers that don't seem like person rows (e.g., have no text p children) + return items.stream() + .filter(e -> !e.findElements(By.xpath(".//p[normalize-space() != '' and not(contains(.,'Upcoming Anniversaries'))]")).isEmpty()) + .collect(Collectors.toList()); + } + + // Helper: Extract name and optional date from each entry container + private List extractNameAndDateFromAnniversaryItems(List entryContainers) { + List results = new ArrayList<>(); + for (WebElement container : entryContainers) { + // Heuristic: The first p is often the name; second p may contain date or tenure info + String name = getTextOrEmpty(container, By.xpath(".//p[normalize-space()!=''][1]")).trim(); + + // Try to find a likely date or anniversary descriptor in the same container + String dateOrInfo = ""; + List dateLocators = List.of( + By.xpath(".//p[contains(translate(.,'JFMASOND','jfmasond'),'jan') or contains(translate(.,'JFMASOND','jfmasond'),'feb') or contains(translate(.,'JFMASOND','jfmasond'),'mar') or contains(translate(.,'JFMASOND','jfmasond'),'apr') or contains(translate(.,'JFMASOND','jfmasond'),'may') or contains(translate(.,'JFMASOND','jfmasond'),'jun') or contains(translate(.,'JFMASOND','jfmasond'),'jul') or contains(translate(.,'JFMASOND','jfmasond'),'aug') or contains(translate(.,'JFMASOND','jfmasond'),'sep') or contains(translate(.,'JFMASOND','jfmasond'),'oct') or contains(translate(.,'JFMASOND','jfmasond'),'nov') or contains(translate(.,'JFMASOND','jfmasond'),'dec')]"), + By.xpath(".//p[contains(.,'-') or contains(.,'/') or contains(.,',')]"), + By.xpath(".//p[matches(., '.*[0-9].*')]") // will be ignored by drivers without XPath 2.0, but kept as last attempt + ); + + for (By locator : dateLocators) { + List candidates = container.findElements(locator); + if (!candidates.isEmpty()) { + // Choose the last texty element (often the most specific) + String candidate = candidates.get(candidates.size() - 1).getText().trim(); + // Avoid accidentally picking the same as name + if (!candidate.equalsIgnoreCase(name) && candidate.length() >= 3) { + dateOrInfo = candidate; + break; + } + } + } + + if (name.isEmpty()) { + // Skip empty/invalid rows + continue; + } + + if (!dateOrInfo.isEmpty()) { + results.add(name + " - " + dateOrInfo); + } else { + results.add(name); + } + } + return results; + } + + private void openUserDropdownIfPresent() { + // The user dropdown toggle can be a p.oxd-userdropdown-name or span.oxd-userdropdown-tab depending on build + By[] toggles = new By[] { + By.cssSelector("p.oxd-userdropdown-name"), + By.cssSelector("span.oxd-userdropdown-tab"), + By.xpath("//span[contains(@class,'oxd-userdropdown-tab') or contains(@class,'userdropdown')]") + }; + for (By toggle : toggles) { + List els = driver.findElements(toggle); + if (!els.isEmpty()) { + try { + wait.until(ExpectedConditions.elementToBeClickable(els.get(0))).click(); + return; + } catch (Exception ignored) { } + } + } + } + + private void scrollIntoView(WebElement element) { + try { + ((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView({block:'center', inline:'nearest'});", element); + } catch (JavascriptException ignored) { + } + } + + private void safeClick(WebElement element) { + try { + wait.until(ExpectedConditions.elementToBeClickable(element)).click(); + } catch (Exception e) { + try { + new Actions(driver).moveToElement(element).click().perform(); + } catch (Exception ignored) { + } + } + } + + private void clickIfPresent(By locator) { + List elements = driver.findElements(locator); + if (!elements.isEmpty()) { + safeClick(elements.get(0)); + } + } + + private String getTextOrEmpty(WebElement scope, By locator) { + try { + WebElement el = scope.findElement(locator); + return el.getText() != null ? el.getText() : ""; + } catch (NoSuchElementException e) { + return ""; + } + } + + private void sleep(long millis) { + try { + Thread.sleep(millis); + } catch (InterruptedException ignored) { + Thread.currentThread().interrupt(); + } + } +} \ No newline at end of file diff --git a/ai-selenium-test-generator/src/test/java/OrangeHrmLoginAndVerifyPersonalInfoWithExtentTest.java b/ai-selenium-test-generator/src/test/java/OrangeHrmLoginAndVerifyPersonalInfoWithExtentTest.java new file mode 100644 index 0000000..ee9969c --- /dev/null +++ b/ai-selenium-test-generator/src/test/java/OrangeHrmLoginAndVerifyPersonalInfoWithExtentTest.java @@ -0,0 +1,181 @@ + + +import com.aventstack.extentreports.ExtentReports; +import com.aventstack.extentreports.ExtentTest; +import com.aventstack.extentreports.MediaEntityBuilder; +import com.aventstack.extentreports.reporter.ExtentSparkReporter; +import org.openqa.selenium.By; +import org.openqa.selenium.OutputType; +import org.openqa.selenium.TakesScreenshot; +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.chrome.ChromeDriver; +import org.openqa.selenium.support.ui.ExpectedConditions; +import org.openqa.selenium.support.ui.WebDriverWait; +import org.testng.Assert; +import org.testng.annotations.AfterClass; +import org.testng.annotations.BeforeClass; +import org.testng.annotations.Test; + +import java.io.File; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.nio.file.StandardCopyOption; +import java.text.SimpleDateFormat; +import java.time.Duration; +import java.util.Date; + +public class OrangeHrmLoginAndVerifyPersonalInfoWithExtentTest { + + private WebDriver driver; + private WebDriverWait wait; + private ExtentReports extent; + private ExtentSparkReporter spark; + private ExtentTest test; + + @BeforeClass + public void setUp() { + try { + Files.createDirectories(Paths.get("reports", "screenshots")); + } catch (IOException ignored) { + } + spark = new ExtentSparkReporter("reports/ExtentReport.html"); + extent = new ExtentReports(); + extent.attachReporter(spark); + + driver = new ChromeDriver(); + driver.manage().window().maximize(); + wait = new WebDriverWait(driver, Duration.ofSeconds(20)); + } + + @AfterClass + public void tearDown() { + if (driver != null) { + driver.quit(); + } + if (extent != null) { + extent.flush(); + } + } + + @Test(description = "Validate that a registered user can log in to the OrangeHRM demo site, navigate to My Info, and verify the Personal Details First Name is non-empty.") + public void testLoginAndVerifyPersonalInformationOnOrangeHRMDemo() throws IOException { + test = extent.createTest("Login and Verify Personal Information on OrangeHRM Demo"); + String firstNameValue = null; + + try { + // Step 1: Navigate to URL + String baseUrl = "https://opensource-demo.orangehrmlive.com/"; + test.info("Step 1: Navigate to URL: " + baseUrl); + driver.get(baseUrl); + By usernameLocator = By.cssSelector("input[name='username']"); + By passwordLocator = By.cssSelector("input[name='password']"); + waitUntilVisible(usernameLocator); + waitUntilVisible(passwordLocator); + test.pass("Login page loads successfully (username and password fields are present)."); + + // Step 2: Verify page title + test.info("Step 2: Verify page title equals 'OrangeHRM'."); + wait.until(ExpectedConditions.titleContains("OrangeHRM")); + Assert.assertEquals(driver.getTitle(), "OrangeHRM", "Expected title to be 'OrangeHRM'."); + test.pass("Title equals 'OrangeHRM'."); + + // Step 3: Enter Username + test.info("Step 3: Enter text into Username field: 'Admin'."); + WebElement usernameField = driver.findElement(usernameLocator); + usernameField.clear(); + usernameField.sendKeys("Admin"); + Assert.assertEquals(usernameField.getAttribute("value"), "Admin", "Username field does not contain 'Admin'."); + test.pass("Username field contains 'Admin'."); + + // Step 4: Enter Password + test.info("Step 4: Enter text into Password field: 'admin123'."); + WebElement passwordField = driver.findElement(passwordLocator); + passwordField.clear(); + passwordField.sendKeys("admin123"); + Assert.assertTrue(passwordField.getAttribute("value").length() > 0, "Password field is empty."); + Assert.assertEquals(passwordField.getAttribute("type"), "password", "Password field is not masked."); + test.pass("Password field is populated and masked."); + + // Step 5: Click Login button + test.info("Step 5: Click on Login button."); + By loginButton = By.cssSelector("button[type='submit']"); + waitUntilClickable(loginButton).click(); + wait.until(ExpectedConditions.or( + ExpectedConditions.urlContains("/dashboard"), + ExpectedConditions.presenceOfElementLocated(By.cssSelector("header h6")) + )); + Assert.assertFalse(driver.getCurrentUrl().contains("/auth/login"), "User is still on login page after attempting to login."); + test.pass("User is authenticated and navigated away from login page."); + + // Step 6: Verify Dashboard header + test.info("Step 6: Verify 'Dashboard' header is visible."); + WebElement dashboardHeader = waitUntilVisible(By.cssSelector("header h6")); + Assert.assertEquals(dashboardHeader.getText().trim(), "Dashboard", "Dashboard header text mismatch."); + Assert.assertTrue(driver.getCurrentUrl().contains("/dashboard"), "URL does not contain '/dashboard'."); + test.pass("Dashboard page is displayed (header 'Dashboard' visible; URL contains '/dashboard')."); + + // Step 7: Click My Info + test.info("Step 7: Click sidebar menu item 'My Info'."); + By myInfoMenu = By.xpath("//span[normalize-space()='My Info']"); + waitUntilClickable(myInfoMenu).click(); + test.pass("Navigation to 'My Info' page initiated."); + + // Step 8: Verify Personal Details header + test.info("Step 8: Verify 'Personal Details' section header is visible."); + WebElement personalDetailsHeader = waitUntilVisible(By.xpath("//h6[normalize-space()='Personal Details']")); + Assert.assertEquals(personalDetailsHeader.getText().trim(), "Personal Details", "Personal Details header not visible."); + test.pass("'Personal Details' section is displayed."); + + // Step 9: Read First Name + test.info("Step 9: Read value from 'First Name' field."); + WebElement firstNameField = waitUntilVisible(By.cssSelector("input[name='firstName']")); + firstNameValue = firstNameField.getAttribute("value"); + test.pass("Captured 'firstNameValue' successfully."); + + // Step 10: Log First Name value + test.info("Step 10: Print/Log 'firstNameValue'."); + System.out.println("Captured First Name: " + firstNameValue); + test.pass("The value of 'firstNameValue' is: " + firstNameValue); + + // Step 11: Assert Not Empty + test.info("Step 11: Assert that 'firstNameValue' is not empty."); + Assert.assertTrue(firstNameValue != null && firstNameValue.trim().length() > 0, "'firstNameValue' is empty."); + test.pass("Assertion passed: 'firstNameValue' is not empty."); + + } catch (Exception e) { + String screenshotPath = captureScreenshot("failure"); + test.fail("Test failed with exception: " + e.getMessage(), + MediaEntityBuilder.createScreenCaptureFromPath(screenshotPath).build()); + Assert.fail("Test failed due to exception: " + e.getMessage(), e); + } + } + + private WebElement waitUntilVisible(By locator) { + return wait.until(ExpectedConditions.visibilityOfElementLocated(locator)); + } + + private WebElement waitUntilClickable(By locator) { + return wait.until(ExpectedConditions.elementToBeClickable(locator)); + } + + private String captureScreenshot(String namePrefix) { + String timestamp = new SimpleDateFormat("yyyyMMdd_HHmmss_SSS").format(new Date()); + String fileName = namePrefix + "_" + timestamp + ".png"; + Path destination = Paths.get("reports", "screenshots", fileName); + try { + Files.createDirectories(destination.getParent()); + File src = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE); + Files.copy(src.toPath(), destination, StandardCopyOption.REPLACE_EXISTING); + } catch (IOException ioe) { + try { + byte[] bytes = ((TakesScreenshot) driver).getScreenshotAs(OutputType.BYTES); + Files.write(destination, bytes); + } catch (IOException ignored) { + } + } + return destination.toString(); + } +} \ No newline at end of file diff --git a/ai-selenium-test-generator/src/test/resources/AI_Generated_JSON_Test.json b/ai-selenium-test-generator/src/test/resources/AI_Generated_JSON_Test.json new file mode 100644 index 0000000..a1435ae --- /dev/null +++ b/ai-selenium-test-generator/src/test/resources/AI_Generated_JSON_Test.json @@ -0,0 +1,83 @@ +{ + "testCaseName": "Login and Verify Personal Information on OrangeHRM Demo", + "description": "Validate that a registered user can log in to the OrangeHRM demo site, navigate to My Info, and verify that the Personal Details section displays a non-empty First Name.", + "steps": [ + { + "stepNumber": 1, + "action": "Navigate to URL", + "target": "https://opensource-demo.orangehrmlive.com/", + "input": null, + "expectedValidation": "Login page loads successfully (username and password fields are present)." + }, + { + "stepNumber": 2, + "action": "Verify page title", + "target": "Browser Title", + "input": null, + "expectedValidation": "Title equals 'OrangeHRM'." + }, + { + "stepNumber": 3, + "action": "Enter text", + "target": "Username field (CSS: input[name='username'])", + "input": "Admin", + "expectedValidation": "Username field contains 'Admin'." + }, + { + "stepNumber": 4, + "action": "Enter text", + "target": "Password field (CSS: input[name='password'])", + "input": "admin123", + "expectedValidation": "Password field is populated (value masked)." + }, + { + "stepNumber": 5, + "action": "Click", + "target": "Login button (CSS: button[type='submit'])", + "input": null, + "expectedValidation": "User is authenticated and navigated away from login page." + }, + { + "stepNumber": 6, + "action": "Verify element visible", + "target": "Dashboard header (CSS: header h6, text equals 'Dashboard')", + "input": null, + "expectedValidation": "Dashboard page is displayed (header 'Dashboard' visible; URL may contain '/dashboard')." + }, + { + "stepNumber": 7, + "action": "Click", + "target": "Sidebar menu item 'My Info' (e.g., XPath: //span[normalize-space()='My Info'])", + "input": null, + "expectedValidation": "Navigation to 'My Info' page initiated." + }, + { + "stepNumber": 8, + "action": "Verify element visible", + "target": "Section header 'Personal Details' (CSS: h6, text equals 'Personal Details')", + "input": null, + "expectedValidation": "'Personal Details' section is displayed." + }, + { + "stepNumber": 9, + "action": "Read/Get value", + "target": "First Name field (CSS: input[name='firstName'])", + "input": null, + "expectedValidation": "Capture the current value and store it as variable 'firstNameValue'." + }, + { + "stepNumber": 10, + "action": "Print/Log", + "target": "Variable 'firstNameValue'", + "input": null, + "expectedValidation": "The value of 'firstNameValue' is printed to the console/log." + }, + { + "stepNumber": 11, + "action": "Assert Not Empty", + "target": "Variable 'firstNameValue'", + "input": null, + "expectedValidation": "'firstNameValue' is not empty (length > 0)." + } + ] +} \ No newline at end of file diff --git a/ai-selenium-test-generator/src/test/ressources/AI_GeneratedTest_20251114_200000.json b/ai-selenium-test-generator/src/test/ressources/AI_GeneratedTest_20251114_200000.json new file mode 100644 index 0000000..4c961a6 --- /dev/null +++ b/ai-selenium-test-generator/src/test/ressources/AI_GeneratedTest_20251114_200000.json @@ -0,0 +1,172 @@ +[ + { + "testCaseName": "Login - Valid Credentials (Verify Dashboard Visibility)", + "description": "Verify that a registered user can successfully log in to OrangeHRM using valid credentials and see the Dashboard.", + "steps": [ + { + "stepNumber": 1, + "action": "Navigate", + "target": "https://opensource-demo.orangehrmlive.com/", + "inputValues": null, + "expectedValidation": "Login page loads successfully." + }, + { + "stepNumber": 2, + "action": "Verify Page Title", + "target": "Browser Title", + "inputValues": null, + "expectedValidation": "Title equals 'OrangeHRM'." + }, + { + "stepNumber": 3, + "action": "Enter Text", + "target": "Username field", + "inputValues": { + "username": "Admin" + }, + "expectedValidation": "Username value is entered." + }, + { + "stepNumber": 4, + "action": "Enter Text", + "target": "Password field", + "inputValues": { + "password": "admin123" + }, + "expectedValidation": "Password value is entered." + }, + { + "stepNumber": 5, + "action": "Click", + "target": "Login button", + "inputValues": null, + "expectedValidation": "Login request is submitted." + }, + { + "stepNumber": 6, + "action": "Verify Element Visibility", + "target": "Dashboard header", + "inputValues": null, + "expectedValidation": "Dashboard page is displayed (e.g., heading 'Dashboard' visible and/or URL contains '/dashboard')." + } + ] + }, + { + "testCaseName": "Login - Valid Credentials (Verify URL and User Menu)", + "description": "Verify successful login with valid credentials by confirming Dashboard access via URL and presence of user profile/menu.", + "steps": [ + { + "stepNumber": 1, + "action": "Navigate", + "target": "https://opensource-demo.orangehrmlive.com/", + "inputValues": null, + "expectedValidation": "Login page loads successfully." + }, + { + "stepNumber": 2, + "action": "Verify Page Title", + "target": "Browser Title", + "inputValues": null, + "expectedValidation": "Title equals 'OrangeHRM'." + }, + { + "stepNumber": 3, + "action": "Enter Text", + "target": "Username field", + "inputValues": { + "username": "Admin" + }, + "expectedValidation": "Username value is entered." + }, + { + "stepNumber": 4, + "action": "Enter Text", + "target": "Password field", + "inputValues": { + "password": "admin123" + }, + "expectedValidation": "Password value is entered." + }, + { + "stepNumber": 5, + "action": "Click", + "target": "Login button", + "inputValues": null, + "expectedValidation": "Login request is submitted." + }, + { + "stepNumber": 6, + "action": "Verify URL", + "target": "Browser Address Bar", + "inputValues": null, + "expectedValidation": "URL contains '/dashboard'." + }, + { + "stepNumber": 7, + "action": "Verify Element Visibility", + "target": "User profile/avatar menu (top-right)", + "inputValues": null, + "expectedValidation": "User profile/avatar menu is visible, indicating authenticated session." + } + ] + }, + { + "testCaseName": "Login - Invalid Credentials (Negative)", + "description": "Verify that login fails with an invalid password and the user remains on the login page with an appropriate error message.", + "steps": [ + { + "stepNumber": 1, + "action": "Navigate", + "target": "https://opensource-demo.orangehrmlive.com/", + "inputValues": null, + "expectedValidation": "Login page loads successfully." + }, + { + "stepNumber": 2, + "action": "Verify Page Title", + "target": "Browser Title", + "inputValues": null, + "expectedValidation": "Title equals 'OrangeHRM'." + }, + { + "stepNumber": 3, + "action": "Enter Text", + "target": "Username field", + "inputValues": { + "username": "Admin" + }, + "expectedValidation": "Username value is entered." + }, + { + "stepNumber": 4, + "action": "Enter Text", + "target": "Password field", + "inputValues": { + "password": "wrongpass" + }, + "expectedValidation": "Password value is entered." + }, + { + "stepNumber": 5, + "action": "Click", + "target": "Login button", + "inputValues": null, + "expectedValidation": "Login request is submitted." + }, + { + "stepNumber": 6, + "action": "Verify Error Message", + "target": "Login error notification/message", + "inputValues": null, + "expectedValidation": "Error message 'Invalid credentials' is displayed." + }, + { + "stepNumber": 7, + "action": "Verify Stay on Page", + "target": "Login page", + "inputValues": null, + "expectedValidation": "Still on login page (e.g., URL contains '/auth' or login form visible). Dashboard is not visible." + } + ] + } +] \ No newline at end of file