documenting my Automation test script practice on parabank demo site
BIN
AccountID.xlsx
Normal file
397
ExtentReportResults.html
Normal file
|
|
@ -0,0 +1,397 @@
|
|||
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<!--
|
||||
ExtentReports Library 2.41.1 | http://relevantcodes.com/extentreports-for-selenium/ | https://github.com/anshooarora/
|
||||
Copyright (c) 2015, Anshoo Arora (Relevant Codes) | Copyrights licensed under the New BSD License | http://opensource.org/licenses/BSD-3-Clause
|
||||
Documentation: http://extentreports.relevantcodes.com
|
||||
-->
|
||||
|
||||
<meta charset='UTF-8' />
|
||||
<meta name='description' content='ExtentReports (by Anshoo Arora) is a reporting library for automation testing for .NET and Java. It creates detailed and beautiful HTML reports for modern browsers. ExtentReports shows test and step summary along with dashboards, system and environment details for quick analysis of your tests.' />
|
||||
<meta name='robots' content='noodp, noydir' />
|
||||
<meta name='viewport' content='width=device-width, initial-scale=1' />
|
||||
<meta name='extentx' id='extentx' content='' />
|
||||
|
||||
<title>
|
||||
ExtentReports 2.0
|
||||
</title>
|
||||
|
||||
|
||||
<link href='https://fonts.googleapis.com/css?family=Source+Sans+Pro:400,600' rel='stylesheet' type='text/css'>
|
||||
<link href='https://cdn.rawgit.com/anshooarora/extentreports/6032d73243ba4fe4fb8769eb9c315d4fdf16fe68/cdn/extent.css' type='text/css' rel='stylesheet' />
|
||||
|
||||
<style>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</style>
|
||||
</head>
|
||||
|
||||
|
||||
<body class='extent default standard hide-overflow'>
|
||||
<!-- nav -->
|
||||
<nav>
|
||||
<div class='logo-container blue darken-2'>
|
||||
<a class='logo-content' href='http://extentreports.relevantcodes.com'>
|
||||
<span>ExtentReports</span>
|
||||
</a>
|
||||
<a href='#' data-activates='slide-out' class='button-collapse hide-on-large-only'><i class='mdi-navigation-apps'></i></a>
|
||||
</div>
|
||||
<ul id='slide-out' class='side-nav fixed hide-on-med-and-down'>
|
||||
<li class='analysis waves-effect active'><a href='#!' class='test-view' onclick="_updateCurrentStage(0)"><i class='mdi-action-dashboard'></i>Test Details</a></li>
|
||||
<li class='analysis waves-effect'>
|
||||
<a href='#!' onclick="_updateCurrentStage(-1)" class='dashboard-view'><i class='mdi-action-track-changes'></i></i>Analysis</a>
|
||||
</li>
|
||||
</ul>
|
||||
<span class='report-name'>Automation Report</span> <span class='report-headline'></span>
|
||||
<ul class='right hide-on-med-and-down nav-right'>
|
||||
<li class='theme-selector' alt='Click to toggle dark theme. To enable by default, use js configuration $("body").addClass("dark");' title='Click to toggle dark theme. To enable by default, use js configuration $("body").addClass("dark");'>
|
||||
<i class='mdi-hardware-desktop-windows'></i>
|
||||
</li>
|
||||
<li>
|
||||
<span class='suite-started-time'>2023-03-24 11:34:00</span>
|
||||
</li>
|
||||
<li>
|
||||
<span>v2.41.1</span>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
<!-- /nav -->
|
||||
|
||||
<!-- container -->
|
||||
<div class='container'>
|
||||
|
||||
<!-- dashboard -->
|
||||
<div id='dashboard-view' class='row'>
|
||||
<div class='time-totals'>
|
||||
<div class='col l2 m4 s6'>
|
||||
<div class='card suite-total-tests'>
|
||||
<span class='panel-name'>Total Tests</span>
|
||||
<span class='total-tests'> <span class='panel-lead'></span> </span>
|
||||
</div>
|
||||
</div>
|
||||
<div class='col l2 m4 s6'>
|
||||
<div class='card suite-total-steps'>
|
||||
<span class='panel-name'>Total Steps</span>
|
||||
<span class='total-steps'> <span class='panel-lead'></span> </span>
|
||||
</div>
|
||||
</div>
|
||||
<div class='col l2 m4 s12'>
|
||||
<div class='card suite-total-time-current'>
|
||||
<span class='panel-name'>Total Time Taken (Current Run)</span>
|
||||
<span class='suite-total-time-current-value panel-lead'>0h 0m 19s+38ms</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class='col l2 m4 s12'>
|
||||
<div class='card suite-total-time-overall'>
|
||||
<span class='panel-name'>Total Time Taken (Overall)</span>
|
||||
<span class='suite-total-time-overall-value panel-lead'>0h 0m 19s+38ms</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class='col l2 m4 s6 suite-start-time'>
|
||||
<div class='card accent green-accent'>
|
||||
<span class='panel-name'>Start</span>
|
||||
<span class='panel-lead suite-started-time'>2023-03-24 11:33:41</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class='col l2 m4 s6 suite-end-time'>
|
||||
<div class='card accent pink-accent'>
|
||||
<span class='panel-name'>End</span>
|
||||
<span class='panel-lead suite-ended-time'>2023-03-24 11:34:00</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class='charts'>
|
||||
<div class='col s12 m6 l4 fh'>
|
||||
<div class='card-panel'>
|
||||
<div>
|
||||
<span class='panel-name'>Tests View</span>
|
||||
</div>
|
||||
<div class='panel-setting modal-trigger test-count-setting right'>
|
||||
<a href='#test-count-setting'><i class='mdi-navigation-more-vert text-md'></i></a>
|
||||
</div>
|
||||
<div class='chart-box'>
|
||||
<canvas class='text-centered' id='test-analysis'></canvas>
|
||||
</div>
|
||||
<div>
|
||||
<span class='weight-light'><span class='t-pass-count weight-normal'></span> test(s) passed</span>
|
||||
</div>
|
||||
<div>
|
||||
<span class='weight-light'><span class='t-fail-count weight-normal'></span> test(s) failed, <span class='t-others-count weight-normal'></span> others</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class='col s12 m6 l4 fh'>
|
||||
<div class='card-panel'>
|
||||
<div>
|
||||
<span class='panel-name'>Steps View</span>
|
||||
</div>
|
||||
<div class='panel-setting modal-trigger step-status-filter right'>
|
||||
<a href='#step-status-filter'><i class='mdi-navigation-more-vert text-md'></i></a>
|
||||
</div>
|
||||
<div class='chart-box'>
|
||||
<canvas class='text-centered' id='step-analysis'></canvas>
|
||||
</div>
|
||||
<div>
|
||||
<span class='weight-light'><span class='s-pass-count weight-normal'></span> step(s) passed </span>
|
||||
</div>
|
||||
<div>
|
||||
<span class='weight-light'><span class='s-fail-count weight-normal'></span> step(s) failed, <span class='s-others-count weight-normal'></span> others</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class='col s12 m12 l4 fh'>
|
||||
<div class='card-panel'>
|
||||
<span class='panel-name'>Pass Percentage</span>
|
||||
<span class='pass-percentage panel-lead'></span>
|
||||
<div class='progress light-blue lighten-3'>
|
||||
<div class='determinate light-blue'></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class='system-view'>
|
||||
<div class='col l4 m12 s12'>
|
||||
<div class='card-panel'>
|
||||
<span class='label info outline right'>Environment</span>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Param</th>
|
||||
<th>Value</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>User Name</td>
|
||||
<td>1000074437</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>OS</td>
|
||||
<td>Windows Server 2019</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Java Version</td>
|
||||
<td>15.0.2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Host Name</td>
|
||||
<td>Evolve-VM-28</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /dashboard -->
|
||||
|
||||
<!-- tests -->
|
||||
<div id='test-view' class='row _addedTable'>
|
||||
<div class='col _addedCell1'>
|
||||
<div class='contents'>
|
||||
<div class='card-panel heading'>
|
||||
<h5>Tests</h5>
|
||||
</div>
|
||||
<div class='card-panel filters'>
|
||||
<div>
|
||||
<a class='dropdown-button btn-floating btn-small waves-effect waves-light grey tests-toggle' data-activates='tests-toggle' data-constrainwidth='true' data-beloworigin='true' data-hover='true' href='#'>
|
||||
<i class='mdi-action-reorder'></i>
|
||||
</a>
|
||||
<ul id='tests-toggle' class='dropdown-content'>
|
||||
<li class='pass'><a href='#!'>Pass</a></li>
|
||||
<li class='fail'><a href='#!'>Fail</a></li>
|
||||
<li class='skip'><a href='#!'>Skip</a></li>
|
||||
<li class='divider'></li>
|
||||
<li class='clear'><a href='#!'>Clear Filters</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div>
|
||||
<a class='btn-floating btn-small waves-effect waves-light grey' id='clear-filters' alt='Clear Filters' title='Clear Filters'>
|
||||
<i class='mdi-navigation-close'></i>
|
||||
</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class='btn-floating btn-small waves-effect waves-light grey' id='enableDashboard' alt='Enable Dashboard' title='Enable Dashboard'>
|
||||
<i class='mdi-action-track-changes'></i>
|
||||
</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class='btn-floating btn-small waves-effect waves-light blue enabled' id='refreshCharts' alt='Refresh Charts on Filters' title='Refresh Charts on Filters'>
|
||||
<i class='mdi-navigation-refresh'></i>
|
||||
</a>
|
||||
</div>
|
||||
<div class='search' alt='Search Tests' title='Search Tests'>
|
||||
<div class='input-field left'>
|
||||
<input id='searchTests' type='text' class='validate' placeholder='Search Tests...'>
|
||||
</div>
|
||||
<a href="#" class='btn-floating btn-small waves-effect waves-light grey'>
|
||||
<i class='mdi-action-search'></i>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class='card-panel no-padding-h no-padding-v no-margin-v'>
|
||||
<div class='wrapper'>
|
||||
<ul id='test-collection' class='test-collection'>
|
||||
<li class='collection-item test displayed active pass ' extentid='f0d92290-16ce-49a5-b3f7-ec6cacd5b32e'>
|
||||
<div class='test-head'>
|
||||
<span class='test-name'>ExtentDemo </span>
|
||||
<span class='test-status label right outline capitalize pass'>pass</span>
|
||||
<span class='category-assigned hide '></span>
|
||||
</div>
|
||||
<div class='test-body'>
|
||||
<div class='test-info'>
|
||||
<span title='Test started time' alt='Test started time' class='test-started-time label green lighten-1 text-white'>2023-03-24 11:33:41</span>
|
||||
<span title='Test ended time' alt='Test ended time' class='test-ended-time label red lighten-1 text-white'>2023-03-24 11:34:00</span>
|
||||
<span title='Time taken to finish' alt='Time taken to finish' class='test-time-taken label blue-grey lighten-3 text-white'>0h 0m 18s+685ms</span>
|
||||
</div>
|
||||
<div class='test-desc'></div>
|
||||
<div class='test-attributes'>
|
||||
</div>
|
||||
<div class='test-steps'>
|
||||
<table class='bordered table-results'>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Status</th>
|
||||
<th>Timestamp</th>
|
||||
<th>Details</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class='status pass' title='pass' alt='pass'><i class='mdi-action-check-circle'></i></td>
|
||||
<td class='timestamp'>11:33:45</td>
|
||||
<td class='step-details'><a href='C:\Users\1000074437\Desktop\1000074437\Parabank\parabank\parabank\src\..\Screenshots\1679637825831.png' data-featherlight='image'><img class='report-img' src='file:///C:\Users\1000074437\Desktop\1000074437\Parabank\parabank\parabank\src\..\Screenshots\1679637825831.png' /></a>[+] Navigated to Parabank URL</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class='status pass' title='pass' alt='pass'><i class='mdi-action-check-circle'></i></td>
|
||||
<td class='timestamp'>11:33:50</td>
|
||||
<td class='step-details'><a href='C:\Users\1000074437\Desktop\1000074437\Parabank\parabank\parabank\src\..\Screenshots\1679637830105.png' data-featherlight='image'><img class='report-img' src='file:///C:\Users\1000074437\Desktop\1000074437\Parabank\parabank\parabank\src\..\Screenshots\1679637830105.png' /></a>[+] Account Registration Done.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class='status pass' title='pass' alt='pass'><i class='mdi-action-check-circle'></i></td>
|
||||
<td class='timestamp'>11:33:52</td>
|
||||
<td class='step-details'><a href='C:\Users\1000074437\Desktop\1000074437\Parabank\parabank\parabank\src\..\Screenshots\1679637832446.png' data-featherlight='image'><img class='report-img' src='file:///C:\Users\1000074437\Desktop\1000074437\Parabank\parabank\parabank\src\..\Screenshots\1679637832446.png' /></a>[+] user Login Successful.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class='status pass' title='pass' alt='pass'><i class='mdi-action-check-circle'></i></td>
|
||||
<td class='timestamp'>11:33:53</td>
|
||||
<td class='step-details'><a href='C:\Users\1000074437\Desktop\1000074437\Parabank\parabank\parabank\src\..\Screenshots\1679637833944.png' data-featherlight='image'><img class='report-img' src='file:///C:\Users\1000074437\Desktop\1000074437\Parabank\parabank\parabank\src\..\Screenshots\1679637833944.png' /></a>[+] opened new Account successfully</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<ul class='collapsible node-list' data-collapsible='accordion'>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id='test-details-wrapper' class='col _addedCell2'>
|
||||
<div class='contents'>
|
||||
<div class='card-panel details-view'>
|
||||
<h5 class='details-name'></h5>
|
||||
<div class='step-filters right'>
|
||||
<span class='btn-floating btn-small waves-effect waves-light blue' status='info' alt='info' title='info'><i class='mdi-action-info-outline'></i></span>
|
||||
<span class='btn-floating btn-small waves-effect waves-light green' status='pass' alt='pass' title='pass'><i class='mdi-action-check-circle'></i></span>
|
||||
<span class='btn-floating btn-small waves-effect waves-light red' status='fail' alt='fail' title='fail'><i class='mdi-navigation-cancel'></i></span>
|
||||
<span class='btn-floating btn-small waves-effect waves-light red darken-4' status='fatal' alt='fatal' title='fatal'><i class='mdi-navigation-cancel'></i></span>
|
||||
<span class='btn-floating btn-small waves-effect waves-light red lighten-2' status='error' alt='error' title='error'><i class='mdi-alert-error'></i></span>
|
||||
<span class='btn-floating btn-small waves-effect waves-light orange' alt='warning' status='warning' title='warning'><i class='mdi-alert-warning'></i></span>
|
||||
<span class='btn-floating btn-small waves-effect waves-light cyan' status='skip' alt='skip' title='skip'><i class='mdi-content-redo'></i></span>
|
||||
<span class='btn-floating btn-small waves-effect waves-light grey darken-2' status='clear-step-filter' alt='Clear filters' title='Clear filters'><i class='mdi-content-clear'></i></span>
|
||||
</div>
|
||||
<div class='details-container'>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /tests -->
|
||||
|
||||
<!-- categories -->
|
||||
<!-- /categories -->
|
||||
|
||||
<!-- exceptions -->
|
||||
<!-- /exceptions -->
|
||||
|
||||
<!-- testrunner logs -->
|
||||
<!-- /testrunner logs -->
|
||||
|
||||
</div>
|
||||
<!-- /container -->
|
||||
|
||||
<!-- test dashboard counts setting -->
|
||||
<div id='test-count-setting' class='modal bottom-sheet'>
|
||||
<div class='modal-content'>
|
||||
<h5>Configure Tests Count Setting</h5>
|
||||
<input name='test-count-setting' type='radio' id='parentWithoutNodes' class='with-gap'>
|
||||
<label for='parentWithoutNodes'>Parent Tests Only (Does not include child nodes in counts)</label>
|
||||
<br>
|
||||
<input name='test-count-setting' type='radio' id='parentWithoutNodesAndNodes' class='with-gap'>
|
||||
<label for='parentWithoutNodesAndNodes'>Parent Tests Without Child Tests + Child Tests</label>
|
||||
<br>
|
||||
<input name='test-count-setting' type='radio' id='childNodes' class='with-gap'>
|
||||
<label for='childNodes'>Child Tests Only</label>
|
||||
</div>
|
||||
<div class='modal-footer'>
|
||||
<a href='#!' class='modal-action modal-close waves-effect waves-green btn'>Save</a>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /test dashboard counts setting -->
|
||||
|
||||
<!-- filter for step status -->
|
||||
<div id='step-status-filter' class='modal bottom-sheet'>
|
||||
<div class='modal-content'>
|
||||
<h5>Select status</h5>
|
||||
<input checked class='filled-in' type='checkbox' id='step-dashboard-filter-pass'>
|
||||
<label for='step-dashboard-filter-pass'>Pass</label>
|
||||
<br>
|
||||
<input checked class='filled-in' type='checkbox' id='step-dashboard-filter-fail'>
|
||||
<label for='step-dashboard-filter-fail'>Fail</label>
|
||||
<br>
|
||||
<input checked class='filled-in' type='checkbox' id='step-dashboard-filter-fatal'>
|
||||
<label for='step-dashboard-filter-fatal'>Fatal</label>
|
||||
<br>
|
||||
<input checked class='filled-in' type='checkbox' id='step-dashboard-filter-error'>
|
||||
<label for='step-dashboard-filter-error'>Error</label>
|
||||
<br>
|
||||
<input checked class='filled-in' type='checkbox' id='step-dashboard-filter-warning'>
|
||||
<label for='step-dashboard-filter-warning'>Warning</label>
|
||||
<br>
|
||||
<input checked class='filled-in' type='checkbox' id='step-dashboard-filter-skip'>
|
||||
<label for='step-dashboard-filter-skip'>Skipped</label>
|
||||
<br>
|
||||
<input checked class='filled-in' type='checkbox' id='step-dashboard-filter-info'>
|
||||
<label for='step-dashboard-filter-info'>Info</label>
|
||||
<br>
|
||||
<input checked class='filled-in' type='checkbox' id='step-dashboard-filter-unknown'>
|
||||
<label for='step-dashboard-filter-unknown'>Unknown</label>
|
||||
</div>
|
||||
<div class='modal-footer'>
|
||||
<a href='#!' class='modal-action modal-close waves-effect waves-green btn'>Save</a>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /filter for step status -->
|
||||
|
||||
<script src='https://cdn.rawgit.com/anshooarora/extentreports/6032d73243ba4fe4fb8769eb9c315d4fdf16fe68/cdn/extent.js' type='text/javascript'></script>
|
||||
|
||||
<script>$(document).ready(function() { $('.logo span').html('ExtentReports'); });</script>
|
||||
<script>
|
||||
|
||||
|
||||
$(document).ready(function() {
|
||||
|
||||
});
|
||||
|
||||
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
BIN
Screenshots/1679637577314.png
Normal file
|
After Width: | Height: | Size: 145 KiB |
BIN
Screenshots/1679637582486.png
Normal file
|
After Width: | Height: | Size: 103 KiB |
BIN
Screenshots/1679637584818.png
Normal file
|
After Width: | Height: | Size: 106 KiB |
BIN
Screenshots/1679637586348.png
Normal file
|
After Width: | Height: | Size: 100 KiB |
BIN
Screenshots/1679637825831.png
Normal file
|
After Width: | Height: | Size: 145 KiB |
BIN
Screenshots/1679637830105.png
Normal file
|
After Width: | Height: | Size: 102 KiB |
BIN
Screenshots/1679637832446.png
Normal file
|
After Width: | Height: | Size: 105 KiB |
BIN
Screenshots/1679637833944.png
Normal file
|
After Width: | Height: | Size: 100 KiB |
259
pom.xml
Normal file
|
|
@ -0,0 +1,259 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<groupId>com.hexaware</groupId>
|
||||
<artifactId>parabank</artifactId>
|
||||
<version>0.0.1-SNAPSHOT</version>
|
||||
|
||||
<name>parabank</name>
|
||||
<!-- FIXME change it to the project's website -->
|
||||
<url>http://www.example.com</url>
|
||||
|
||||
<properties>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
<maven.compiler.source>1.7</maven.compiler.source>
|
||||
<maven.compiler.target>1.7</maven.compiler.target>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>junit</groupId>
|
||||
<artifactId>junit</artifactId>
|
||||
<version>4.11</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
|
||||
<dependency>
|
||||
<groupId>com.relevantcodes</groupId>
|
||||
<artifactId>extentreports</artifactId>
|
||||
<version>2.41.2</version>
|
||||
</dependency>
|
||||
|
||||
|
||||
<!-- https://mvnrepository.com/artifact/com.github.javafaker/javafaker -->
|
||||
<dependency>
|
||||
<groupId>com.github.javafaker</groupId>
|
||||
<artifactId>javafaker</artifactId>
|
||||
<version>1.0.2</version>
|
||||
</dependency>
|
||||
|
||||
|
||||
<!-- https://mvnrepository.com/artifact/org.testng/testng -->
|
||||
<dependency>
|
||||
<groupId>org.testng</groupId>
|
||||
<artifactId>testng</artifactId>
|
||||
<version>7.4.0</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>junit</groupId>
|
||||
<artifactId>junit</artifactId>
|
||||
<version>${junit.version}</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
|
||||
<dependency>
|
||||
<groupId>org.seleniumhq.selenium</groupId>
|
||||
<artifactId>selenium-java</artifactId>
|
||||
<version>4.1.0</version>
|
||||
</dependency>
|
||||
|
||||
<!-- https://mvnrepository.com/artifact/io.github.bonigarcia/webdrivermanager -->
|
||||
<dependency>
|
||||
<groupId>io.github.bonigarcia</groupId>
|
||||
<artifactId>webdrivermanager</artifactId>
|
||||
<version>3.8.1</version>
|
||||
</dependency>
|
||||
|
||||
<!-- https://mvnrepository.com/artifact/tech.grasshopper/extentreports-cucumber6-adapter -->
|
||||
<dependency>
|
||||
<groupId>tech.grasshopper</groupId>
|
||||
<artifactId>extentreports-cucumber6-adapter</artifactId>
|
||||
<version>2.8.4</version>
|
||||
</dependency>
|
||||
<!-- https://mvnrepository.com/artifact/com.ibm.db2/jcc -->
|
||||
<dependency>
|
||||
<groupId>com.ibm.db2</groupId>
|
||||
<artifactId>jcc</artifactId>
|
||||
<version>11.5.6.0</version>
|
||||
</dependency>
|
||||
<!-- https://mvnrepository.com/artifact/com.ibm.db2.jcc/db2jcc -->
|
||||
<dependency>
|
||||
<groupId>com.ibm.db2.jcc</groupId>
|
||||
<artifactId>db2jcc</artifactId>
|
||||
<version>db2jcc4</version>
|
||||
</dependency>
|
||||
|
||||
<!-- https://mvnrepository.com/artifact/commons-dbutils/commons-dbutils -->
|
||||
<dependency>
|
||||
<groupId>commons-dbutils</groupId>
|
||||
<artifactId>commons-dbutils</artifactId>
|
||||
<version>1.5</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>net.sf.jt400</groupId>
|
||||
<artifactId>jt400</artifactId>
|
||||
<version>10.6</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>junit</groupId>
|
||||
<artifactId>junit</artifactId>
|
||||
<version>4.13.2</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>io.cucumber</groupId>
|
||||
<artifactId>datatable</artifactId>
|
||||
<version>3.5.0</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.projectlombok</groupId>
|
||||
<artifactId>lombok</artifactId>
|
||||
<version>1.18.22</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>io.rest-assured</groupId>
|
||||
<artifactId>rest-assured</artifactId>
|
||||
<version>4.4.0</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>io.rest-assured</groupId>
|
||||
<artifactId>rest-assured</artifactId>
|
||||
<version>4.4.0</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.seleniumhq.selenium</groupId>
|
||||
<artifactId>selenium-devtools-v101</artifactId>
|
||||
<version>4.1.4</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.poi</groupId>
|
||||
<artifactId>poi-ooxml</artifactId>
|
||||
<version>4.1.0</version>
|
||||
</dependency>
|
||||
|
||||
<!-- https://mvnrepository.com/artifact/com.github.stephenc.monte/monte-screen-recorder -->
|
||||
<dependency>
|
||||
<groupId>com.github.stephenc.monte</groupId>
|
||||
<artifactId>monte-screen-recorder</artifactId>
|
||||
<version>0.7.7.0</version>
|
||||
</dependency>
|
||||
|
||||
|
||||
<!-- https://mvnrepository.com/artifact/tech.grasshopper/extentreports-cucumber6-adapter -->
|
||||
<dependency>
|
||||
<groupId>tech.grasshopper</groupId>
|
||||
<artifactId>extentreports-cucumber6-adapter</artifactId>
|
||||
<version>2.1.0</version>
|
||||
</dependency>
|
||||
|
||||
|
||||
<!-- https://mvnrepository.com/artifact/com.aventstack/extentreports -->
|
||||
<dependency>
|
||||
<groupId>com.aventstack</groupId>
|
||||
<artifactId>extentreports</artifactId>
|
||||
<version>5.0.4</version>
|
||||
</dependency>
|
||||
|
||||
|
||||
|
||||
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->
|
||||
<dependency>
|
||||
<groupId>org.apache.poi</groupId>
|
||||
<artifactId>poi</artifactId>
|
||||
<version>5.2.3</version>
|
||||
</dependency>
|
||||
|
||||
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml -->
|
||||
<dependency>
|
||||
<groupId>org.apache.poi</groupId>
|
||||
<artifactId>poi-ooxml</artifactId>
|
||||
<version>5.2.3</version>
|
||||
</dependency>
|
||||
|
||||
<!-- https://mvnrepository.com/artifact/commons-io/commons-io -->
|
||||
<dependency>
|
||||
<groupId>commons-io</groupId>
|
||||
<artifactId>commons-io</artifactId>
|
||||
<version>2.11.0</version>
|
||||
</dependency>
|
||||
|
||||
|
||||
<!-- https://mvnrepository.com/artifact/com.opencsv/opencsv -->
|
||||
<dependency>
|
||||
<groupId>com.opencsv</groupId>
|
||||
<artifactId>opencsv</artifactId>
|
||||
<version>5.7.1</version>
|
||||
</dependency>
|
||||
|
||||
|
||||
<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 -->
|
||||
<dependency>
|
||||
<groupId>org.apache.commons</groupId>
|
||||
<artifactId>commons-lang3</artifactId>
|
||||
<version>3.12.0</version>
|
||||
</dependency>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
<pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
|
||||
<plugins>
|
||||
<!-- clean lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#clean_Lifecycle -->
|
||||
<plugin>
|
||||
<artifactId>maven-clean-plugin</artifactId>
|
||||
<version>3.1.0</version>
|
||||
</plugin>
|
||||
<!-- default lifecycle, jar packaging: see https://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_jar_packaging -->
|
||||
<plugin>
|
||||
<artifactId>maven-resources-plugin</artifactId>
|
||||
<version>3.0.2</version>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
<version>3.8.0</version>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-surefire-plugin</artifactId>
|
||||
<version>2.22.1</version>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-jar-plugin</artifactId>
|
||||
<version>3.0.2</version>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-install-plugin</artifactId>
|
||||
<version>2.5.2</version>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-deploy-plugin</artifactId>
|
||||
<version>2.8.2</version>
|
||||
</plugin>
|
||||
<!-- site lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#site_Lifecycle -->
|
||||
<plugin>
|
||||
<artifactId>maven-site-plugin</artifactId>
|
||||
<version>3.7.1</version>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-project-info-reports-plugin</artifactId>
|
||||
<version>3.0.0</version>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</pluginManagement>
|
||||
</build>
|
||||
</project>
|
||||
145
src/test/java/com/hexaware/parabank/OpenNewAccount.java
Normal file
|
|
@ -0,0 +1,145 @@
|
|||
package com.hexaware.parabank;
|
||||
|
||||
import java.io.FileInputStream;
|
||||
import java.util.Properties;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
|
||||
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
|
||||
import org.apache.poi.ss.usermodel.Cell;
|
||||
import org.apache.poi.ss.usermodel.Row;
|
||||
import org.apache.poi.ss.usermodel.Sheet;
|
||||
import org.apache.poi.ss.usermodel.Workbook;
|
||||
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
||||
import org.openqa.selenium.WebDriver;
|
||||
import org.openqa.selenium.WebElement;
|
||||
import org.openqa.selenium.support.FindBy;
|
||||
import org.openqa.selenium.support.PageFactory;
|
||||
import org.testng.Assert;
|
||||
|
||||
|
||||
|
||||
public class OpenNewAccount {
|
||||
WebDriver driver;
|
||||
String accId;
|
||||
Properties props = commonUtils.reader("src/test/java/com/hexaware/parabank/config.properties");
|
||||
public OpenNewAccount(WebDriver driver)throws IOException {
|
||||
this.driver = driver;
|
||||
PageFactory.initElements(this.driver, this);
|
||||
}
|
||||
|
||||
|
||||
@FindBy(xpath= "//a[text() = 'Open New Account']")
|
||||
private WebElement openNewAccountLink;
|
||||
|
||||
@FindBy(xpath = "//select[@id = 'type']")
|
||||
private WebElement accountTypeDropDown;
|
||||
|
||||
@FindBy(xpath = "//select[@id = 'fromAccountId']")
|
||||
private WebElement chooseAccountDropDown;
|
||||
|
||||
@FindBy(xpath = "//input[@value = 'Open New Account']")
|
||||
private WebElement openNewAccountBtn;
|
||||
|
||||
@FindBy(xpath = "(//div[@class = 'ng-scope']/p)[1]")
|
||||
private WebElement confirmationTxt;
|
||||
|
||||
@FindBy(xpath = "//a[@id = 'newAccountId']")
|
||||
private WebElement newAccountId;
|
||||
|
||||
public void clickOpenNewAccount() {
|
||||
openNewAccountLink.click();
|
||||
}
|
||||
|
||||
public boolean selectTransfer() {
|
||||
|
||||
try {
|
||||
commonUtils.DropDown(driver, accountTypeDropDown,"SAVINGS", 8);
|
||||
commonUtils.DropDownByIndex(driver, chooseAccountDropDown, 0, 8);
|
||||
commonUtils.aClick(driver,openNewAccountBtn);
|
||||
return true;
|
||||
}
|
||||
catch(Exception e) {
|
||||
e.printStackTrace();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
public boolean AssertWelcomeText() {
|
||||
try {
|
||||
boolean b = commonUtils.isVisible(driver, confirmationTxt, 8);
|
||||
if(b) {
|
||||
Assert.assertEquals(confirmationTxt.getText(),props.getProperty("welcomeTxt"));
|
||||
}
|
||||
return true;
|
||||
}
|
||||
catch(Exception | AssertionError e) {
|
||||
e.printStackTrace();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
public void FetchAccountID() throws IOException {
|
||||
accId = newAccountId.getText();
|
||||
System.out.println(accId);
|
||||
writer();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private void writer() throws IOException {
|
||||
|
||||
String[] valueToWrite = {accId};
|
||||
write(System.getProperty("user.dir"), "AccountID.xlsx", "AccountId", valueToWrite);
|
||||
}
|
||||
|
||||
|
||||
private void write(String path, String fileName, String sheetName, String[] dataToWrite) throws IOException {
|
||||
|
||||
FileInputStream fis = new FileInputStream(path + "//" + fileName);
|
||||
String fileExtensionName = fileName.substring(fileName.indexOf("."));
|
||||
Workbook wb = null;
|
||||
if (fileExtensionName.equals(".xlsx")) {
|
||||
|
||||
//If it is xlsx file then create object of XSSFWorkbook class
|
||||
|
||||
wb = new XSSFWorkbook(fis);
|
||||
|
||||
} else if (fileExtensionName.equals(".xls")) {
|
||||
|
||||
//If it is xls file then create object of HSSFWorkbook class
|
||||
|
||||
wb = new HSSFWorkbook(fis);
|
||||
|
||||
}
|
||||
|
||||
Sheet sheet = wb.getSheet(sheetName);
|
||||
int rowCount = sheet.getLastRowNum() - sheet.getFirstRowNum();
|
||||
Row row = sheet.getRow(0);
|
||||
Row newRow = sheet.createRow(rowCount + 1);
|
||||
|
||||
for (int j = 0; j < row.getLastCellNum() ; j++) {
|
||||
Cell cell = newRow.createCell(j);
|
||||
cell.setCellValue(dataToWrite[j]);
|
||||
}
|
||||
|
||||
fis.close();
|
||||
|
||||
FileOutputStream fos = new FileOutputStream(path + "//" + fileName);
|
||||
wb.write(fos);
|
||||
fos.close();
|
||||
System.out.println("[+] data inserted in excel file");
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
192
src/test/java/com/hexaware/parabank/RegisterationPage.java
Normal file
|
|
@ -0,0 +1,192 @@
|
|||
package com.hexaware.parabank;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.Properties;
|
||||
|
||||
import org.junit.Assert;
|
||||
import org.openqa.selenium.WebDriver;
|
||||
import org.openqa.selenium.WebElement;
|
||||
import org.openqa.selenium.support.FindBy;
|
||||
import org.openqa.selenium.support.PageFactory;
|
||||
|
||||
import com.github.javafaker.Faker;
|
||||
|
||||
public class RegisterationPage {
|
||||
WebDriver driver;
|
||||
Properties props = commonUtils.reader("src/test/java/com/hexaware/parabank/config.properties");
|
||||
public RegisterationPage(WebDriver driver)throws IOException {
|
||||
this.driver = driver;
|
||||
PageFactory.initElements(this.driver,this);
|
||||
}
|
||||
|
||||
@FindBy(xpath = "//a[text() = 'Register']")
|
||||
private WebElement RegisterLink;
|
||||
|
||||
@FindBy(xpath = "//input[@id = 'customer.firstName']")
|
||||
private WebElement firstNameTxtBox;
|
||||
|
||||
@FindBy(xpath = "//input[@id = 'customer.lastName']")
|
||||
private WebElement lastNameTxtBox;
|
||||
|
||||
@FindBy(xpath = "//input[@id = 'customer.address.street']")
|
||||
private WebElement addressTxtBox;
|
||||
|
||||
|
||||
@FindBy(xpath = "//input[@id = 'customer.address.city']")
|
||||
private WebElement cityTxtBox;
|
||||
|
||||
|
||||
@FindBy(xpath = "//input[@id = 'customer.address.state']")
|
||||
private WebElement stateTxtBox;
|
||||
|
||||
@FindBy(xpath = "//input[@id = 'customer.address.zipCode']")
|
||||
private WebElement zipCodeTxtBox;
|
||||
|
||||
@FindBy(xpath = "//input[@id = 'customer.phoneNumber']")
|
||||
private WebElement phoneNumberTxtBox;
|
||||
|
||||
@FindBy(xpath = "//input[@id = 'customer.ssn']")
|
||||
private WebElement SSNTxtBox;
|
||||
|
||||
@FindBy(xpath = "//input[@id = 'customer.username']")
|
||||
private WebElement userNameTxtBox;
|
||||
|
||||
@FindBy(xpath = "//input[@id = 'customer.password']")
|
||||
private WebElement passwordTxtBox;
|
||||
|
||||
@FindBy(xpath = "//input[@id = 'repeatedPassword']")
|
||||
private WebElement confirmPasswordTxtBox;
|
||||
|
||||
@FindBy(xpath = "//input[@value = 'Register']")
|
||||
private WebElement registerBtn;
|
||||
|
||||
|
||||
|
||||
public String goToUrl() throws IOException {
|
||||
driver.get("https://parabank.parasoft.com/parabank/index.htm");
|
||||
String title = driver.getTitle();
|
||||
return title;
|
||||
}
|
||||
|
||||
public void clickRegisterLink() {
|
||||
Assert.assertTrue(webElementClickNType("registerLink","blank"));
|
||||
}
|
||||
|
||||
public boolean typeCredAndRegister() {
|
||||
|
||||
try {
|
||||
|
||||
Faker faker = new Faker();
|
||||
Assert.assertTrue(webElementClickNType("firstName",faker.name().firstName()));
|
||||
Assert.assertTrue(webElementClickNType("lastName",faker.name().lastName()));
|
||||
Assert.assertTrue(webElementClickNType("address",faker.address().streetName()));
|
||||
Assert.assertTrue(webElementClickNType("city",faker.address().city()));
|
||||
Assert.assertTrue(webElementClickNType("state",faker.address().state()));
|
||||
Assert.assertTrue(webElementClickNType("zipCode",faker.address().zipCode()));
|
||||
Assert.assertTrue(webElementClickNType("phoneNumber","9264857264"));
|
||||
Assert.assertTrue(webElementClickNType("SSN","071256789"));
|
||||
Assert.assertTrue(webElementClickNType("userName",props.getProperty("userName")));
|
||||
Assert.assertTrue(webElementClickNType("password",props.getProperty("password")));
|
||||
Assert.assertTrue(webElementClickNType("confirmPassword",props.getProperty("password")));
|
||||
Assert.assertTrue(webElementClickNType("registerBtn","blank"));
|
||||
|
||||
return true;
|
||||
}
|
||||
catch(Exception | AssertionError e) {
|
||||
e.printStackTrace();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
public boolean webElementClickNType(String parameter , String input) {
|
||||
WebElement element;
|
||||
switch(parameter) {
|
||||
case "registerLink":
|
||||
element = RegisterLink;
|
||||
break;
|
||||
|
||||
case "firstName":
|
||||
element = firstNameTxtBox;
|
||||
break;
|
||||
|
||||
case "lastName":
|
||||
element = lastNameTxtBox;
|
||||
break;
|
||||
|
||||
case "address":
|
||||
element = addressTxtBox;
|
||||
break;
|
||||
|
||||
case "city":
|
||||
element = cityTxtBox;
|
||||
break;
|
||||
|
||||
case "state":
|
||||
element = stateTxtBox;
|
||||
break;
|
||||
|
||||
case "zipCode":
|
||||
element = zipCodeTxtBox;
|
||||
break;
|
||||
|
||||
case "phoneNumber":
|
||||
element = phoneNumberTxtBox;
|
||||
break;
|
||||
|
||||
case "SSN":
|
||||
element = SSNTxtBox;
|
||||
break;
|
||||
|
||||
case "userName":
|
||||
element = userNameTxtBox;
|
||||
break;
|
||||
|
||||
case "password":
|
||||
element = passwordTxtBox;
|
||||
break;
|
||||
|
||||
case "confirmPassword":
|
||||
element = confirmPasswordTxtBox;
|
||||
break;
|
||||
|
||||
case "registerBtn":
|
||||
element = registerBtn;
|
||||
break;
|
||||
|
||||
|
||||
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
if(!input.equalsIgnoreCase("blank")) {
|
||||
boolean b = commonUtils.isVisible(driver, element, 15);
|
||||
if(b) {
|
||||
commonUtils.scrollToElement(driver, element);
|
||||
element.clear();
|
||||
element.sendKeys(input);
|
||||
}
|
||||
}
|
||||
else {
|
||||
commonUtils.isVisible(driver, element, 15);
|
||||
commonUtils.scrollToElement(driver, element);
|
||||
boolean b = commonUtils.isClickable(driver, element, 8);
|
||||
if(b) {
|
||||
commonUtils.aClick(driver, element);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
69
src/test/java/com/hexaware/parabank/Runner.java
Normal file
|
|
@ -0,0 +1,69 @@
|
|||
package com.hexaware.parabank;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
import org.testng.annotations.Test;
|
||||
|
||||
import com.relevantcodes.extentreports.LogStatus;
|
||||
|
||||
|
||||
public class Runner extends hook{
|
||||
RegisterationPage rP;
|
||||
UserAccountLogin uAL;
|
||||
OpenNewAccount op;
|
||||
|
||||
|
||||
|
||||
@Test (priority = 1)
|
||||
public void RegisterAccount() throws IOException {
|
||||
rP = new RegisterationPage(driver);
|
||||
String title = rP.goToUrl();
|
||||
if(title.equals("ParaBank | Welcome | Online Banking")) {
|
||||
test.log(LogStatus.PASS,test.addScreenCapture(capture(driver))+ "[+] Navigated to Parabank URL");
|
||||
}else {
|
||||
test.log(LogStatus.FAIL,test.addScreenCapture(capture(driver))+ "[-] Browser is not navigated to Parabank URL !");
|
||||
}
|
||||
|
||||
rP.clickRegisterLink();
|
||||
boolean b = rP.typeCredAndRegister();
|
||||
|
||||
if(b){
|
||||
test.log(LogStatus.PASS,test.addScreenCapture(capture(driver))+ "[+] Account Registration Done.");
|
||||
}else {
|
||||
test.log(LogStatus.FAIL,test.addScreenCapture(capture(driver))+ "[-] Account Registration Failed !");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Test(priority = 2)
|
||||
public void loginAccount() throws IOException {
|
||||
uAL = new UserAccountLogin(driver);
|
||||
uAL.clickLogOutLink();
|
||||
boolean b = uAL.Login();
|
||||
if(b) {
|
||||
test.log(LogStatus.PASS,test.addScreenCapture(capture(driver))+ "[+] user Login Successful.");
|
||||
}else {
|
||||
test.log(LogStatus.FAIL,test.addScreenCapture(capture(driver))+ "[-] user Login Unsuccessful! ");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Test(priority = 3)
|
||||
public void OpenNewAccount() throws IOException {
|
||||
op = new OpenNewAccount(driver);
|
||||
op.clickOpenNewAccount();
|
||||
boolean b = op.selectTransfer();
|
||||
boolean d = op.AssertWelcomeText();
|
||||
if(b && d) {
|
||||
test.log(LogStatus.PASS,test.addScreenCapture(capture(driver))+ "[+] opened new Account successfully");
|
||||
}else {
|
||||
test.log(LogStatus.FAIL,test.addScreenCapture(capture(driver))+ "[-] Failed to OpenNewAccount ");
|
||||
}
|
||||
|
||||
|
||||
op.FetchAccountID();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
109
src/test/java/com/hexaware/parabank/UserAccountLogin.java
Normal file
|
|
@ -0,0 +1,109 @@
|
|||
package com.hexaware.parabank;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.Properties;
|
||||
|
||||
import org.junit.Assert;
|
||||
import org.openqa.selenium.WebDriver;
|
||||
import org.openqa.selenium.WebElement;
|
||||
import org.openqa.selenium.support.FindBy;
|
||||
import org.openqa.selenium.support.PageFactory;
|
||||
|
||||
public class UserAccountLogin {
|
||||
WebDriver driver;
|
||||
Properties props = commonUtils.reader("src/test/java/com/hexaware/parabank/config.properties");
|
||||
|
||||
public UserAccountLogin(WebDriver driver)throws IOException {
|
||||
this.driver = driver;
|
||||
PageFactory.initElements(this.driver, this);
|
||||
}
|
||||
|
||||
|
||||
@FindBy(xpath = "//a[text() = 'Log Out']")
|
||||
private WebElement logOutLink;
|
||||
|
||||
@FindBy(xpath = "//input[@name = 'username']")
|
||||
private WebElement userNameTxtBox;
|
||||
|
||||
@FindBy(xpath = "//input[@name = 'password']")
|
||||
private WebElement passwordTxtBox;
|
||||
|
||||
@FindBy(xpath = "//input[@value = 'Log In']")
|
||||
private WebElement logInBtn;
|
||||
|
||||
|
||||
|
||||
public void clickLogOutLink() {
|
||||
Assert.assertTrue(webElementClickNType("logOutLink","blank"));
|
||||
}
|
||||
|
||||
|
||||
public boolean Login() {
|
||||
|
||||
try {
|
||||
Assert.assertTrue(webElementClickNType("userName",props.getProperty("userName")));
|
||||
Assert.assertTrue(webElementClickNType("password",props.getProperty("password")));
|
||||
Assert.assertTrue(webElementClickNType("logInBtn","blank"));
|
||||
return true;
|
||||
}
|
||||
catch(Exception | AssertionError e) {
|
||||
|
||||
e.printStackTrace();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
public boolean webElementClickNType(String parameter , String input) {
|
||||
WebElement element;
|
||||
switch(parameter) {
|
||||
|
||||
case "logOutLink":
|
||||
element = logOutLink;
|
||||
break;
|
||||
|
||||
case "userName":
|
||||
element = userNameTxtBox;
|
||||
break;
|
||||
|
||||
case "password":
|
||||
element = passwordTxtBox;
|
||||
break;
|
||||
|
||||
case "logInBtn":
|
||||
element = logInBtn;
|
||||
break;
|
||||
|
||||
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
if(!input.equalsIgnoreCase("blank")) {
|
||||
boolean b = commonUtils.isVisible(driver, element, 15);
|
||||
if(b) {
|
||||
commonUtils.scrollToElement(driver, element);
|
||||
element.clear();
|
||||
element.sendKeys(input);
|
||||
}
|
||||
}
|
||||
else {
|
||||
commonUtils.isVisible(driver, element, 15);
|
||||
commonUtils.scrollToElement(driver, element);
|
||||
boolean b = commonUtils.isClickable(driver, element, 8);
|
||||
if(b) {
|
||||
commonUtils.aClick(driver, element);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
461
src/test/java/com/hexaware/parabank/commonUtils.java
Normal file
|
|
@ -0,0 +1,461 @@
|
|||
package com.hexaware.parabank;
|
||||
|
||||
import java.awt.AWTException;
|
||||
|
||||
import java.awt.Robot;
|
||||
import java.awt.Toolkit;
|
||||
import java.awt.datatransfer.Clipboard;
|
||||
import java.awt.datatransfer.StringSelection;
|
||||
import java.awt.event.InputEvent;
|
||||
import java.awt.event.KeyEvent;
|
||||
import java.io.File;
|
||||
import java.io.FileReader;
|
||||
import java.io.IOException;
|
||||
|
||||
import java.time.Duration;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Properties;
|
||||
|
||||
import org.apache.commons.io.FileUtils;
|
||||
import org.openqa.selenium.JavascriptExecutor;
|
||||
import org.openqa.selenium.OutputType;
|
||||
import org.openqa.selenium.TakesScreenshot;
|
||||
import org.openqa.selenium.WebDriver;
|
||||
import org.openqa.selenium.WebElement;
|
||||
import org.openqa.selenium.interactions.Actions;
|
||||
import org.openqa.selenium.support.ui.ExpectedConditions;
|
||||
import org.openqa.selenium.support.ui.Select;
|
||||
import org.openqa.selenium.support.ui.WebDriverWait;
|
||||
|
||||
|
||||
|
||||
public class commonUtils {
|
||||
|
||||
|
||||
|
||||
static Robot robot;
|
||||
static String urlConfigPath = "src/test/java/Properties/URLS.properties";
|
||||
static Properties props;
|
||||
|
||||
static {
|
||||
try {
|
||||
robot = new Robot();
|
||||
} catch (AWTException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
static Actions actions;
|
||||
|
||||
|
||||
|
||||
|
||||
public static Properties reader(String path) throws IOException {
|
||||
FileReader reader = new FileReader(path);
|
||||
Properties P = new Properties();
|
||||
P.load(reader);
|
||||
return P;
|
||||
}
|
||||
|
||||
|
||||
public static ThreadLocal<Actions> tlActions = new ThreadLocal<>();
|
||||
|
||||
public static Actions actions_init(WebDriver driver) {
|
||||
tlActions.set(new Actions(driver));
|
||||
return getActions();
|
||||
}
|
||||
|
||||
public static synchronized Actions getActions() {
|
||||
return tlActions.get();
|
||||
}
|
||||
|
||||
|
||||
public static void aClick(WebDriver driver, WebElement element) {
|
||||
|
||||
commonUtils.actions_init(driver).moveToElement(element).perform();
|
||||
commonUtils.actions_init(driver).click(element).perform();
|
||||
|
||||
}
|
||||
|
||||
public static void doubleClick(WebDriver driver, WebElement element) {
|
||||
|
||||
commonUtils.actions_init(driver).moveToElement(element).perform();
|
||||
commonUtils.actions_init(driver).doubleClick(element).perform();
|
||||
|
||||
}
|
||||
|
||||
|
||||
public static void jClick(WebDriver driver, WebElement element) {
|
||||
JavascriptExecutor js = (JavascriptExecutor) driver;
|
||||
js.executeScript("arguments[0].click();", element);
|
||||
}
|
||||
|
||||
|
||||
public static void jSendKeys(WebDriver driver, WebElement element, String value) {
|
||||
JavascriptExecutor js = (JavascriptExecutor) driver;
|
||||
js.executeScript("arguments[0].setAttribute('value', '" + value + "')", element);
|
||||
}
|
||||
|
||||
|
||||
public static void click(WebElement element) {
|
||||
|
||||
element.click();
|
||||
|
||||
}
|
||||
|
||||
|
||||
public static void dragAndDrop(WebElement sourceElement, WebElement targetElement) {
|
||||
actions = commonUtils.getActions();
|
||||
actions.dragAndDrop(sourceElement, targetElement).perform();
|
||||
}
|
||||
|
||||
|
||||
public static void hoverTo(WebDriver driver, WebElement element) {
|
||||
commonUtils.actions_init(driver).moveToElement(element).perform();
|
||||
}
|
||||
|
||||
|
||||
public static void scroll(WebDriver driver, int i, int j) {
|
||||
JavascriptExecutor js = (JavascriptExecutor) driver;
|
||||
js.executeScript("window.scrollBy(" + i + "," + j + ")", "");
|
||||
}
|
||||
|
||||
public static void setAttribute(WebDriver driver, WebElement element, String attribute, String value) {
|
||||
JavascriptExecutor js = (JavascriptExecutor) driver;
|
||||
js.executeScript("arguments[0].setAttribute('" + attribute + "','" + value + "')", element);
|
||||
}
|
||||
|
||||
|
||||
public static boolean isClickable(WebDriver driver, WebElement element, int sec) {
|
||||
|
||||
try {
|
||||
WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(sec));
|
||||
wait.until(ExpectedConditions.elementToBeClickable(element));
|
||||
return true;
|
||||
} catch (Exception e) {
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
public static void staleElementWait(WebDriver driver, WebElement element, int sec) {
|
||||
WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(sec));
|
||||
wait.until(ExpectedConditions.refreshed(ExpectedConditions.stalenessOf(element)));
|
||||
}
|
||||
|
||||
|
||||
public static void uploadFile(String path) throws InterruptedException {
|
||||
|
||||
Thread.sleep(10000);
|
||||
uploader(path);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
public static void uploader(String Path) {
|
||||
StringSelection selection = new StringSelection(Path);
|
||||
Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
|
||||
clipboard.setContents(selection, null);
|
||||
robot.delay(250);
|
||||
robot.keyPress(KeyEvent.VK_ENTER);
|
||||
robot.keyRelease(KeyEvent.VK_ENTER);
|
||||
robot.keyPress(KeyEvent.VK_CONTROL);
|
||||
robot.keyPress(KeyEvent.VK_V);
|
||||
robot.keyRelease(KeyEvent.VK_V);
|
||||
robot.keyRelease(KeyEvent.VK_CONTROL);
|
||||
|
||||
}
|
||||
|
||||
public static void switchToTab(WebDriver driver, int Tab) {
|
||||
ArrayList<String> tabs = new ArrayList<String>(driver.getWindowHandles());
|
||||
driver.switchTo().window(tabs.get(Tab - 1));
|
||||
}
|
||||
|
||||
|
||||
public static void HitEnter() {
|
||||
robot.keyPress(KeyEvent.VK_ENTER);
|
||||
robot.delay(150);
|
||||
robot.keyRelease(KeyEvent.VK_ENTER);
|
||||
}
|
||||
|
||||
public static void HitEnter2() throws AWTException {
|
||||
Robot robot = new Robot();
|
||||
robot.keyPress(KeyEvent.VK_ENTER);
|
||||
robot.delay(150);
|
||||
robot.keyRelease(KeyEvent.VK_ENTER);
|
||||
}
|
||||
|
||||
|
||||
public static void takeScreenShot(WebDriver driver, String path) throws IOException {
|
||||
TakesScreenshot screenshot = ((TakesScreenshot) driver);
|
||||
File src = screenshot.getScreenshotAs(OutputType.FILE);
|
||||
File dest = new File(path);
|
||||
FileUtils.copyFile(src, dest);
|
||||
}
|
||||
|
||||
|
||||
public static void simpleAlert(WebDriver driver, String status) {
|
||||
|
||||
if (status.equalsIgnoreCase("accept")) {
|
||||
driver.switchTo().alert().accept();
|
||||
}
|
||||
}
|
||||
|
||||
public static void promptAlert(WebDriver driver, String text, String status) {
|
||||
if (status.equalsIgnoreCase("accept")) {
|
||||
driver.switchTo().alert().sendKeys(text);
|
||||
driver.switchTo().alert().accept();
|
||||
} else if (status.equalsIgnoreCase("dismiss")) {
|
||||
|
||||
driver.switchTo().alert().dismiss();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public static void confirmationAlert(WebDriver driver, String status) {
|
||||
if (status.equalsIgnoreCase("accept")) {
|
||||
driver.switchTo().alert().accept();
|
||||
} else if (status.equalsIgnoreCase("dismiss")) {
|
||||
driver.switchTo().alert().dismiss();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public static boolean waitForAlert(WebDriver driver, int sec) {
|
||||
|
||||
WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(sec));
|
||||
wait.until(ExpectedConditions.alertIsPresent());
|
||||
return true;
|
||||
|
||||
}
|
||||
|
||||
|
||||
public static void frameSwitch(WebDriver driver, List<WebElement> elements, WebElement element) {
|
||||
System.out.println("no of frames:" + elements.size());
|
||||
for (int i = 0; i < elements.size(); i++) {
|
||||
if (elements.get(i).getAttribute("id").equalsIgnoreCase(elements.get(i).getAttribute("id"))) {
|
||||
try {
|
||||
String ele = elements.get(i).getAttribute("id");
|
||||
driver.switchTo().frame(i);
|
||||
click(element);
|
||||
System.out.println("found element at iframe id :" + ele);
|
||||
break;
|
||||
} catch (Exception e) {
|
||||
System.out.println(e);
|
||||
driver.switchTo().defaultContent();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public static void jFrameCount(WebDriver driver) {
|
||||
|
||||
JavascriptExecutor exe = (JavascriptExecutor) driver;
|
||||
int f = Integer.parseInt(exe.executeScript("return window.length").toString());
|
||||
System.out.println("No. of iframes on the page are " + f);
|
||||
}
|
||||
|
||||
|
||||
public static boolean DropDown(WebDriver driver, WebElement element, String x, int sec) {
|
||||
try {
|
||||
WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(sec));
|
||||
Select dropDown = new Select(wait.until(ExpectedConditions.visibilityOf(element)));
|
||||
dropDown.selectByVisibleText(x);
|
||||
return true;
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
public static boolean DropDownByIndex(WebDriver driver, WebElement element, int x, int sec) {
|
||||
try {
|
||||
WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(sec));
|
||||
Select dropDown = new Select(wait.until(ExpectedConditions.visibilityOf(element)));
|
||||
dropDown.selectByIndex(x);
|
||||
return true;
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
public static void tWait(int millisec) throws InterruptedException {
|
||||
Thread.sleep(millisec);
|
||||
}
|
||||
|
||||
|
||||
public static void implicitWait(WebDriver driver, int sec) {
|
||||
driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(8));
|
||||
}
|
||||
|
||||
|
||||
public static void scrollToElement(WebDriver driver, WebElement element) {
|
||||
JavascriptExecutor je = (JavascriptExecutor) driver;
|
||||
je.executeScript("arguments[0].scrollIntoView(true);", element);
|
||||
|
||||
}
|
||||
|
||||
|
||||
public static void aScrollToElement(WebDriver driver, WebElement element) {
|
||||
|
||||
Actions action = new Actions(driver);
|
||||
action.moveToElement(element);
|
||||
|
||||
}
|
||||
|
||||
|
||||
public static void mouseClick(int x, int y) throws AWTException {
|
||||
|
||||
Robot robot = new Robot();
|
||||
robot.mouseMove(x, y);
|
||||
robot.delay(1500);
|
||||
robot.mousePress(InputEvent.BUTTON1_DOWN_MASK);
|
||||
robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);
|
||||
|
||||
|
||||
}
|
||||
|
||||
public static void selectChoice(WebDriver driver, List<WebElement> lElement, String choice) {
|
||||
|
||||
List<WebElement> option = lElement;
|
||||
if (choice.equalsIgnoreCase("yes")) {
|
||||
scrollToElement(driver, option.get(0));
|
||||
aClick(driver, option.get(0));
|
||||
} else if (choice.equalsIgnoreCase("no")) {
|
||||
scrollToElement(driver, option.get(1));
|
||||
aClick(driver, option.get(1));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public static boolean isVisible(WebDriver driver, WebElement element, int sec) {
|
||||
try {
|
||||
WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(sec));
|
||||
wait.until(ExpectedConditions.visibilityOf(element));
|
||||
return true;
|
||||
} catch (Exception e) {
|
||||
System.out.println(e);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public static boolean isInvisible(WebDriver driver, WebElement element, int sec) {
|
||||
try {
|
||||
WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(sec));
|
||||
wait.until(ExpectedConditions.invisibilityOf(element));
|
||||
return true;
|
||||
} catch (Exception e) {
|
||||
System.out.println(e);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public static boolean checkSpecialCharAndNumbers(String s) {
|
||||
|
||||
|
||||
int count = 0;
|
||||
boolean flag;
|
||||
|
||||
for (int i = 0; i < s.length(); i++) {
|
||||
|
||||
if (!Character.isLetter(s.charAt(i))
|
||||
&& !Character.isWhitespace(s.charAt(i))) {
|
||||
|
||||
count++;
|
||||
}
|
||||
}
|
||||
|
||||
if (count == 0) {
|
||||
|
||||
flag = false;
|
||||
|
||||
} else {
|
||||
|
||||
flag = true;
|
||||
}
|
||||
|
||||
return flag;
|
||||
|
||||
}
|
||||
|
||||
|
||||
public static boolean checkCharCount(String s, int limit) {
|
||||
|
||||
|
||||
int count = 1;
|
||||
boolean flag;
|
||||
|
||||
for (int i = 0; i < s.length(); i++) {
|
||||
|
||||
count++;
|
||||
}
|
||||
|
||||
if (count > limit) {
|
||||
|
||||
|
||||
flag = true;
|
||||
|
||||
} else if (count < limit) {
|
||||
|
||||
|
||||
flag = true;
|
||||
} else {
|
||||
|
||||
flag = false;
|
||||
}
|
||||
|
||||
return flag;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
public static boolean isOdd(int num){
|
||||
|
||||
if (num % 2 == 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
else {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public static boolean isEven(int num){
|
||||
|
||||
if (num % 2 == 0) {
|
||||
return true;
|
||||
}
|
||||
|
||||
else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
4
src/test/java/com/hexaware/parabank/config.properties
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
userName = kayaljai09
|
||||
password = kayal09jai
|
||||
|
||||
welcomeTxt = Congratulations, your account is now open.
|
||||
76
src/test/java/com/hexaware/parabank/hook.java
Normal file
|
|
@ -0,0 +1,76 @@
|
|||
package com.hexaware.parabank;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
|
||||
import org.apache.commons.io.FileUtils;
|
||||
import org.openqa.selenium.OutputType;
|
||||
import org.openqa.selenium.TakesScreenshot;
|
||||
import org.openqa.selenium.WebDriver;
|
||||
|
||||
import org.openqa.selenium.chrome.ChromeDriver;
|
||||
import org.openqa.selenium.chrome.ChromeOptions;
|
||||
import org.testng.annotations.AfterClass;
|
||||
import org.testng.annotations.BeforeClass;
|
||||
|
||||
|
||||
import com.relevantcodes.extentreports.ExtentReports;
|
||||
import com.relevantcodes.extentreports.ExtentTest;
|
||||
|
||||
|
||||
public class hook {
|
||||
ExtentTest test;
|
||||
ExtentReports report;
|
||||
|
||||
public WebDriver driver;
|
||||
|
||||
|
||||
|
||||
@BeforeClass
|
||||
public void setup() {
|
||||
System.setProperty("webdriver.chrome.driver",System.getProperty("user.dir")+ "\\drivers\\chromedriver.exe" );
|
||||
ChromeOptions options = new ChromeOptions();
|
||||
options.addArguments("--ignore-ssl-errors=yes");
|
||||
options.addArguments("--ignore-certificate-errors");
|
||||
options.addArguments("disable-infobars");
|
||||
options.addArguments("--remote-allow-origins=*");
|
||||
options.setAcceptInsecureCerts(true);
|
||||
driver= new ChromeDriver(options);
|
||||
driver.manage().deleteAllCookies();
|
||||
driver.manage().window().maximize();
|
||||
report = new ExtentReports(System.getProperty("user.dir")+"\\ExtentReportResults.html");
|
||||
test = report.startTest("ExtentDemo");
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
public String capture(WebDriver driver) throws IOException {
|
||||
File scrFile = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);
|
||||
File Dest = new File("src/../Screenshots/" + System.currentTimeMillis()
|
||||
+ ".png");
|
||||
String errflpath = Dest.getAbsolutePath();
|
||||
FileUtils.copyFile(scrFile, Dest);
|
||||
return errflpath;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@AfterClass
|
||||
public void tearDown() throws InterruptedException {
|
||||
Thread.sleep(5000);
|
||||
driver.quit();
|
||||
report.endTest(test);
|
||||
report.flush();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
5
target/classes/META-INF/MANIFEST.MF
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
Manifest-Version: 1.0
|
||||
Built-By: 1000074437
|
||||
Build-Jdk: 15.0.2
|
||||
Created-By: Maven Integration for Eclipse
|
||||
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
#Generated by Maven Integration for Eclipse
|
||||
#Fri Mar 24 11:24:19 GMT+05:30 2023
|
||||
m2e.projectLocation=C\:\\Users\\1000074437\\Desktop\\1000074437\\Parabank\\parabank\\parabank
|
||||
m2e.projectName=parabank
|
||||
groupId=com.hexaware
|
||||
artifactId=parabank
|
||||
version=0.0.1-SNAPSHOT
|
||||
259
target/classes/META-INF/maven/com.hexaware/parabank/pom.xml
Normal file
|
|
@ -0,0 +1,259 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<groupId>com.hexaware</groupId>
|
||||
<artifactId>parabank</artifactId>
|
||||
<version>0.0.1-SNAPSHOT</version>
|
||||
|
||||
<name>parabank</name>
|
||||
<!-- FIXME change it to the project's website -->
|
||||
<url>http://www.example.com</url>
|
||||
|
||||
<properties>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
<maven.compiler.source>1.7</maven.compiler.source>
|
||||
<maven.compiler.target>1.7</maven.compiler.target>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>junit</groupId>
|
||||
<artifactId>junit</artifactId>
|
||||
<version>4.11</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
|
||||
<dependency>
|
||||
<groupId>com.relevantcodes</groupId>
|
||||
<artifactId>extentreports</artifactId>
|
||||
<version>2.41.2</version>
|
||||
</dependency>
|
||||
|
||||
|
||||
<!-- https://mvnrepository.com/artifact/com.github.javafaker/javafaker -->
|
||||
<dependency>
|
||||
<groupId>com.github.javafaker</groupId>
|
||||
<artifactId>javafaker</artifactId>
|
||||
<version>1.0.2</version>
|
||||
</dependency>
|
||||
|
||||
|
||||
<!-- https://mvnrepository.com/artifact/org.testng/testng -->
|
||||
<dependency>
|
||||
<groupId>org.testng</groupId>
|
||||
<artifactId>testng</artifactId>
|
||||
<version>7.4.0</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>junit</groupId>
|
||||
<artifactId>junit</artifactId>
|
||||
<version>${junit.version}</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
|
||||
<dependency>
|
||||
<groupId>org.seleniumhq.selenium</groupId>
|
||||
<artifactId>selenium-java</artifactId>
|
||||
<version>4.1.0</version>
|
||||
</dependency>
|
||||
|
||||
<!-- https://mvnrepository.com/artifact/io.github.bonigarcia/webdrivermanager -->
|
||||
<dependency>
|
||||
<groupId>io.github.bonigarcia</groupId>
|
||||
<artifactId>webdrivermanager</artifactId>
|
||||
<version>3.8.1</version>
|
||||
</dependency>
|
||||
|
||||
<!-- https://mvnrepository.com/artifact/tech.grasshopper/extentreports-cucumber6-adapter -->
|
||||
<dependency>
|
||||
<groupId>tech.grasshopper</groupId>
|
||||
<artifactId>extentreports-cucumber6-adapter</artifactId>
|
||||
<version>2.8.4</version>
|
||||
</dependency>
|
||||
<!-- https://mvnrepository.com/artifact/com.ibm.db2/jcc -->
|
||||
<dependency>
|
||||
<groupId>com.ibm.db2</groupId>
|
||||
<artifactId>jcc</artifactId>
|
||||
<version>11.5.6.0</version>
|
||||
</dependency>
|
||||
<!-- https://mvnrepository.com/artifact/com.ibm.db2.jcc/db2jcc -->
|
||||
<dependency>
|
||||
<groupId>com.ibm.db2.jcc</groupId>
|
||||
<artifactId>db2jcc</artifactId>
|
||||
<version>db2jcc4</version>
|
||||
</dependency>
|
||||
|
||||
<!-- https://mvnrepository.com/artifact/commons-dbutils/commons-dbutils -->
|
||||
<dependency>
|
||||
<groupId>commons-dbutils</groupId>
|
||||
<artifactId>commons-dbutils</artifactId>
|
||||
<version>1.5</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>net.sf.jt400</groupId>
|
||||
<artifactId>jt400</artifactId>
|
||||
<version>10.6</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>junit</groupId>
|
||||
<artifactId>junit</artifactId>
|
||||
<version>4.13.2</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>io.cucumber</groupId>
|
||||
<artifactId>datatable</artifactId>
|
||||
<version>3.5.0</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.projectlombok</groupId>
|
||||
<artifactId>lombok</artifactId>
|
||||
<version>1.18.22</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>io.rest-assured</groupId>
|
||||
<artifactId>rest-assured</artifactId>
|
||||
<version>4.4.0</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>io.rest-assured</groupId>
|
||||
<artifactId>rest-assured</artifactId>
|
||||
<version>4.4.0</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.seleniumhq.selenium</groupId>
|
||||
<artifactId>selenium-devtools-v101</artifactId>
|
||||
<version>4.1.4</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.poi</groupId>
|
||||
<artifactId>poi-ooxml</artifactId>
|
||||
<version>4.1.0</version>
|
||||
</dependency>
|
||||
|
||||
<!-- https://mvnrepository.com/artifact/com.github.stephenc.monte/monte-screen-recorder -->
|
||||
<dependency>
|
||||
<groupId>com.github.stephenc.monte</groupId>
|
||||
<artifactId>monte-screen-recorder</artifactId>
|
||||
<version>0.7.7.0</version>
|
||||
</dependency>
|
||||
|
||||
|
||||
<!-- https://mvnrepository.com/artifact/tech.grasshopper/extentreports-cucumber6-adapter -->
|
||||
<dependency>
|
||||
<groupId>tech.grasshopper</groupId>
|
||||
<artifactId>extentreports-cucumber6-adapter</artifactId>
|
||||
<version>2.1.0</version>
|
||||
</dependency>
|
||||
|
||||
|
||||
<!-- https://mvnrepository.com/artifact/com.aventstack/extentreports -->
|
||||
<dependency>
|
||||
<groupId>com.aventstack</groupId>
|
||||
<artifactId>extentreports</artifactId>
|
||||
<version>5.0.4</version>
|
||||
</dependency>
|
||||
|
||||
|
||||
|
||||
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->
|
||||
<dependency>
|
||||
<groupId>org.apache.poi</groupId>
|
||||
<artifactId>poi</artifactId>
|
||||
<version>5.2.3</version>
|
||||
</dependency>
|
||||
|
||||
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml -->
|
||||
<dependency>
|
||||
<groupId>org.apache.poi</groupId>
|
||||
<artifactId>poi-ooxml</artifactId>
|
||||
<version>5.2.3</version>
|
||||
</dependency>
|
||||
|
||||
<!-- https://mvnrepository.com/artifact/commons-io/commons-io -->
|
||||
<dependency>
|
||||
<groupId>commons-io</groupId>
|
||||
<artifactId>commons-io</artifactId>
|
||||
<version>2.11.0</version>
|
||||
</dependency>
|
||||
|
||||
|
||||
<!-- https://mvnrepository.com/artifact/com.opencsv/opencsv -->
|
||||
<dependency>
|
||||
<groupId>com.opencsv</groupId>
|
||||
<artifactId>opencsv</artifactId>
|
||||
<version>5.7.1</version>
|
||||
</dependency>
|
||||
|
||||
|
||||
<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 -->
|
||||
<dependency>
|
||||
<groupId>org.apache.commons</groupId>
|
||||
<artifactId>commons-lang3</artifactId>
|
||||
<version>3.12.0</version>
|
||||
</dependency>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
<pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
|
||||
<plugins>
|
||||
<!-- clean lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#clean_Lifecycle -->
|
||||
<plugin>
|
||||
<artifactId>maven-clean-plugin</artifactId>
|
||||
<version>3.1.0</version>
|
||||
</plugin>
|
||||
<!-- default lifecycle, jar packaging: see https://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_jar_packaging -->
|
||||
<plugin>
|
||||
<artifactId>maven-resources-plugin</artifactId>
|
||||
<version>3.0.2</version>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
<version>3.8.0</version>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-surefire-plugin</artifactId>
|
||||
<version>2.22.1</version>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-jar-plugin</artifactId>
|
||||
<version>3.0.2</version>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-install-plugin</artifactId>
|
||||
<version>2.5.2</version>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-deploy-plugin</artifactId>
|
||||
<version>2.8.2</version>
|
||||
</plugin>
|
||||
<!-- site lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#site_Lifecycle -->
|
||||
<plugin>
|
||||
<artifactId>maven-site-plugin</artifactId>
|
||||
<version>3.7.1</version>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-project-info-reports-plugin</artifactId>
|
||||
<version>3.0.0</version>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</pluginManagement>
|
||||
</build>
|
||||
</project>
|
||||
BIN
target/test-classes/com/hexaware/parabank/OpenNewAccount.class
Normal file
BIN
target/test-classes/com/hexaware/parabank/Runner.class
Normal file
BIN
target/test-classes/com/hexaware/parabank/UserAccountLogin.class
Normal file
BIN
target/test-classes/com/hexaware/parabank/commonUtils.class
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
userName = kayaljai09
|
||||
password = kayal09jai
|
||||
|
||||
welcomeTxt = Congratulations, your account is now open.
|
||||
BIN
target/test-classes/com/hexaware/parabank/hook.class
Normal file
84
test-output/Default suite/Default test.html
Normal file
|
|
@ -0,0 +1,84 @@
|
|||
<html>
|
||||
<head>
|
||||
<title>TestNG: Default test</title>
|
||||
<link href="../testng.css" rel="stylesheet" type="text/css" />
|
||||
<link href="../my-testng.css" rel="stylesheet" type="text/css" />
|
||||
|
||||
<style type="text/css">
|
||||
.log { display: none;}
|
||||
.stack-trace { display: none;}
|
||||
</style>
|
||||
<script type="text/javascript">
|
||||
<!--
|
||||
function flip(e) {
|
||||
current = e.style.display;
|
||||
if (current == 'block') {
|
||||
e.style.display = 'none';
|
||||
return 0;
|
||||
}
|
||||
else {
|
||||
e.style.display = 'block';
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
function toggleBox(szDivId, elem, msg1, msg2)
|
||||
{
|
||||
var res = -1; if (document.getElementById) {
|
||||
res = flip(document.getElementById(szDivId));
|
||||
}
|
||||
else if (document.all) {
|
||||
// this is the way old msie versions work
|
||||
res = flip(document.all[szDivId]);
|
||||
}
|
||||
if(elem) {
|
||||
if(res == 0) elem.innerHTML = msg1; else elem.innerHTML = msg2;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function toggleAllBoxes() {
|
||||
if (document.getElementsByTagName) {
|
||||
d = document.getElementsByTagName('div');
|
||||
for (i = 0; i < d.length; i++) {
|
||||
if (d[i].className == 'log') {
|
||||
flip(d[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// -->
|
||||
</script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<h2 align='center'>Default test</h2><table border='1' align="center">
|
||||
<tr>
|
||||
<td>Tests passed/Failed/Skipped:</td><td>1/0/0</td>
|
||||
</tr><tr>
|
||||
<td>Started on:</td><td>Thu Mar 23 19:07:30 GMT+05:30 2023</td>
|
||||
</tr>
|
||||
<tr><td>Total time:</td><td>14 seconds (14310 ms)</td>
|
||||
</tr><tr>
|
||||
<td>Included groups:</td><td></td>
|
||||
</tr><tr>
|
||||
<td>Excluded groups:</td><td></td>
|
||||
</tr>
|
||||
</table><p/>
|
||||
<small><i>(Hover the method name to see the test class name)</i></small><p/>
|
||||
<table width='100%' border='1' class='invocation-passed'>
|
||||
<tr><td colspan='4' align='center'><b>PASSED TESTS</b></td></tr>
|
||||
<tr><td><b>Test method</b></td>
|
||||
<td width="30%"><b>Exception</b></td>
|
||||
<td width="10%"><b>Time (seconds)</b></td>
|
||||
<td><b>Instance</b></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td title='com.hexaware.parabank.Runner.RegisterAccount()'><b>RegisterAccount</b><br>Test class: com.hexaware.parabank.Runner</td>
|
||||
<td></td>
|
||||
<td>5</td>
|
||||
<td>com.hexaware.parabank.Runner@53aac487</td></tr>
|
||||
</table><p>
|
||||
</body>
|
||||
</html>
|
||||
5
test-output/Default suite/Default test.xml
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Generated by org.testng.reporters.JUnitXMLReporter -->
|
||||
<testsuite ignored="0" hostname="Evolve-VM-28" failures="0" tests="1" name="Default test" time="14.31" errors="0" timestamp="2023-03-23T19:07:44 GMT+05:30">
|
||||
<testcase classname="com.hexaware.parabank.Runner" name="RegisterAccount" time="5.304"/>
|
||||
</testsuite> <!-- Default test -->
|
||||
15
test-output/Default suite/testng-failed.xml
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd">
|
||||
<suite name="Failed suite [Default suite]" guice-stage="DEVELOPMENT">
|
||||
<test thread-count="5" name="Default test(failed)">
|
||||
<classes>
|
||||
<class name="com.hexaware.parabank.Runner">
|
||||
<methods>
|
||||
<include name="typeCred"/>
|
||||
<include name="setup"/>
|
||||
<include name="tearDown"/>
|
||||
</methods>
|
||||
</class> <!-- com.hexaware.parabank.Runner -->
|
||||
</classes>
|
||||
</test> <!-- Default test(failed) -->
|
||||
</suite> <!-- Failed suite [Default suite] -->
|
||||
243
test-output/Spark.html
Normal file
|
|
@ -0,0 +1,243 @@
|
|||
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<title></title>
|
||||
<link rel="apple-touch-icon" href="https://cdn.jsdelivr.net/gh/extent-framework/extent-github-cdn@b00a2d0486596e73dd7326beacf352c639623a0e/commons/img/logo.png">
|
||||
<link rel="shortcut icon" href="https://cdn.jsdelivr.net/gh/extent-framework/extent-github-cdn@b00a2d0486596e73dd7326beacf352c639623a0e/commons/img/logo.png">
|
||||
<link href="https://cdn.jsdelivr.net/gh/extent-framework/extent-github-cdn@c43b89d03a7c43dae8bb8f0f078bad1997af6b3b/spark/css/spark-style.css" rel="stylesheet" />
|
||||
<link href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet">
|
||||
<script src="https://cdn.rawgit.com/extent-framework/extent-github-cdn/7cc78ce/spark/js/jsontree.js"></script>
|
||||
<style type="text/css"></style></head><body class="spa -report standard">
|
||||
<div class="app">
|
||||
<div class="layout">
|
||||
<div class="header navbar">
|
||||
<div class="vheader">
|
||||
<div class="nav-logo">
|
||||
<a href="#">
|
||||
<div class="logo" style="background-image: url('https://cdn.jsdelivr.net/gh/extent-framework/extent-github-cdn@b00a2d0486596e73dd7326beacf352c639623a0e/commons/img/logo.png')"></div>
|
||||
</a>
|
||||
</div>
|
||||
<ul class="nav-left">
|
||||
<li class="search-box">
|
||||
<a class="search-toggle" href="#">
|
||||
<i class="search-icon fa fa-search"></i>
|
||||
<i class="search-icon-close fa fa-close"></i>
|
||||
</a>
|
||||
</li>
|
||||
<li class="search-input"><input id="search-tests" class="form-control" type="text" placeholder="Search..."></li>
|
||||
</ul>
|
||||
<ul class="nav-right">
|
||||
<li class="m-r-10">
|
||||
<a href="#"><span class="badge badge-primary"></span></a>
|
||||
</li>
|
||||
<li class="m-r-10">
|
||||
<a href="#"><span class="badge badge-primary">Mar 23, 2023 03:24:27 PM</span></a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div><div class="side-nav">
|
||||
<div class="side-nav-inner">
|
||||
<ul class="side-nav-menu">
|
||||
<li class="nav-item dropdown" onclick="toggleView('test-view')">
|
||||
<a id="nav-test" class="dropdown-toggle" href="#">
|
||||
<span class="ico"><i class="fa fa-list"></i></span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item dropdown" onclick="toggleView('dashboard-view')">
|
||||
<a id="nav-dashboard" class="dropdown-toggle" href="#">
|
||||
<span class="ico"><i class="fa fa-bar-chart"></i></span>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div> <div class="vcontainer">
|
||||
<div class="main-content">
|
||||
<div class="test-wrapper row view test-view">
|
||||
<div class="test-list">
|
||||
<div class="test-list-tools">
|
||||
<ul class="tools pull-left">
|
||||
<li><a href="#"><span class="font-size-14">Tests</span></a></li>
|
||||
</ul>
|
||||
<ul class="tools text-right">
|
||||
<li class="dropdown">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-exclamation-circle"></i></a>
|
||||
<ul id="status-toggle" class="dropdown-menu dropdown-md p-v-0">
|
||||
<a class="dropdown-item" status="pass" href="#"><span>Pass</span><span class="status success"></span></a>
|
||||
<div class="dropdown-divider"></div>
|
||||
<a status="clear" class="dropdown-item" href="#"><span>Clear</span><span class="pull-right"><i class="fa fa-close"></i></span></a>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div> <div class="test-list-wrapper scrollable">
|
||||
<ul class="test-list-item">
|
||||
<li class="test-item" status="pass" test-id="1"
|
||||
author=""
|
||||
tag=""
|
||||
device="">
|
||||
<div class="test-detail">
|
||||
<p class="name">Navigating to the parabank Url</p>
|
||||
<p class="text-sm">
|
||||
<span>15:24:31 PM</span> / <span>30:00:007</span>
|
||||
<span class="badge pass-bg log float-right">Pass</span>
|
||||
</p>
|
||||
</div>
|
||||
<div class="test-contents d-none">
|
||||
<div class="detail-head">
|
||||
<div class="p-v-10">
|
||||
<div class="info">
|
||||
<h5 class="test-status text-pass">Navigating to the parabank Url</h5>
|
||||
<span class='badge badge-success'>03.23.2023 15:24:31</span>
|
||||
<span class='badge badge-danger'>03.23.2023 15:24:31</span>
|
||||
<span class='badge badge-default'>30:00:007</span>
|
||||
· <span class='uri-anchor badge badge-default'>#test-id=1</span>
|
||||
</div>
|
||||
</div>
|
||||
</div><div class="detail-body mt-4">
|
||||
<table class="table table-sm">
|
||||
<thead><tr><th class="status-col">Status</th><th class="timestamp-col">Timestamp</th><th class="details-col">Details</th></tr></thead>
|
||||
<tbody>
|
||||
<tr class="event-row">
|
||||
<td><span class="badge log pass-bg">Pass</span></td>
|
||||
<td>3:24:31 PM</td>
|
||||
<td>
|
||||
Website successfully launched
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="test-content scrollable">
|
||||
<div class="test-content-tools">
|
||||
<ul><li><a class="back-to-test" href="#"><i class="fa fa-arrow-left"></i></a></li></ul>
|
||||
</div>
|
||||
<div class="test-content-detail"><div class="detail-body"></div></div>
|
||||
</div></div>
|
||||
<div class="container-fluid p-4 view dashboard-view">
|
||||
<div class="row">
|
||||
<div class="col-md-3">
|
||||
<div class="card"><div class="card-body">
|
||||
<p class="m-b-0">Started</p>
|
||||
<h3>Mar 23, 2023 03:24:27 PM</h3>
|
||||
</div></div>
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<div class="card"><div class="card-body">
|
||||
<p class="m-b-0">Ended</p>
|
||||
<h3>Mar 23, 2023 03:24:31 PM</h3>
|
||||
</div></div>
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<div class="card"><div class="card-body">
|
||||
<p class="m-b-0 text-pass">Tests Passed</p>
|
||||
<h3>1</h3>
|
||||
</div></div>
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<div class="card"><div class="card-body">
|
||||
<p class="m-b-0 text-fail">Tests Failed</p>
|
||||
<h3>0</h3>
|
||||
</div></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<h6 class="card-title">Tests</h6>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="">
|
||||
<canvas id='parent-analysis' width='115' height='90'></canvas>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-footer">
|
||||
<div><small data-tooltip='100%'>
|
||||
<b>1</b> tests passed
|
||||
</small>
|
||||
</div>
|
||||
<div>
|
||||
<small data-tooltip='0%'><b>0</b> tests failed,
|
||||
<b>0</b> skipped, <b data-tooltip='0%'>0</b> others
|
||||
</small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<h6 class="card-title">Log events</h6>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="">
|
||||
<canvas id='events-analysis' width='115' height='90'></canvas>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-footer">
|
||||
<div><small data-tooltip='100%'><b>1</b> events passed</small></div>
|
||||
<div>
|
||||
<small data-tooltip='0%'><b>0</b> events failed,
|
||||
<b data-tooltip='%'>0</b> others
|
||||
</small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row"><div class="col-md-12">
|
||||
<div class="card"><div class="card-header"><p>Timeline</p></div>
|
||||
<div class="card-body pt-0"><div>
|
||||
<canvas id="timeline" height="120"></canvas>
|
||||
</div></div>
|
||||
</div>
|
||||
</div></div>
|
||||
<script>
|
||||
var timeline = {
|
||||
"Navigating to the parabank Url":0.007
|
||||
};
|
||||
</script>
|
||||
<div class="row">
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
var statusGroup = {
|
||||
parentCount: 5,
|
||||
passParent: 1,
|
||||
failParent: 0,
|
||||
warningParent: 0,
|
||||
skipParent: 0,
|
||||
childCount: 5,
|
||||
passChild: 0,
|
||||
failChild: 0,
|
||||
warningChild: 0,
|
||||
skipChild: 0,
|
||||
infoChild: 0,
|
||||
grandChildCount: 5,
|
||||
passGrandChild: 0,
|
||||
failGrandChild: 0,
|
||||
warningGrandChild: 0,
|
||||
skipGrandChild: 0,
|
||||
infoGrandChild: 0,
|
||||
eventsCount: 5,
|
||||
passEvents: 1,
|
||||
failEvents: 0,
|
||||
warningEvents: 0,
|
||||
skipEvents: 0,
|
||||
infoEvents: 0
|
||||
};
|
||||
</script> </div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script src="https://cdn.jsdelivr.net/gh/extent-framework/extent-github-cdn@14e9bb345ef7e2ed3a102f271d84e9f0267c88e7/spark/js/spark-script.js"></script>
|
||||
<script type="text/javascript"></script></body>
|
||||
</html>
|
||||
94
test-output/Suite/Test.html
Normal file
|
|
@ -0,0 +1,94 @@
|
|||
<html>
|
||||
<head>
|
||||
<title>TestNG: Test</title>
|
||||
<link href="../testng.css" rel="stylesheet" type="text/css" />
|
||||
<link href="../my-testng.css" rel="stylesheet" type="text/css" />
|
||||
|
||||
<style type="text/css">
|
||||
.log { display: none;}
|
||||
.stack-trace { display: none;}
|
||||
</style>
|
||||
<script type="text/javascript">
|
||||
<!--
|
||||
function flip(e) {
|
||||
current = e.style.display;
|
||||
if (current == 'block') {
|
||||
e.style.display = 'none';
|
||||
return 0;
|
||||
}
|
||||
else {
|
||||
e.style.display = 'block';
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
function toggleBox(szDivId, elem, msg1, msg2)
|
||||
{
|
||||
var res = -1; if (document.getElementById) {
|
||||
res = flip(document.getElementById(szDivId));
|
||||
}
|
||||
else if (document.all) {
|
||||
// this is the way old msie versions work
|
||||
res = flip(document.all[szDivId]);
|
||||
}
|
||||
if(elem) {
|
||||
if(res == 0) elem.innerHTML = msg1; else elem.innerHTML = msg2;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function toggleAllBoxes() {
|
||||
if (document.getElementsByTagName) {
|
||||
d = document.getElementsByTagName('div');
|
||||
for (i = 0; i < d.length; i++) {
|
||||
if (d[i].className == 'log') {
|
||||
flip(d[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// -->
|
||||
</script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<h2 align='center'>Test</h2><table border='1' align="center">
|
||||
<tr>
|
||||
<td>Tests passed/Failed/Skipped:</td><td>3/0/0</td>
|
||||
</tr><tr>
|
||||
<td>Started on:</td><td>Fri Mar 24 11:33:38 GMT+05:30 2023</td>
|
||||
</tr>
|
||||
<tr><td>Total time:</td><td>22 seconds (22170 ms)</td>
|
||||
</tr><tr>
|
||||
<td>Included groups:</td><td></td>
|
||||
</tr><tr>
|
||||
<td>Excluded groups:</td><td></td>
|
||||
</tr>
|
||||
</table><p/>
|
||||
<small><i>(Hover the method name to see the test class name)</i></small><p/>
|
||||
<table width='100%' border='1' class='invocation-passed'>
|
||||
<tr><td colspan='4' align='center'><b>PASSED TESTS</b></td></tr>
|
||||
<tr><td><b>Test method</b></td>
|
||||
<td width="30%"><b>Exception</b></td>
|
||||
<td width="10%"><b>Time (seconds)</b></td>
|
||||
<td><b>Instance</b></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td title='com.hexaware.parabank.Runner.RegisterAccount()'><b>RegisterAccount</b><br>Test class: com.hexaware.parabank.Runner</td>
|
||||
<td></td>
|
||||
<td>8</td>
|
||||
<td>com.hexaware.parabank.Runner@3527942a</td></tr>
|
||||
<tr>
|
||||
<td title='com.hexaware.parabank.Runner.OpenNewAccount()'><b>OpenNewAccount</b><br>Test class: com.hexaware.parabank.Runner</td>
|
||||
<td></td>
|
||||
<td>2</td>
|
||||
<td>com.hexaware.parabank.Runner@3527942a</td></tr>
|
||||
<tr>
|
||||
<td title='com.hexaware.parabank.Runner.loginAccount()'><b>loginAccount</b><br>Test class: com.hexaware.parabank.Runner</td>
|
||||
<td></td>
|
||||
<td>2</td>
|
||||
<td>com.hexaware.parabank.Runner@3527942a</td></tr>
|
||||
</table><p>
|
||||
</body>
|
||||
</html>
|
||||
7
test-output/Suite/Test.xml
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Generated by org.testng.reporters.JUnitXMLReporter -->
|
||||
<testsuite ignored="0" hostname="Evolve-VM-28" failures="0" tests="3" name="Test" time="22.17" errors="0" timestamp="2023-03-24T11:34:00 GMT+05:30">
|
||||
<testcase classname="com.hexaware.parabank.Runner" name="RegisterAccount" time="8.224"/>
|
||||
<testcase classname="com.hexaware.parabank.Runner" name="loginAccount" time="2.334"/>
|
||||
<testcase classname="com.hexaware.parabank.Runner" name="OpenNewAccount" time="2.346"/>
|
||||
</testsuite> <!-- Test -->
|
||||
15
test-output/Suite/testng-failed.xml
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd">
|
||||
<suite name="Failed suite [Suite]" guice-stage="DEVELOPMENT">
|
||||
<test thread-count="5" name="Test(failed)">
|
||||
<classes>
|
||||
<class name="com.hexaware.parabank.Runner">
|
||||
<methods>
|
||||
<include name="setup"/>
|
||||
<include name="tearDown"/>
|
||||
<include name="OpenNewAccount"/>
|
||||
</methods>
|
||||
</class> <!-- com.hexaware.parabank.Runner -->
|
||||
</classes>
|
||||
</test> <!-- Test(failed) -->
|
||||
</suite> <!-- Failed suite [Suite] -->
|
||||
BIN
test-output/bullet_point.png
Normal file
|
After Width: | Height: | Size: 356 B |
BIN
test-output/collapseall.gif
Normal file
|
After Width: | Height: | Size: 157 B |
20
test-output/emailable-report.html
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "https://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
|
||||
<html xmlns="https://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
|
||||
<title>TestNG Report</title>
|
||||
<style type="text/css">table {margin-bottom:10px;border-collapse:collapse;empty-cells:show}th,td {border:1px solid #009;padding:.25em .5em}th {vertical-align:bottom}td {vertical-align:top}table a {font-weight:bold}.stripe td {background-color: #E6EBF9}.num {text-align:right}.passedodd td {background-color: #3F3}.passedeven td {background-color: #0A0}.skippedodd td {background-color: #DDD}.skippedeven td {background-color: #CCC}.failedodd td,.attn {background-color: #F33}.failedeven td,.stripe .attn {background-color: #D00}.stacktrace {white-space:pre;font-family:monospace}.totop {font-size:85%;text-align:center;border-bottom:2px solid #000}.invisible {display:none}</style>
|
||||
</head>
|
||||
<body>
|
||||
<table>
|
||||
<tr><th>Test</th><th># Passed</th><th># Skipped</th><th># Retried</th><th># Failed</th><th>Time (ms)</th><th>Included Groups</th><th>Excluded Groups</th></tr>
|
||||
<tr><th colspan="8">Suite</th></tr>
|
||||
<tr><td><a href="#t0">Test</a></td><td class="num">3</td><td class="num">0</td><td class="num">0</td><td class="num">0</td><td class="num">22,170</td><td></td><td></td></tr>
|
||||
</table>
|
||||
<table id='summary'><thead><tr><th>Class</th><th>Method</th><th>Start</th><th>Time (ms)</th></tr></thead><tbody><tr><th colspan="4">Suite</th></tr></tbody><tbody id="t0"><tr><th colspan="4">Test — passed</th></tr><tr class="passedeven"><td rowspan="3">com.hexaware.parabank.Runner</td><td><a href="#m0">OpenNewAccount</a></td><td rowspan="1">1679637832458</td><td rowspan="1">2346</td></tr><tr class="passedeven"><td><a href="#m1">RegisterAccount</a></td><td rowspan="1">1679637821895</td><td rowspan="1">8224</td></tr><tr class="passedeven"><td><a href="#m2">loginAccount</a></td><td rowspan="1">1679637830122</td><td rowspan="1">2334</td></tr></tbody>
|
||||
</table>
|
||||
<h2>Test</h2><h3 id="m0">com.hexaware.parabank.Runner#OpenNewAccount</h3><table class="result"><tr><th class="invisible"/></tr></table><p class="totop"><a href="#summary">back to summary</a></p>
|
||||
<h3 id="m1">com.hexaware.parabank.Runner#RegisterAccount</h3><table class="result"><tr><th class="invisible"/></tr></table><p class="totop"><a href="#summary">back to summary</a></p>
|
||||
<h3 id="m2">com.hexaware.parabank.Runner#loginAccount</h3><table class="result"><tr><th class="invisible"/></tr></table><p class="totop"><a href="#summary">back to summary</a></p>
|
||||
</body>
|
||||
</html>
|
||||
BIN
test-output/failed.png
Normal file
|
After Width: | Height: | Size: 977 B |
284
test-output/index.html
Normal file
|
|
@ -0,0 +1,284 @@
|
|||
<!DOCTYPE html>
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<meta charset='utf-8'>
|
||||
<title>TestNG reports</title>
|
||||
|
||||
<link type="text/css" href="testng-reports1.css" rel="stylesheet" id="ultra" />
|
||||
<link type="text/css" href="testng-reports.css" rel="stylesheet" id="retro" disabled="false"/>
|
||||
<script type="text/javascript" src="jquery.min.js"></script>
|
||||
<script type="text/javascript" src="testng-reports.js"></script>
|
||||
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
|
||||
<script type='text/javascript'>
|
||||
google.load('visualization', '1', {packages:['table']});
|
||||
google.setOnLoadCallback(drawTable);
|
||||
var suiteTableInitFunctions = new Array();
|
||||
var suiteTableData = new Array();
|
||||
</script>
|
||||
<!--
|
||||
<script type="text/javascript" src="jquery-ui/js/jquery-ui-1.8.16.custom.min.js"></script>
|
||||
-->
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="top-banner-root">
|
||||
<span class="top-banner-title-font">Test results</span>
|
||||
<button id="button" class="button">Switch Retro Theme</button> <!-- button -->
|
||||
<br/>
|
||||
<span class="top-banner-font-1">1 suite</span>
|
||||
</div> <!-- top-banner-root -->
|
||||
<div class="navigator-root">
|
||||
<div class="navigator-suite-header">
|
||||
<span>All suites</span>
|
||||
<a href="#" title="Collapse/expand all the suites" class="collapse-all-link">
|
||||
<img src="collapseall.gif" class="collapse-all-icon">
|
||||
</img> <!-- collapse-all-icon -->
|
||||
</a> <!-- collapse-all-link -->
|
||||
</div> <!-- navigator-suite-header -->
|
||||
<div class="suite">
|
||||
<div class="rounded-window">
|
||||
<div class="suite-header light-rounded-window-top">
|
||||
<a href="#" panel-name="suite-Suite" class="navigator-link">
|
||||
<span class="suite-name border-passed">Suite</span>
|
||||
</a> <!-- navigator-link -->
|
||||
</div> <!-- suite-header light-rounded-window-top -->
|
||||
<div class="navigator-suite-content">
|
||||
<div class="suite-section-title">
|
||||
<span>Info</span>
|
||||
</div> <!-- suite-section-title -->
|
||||
<div class="suite-section-content">
|
||||
<ul>
|
||||
<li>
|
||||
<a href="#" panel-name="test-xml-Suite" class="navigator-link ">
|
||||
<span>C:\Users\1000074437\Desktop\1000074437\Parabank\parabank\parabank\testng.xml</span>
|
||||
</a> <!-- navigator-link -->
|
||||
</li>
|
||||
<li>
|
||||
<a href="#" panel-name="testlist-Suite" class="navigator-link ">
|
||||
<span class="test-stats">1 test</span>
|
||||
</a> <!-- navigator-link -->
|
||||
</li>
|
||||
<li>
|
||||
<a href="#" panel-name="group-Suite" class="navigator-link ">
|
||||
<span>0 groups</span>
|
||||
</a> <!-- navigator-link -->
|
||||
</li>
|
||||
<li>
|
||||
<a href="#" panel-name="times-Suite" class="navigator-link ">
|
||||
<span>Times</span>
|
||||
</a> <!-- navigator-link -->
|
||||
</li>
|
||||
<li>
|
||||
<a href="#" panel-name="reporter-Suite" class="navigator-link ">
|
||||
<span>Reporter output</span>
|
||||
</a> <!-- navigator-link -->
|
||||
</li>
|
||||
<li>
|
||||
<a href="#" panel-name="ignored-methods-Suite" class="navigator-link ">
|
||||
<span>Ignored methods</span>
|
||||
</a> <!-- navigator-link -->
|
||||
</li>
|
||||
<li>
|
||||
<a href="#" panel-name="chronological-Suite" class="navigator-link ">
|
||||
<span>Chronological view</span>
|
||||
</a> <!-- navigator-link -->
|
||||
</li>
|
||||
</ul>
|
||||
</div> <!-- suite-section-content -->
|
||||
<div class="result-section">
|
||||
<div class="suite-section-title">
|
||||
<span>Results</span>
|
||||
</div> <!-- suite-section-title -->
|
||||
<div class="suite-section-content">
|
||||
<ul>
|
||||
<li>
|
||||
<span class="method-stats">3 methods, 3 passed</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class="method-list-title passed">Passed methods</span>
|
||||
<span class="show-or-hide-methods passed">
|
||||
<a href="#" panel-name="suite-Suite" class="hide-methods passed suite-Suite"> (hide)</a> <!-- hide-methods passed suite-Suite -->
|
||||
<a href="#" panel-name="suite-Suite" class="show-methods passed suite-Suite"> (show)</a> <!-- show-methods passed suite-Suite -->
|
||||
</span>
|
||||
<div class="method-list-content passed suite-Suite">
|
||||
<span>
|
||||
<img src="passed.png" width="3%"/>
|
||||
<a href="#" panel-name="suite-Suite" title="com.hexaware.parabank.Runner" class="method navigator-link" hash-for-method="OpenNewAccount">OpenNewAccount</a> <!-- method navigator-link -->
|
||||
</span>
|
||||
<br/>
|
||||
<span>
|
||||
<img src="passed.png" width="3%"/>
|
||||
<a href="#" panel-name="suite-Suite" title="com.hexaware.parabank.Runner" class="method navigator-link" hash-for-method="RegisterAccount">RegisterAccount</a> <!-- method navigator-link -->
|
||||
</span>
|
||||
<br/>
|
||||
<span>
|
||||
<img src="passed.png" width="3%"/>
|
||||
<a href="#" panel-name="suite-Suite" title="com.hexaware.parabank.Runner" class="method navigator-link" hash-for-method="loginAccount">loginAccount</a> <!-- method navigator-link -->
|
||||
</span>
|
||||
<br/>
|
||||
</div> <!-- method-list-content passed suite-Suite -->
|
||||
</li>
|
||||
</ul>
|
||||
</div> <!-- suite-section-content -->
|
||||
</div> <!-- result-section -->
|
||||
</div> <!-- navigator-suite-content -->
|
||||
</div> <!-- rounded-window -->
|
||||
</div> <!-- suite -->
|
||||
</div> <!-- navigator-root -->
|
||||
<div class="wrapper">
|
||||
<div class="main-panel-root">
|
||||
<div panel-name="suite-Suite" class="panel Suite">
|
||||
<div class="suite-Suite-class-passed">
|
||||
<div class="main-panel-header rounded-window-top">
|
||||
<img src="passed.png"/>
|
||||
<span class="class-name">com.hexaware.parabank.Runner</span>
|
||||
</div> <!-- main-panel-header rounded-window-top -->
|
||||
<div class="main-panel-content rounded-window-bottom">
|
||||
<div class="method">
|
||||
<div class="method-content">
|
||||
<a name="OpenNewAccount">
|
||||
</a> <!-- OpenNewAccount -->
|
||||
<span class="method-name">OpenNewAccount</span>
|
||||
</div> <!-- method-content -->
|
||||
</div> <!-- method -->
|
||||
<div class="method">
|
||||
<div class="method-content">
|
||||
<a name="RegisterAccount">
|
||||
</a> <!-- RegisterAccount -->
|
||||
<span class="method-name">RegisterAccount</span>
|
||||
</div> <!-- method-content -->
|
||||
</div> <!-- method -->
|
||||
<div class="method">
|
||||
<div class="method-content">
|
||||
<a name="loginAccount">
|
||||
</a> <!-- loginAccount -->
|
||||
<span class="method-name">loginAccount</span>
|
||||
</div> <!-- method-content -->
|
||||
</div> <!-- method -->
|
||||
</div> <!-- main-panel-content rounded-window-bottom -->
|
||||
</div> <!-- suite-Suite-class-passed -->
|
||||
</div> <!-- panel Suite -->
|
||||
<div panel-name="test-xml-Suite" class="panel">
|
||||
<div class="main-panel-header rounded-window-top">
|
||||
<span class="header-content">C:\Users\1000074437\Desktop\1000074437\Parabank\parabank\parabank\testng.xml</span>
|
||||
</div> <!-- main-panel-header rounded-window-top -->
|
||||
<div class="main-panel-content rounded-window-bottom">
|
||||
<pre>
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd">
|
||||
<suite name="Suite" guice-stage="DEVELOPMENT">
|
||||
<test thread-count="5" name="Test">
|
||||
<classes>
|
||||
<class name="com.hexaware.parabank.hook"/>
|
||||
<class name="com.hexaware.parabank.Runner"/>
|
||||
</classes>
|
||||
</test> <!-- Test -->
|
||||
</suite> <!-- Suite -->
|
||||
</pre>
|
||||
</div> <!-- main-panel-content rounded-window-bottom -->
|
||||
</div> <!-- panel -->
|
||||
<div panel-name="testlist-Suite" class="panel">
|
||||
<div class="main-panel-header rounded-window-top">
|
||||
<span class="header-content">Tests for Suite</span>
|
||||
</div> <!-- main-panel-header rounded-window-top -->
|
||||
<div class="main-panel-content rounded-window-bottom">
|
||||
<ul>
|
||||
<li>
|
||||
<span class="test-name">Test (2 classes)</span>
|
||||
</li>
|
||||
</ul>
|
||||
</div> <!-- main-panel-content rounded-window-bottom -->
|
||||
</div> <!-- panel -->
|
||||
<div panel-name="group-Suite" class="panel">
|
||||
<div class="main-panel-header rounded-window-top">
|
||||
<span class="header-content">Groups for Suite</span>
|
||||
</div> <!-- main-panel-header rounded-window-top -->
|
||||
<div class="main-panel-content rounded-window-bottom">
|
||||
</div> <!-- main-panel-content rounded-window-bottom -->
|
||||
</div> <!-- panel -->
|
||||
<div panel-name="times-Suite" class="panel">
|
||||
<div class="main-panel-header rounded-window-top">
|
||||
<span class="header-content">Times for Suite</span>
|
||||
</div> <!-- main-panel-header rounded-window-top -->
|
||||
<div class="main-panel-content rounded-window-bottom">
|
||||
<div class="times-div">
|
||||
<script type="text/javascript">
|
||||
suiteTableInitFunctions.push('tableData_Suite');
|
||||
function tableData_Suite() {
|
||||
var data = new google.visualization.DataTable();
|
||||
data.addColumn('number', 'Number');
|
||||
data.addColumn('string', 'Method');
|
||||
data.addColumn('string', 'Class');
|
||||
data.addColumn('number', 'Time (ms)');
|
||||
data.addRows(3);
|
||||
data.setCell(0, 0, 0)
|
||||
data.setCell(0, 1, 'RegisterAccount')
|
||||
data.setCell(0, 2, 'com.hexaware.parabank.Runner')
|
||||
data.setCell(0, 3, 8224);
|
||||
data.setCell(1, 0, 1)
|
||||
data.setCell(1, 1, 'OpenNewAccount')
|
||||
data.setCell(1, 2, 'com.hexaware.parabank.Runner')
|
||||
data.setCell(1, 3, 2346);
|
||||
data.setCell(2, 0, 2)
|
||||
data.setCell(2, 1, 'loginAccount')
|
||||
data.setCell(2, 2, 'com.hexaware.parabank.Runner')
|
||||
data.setCell(2, 3, 2334);
|
||||
window.suiteTableData['Suite']= { tableData: data, tableDiv: 'times-div-Suite'}
|
||||
return data;
|
||||
}
|
||||
</script>
|
||||
<span class="suite-total-time">Total running time: 12 seconds</span>
|
||||
<div id="times-div-Suite">
|
||||
</div> <!-- times-div-Suite -->
|
||||
</div> <!-- times-div -->
|
||||
</div> <!-- main-panel-content rounded-window-bottom -->
|
||||
</div> <!-- panel -->
|
||||
<div panel-name="reporter-Suite" class="panel">
|
||||
<div class="main-panel-header rounded-window-top">
|
||||
<span class="header-content">Reporter output for Suite</span>
|
||||
</div> <!-- main-panel-header rounded-window-top -->
|
||||
<div class="main-panel-content rounded-window-bottom">
|
||||
</div> <!-- main-panel-content rounded-window-bottom -->
|
||||
</div> <!-- panel -->
|
||||
<div panel-name="ignored-methods-Suite" class="panel">
|
||||
<div class="main-panel-header rounded-window-top">
|
||||
<span class="header-content">0 ignored methods</span>
|
||||
</div> <!-- main-panel-header rounded-window-top -->
|
||||
<div class="main-panel-content rounded-window-bottom">
|
||||
</div> <!-- main-panel-content rounded-window-bottom -->
|
||||
</div> <!-- panel -->
|
||||
<div panel-name="chronological-Suite" class="panel">
|
||||
<div class="main-panel-header rounded-window-top">
|
||||
<span class="header-content">Methods in chronological order</span>
|
||||
</div> <!-- main-panel-header rounded-window-top -->
|
||||
<div class="main-panel-content rounded-window-bottom">
|
||||
<div class="chronological-class">
|
||||
<div class="chronological-class-name">com.hexaware.parabank.Runner</div> <!-- chronological-class-name -->
|
||||
<div class="configuration-class before">
|
||||
<span class="method-name">setup</span>
|
||||
<span class="method-start">0 ms</span>
|
||||
</div> <!-- configuration-class before -->
|
||||
<div class="test-method">
|
||||
<span class="method-name">RegisterAccount</span>
|
||||
<span class="method-start">3204 ms</span>
|
||||
</div> <!-- test-method -->
|
||||
<div class="test-method">
|
||||
<span class="method-name">loginAccount</span>
|
||||
<span class="method-start">11431 ms</span>
|
||||
</div> <!-- test-method -->
|
||||
<div class="test-method">
|
||||
<span class="method-name">OpenNewAccount</span>
|
||||
<span class="method-start">13767 ms</span>
|
||||
</div> <!-- test-method -->
|
||||
<div class="configuration-class after">
|
||||
<span class="method-name">tearDown</span>
|
||||
<span class="method-start">16116 ms</span>
|
||||
</div> <!-- configuration-class after -->
|
||||
</div> <!-- main-panel-content rounded-window-bottom -->
|
||||
</div> <!-- panel -->
|
||||
</div> <!-- main-panel-root -->
|
||||
</div> <!-- wrapper -->
|
||||
</body>
|
||||
<script type="text/javascript" src="testng-reports2.js"></script>
|
||||
</html>
|
||||
2
test-output/jquery.min.js
vendored
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Generated by org.testng.reporters.JUnitReportReporter -->
|
||||
<testsuite hostname="Evolve-VM-27" failures="0" tests="1" name="com.hexaware.parabank.App" time="0.008" errors="0" timestamp="2023-03-21T16:09:37 GMT+05:30" skipped="0">
|
||||
<testcase classname="com.hexaware.parabank.App" name="print" time="0.008"/>
|
||||
<system-out/>
|
||||
</testsuite> <!-- com.hexaware.parabank.App -->
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Generated by org.testng.reporters.JUnitReportReporter -->
|
||||
<testsuite hostname="Evolve-VM-28" failures="0" tests="3" name="com.hexaware.parabank.Runner" time="12.904" errors="0" timestamp="2023-03-24T11:34:01 GMT+05:30" skipped="0">
|
||||
<testcase classname="com.hexaware.parabank.Runner" name="RegisterAccount" time="8.224"/>
|
||||
<system-out/>
|
||||
<testcase classname="com.hexaware.parabank.Runner" name="loginAccount" time="2.334"/>
|
||||
<system-out/>
|
||||
<testcase classname="com.hexaware.parabank.Runner" name="OpenNewAccount" time="2.346"/>
|
||||
<system-out/>
|
||||
</testsuite> <!-- com.hexaware.parabank.Runner -->
|
||||
|
|
@ -0,0 +1,45 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Generated by org.testng.reporters.JUnitReportReporter -->
|
||||
<testsuite hostname="Evolve-VM-28" failures="0" tests="2" name="com.hexaware.parabank.UserRegistration" time="4.058" errors="1" timestamp="2023-03-23T16:50:44 GMT+05:30" skipped="0">
|
||||
<testcase classname="com.hexaware.parabank.UserRegistration" name="goToUrl" time="4.057"/>
|
||||
<system-out/>
|
||||
<testcase classname="com.hexaware.parabank.UserRegistration" name="typeCred" time="0.001">
|
||||
<error message="Cannot invoke "org.openqa.selenium.SearchContext.findElement(org.openqa.selenium.By)" because "this.searchContext" is null" type="java.lang.NullPointerException">
|
||||
<![CDATA[java.lang.NullPointerException: Cannot invoke "org.openqa.selenium.SearchContext.findElement(org.openqa.selenium.By)" because "this.searchContext" is null
|
||||
at org.openqa.selenium.support.pagefactory.DefaultElementLocator.findElement(DefaultElementLocator.java:70)
|
||||
at org.openqa.selenium.support.pagefactory.internal.LocatingElementHandler.invoke(LocatingElementHandler.java:39)
|
||||
at com.sun.proxy.$Proxy11.click(Unknown Source)
|
||||
at com.hexaware.parabank.UserRegistration.typeCred(UserRegistration.java:40)
|
||||
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
|
||||
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
|
||||
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
|
||||
at java.base/java.lang.reflect.Method.invoke(Method.java:564)
|
||||
at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:133)
|
||||
at org.testng.internal.TestInvoker.invokeMethod(TestInvoker.java:598)
|
||||
at org.testng.internal.TestInvoker.invokeTestMethod(TestInvoker.java:173)
|
||||
at org.testng.internal.MethodRunner.runInSequence(MethodRunner.java:46)
|
||||
at org.testng.internal.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:824)
|
||||
at org.testng.internal.TestInvoker.invokeTestMethods(TestInvoker.java:146)
|
||||
at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:146)
|
||||
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:128)
|
||||
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
|
||||
at org.testng.TestRunner.privateRun(TestRunner.java:794)
|
||||
at org.testng.TestRunner.run(TestRunner.java:596)
|
||||
at org.testng.SuiteRunner.runTest(SuiteRunner.java:377)
|
||||
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:371)
|
||||
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:332)
|
||||
at org.testng.SuiteRunner.run(SuiteRunner.java:276)
|
||||
at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:53)
|
||||
at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:96)
|
||||
at org.testng.TestNG.runSuitesSequentially(TestNG.java:1212)
|
||||
at org.testng.TestNG.runSuitesLocally(TestNG.java:1134)
|
||||
at org.testng.TestNG.runSuites(TestNG.java:1063)
|
||||
at org.testng.TestNG.run(TestNG.java:1031)
|
||||
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)
|
||||
]]>
|
||||
</error>
|
||||
</testcase> <!-- typeCred -->
|
||||
<system-out/>
|
||||
</testsuite> <!-- com.hexaware.parabank.UserRegistration -->
|
||||
BIN
test-output/navigator-bullet.png
Normal file
|
After Width: | Height: | Size: 352 B |
1
test-output/old/Default suite/Default test.properties
Normal file
|
|
@ -0,0 +1 @@
|
|||
[SuiteResult context=Default test]
|
||||
36
test-output/old/Default suite/classes.html
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
<table border='1'>
|
||||
<tr>
|
||||
<th>Class name</th>
|
||||
<th>Method name</th>
|
||||
<th>Groups</th>
|
||||
</tr><tr>
|
||||
<td>com.hexaware.parabank.Runner</td>
|
||||
<td> </td><td> </td></tr>
|
||||
<tr>
|
||||
<td align='center' colspan='3'>@Test</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> </td>
|
||||
<td>RegisterAccount</td>
|
||||
<td> </td></tr>
|
||||
<tr>
|
||||
<td align='center' colspan='3'>@BeforeClass</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> </td>
|
||||
<td>setup</td>
|
||||
<td> </td></tr>
|
||||
<tr>
|
||||
<td align='center' colspan='3'>@BeforeMethod</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align='center' colspan='3'>@AfterMethod</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align='center' colspan='3'>@AfterClass</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> </td>
|
||||
<td>tearDown</td>
|
||||
<td> </td></tr>
|
||||
</table>
|
||||
1
test-output/old/Default suite/groups.html
Normal file
|
|
@ -0,0 +1 @@
|
|||
<h2>Groups used for this test run</h2>
|
||||
6
test-output/old/Default suite/index.html
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
<html><head><title>Results for Default suite</title></head>
|
||||
<frameset cols="26%,74%">
|
||||
<frame src="toc.html" name="navFrame">
|
||||
<frame src="main.html" name="mainFrame">
|
||||
</frameset>
|
||||
</html>
|
||||
2
test-output/old/Default suite/main.html
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
<html><head><title>Results for Default suite</title></head>
|
||||
<body>Select a result on the left-hand pane.</body></html>
|
||||
10
test-output/old/Default suite/methods-alphabetical.html
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
<h2>Methods run, sorted chronologically</h2><h3>>> means before, << means after</h3><p/><br/><em>Default suite</em><p/><small><i>(Hover the method name to see the test class name)</i></small><p/>
|
||||
<table border="1">
|
||||
<tr><th>Time</th><th>Delta (ms)</th><th>Suite<br>configuration</th><th>Test<br>configuration</th><th>Class<br>configuration</th><th>Groups<br>configuration</th><th>Method<br>configuration</th><th>Test<br>method</th><th>Thread</th><th>Instances</th></tr>
|
||||
<tr bgcolor="f0819d"> <td>23/03/23 19:07:33</td> <td>0</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="Runner.RegisterAccount()[pri:1, instance:com.hexaware.parabank.Runner@53aac487]">RegisterAccount</td>
|
||||
<td>main@216856121</td> <td></td> </tr>
|
||||
<tr bgcolor="668b6e"> <td>23/03/23 19:07:30</td> <td>-3029</td> <td> </td><td> </td><td title=">>hook.setup()[pri:0, instance:com.hexaware.parabank.Runner@53aac487]">>>setup</td>
|
||||
<td> </td><td> </td><td> </td> <td>main@216856121</td> <td></td> </tr>
|
||||
<tr bgcolor="668b6e"> <td>23/03/23 19:07:38</td> <td>5310</td> <td> </td><td> </td><td title="<<hook.tearDown()[pri:0, instance:com.hexaware.parabank.Runner@53aac487]"><<tearDown</td>
|
||||
<td> </td><td> </td><td> </td> <td>main@216856121</td> <td></td> </tr>
|
||||
</table>
|
||||
2
test-output/old/Default suite/methods-not-run.html
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
<h2>Methods that were not run</h2><table>
|
||||
</table>
|
||||
10
test-output/old/Default suite/methods.html
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
<h2>Methods run, sorted chronologically</h2><h3>>> means before, << means after</h3><p/><br/><em>Default suite</em><p/><small><i>(Hover the method name to see the test class name)</i></small><p/>
|
||||
<table border="1">
|
||||
<tr><th>Time</th><th>Delta (ms)</th><th>Suite<br>configuration</th><th>Test<br>configuration</th><th>Class<br>configuration</th><th>Groups<br>configuration</th><th>Method<br>configuration</th><th>Test<br>method</th><th>Thread</th><th>Instances</th></tr>
|
||||
<tr bgcolor="668b6e"> <td>23/03/23 19:07:38</td> <td>0</td> <td> </td><td> </td><td title="<<hook.tearDown()[pri:0, instance:com.hexaware.parabank.Runner@53aac487]"><<tearDown</td>
|
||||
<td> </td><td> </td><td> </td> <td>main@216856121</td> <td></td> </tr>
|
||||
<tr bgcolor="668b6e"> <td>23/03/23 19:07:30</td> <td>-8339</td> <td> </td><td> </td><td title=">>hook.setup()[pri:0, instance:com.hexaware.parabank.Runner@53aac487]">>>setup</td>
|
||||
<td> </td><td> </td><td> </td> <td>main@216856121</td> <td></td> </tr>
|
||||
<tr bgcolor="f0819d"> <td>23/03/23 19:07:33</td> <td>-5310</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="Runner.RegisterAccount()[pri:1, instance:com.hexaware.parabank.Runner@53aac487]">RegisterAccount</td>
|
||||
<td>main@216856121</td> <td></td> </tr>
|
||||
</table>
|
||||
1
test-output/old/Default suite/reporter-output.html
Normal file
|
|
@ -0,0 +1 @@
|
|||
<h2>Reporter output</h2><table></table>
|
||||
1
test-output/old/Default suite/testng.xml.html
Normal file
|
|
@ -0,0 +1 @@
|
|||
<html><head><title>testng.xml for Default suite</title></head><body><tt><?xml version="1.0" encoding="UTF-8"?>
<br/><!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd">
<br/><suite name="Default suite" guice-stage="DEVELOPMENT">
<br/> <test thread-count="5" name="Default test" verbose="2">
<br/> <classes>
<br/> <class name="com.hexaware.parabank.Runner"/>
<br/> </classes>
<br/> </test> <!-- Default test -->
<br/></suite> <!-- Default suite -->
<br/></tt></body></html>
|
||||
30
test-output/old/Default suite/toc.html
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
<html>
|
||||
<head>
|
||||
<title>Results for Default suite</title>
|
||||
<link href="../testng.css" rel="stylesheet" type="text/css" />
|
||||
<link href="../my-testng.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<h3><p align="center">Results for<br/><em>Default suite</em></p></h3>
|
||||
<table border='1' width='100%'>
|
||||
<tr valign='top'>
|
||||
<td>1 test</td>
|
||||
<td><a target='mainFrame' href='classes.html'>1 class</a></td>
|
||||
<td>1 method:<br/>
|
||||
<a target='mainFrame' href='methods.html'>chronological</a><br/>
|
||||
<a target='mainFrame' href='methods-alphabetical.html'>alphabetical</a><br/>
|
||||
<a target='mainFrame' href='methods-not-run.html'>not run (0)</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a target='mainFrame' href='groups.html'>0 group</a></td>
|
||||
<td><a target='mainFrame' href='reporter-output.html'>reporter output</a></td>
|
||||
<td><a target='mainFrame' href='testng.xml.html'>testng.xml</a></td>
|
||||
</tr></table>
|
||||
<table width='100%' class='test-passed'>
|
||||
<tr><td>
|
||||
<table style='width: 100%'><tr><td valign='top'>Default test (1/0/0)</td><td valign='top' align='right'>
|
||||
<a href='Default test.html' target='mainFrame'>Results</a>
|
||||
</td></tr></table>
|
||||
</td></tr><p/>
|
||||
</table>
|
||||
</body></html>
|
||||
1
test-output/old/Suite/Test.properties
Normal file
|
|
@ -0,0 +1 @@
|
|||
[SuiteResult context=Test]
|
||||
44
test-output/old/Suite/classes.html
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
<table border='1'>
|
||||
<tr>
|
||||
<th>Class name</th>
|
||||
<th>Method name</th>
|
||||
<th>Groups</th>
|
||||
</tr><tr>
|
||||
<td>com.hexaware.parabank.Runner</td>
|
||||
<td> </td><td> </td></tr>
|
||||
<tr>
|
||||
<td align='center' colspan='3'>@Test</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> </td>
|
||||
<td>OpenNewAccount</td>
|
||||
<td> </td></tr>
|
||||
<tr>
|
||||
<td> </td>
|
||||
<td>loginAccount</td>
|
||||
<td> </td></tr>
|
||||
<tr>
|
||||
<td> </td>
|
||||
<td>RegisterAccount</td>
|
||||
<td> </td></tr>
|
||||
<tr>
|
||||
<td align='center' colspan='3'>@BeforeClass</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> </td>
|
||||
<td>setup</td>
|
||||
<td> </td></tr>
|
||||
<tr>
|
||||
<td align='center' colspan='3'>@BeforeMethod</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align='center' colspan='3'>@AfterMethod</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align='center' colspan='3'>@AfterClass</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> </td>
|
||||
<td>tearDown</td>
|
||||
<td> </td></tr>
|
||||
</table>
|
||||
1
test-output/old/Suite/groups.html
Normal file
|
|
@ -0,0 +1 @@
|
|||
<h2>Groups used for this test run</h2>
|
||||
6
test-output/old/Suite/index.html
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
<html><head><title>Results for Suite</title></head>
|
||||
<frameset cols="26%,74%">
|
||||
<frame src="toc.html" name="navFrame">
|
||||
<frame src="main.html" name="mainFrame">
|
||||
</frameset>
|
||||
</html>
|
||||
2
test-output/old/Suite/main.html
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
<html><head><title>Results for Suite</title></head>
|
||||
<body>Select a result on the left-hand pane.</body></html>
|
||||
14
test-output/old/Suite/methods-alphabetical.html
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
<h2>Methods run, sorted chronologically</h2><h3>>> means before, << means after</h3><p/><br/><em>Suite</em><p/><small><i>(Hover the method name to see the test class name)</i></small><p/>
|
||||
<table border="1">
|
||||
<tr><th>Time</th><th>Delta (ms)</th><th>Suite<br>configuration</th><th>Test<br>configuration</th><th>Class<br>configuration</th><th>Groups<br>configuration</th><th>Method<br>configuration</th><th>Test<br>method</th><th>Thread</th><th>Instances</th></tr>
|
||||
<tr bgcolor="76738a"> <td>23/03/24 11:33:52</td> <td>0</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="Runner.OpenNewAccount()[pri:3, instance:com.hexaware.parabank.Runner@3527942a]">OpenNewAccount</td>
|
||||
<td>main@113411247</td> <td></td> </tr>
|
||||
<tr bgcolor="76738a"> <td>23/03/24 11:33:41</td> <td>-10563</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="Runner.RegisterAccount()[pri:1, instance:com.hexaware.parabank.Runner@3527942a]">RegisterAccount</td>
|
||||
<td>main@113411247</td> <td></td> </tr>
|
||||
<tr bgcolor="76738a"> <td>23/03/24 11:33:50</td> <td>-2336</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="Runner.loginAccount()[pri:2, instance:com.hexaware.parabank.Runner@3527942a]">loginAccount</td>
|
||||
<td>main@113411247</td> <td></td> </tr>
|
||||
<tr bgcolor="f0819d"> <td>23/03/24 11:33:38</td> <td>-13762</td> <td> </td><td> </td><td title=">>hook.setup()[pri:0, instance:com.hexaware.parabank.Runner@3527942a]">>>setup</td>
|
||||
<td> </td><td> </td><td> </td> <td>main@113411247</td> <td></td> </tr>
|
||||
<tr bgcolor="f0819d"> <td>23/03/24 11:33:54</td> <td>2350</td> <td> </td><td> </td><td title="<<hook.tearDown()[pri:0, instance:com.hexaware.parabank.Runner@3527942a]"><<tearDown</td>
|
||||
<td> </td><td> </td><td> </td> <td>main@113411247</td> <td></td> </tr>
|
||||
</table>
|
||||
2
test-output/old/Suite/methods-not-run.html
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
<h2>Methods that were not run</h2><table>
|
||||
</table>
|
||||
14
test-output/old/Suite/methods.html
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
<h2>Methods run, sorted chronologically</h2><h3>>> means before, << means after</h3><p/><br/><em>Suite</em><p/><small><i>(Hover the method name to see the test class name)</i></small><p/>
|
||||
<table border="1">
|
||||
<tr><th>Time</th><th>Delta (ms)</th><th>Suite<br>configuration</th><th>Test<br>configuration</th><th>Class<br>configuration</th><th>Groups<br>configuration</th><th>Method<br>configuration</th><th>Test<br>method</th><th>Thread</th><th>Instances</th></tr>
|
||||
<tr bgcolor="76738a"> <td>23/03/24 11:33:41</td> <td>0</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="Runner.RegisterAccount()[pri:1, instance:com.hexaware.parabank.Runner@3527942a]">RegisterAccount</td>
|
||||
<td>main@113411247</td> <td></td> </tr>
|
||||
<tr bgcolor="76738a"> <td>23/03/24 11:33:52</td> <td>10563</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="Runner.OpenNewAccount()[pri:3, instance:com.hexaware.parabank.Runner@3527942a]">OpenNewAccount</td>
|
||||
<td>main@113411247</td> <td></td> </tr>
|
||||
<tr bgcolor="76738a"> <td>23/03/24 11:33:50</td> <td>8227</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="Runner.loginAccount()[pri:2, instance:com.hexaware.parabank.Runner@3527942a]">loginAccount</td>
|
||||
<td>main@113411247</td> <td></td> </tr>
|
||||
<tr bgcolor="f0819d"> <td>23/03/24 11:33:38</td> <td>-3199</td> <td> </td><td> </td><td title=">>hook.setup()[pri:0, instance:com.hexaware.parabank.Runner@3527942a]">>>setup</td>
|
||||
<td> </td><td> </td><td> </td> <td>main@113411247</td> <td></td> </tr>
|
||||
<tr bgcolor="f0819d"> <td>23/03/24 11:33:54</td> <td>12913</td> <td> </td><td> </td><td title="<<hook.tearDown()[pri:0, instance:com.hexaware.parabank.Runner@3527942a]"><<tearDown</td>
|
||||
<td> </td><td> </td><td> </td> <td>main@113411247</td> <td></td> </tr>
|
||||
</table>
|
||||
1
test-output/old/Suite/reporter-output.html
Normal file
|
|
@ -0,0 +1 @@
|
|||
<h2>Reporter output</h2><table></table>
|
||||
1
test-output/old/Suite/testng.xml.html
Normal file
|
|
@ -0,0 +1 @@
|
|||
<html><head><title>testng.xml for Suite</title></head><body><tt><?xml version="1.0" encoding="UTF-8"?>
<br/><!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd">
<br/><suite name="Suite" guice-stage="DEVELOPMENT">
<br/> <test thread-count="5" name="Test">
<br/> <classes>
<br/> <class name="com.hexaware.parabank.hook"/>
<br/> <class name="com.hexaware.parabank.Runner"/>
<br/> </classes>
<br/> </test> <!-- Test -->
<br/></suite> <!-- Suite -->
<br/></tt></body></html>
|
||||
30
test-output/old/Suite/toc.html
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
<html>
|
||||
<head>
|
||||
<title>Results for Suite</title>
|
||||
<link href="../testng.css" rel="stylesheet" type="text/css" />
|
||||
<link href="../my-testng.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<h3><p align="center">Results for<br/><em>Suite</em></p></h3>
|
||||
<table border='1' width='100%'>
|
||||
<tr valign='top'>
|
||||
<td>1 test</td>
|
||||
<td><a target='mainFrame' href='classes.html'>1 class</a></td>
|
||||
<td>3 methods:<br/>
|
||||
<a target='mainFrame' href='methods.html'>chronological</a><br/>
|
||||
<a target='mainFrame' href='methods-alphabetical.html'>alphabetical</a><br/>
|
||||
<a target='mainFrame' href='methods-not-run.html'>not run (0)</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a target='mainFrame' href='groups.html'>0 group</a></td>
|
||||
<td><a target='mainFrame' href='reporter-output.html'>reporter output</a></td>
|
||||
<td><a target='mainFrame' href='testng.xml.html'>testng.xml</a></td>
|
||||
</tr></table>
|
||||
<table width='100%' class='test-passed'>
|
||||
<tr><td>
|
||||
<table style='width: 100%'><tr><td valign='top'>Test (3/0/0)</td><td valign='top' align='right'>
|
||||
<a href='Test.html' target='mainFrame'>Results</a>
|
||||
</td></tr></table>
|
||||
</td></tr><p/>
|
||||
</table>
|
||||
</body></html>
|
||||
9
test-output/old/index.html
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
<html>
|
||||
<head><title></title><link href="./testng.css" rel="stylesheet" type="text/css" />
|
||||
<link href="./my-testng.css" rel="stylesheet" type="text/css" />
|
||||
</head><body>
|
||||
<h2><p align='center'>Test results</p></h2>
|
||||
<table border='1' width='100%' class='main-page'><tr><th>Suite</th><th>Passed</th><th>Failed</th><th>Skipped</th><th>testng.xml</th></tr>
|
||||
<tr align='center' class='invocation-passed'><td><em>Total</em></td><td><em>3</em></td><td><em>0</em></td><td><em>0</em></td><td> </td></tr>
|
||||
<tr align='center' class='invocation-passed'><td><a href='Suite/index.html'>Suite</a></td>
|
||||
<td>3</td><td>0</td><td>0</td><td><a href='Suite/testng.xml.html'>Link</a></td></tr></table></body></html>
|
||||
BIN
test-output/passed.png
Normal file
|
After Width: | Height: | Size: 1019 B |
BIN
test-output/skipped.png
Normal file
|
After Width: | Height: | Size: 967 B |
15
test-output/testng-failed.xml
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd">
|
||||
<suite name="Failed suite [Suite]" guice-stage="DEVELOPMENT">
|
||||
<test thread-count="5" name="Test(failed)">
|
||||
<classes>
|
||||
<class name="com.hexaware.parabank.Runner">
|
||||
<methods>
|
||||
<include name="setup"/>
|
||||
<include name="tearDown"/>
|
||||
<include name="OpenNewAccount"/>
|
||||
</methods>
|
||||
</class> <!-- com.hexaware.parabank.Runner -->
|
||||
</classes>
|
||||
</test> <!-- Test(failed) -->
|
||||
</suite> <!-- Failed suite [Suite] -->
|
||||
326
test-output/testng-reports.css
Normal file
|
|
@ -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*/
|
||||
122
test-output/testng-reports.js
Normal file
|
|
@ -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
|
||||
});
|
||||
}
|
||||
}
|
||||
344
test-output/testng-reports1.css
Normal file
|
|
@ -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*/
|
||||
76
test-output/testng-reports2.js
Normal file
|
|
@ -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*/
|
||||
33
test-output/testng-results.xml
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<testng-results ignored="0" total="3" passed="3" failed="0" skipped="0">
|
||||
<reporter-output>
|
||||
</reporter-output>
|
||||
<suite started-at="2023-03-24T11:33:38 GMT+05:30" name="Suite" finished-at="2023-03-24T11:34:00 GMT+05:30" duration-ms="22170">
|
||||
<groups>
|
||||
</groups>
|
||||
<test started-at="2023-03-24T11:33:38 GMT+05:30" name="Test" finished-at="2023-03-24T11:34:00 GMT+05:30" duration-ms="22170">
|
||||
<class name="com.hexaware.parabank.Runner">
|
||||
<test-method is-config="true" signature="setup()[pri:0, instance:com.hexaware.parabank.Runner@3527942a]" started-at="2023-03-24T11:33:38 GMT+05:30" name="setup" finished-at="2023-03-24T11:33:41 GMT+05:30" duration-ms="3193" status="PASS">
|
||||
<reporter-output>
|
||||
</reporter-output>
|
||||
</test-method> <!-- setup -->
|
||||
<test-method signature="RegisterAccount()[pri:1, instance:com.hexaware.parabank.Runner@3527942a]" started-at="2023-03-24T11:33:41 GMT+05:30" name="RegisterAccount" finished-at="2023-03-24T11:33:50 GMT+05:30" duration-ms="8224" status="PASS">
|
||||
<reporter-output>
|
||||
</reporter-output>
|
||||
</test-method> <!-- RegisterAccount -->
|
||||
<test-method signature="loginAccount()[pri:2, instance:com.hexaware.parabank.Runner@3527942a]" started-at="2023-03-24T11:33:50 GMT+05:30" name="loginAccount" finished-at="2023-03-24T11:33:52 GMT+05:30" duration-ms="2334" status="PASS">
|
||||
<reporter-output>
|
||||
</reporter-output>
|
||||
</test-method> <!-- loginAccount -->
|
||||
<test-method signature="OpenNewAccount()[pri:3, instance:com.hexaware.parabank.Runner@3527942a]" started-at="2023-03-24T11:33:52 GMT+05:30" name="OpenNewAccount" finished-at="2023-03-24T11:33:54 GMT+05:30" duration-ms="2346" status="PASS">
|
||||
<reporter-output>
|
||||
</reporter-output>
|
||||
</test-method> <!-- OpenNewAccount -->
|
||||
<test-method is-config="true" signature="tearDown()[pri:0, instance:com.hexaware.parabank.Runner@3527942a]" started-at="2023-03-24T11:33:54 GMT+05:30" name="tearDown" finished-at="2023-03-24T11:34:00 GMT+05:30" duration-ms="6032" status="PASS">
|
||||
<reporter-output>
|
||||
</reporter-output>
|
||||
</test-method> <!-- tearDown -->
|
||||
</class> <!-- com.hexaware.parabank.Runner -->
|
||||
</test> <!-- Test -->
|
||||
</suite> <!-- Suite -->
|
||||
</testng-results>
|
||||
9
test-output/testng.css
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
.invocation-failed, .test-failed { background-color: #DD0000; }
|
||||
.invocation-percent, .test-percent { background-color: #006600; }
|
||||
.invocation-passed, .test-passed { background-color: #00AA00; }
|
||||
.invocation-skipped, .test-skipped { background-color: #CCCC00; }
|
||||
|
||||
.main-page {
|
||||
font-size: x-large;
|
||||
}
|
||||
|
||||
10
testng.xml
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd">
|
||||
<suite name="Suite">
|
||||
<test thread-count="5" name="Test">
|
||||
<classes>
|
||||
<class name="com.hexaware.parabank.hook"/>
|
||||
<class name="com.hexaware.parabank.Runner"/>
|
||||
</classes>
|
||||
</test> <!-- Test -->
|
||||
</suite> <!-- Suite -->
|
||||