First Commit
This commit is contained in:
commit
ce1fb0b1fe
33
.gitignore
vendored
Normal file
33
.gitignore
vendored
Normal file
|
@ -0,0 +1,33 @@
|
|||
HELP.md
|
||||
target/
|
||||
!.mvn/wrapper/maven-wrapper.jar
|
||||
!**/src/main/**/target/
|
||||
!**/src/test/**/target/
|
||||
|
||||
### STS ###
|
||||
.apt_generated
|
||||
.classpath
|
||||
.factorypath
|
||||
.project
|
||||
.settings
|
||||
.springBeans
|
||||
.sts4-cache
|
||||
|
||||
### IntelliJ IDEA ###
|
||||
.idea
|
||||
*.iws
|
||||
*.iml
|
||||
*.ipr
|
||||
|
||||
### NetBeans ###
|
||||
/nbproject/private/
|
||||
/nbbuild/
|
||||
/dist/
|
||||
/nbdist/
|
||||
/.nb-gradle/
|
||||
build/
|
||||
!**/src/main/**/build/
|
||||
!**/src/test/**/build/
|
||||
|
||||
### VS Code ###
|
||||
.vscode/
|
117
.mvn/wrapper/MavenWrapperDownloader.java
vendored
Normal file
117
.mvn/wrapper/MavenWrapperDownloader.java
vendored
Normal file
|
@ -0,0 +1,117 @@
|
|||
/*
|
||||
* Copyright 2007-present the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* https://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
import java.net.*;
|
||||
import java.io.*;
|
||||
import java.nio.channels.*;
|
||||
import java.util.Properties;
|
||||
|
||||
public class MavenWrapperDownloader {
|
||||
|
||||
private static final String WRAPPER_VERSION = "0.5.6";
|
||||
/**
|
||||
* Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided.
|
||||
*/
|
||||
private static final String DEFAULT_DOWNLOAD_URL = "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/"
|
||||
+ WRAPPER_VERSION + "/maven-wrapper-" + WRAPPER_VERSION + ".jar";
|
||||
|
||||
/**
|
||||
* Path to the maven-wrapper.properties file, which might contain a downloadUrl property to
|
||||
* use instead of the default one.
|
||||
*/
|
||||
private static final String MAVEN_WRAPPER_PROPERTIES_PATH =
|
||||
".mvn/wrapper/maven-wrapper.properties";
|
||||
|
||||
/**
|
||||
* Path where the maven-wrapper.jar will be saved to.
|
||||
*/
|
||||
private static final String MAVEN_WRAPPER_JAR_PATH =
|
||||
".mvn/wrapper/maven-wrapper.jar";
|
||||
|
||||
/**
|
||||
* Name of the property which should be used to override the default download url for the wrapper.
|
||||
*/
|
||||
private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl";
|
||||
|
||||
public static void main(String args[]) {
|
||||
System.out.println("- Downloader started");
|
||||
File baseDirectory = new File(args[0]);
|
||||
System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath());
|
||||
|
||||
// If the maven-wrapper.properties exists, read it and check if it contains a custom
|
||||
// wrapperUrl parameter.
|
||||
File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH);
|
||||
String url = DEFAULT_DOWNLOAD_URL;
|
||||
if(mavenWrapperPropertyFile.exists()) {
|
||||
FileInputStream mavenWrapperPropertyFileInputStream = null;
|
||||
try {
|
||||
mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile);
|
||||
Properties mavenWrapperProperties = new Properties();
|
||||
mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream);
|
||||
url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url);
|
||||
} catch (IOException e) {
|
||||
System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'");
|
||||
} finally {
|
||||
try {
|
||||
if(mavenWrapperPropertyFileInputStream != null) {
|
||||
mavenWrapperPropertyFileInputStream.close();
|
||||
}
|
||||
} catch (IOException e) {
|
||||
// Ignore ...
|
||||
}
|
||||
}
|
||||
}
|
||||
System.out.println("- Downloading from: " + url);
|
||||
|
||||
File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH);
|
||||
if(!outputFile.getParentFile().exists()) {
|
||||
if(!outputFile.getParentFile().mkdirs()) {
|
||||
System.out.println(
|
||||
"- ERROR creating output directory '" + outputFile.getParentFile().getAbsolutePath() + "'");
|
||||
}
|
||||
}
|
||||
System.out.println("- Downloading to: " + outputFile.getAbsolutePath());
|
||||
try {
|
||||
downloadFileFromURL(url, outputFile);
|
||||
System.out.println("Done");
|
||||
System.exit(0);
|
||||
} catch (Throwable e) {
|
||||
System.out.println("- Error downloading");
|
||||
e.printStackTrace();
|
||||
System.exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
private static void downloadFileFromURL(String urlString, File destination) throws Exception {
|
||||
if (System.getenv("MVNW_USERNAME") != null && System.getenv("MVNW_PASSWORD") != null) {
|
||||
String username = System.getenv("MVNW_USERNAME");
|
||||
char[] password = System.getenv("MVNW_PASSWORD").toCharArray();
|
||||
Authenticator.setDefault(new Authenticator() {
|
||||
@Override
|
||||
protected PasswordAuthentication getPasswordAuthentication() {
|
||||
return new PasswordAuthentication(username, password);
|
||||
}
|
||||
});
|
||||
}
|
||||
URL website = new URL(urlString);
|
||||
ReadableByteChannel rbc;
|
||||
rbc = Channels.newChannel(website.openStream());
|
||||
FileOutputStream fos = new FileOutputStream(destination);
|
||||
fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
|
||||
fos.close();
|
||||
rbc.close();
|
||||
}
|
||||
|
||||
}
|
BIN
.mvn/wrapper/maven-wrapper.jar
vendored
Normal file
BIN
.mvn/wrapper/maven-wrapper.jar
vendored
Normal file
Binary file not shown.
2
.mvn/wrapper/maven-wrapper.properties
vendored
Normal file
2
.mvn/wrapper/maven-wrapper.properties
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.3/apache-maven-3.6.3-bin.zip
|
||||
wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar
|
310
mvnw
vendored
Normal file
310
mvnw
vendored
Normal file
|
@ -0,0 +1,310 @@
|
|||
#!/bin/sh
|
||||
# ----------------------------------------------------------------------------
|
||||
# Licensed to the Apache Software Foundation (ASF) under one
|
||||
# or more contributor license agreements. See the NOTICE file
|
||||
# distributed with this work for additional information
|
||||
# regarding copyright ownership. The ASF licenses this file
|
||||
# to you under the Apache License, Version 2.0 (the
|
||||
# "License"); you may not use this file except in compliance
|
||||
# with the License. You may obtain a copy of the License at
|
||||
#
|
||||
# https://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing,
|
||||
# software distributed under the License is distributed on an
|
||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
# KIND, either express or implied. See the License for the
|
||||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
# ----------------------------------------------------------------------------
|
||||
|
||||
# ----------------------------------------------------------------------------
|
||||
# Maven Start Up Batch script
|
||||
#
|
||||
# Required ENV vars:
|
||||
# ------------------
|
||||
# JAVA_HOME - location of a JDK home dir
|
||||
#
|
||||
# Optional ENV vars
|
||||
# -----------------
|
||||
# M2_HOME - location of maven2's installed home dir
|
||||
# MAVEN_OPTS - parameters passed to the Java VM when running Maven
|
||||
# e.g. to debug Maven itself, use
|
||||
# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
|
||||
# MAVEN_SKIP_RC - flag to disable loading of mavenrc files
|
||||
# ----------------------------------------------------------------------------
|
||||
|
||||
if [ -z "$MAVEN_SKIP_RC" ] ; then
|
||||
|
||||
if [ -f /etc/mavenrc ] ; then
|
||||
. /etc/mavenrc
|
||||
fi
|
||||
|
||||
if [ -f "$HOME/.mavenrc" ] ; then
|
||||
. "$HOME/.mavenrc"
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
# OS specific support. $var _must_ be set to either true or false.
|
||||
cygwin=false;
|
||||
darwin=false;
|
||||
mingw=false
|
||||
case "`uname`" in
|
||||
CYGWIN*) cygwin=true ;;
|
||||
MINGW*) mingw=true;;
|
||||
Darwin*) darwin=true
|
||||
# Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
|
||||
# See https://developer.apple.com/library/mac/qa/qa1170/_index.html
|
||||
if [ -z "$JAVA_HOME" ]; then
|
||||
if [ -x "/usr/libexec/java_home" ]; then
|
||||
export JAVA_HOME="`/usr/libexec/java_home`"
|
||||
else
|
||||
export JAVA_HOME="/Library/Java/Home"
|
||||
fi
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -z "$JAVA_HOME" ] ; then
|
||||
if [ -r /etc/gentoo-release ] ; then
|
||||
JAVA_HOME=`java-config --jre-home`
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -z "$M2_HOME" ] ; then
|
||||
## resolve links - $0 may be a link to maven's home
|
||||
PRG="$0"
|
||||
|
||||
# need this for relative symlinks
|
||||
while [ -h "$PRG" ] ; do
|
||||
ls=`ls -ld "$PRG"`
|
||||
link=`expr "$ls" : '.*-> \(.*\)$'`
|
||||
if expr "$link" : '/.*' > /dev/null; then
|
||||
PRG="$link"
|
||||
else
|
||||
PRG="`dirname "$PRG"`/$link"
|
||||
fi
|
||||
done
|
||||
|
||||
saveddir=`pwd`
|
||||
|
||||
M2_HOME=`dirname "$PRG"`/..
|
||||
|
||||
# make it fully qualified
|
||||
M2_HOME=`cd "$M2_HOME" && pwd`
|
||||
|
||||
cd "$saveddir"
|
||||
# echo Using m2 at $M2_HOME
|
||||
fi
|
||||
|
||||
# For Cygwin, ensure paths are in UNIX format before anything is touched
|
||||
if $cygwin ; then
|
||||
[ -n "$M2_HOME" ] &&
|
||||
M2_HOME=`cygpath --unix "$M2_HOME"`
|
||||
[ -n "$JAVA_HOME" ] &&
|
||||
JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
|
||||
[ -n "$CLASSPATH" ] &&
|
||||
CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
|
||||
fi
|
||||
|
||||
# For Mingw, ensure paths are in UNIX format before anything is touched
|
||||
if $mingw ; then
|
||||
[ -n "$M2_HOME" ] &&
|
||||
M2_HOME="`(cd "$M2_HOME"; pwd)`"
|
||||
[ -n "$JAVA_HOME" ] &&
|
||||
JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
|
||||
fi
|
||||
|
||||
if [ -z "$JAVA_HOME" ]; then
|
||||
javaExecutable="`which javac`"
|
||||
if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
|
||||
# readlink(1) is not available as standard on Solaris 10.
|
||||
readLink=`which readlink`
|
||||
if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
|
||||
if $darwin ; then
|
||||
javaHome="`dirname \"$javaExecutable\"`"
|
||||
javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
|
||||
else
|
||||
javaExecutable="`readlink -f \"$javaExecutable\"`"
|
||||
fi
|
||||
javaHome="`dirname \"$javaExecutable\"`"
|
||||
javaHome=`expr "$javaHome" : '\(.*\)/bin'`
|
||||
JAVA_HOME="$javaHome"
|
||||
export JAVA_HOME
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -z "$JAVACMD" ] ; then
|
||||
if [ -n "$JAVA_HOME" ] ; then
|
||||
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
|
||||
# IBM's JDK on AIX uses strange locations for the executables
|
||||
JAVACMD="$JAVA_HOME/jre/sh/java"
|
||||
else
|
||||
JAVACMD="$JAVA_HOME/bin/java"
|
||||
fi
|
||||
else
|
||||
JAVACMD="`which java`"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ ! -x "$JAVACMD" ] ; then
|
||||
echo "Error: JAVA_HOME is not defined correctly." >&2
|
||||
echo " We cannot execute $JAVACMD" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -z "$JAVA_HOME" ] ; then
|
||||
echo "Warning: JAVA_HOME environment variable is not set."
|
||||
fi
|
||||
|
||||
CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
|
||||
|
||||
# traverses directory structure from process work directory to filesystem root
|
||||
# first directory with .mvn subdirectory is considered project base directory
|
||||
find_maven_basedir() {
|
||||
|
||||
if [ -z "$1" ]
|
||||
then
|
||||
echo "Path not specified to find_maven_basedir"
|
||||
return 1
|
||||
fi
|
||||
|
||||
basedir="$1"
|
||||
wdir="$1"
|
||||
while [ "$wdir" != '/' ] ; do
|
||||
if [ -d "$wdir"/.mvn ] ; then
|
||||
basedir=$wdir
|
||||
break
|
||||
fi
|
||||
# workaround for JBEAP-8937 (on Solaris 10/Sparc)
|
||||
if [ -d "${wdir}" ]; then
|
||||
wdir=`cd "$wdir/.."; pwd`
|
||||
fi
|
||||
# end of workaround
|
||||
done
|
||||
echo "${basedir}"
|
||||
}
|
||||
|
||||
# concatenates all lines of a file
|
||||
concat_lines() {
|
||||
if [ -f "$1" ]; then
|
||||
echo "$(tr -s '\n' ' ' < "$1")"
|
||||
fi
|
||||
}
|
||||
|
||||
BASE_DIR=`find_maven_basedir "$(pwd)"`
|
||||
if [ -z "$BASE_DIR" ]; then
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
##########################################################################################
|
||||
# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
|
||||
# This allows using the maven wrapper in projects that prohibit checking in binary data.
|
||||
##########################################################################################
|
||||
if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then
|
||||
if [ "$MVNW_VERBOSE" = true ]; then
|
||||
echo "Found .mvn/wrapper/maven-wrapper.jar"
|
||||
fi
|
||||
else
|
||||
if [ "$MVNW_VERBOSE" = true ]; then
|
||||
echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..."
|
||||
fi
|
||||
if [ -n "$MVNW_REPOURL" ]; then
|
||||
jarUrl="$MVNW_REPOURL/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
|
||||
else
|
||||
jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
|
||||
fi
|
||||
while IFS="=" read key value; do
|
||||
case "$key" in (wrapperUrl) jarUrl="$value"; break ;;
|
||||
esac
|
||||
done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties"
|
||||
if [ "$MVNW_VERBOSE" = true ]; then
|
||||
echo "Downloading from: $jarUrl"
|
||||
fi
|
||||
wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar"
|
||||
if $cygwin; then
|
||||
wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"`
|
||||
fi
|
||||
|
||||
if command -v wget > /dev/null; then
|
||||
if [ "$MVNW_VERBOSE" = true ]; then
|
||||
echo "Found wget ... using wget"
|
||||
fi
|
||||
if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
|
||||
wget "$jarUrl" -O "$wrapperJarPath"
|
||||
else
|
||||
wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath"
|
||||
fi
|
||||
elif command -v curl > /dev/null; then
|
||||
if [ "$MVNW_VERBOSE" = true ]; then
|
||||
echo "Found curl ... using curl"
|
||||
fi
|
||||
if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
|
||||
curl -o "$wrapperJarPath" "$jarUrl" -f
|
||||
else
|
||||
curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" "$jarUrl" -f
|
||||
fi
|
||||
|
||||
else
|
||||
if [ "$MVNW_VERBOSE" = true ]; then
|
||||
echo "Falling back to using Java to download"
|
||||
fi
|
||||
javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java"
|
||||
# For Cygwin, switch paths to Windows format before running javac
|
||||
if $cygwin; then
|
||||
javaClass=`cygpath --path --windows "$javaClass"`
|
||||
fi
|
||||
if [ -e "$javaClass" ]; then
|
||||
if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
|
||||
if [ "$MVNW_VERBOSE" = true ]; then
|
||||
echo " - Compiling MavenWrapperDownloader.java ..."
|
||||
fi
|
||||
# Compiling the Java class
|
||||
("$JAVA_HOME/bin/javac" "$javaClass")
|
||||
fi
|
||||
if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
|
||||
# Running the downloader
|
||||
if [ "$MVNW_VERBOSE" = true ]; then
|
||||
echo " - Running MavenWrapperDownloader.java ..."
|
||||
fi
|
||||
("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR")
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
##########################################################################################
|
||||
# End of extension
|
||||
##########################################################################################
|
||||
|
||||
export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}
|
||||
if [ "$MVNW_VERBOSE" = true ]; then
|
||||
echo $MAVEN_PROJECTBASEDIR
|
||||
fi
|
||||
MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
|
||||
|
||||
# For Cygwin, switch paths to Windows format before running java
|
||||
if $cygwin; then
|
||||
[ -n "$M2_HOME" ] &&
|
||||
M2_HOME=`cygpath --path --windows "$M2_HOME"`
|
||||
[ -n "$JAVA_HOME" ] &&
|
||||
JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
|
||||
[ -n "$CLASSPATH" ] &&
|
||||
CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
|
||||
[ -n "$MAVEN_PROJECTBASEDIR" ] &&
|
||||
MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"`
|
||||
fi
|
||||
|
||||
# Provide a "standardized" way to retrieve the CLI args that will
|
||||
# work with both Windows and non-Windows executions.
|
||||
MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@"
|
||||
export MAVEN_CMD_LINE_ARGS
|
||||
|
||||
WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
|
||||
|
||||
exec "$JAVACMD" \
|
||||
$MAVEN_OPTS \
|
||||
-classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
|
||||
"-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
|
||||
${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"
|
182
mvnw.cmd
vendored
Normal file
182
mvnw.cmd
vendored
Normal file
|
@ -0,0 +1,182 @@
|
|||
@REM ----------------------------------------------------------------------------
|
||||
@REM Licensed to the Apache Software Foundation (ASF) under one
|
||||
@REM or more contributor license agreements. See the NOTICE file
|
||||
@REM distributed with this work for additional information
|
||||
@REM regarding copyright ownership. The ASF licenses this file
|
||||
@REM to you under the Apache License, Version 2.0 (the
|
||||
@REM "License"); you may not use this file except in compliance
|
||||
@REM with the License. You may obtain a copy of the License at
|
||||
@REM
|
||||
@REM https://www.apache.org/licenses/LICENSE-2.0
|
||||
@REM
|
||||
@REM Unless required by applicable law or agreed to in writing,
|
||||
@REM software distributed under the License is distributed on an
|
||||
@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
@REM KIND, either express or implied. See the License for the
|
||||
@REM specific language governing permissions and limitations
|
||||
@REM under the License.
|
||||
@REM ----------------------------------------------------------------------------
|
||||
|
||||
@REM ----------------------------------------------------------------------------
|
||||
@REM Maven Start Up Batch script
|
||||
@REM
|
||||
@REM Required ENV vars:
|
||||
@REM JAVA_HOME - location of a JDK home dir
|
||||
@REM
|
||||
@REM Optional ENV vars
|
||||
@REM M2_HOME - location of maven2's installed home dir
|
||||
@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
|
||||
@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending
|
||||
@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
|
||||
@REM e.g. to debug Maven itself, use
|
||||
@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
|
||||
@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
|
||||
@REM ----------------------------------------------------------------------------
|
||||
|
||||
@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
|
||||
@echo off
|
||||
@REM set title of command window
|
||||
title %0
|
||||
@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on'
|
||||
@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO%
|
||||
|
||||
@REM set %HOME% to equivalent of $HOME
|
||||
if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
|
||||
|
||||
@REM Execute a user defined script before this one
|
||||
if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
|
||||
@REM check for pre script, once with legacy .bat ending and once with .cmd ending
|
||||
if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat"
|
||||
if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd"
|
||||
:skipRcPre
|
||||
|
||||
@setlocal
|
||||
|
||||
set ERROR_CODE=0
|
||||
|
||||
@REM To isolate internal variables from possible post scripts, we use another setlocal
|
||||
@setlocal
|
||||
|
||||
@REM ==== START VALIDATION ====
|
||||
if not "%JAVA_HOME%" == "" goto OkJHome
|
||||
|
||||
echo.
|
||||
echo Error: JAVA_HOME not found in your environment. >&2
|
||||
echo Please set the JAVA_HOME variable in your environment to match the >&2
|
||||
echo location of your Java installation. >&2
|
||||
echo.
|
||||
goto error
|
||||
|
||||
:OkJHome
|
||||
if exist "%JAVA_HOME%\bin\java.exe" goto init
|
||||
|
||||
echo.
|
||||
echo Error: JAVA_HOME is set to an invalid directory. >&2
|
||||
echo JAVA_HOME = "%JAVA_HOME%" >&2
|
||||
echo Please set the JAVA_HOME variable in your environment to match the >&2
|
||||
echo location of your Java installation. >&2
|
||||
echo.
|
||||
goto error
|
||||
|
||||
@REM ==== END VALIDATION ====
|
||||
|
||||
:init
|
||||
|
||||
@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
|
||||
@REM Fallback to current working directory if not found.
|
||||
|
||||
set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
|
||||
IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
|
||||
|
||||
set EXEC_DIR=%CD%
|
||||
set WDIR=%EXEC_DIR%
|
||||
:findBaseDir
|
||||
IF EXIST "%WDIR%"\.mvn goto baseDirFound
|
||||
cd ..
|
||||
IF "%WDIR%"=="%CD%" goto baseDirNotFound
|
||||
set WDIR=%CD%
|
||||
goto findBaseDir
|
||||
|
||||
:baseDirFound
|
||||
set MAVEN_PROJECTBASEDIR=%WDIR%
|
||||
cd "%EXEC_DIR%"
|
||||
goto endDetectBaseDir
|
||||
|
||||
:baseDirNotFound
|
||||
set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
|
||||
cd "%EXEC_DIR%"
|
||||
|
||||
:endDetectBaseDir
|
||||
|
||||
IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
|
||||
|
||||
@setlocal EnableExtensions EnableDelayedExpansion
|
||||
for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
|
||||
@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
|
||||
|
||||
:endReadAdditionalConfig
|
||||
|
||||
SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
|
||||
set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
|
||||
set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
|
||||
|
||||
set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
|
||||
|
||||
FOR /F "tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO (
|
||||
IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B
|
||||
)
|
||||
|
||||
@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
|
||||
@REM This allows using the maven wrapper in projects that prohibit checking in binary data.
|
||||
if exist %WRAPPER_JAR% (
|
||||
if "%MVNW_VERBOSE%" == "true" (
|
||||
echo Found %WRAPPER_JAR%
|
||||
)
|
||||
) else (
|
||||
if not "%MVNW_REPOURL%" == "" (
|
||||
SET DOWNLOAD_URL="%MVNW_REPOURL%/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
|
||||
)
|
||||
if "%MVNW_VERBOSE%" == "true" (
|
||||
echo Couldn't find %WRAPPER_JAR%, downloading it ...
|
||||
echo Downloading from: %DOWNLOAD_URL%
|
||||
)
|
||||
|
||||
powershell -Command "&{"^
|
||||
"$webclient = new-object System.Net.WebClient;"^
|
||||
"if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^
|
||||
"$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^
|
||||
"}"^
|
||||
"[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^
|
||||
"}"
|
||||
if "%MVNW_VERBOSE%" == "true" (
|
||||
echo Finished downloading %WRAPPER_JAR%
|
||||
)
|
||||
)
|
||||
@REM End of extension
|
||||
|
||||
@REM Provide a "standardized" way to retrieve the CLI args that will
|
||||
@REM work with both Windows and non-Windows executions.
|
||||
set MAVEN_CMD_LINE_ARGS=%*
|
||||
|
||||
%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
|
||||
if ERRORLEVEL 1 goto error
|
||||
goto end
|
||||
|
||||
:error
|
||||
set ERROR_CODE=1
|
||||
|
||||
:end
|
||||
@endlocal & set ERROR_CODE=%ERROR_CODE%
|
||||
|
||||
if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost
|
||||
@REM check for post script, once with legacy .bat ending and once with .cmd ending
|
||||
if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat"
|
||||
if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd"
|
||||
:skipRcPost
|
||||
|
||||
@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
|
||||
if "%MAVEN_BATCH_PAUSE%" == "on" pause
|
||||
|
||||
if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE%
|
||||
|
||||
exit /B %ERROR_CODE%
|
209
pom.xml
Normal file
209
pom.xml
Normal file
|
@ -0,0 +1,209 @@
|
|||
<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<parent>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-parent</artifactId>
|
||||
<version>2.3.3.RELEASE</version>
|
||||
<relativePath /> <!-- lookup parent from repository -->
|
||||
</parent>
|
||||
<groupId>com.machint.automation</groupId>
|
||||
<artifactId>mautomation</artifactId>
|
||||
<version>0.0.1-SNAPSHOT</version>
|
||||
<name>mautomation</name>
|
||||
|
||||
<description>Automation Testing Framework</description>
|
||||
|
||||
<properties>
|
||||
<java.version>1.8</java.version>
|
||||
<testcontainers.version>1.14.3</testcontainers.version>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
|
||||
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-web</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.seleniumhq.selenium</groupId>
|
||||
<artifactId>selenium-java</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.apache.poi</groupId>
|
||||
<artifactId>poi</artifactId>
|
||||
<version>3.9</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.apache.poi</groupId>
|
||||
<artifactId>poi-ooxml</artifactId>
|
||||
<version>3.9</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.apache.poi</groupId>
|
||||
<artifactId>poi-ooxml-schemas</artifactId>
|
||||
<version>3.9</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.apache.poi</groupId>
|
||||
<artifactId>poi-scratchpad</artifactId>
|
||||
<version>3.9</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.apache.poi</groupId>
|
||||
<artifactId>openxml4j</artifactId>
|
||||
<version>1.0-beta</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.apache.poi</groupId>
|
||||
<artifactId>ooxml-schemas</artifactId>
|
||||
<version>1.4</version>
|
||||
</dependency>
|
||||
<!-- https://mvnrepository.com/artifact/commons-io/commons-io -->
|
||||
<dependency>
|
||||
<groupId>commons-io</groupId>
|
||||
<artifactId>commons-io</artifactId>
|
||||
<version>2.6</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>info.cukes</groupId>
|
||||
<artifactId>cucumber-java</artifactId>
|
||||
<version>1.2.5</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>info.cukes</groupId>
|
||||
<artifactId>cucumber-junit</artifactId>
|
||||
<version>1.2.5</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>info.cukes</groupId>
|
||||
<artifactId>cucumber-picocontainer</artifactId>
|
||||
<version>1.2.5</version>
|
||||
</dependency>
|
||||
|
||||
<!-- https://mvnrepository.com/artifact/info.cukes/cucumber-testng -->
|
||||
<dependency>
|
||||
<groupId>info.cukes</groupId>
|
||||
<artifactId>cucumber-testng</artifactId>
|
||||
<version>1.2.5</version>
|
||||
<type>pom</type>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>net.masterthought</groupId>
|
||||
<artifactId>cucumber-reporting</artifactId>
|
||||
<version>5.0.2</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>info.cukes</groupId>
|
||||
<artifactId>gherkin</artifactId>
|
||||
<version>2.12.2</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
|
||||
<!-- https://mvnrepository.com/artifact/com.aventstack/extentreports -->
|
||||
<dependency>
|
||||
<groupId>com.aventstack</groupId>
|
||||
<artifactId>extentreports</artifactId>
|
||||
<version>3.1.5</version>
|
||||
</dependency>
|
||||
<!-- https://mvnrepository.com/artifact/com.relevantcodes/extentreports -->
|
||||
<dependency>
|
||||
<groupId>com.relevantcodes</groupId>
|
||||
<artifactId>extentreports</artifactId>
|
||||
<version>2.41.2</version>
|
||||
</dependency>
|
||||
|
||||
|
||||
<!-- https://mvnrepository.com/artifact/com.vimalselvam/cucumber-extentsreport -->
|
||||
<dependency>
|
||||
<groupId>com.vimalselvam</groupId>
|
||||
<artifactId>cucumber-extentsreport</artifactId>
|
||||
<version>3.1.1</version>
|
||||
</dependency>
|
||||
|
||||
<!-- https://mvnrepository.com/artifact/com.aventstack/extentreports-cucumber4-adapter -->
|
||||
<dependency>
|
||||
<groupId>com.aventstack</groupId>
|
||||
<artifactId>extentreports-cucumber4-adapter</artifactId>
|
||||
<version>1.2.1</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>info.cukes</groupId>
|
||||
<artifactId>cucumber-jvm-deps</artifactId>
|
||||
<version>1.0.5</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.testng</groupId>
|
||||
<artifactId>testng</artifactId>
|
||||
<version>7.3.0</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-test</artifactId>
|
||||
<scope>test</scope>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<groupId>org.junit.vintage</groupId>
|
||||
<artifactId>junit-vintage-engine</artifactId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.testcontainers</groupId>
|
||||
<artifactId>junit-jupiter</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>junit</groupId>
|
||||
<artifactId>junit</artifactId>
|
||||
</dependency>
|
||||
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-devtools -->
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-devtools</artifactId>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<dependencyManagement>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.testcontainers</groupId>
|
||||
<artifactId>testcontainers-bom</artifactId>
|
||||
<version>${testcontainers.version}</version>
|
||||
<type>pom</type>
|
||||
<scope>import</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</dependencyManagement>
|
||||
|
||||
<build>
|
||||
<finalName>${artifactId}</finalName>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-maven-plugin</artifactId>
|
||||
</plugin><!-- <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId>
|
||||
<configuration> <suiteXmlFiles> <suiteXmlFile>${suiteXmlFile}</suiteXmlFile>>
|
||||
</suiteXmlFiles> </configuration> </plugin> -->
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
</project>
|
|
@ -0,0 +1,64 @@
|
|||
package com.machint.automation;
|
||||
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Paths;
|
||||
import java.util.List;
|
||||
|
||||
import org.springframework.core.io.InputStreamResource;
|
||||
import org.springframework.http.HttpHeaders;
|
||||
import org.springframework.http.MediaType;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import org.testng.TestListenerAdapter;
|
||||
import org.testng.TestNG;
|
||||
import org.testng.collections.Lists;
|
||||
|
||||
import com.machint.automation.model.FormObject;
|
||||
|
||||
@RestController
|
||||
public class AutomationController {
|
||||
|
||||
//local
|
||||
//private static final String FILE_LOCATION = "D:\\M_Automation\\MAF\\TestNGXML\\";
|
||||
//private static final String REPORT_FILE_LOCATION = "D:\\M_Automation\\MAF\\TestReport\\";
|
||||
//Server
|
||||
private static final String FILE_LOCATION = "MAF/TestNGXML/";
|
||||
private static final String REPORT_FILE_LOCATION = "MAF/TestReport/";
|
||||
public static FormObject formObject;
|
||||
|
||||
|
||||
@PostMapping(path="/run_test", consumes = {MediaType.APPLICATION_FORM_URLENCODED_VALUE})
|
||||
public String runTest(FormObject formData) {
|
||||
formObject = formData;
|
||||
System.out.println(formData);
|
||||
TestListenerAdapter tla = new TestListenerAdapter();
|
||||
TestNG testng = new TestNG();
|
||||
List<String> suites = Lists.newArrayList();
|
||||
suites.add(FILE_LOCATION+formData.getTestCase());//path to xml..
|
||||
//suites.add("c:/tests/testng2.xml");
|
||||
testng.setTestSuites(suites);
|
||||
testng.addListener(tla);
|
||||
testng.run();
|
||||
|
||||
return "Test Ran Successfully";
|
||||
}
|
||||
|
||||
//
|
||||
|
||||
@GetMapping(value = "/get_xml_report")
|
||||
public ResponseEntity<InputStreamResource> getXmlReport() throws IOException {
|
||||
byte[] filedata = Files.readAllBytes(Paths.get(REPORT_FILE_LOCATION+"Test-Automaton-Report.html"));
|
||||
ByteArrayInputStream in = new ByteArrayInputStream(filedata);
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
headers.add("Content-Disposition", "attachment; filename=report.html");
|
||||
return ResponseEntity
|
||||
.ok()
|
||||
.headers(headers)
|
||||
.body(new InputStreamResource(in));
|
||||
}
|
||||
|
||||
}
|
16
src/main/java/com/machint/automation/Feature/ERF.feature
Normal file
16
src/main/java/com/machint/automation/Feature/ERF.feature
Normal file
|
@ -0,0 +1,16 @@
|
|||
@Pega_ERF
|
||||
Feature: ERF
|
||||
|
||||
Scenario: ERF Process
|
||||
|
||||
Given User navigate to Pega Portal
|
||||
When User enter project manager username and password
|
||||
And Click on login button
|
||||
And User verify the project manager home page title
|
||||
And Click on Employee Requisition Form ERF
|
||||
And User entered ERF code details
|
||||
And User entered the Job Specifications details
|
||||
And User entered the Competencies Required details
|
||||
And User clicks on project manager submit button
|
||||
Then Project manager page display the message
|
||||
Then In project manager page click on logoff
|
|
@ -0,0 +1,33 @@
|
|||
Feature: Login
|
||||
@HRlogin
|
||||
Scenario: I want to enter username and password
|
||||
|
||||
Given user navigate to Machint Walk-In Drive Portal
|
||||
When user verify the homepage title
|
||||
Then user entered the username and password in walk-in portal
|
||||
And user click on login button
|
||||
Then login successfully after display the search from
|
||||
And user click on Profiles
|
||||
And user select from and to dates
|
||||
And user click on submit button
|
||||
Then display the particular from and to date data
|
||||
And search the profile id
|
||||
And check the that particular profile id
|
||||
And click on shortlist button
|
||||
Then display the alert message
|
||||
|
||||
And user click on search icon
|
||||
And user verify search page url
|
||||
And user entered the Search Form details
|
||||
And user click on search button
|
||||
And search the profile id in search from
|
||||
And check the that particular profile id in search from
|
||||
And user click on Shortlist
|
||||
Then display the alert messgae in search form
|
||||
And user click on download selected
|
||||
|
||||
And user click on send mail
|
||||
And user click on logout icon
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
@Insurance
|
||||
Feature: Insurance
|
||||
|
||||
Background: I want to enter username and password
|
||||
|
||||
Given user navigate to parthenon page
|
||||
When user validates homepage title
|
||||
Then user entered the username and password
|
||||
And user click on signin button
|
||||
Then parthenon page should be displayed
|
||||
|
||||
Scenario: Insurance process
|
||||
|
||||
Given user click on actions
|
||||
When user validates action page
|
||||
And user click on Case management
|
||||
And user create case in case management
|
||||
And after select the product catalogue in SH - Advanced table click on select button
|
||||
And click on continue button
|
||||
And click on add customer button
|
||||
Then in SH-Advanced Personal Details page displayed
|
||||
And user enter personal details
|
||||
And click on add new row in family details
|
||||
And user enter family details
|
||||
And click on next button
|
||||
Then KYC documents page displayed
|
||||
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
Feature: Registration Form
|
||||
@registration
|
||||
Scenario: I want to enter personal information
|
||||
|
||||
Given user navigate to registration form
|
||||
When user validates the homepage
|
||||
Then user entered the Personal Information details
|
||||
And user navigate to Education Information and entered the Education Information details
|
||||
And user navigate to Technical Knowledge and entered the Technical Knowledge details
|
||||
Then user navigate the Other Info and entered the Other Info details
|
||||
And user click on choose file and upload the resume
|
||||
And click on Submit button
|
||||
Then your registration process completed
|
|
@ -0,0 +1,13 @@
|
|||
package com.machint.automation;
|
||||
|
||||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
|
||||
@SpringBootApplication
|
||||
public class MautomationApplication {
|
||||
|
||||
public static void main(String[] args) {
|
||||
SpringApplication.run(MautomationApplication.class, args);
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,58 @@
|
|||
package com.machint.automation.PageObject;
|
||||
|
||||
import org.openqa.selenium.By;
|
||||
|
||||
import com.machint.automation.Utils.ActionClass;
|
||||
|
||||
public class ERF_PageObject extends ActionClass
|
||||
{
|
||||
//Login Deatails
|
||||
|
||||
public static String Username = "UserIdentifier";
|
||||
public static String Password = "Password";
|
||||
public static String Login = "//button[@id='sub']";
|
||||
|
||||
//After login
|
||||
|
||||
public static String ERF = "//span[@class='menu-item-title' and text()='Employee Requisition Form']";
|
||||
public static String Position = "//input[@id='Position']";
|
||||
public static String No_of_Positions = "NoOfPositions";
|
||||
public static String Client_Project = "Client";
|
||||
public static String Project_ID = "ProjectID";
|
||||
public static String Department = "Department";
|
||||
public static String Location = "Location";
|
||||
public static String External_Hiring = "ExternalHiring";
|
||||
public static String Reason_for_Request = "ReasonForHiring";
|
||||
public static String Salary_Range = "SalaryRange";
|
||||
public static String Reporting = "Reporting";
|
||||
public static String Target_Date_to_Fill = "inactvIcon";
|
||||
|
||||
//Please tick (√) To be filled by indentor mandatorily
|
||||
|
||||
public static String Laptop = "//label[text()='Laptop']";
|
||||
public static String Bag = "//label[text()='Bag']";
|
||||
public static String HRIS = "//label[@class='rb_ rb_standard radioLabel' and text()='Yes']";
|
||||
|
||||
//Job Specifications
|
||||
|
||||
public static String Job_Responsibilities = "Responsibilities";
|
||||
public static String Special_Accountabilities = "$PpyWorkPage$pAccountabilities";
|
||||
public static String Additional_Inputs_to_Roles = "RoleAuthority";
|
||||
|
||||
//Competencies Required
|
||||
public static String IFrame = "//div[@id='workarea']//div[@id='moduleGroupDiv']//div[@class='iframe-wrapper yui-module' and @style='display: block;']//div[@class='bd dynamicContainer']/iframe";
|
||||
|
||||
public static String Practice = "Practice";
|
||||
public static String Domain = "$PpyWorkPage$pDomain";
|
||||
public static String Is_Certification_Required = "IsCertificationRequired";
|
||||
public static String Certifications = "//select[@name='$PpyWorkPage$pCertification']";
|
||||
public static String Technical_Competency = "//span[@id='CTRL_TA']/textarea[@id='TechnicalCompetency']";
|
||||
public static String Behavioural_Competency = "//textarea[@id='BehaviorCompetency']";
|
||||
public static String Qualification = "//select[@id='Qualification']";
|
||||
public static String Overall_Experience_In_Years = "//select[@name='$PpyWorkPage$pOverallExpYears']";
|
||||
public static String Relevant_Experience_In_Years = "//select[@id='RelevantExpYears']";
|
||||
public static String Submit = "//button[@class='Strong pzhc pzbutton' and text()='Submit']";
|
||||
By logoff = By.xpath("//a[@onclick='pd(event);']//span[@class='menu-item-title-wrap']/span[text()='Log off']");
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,41 @@
|
|||
package com.machint.automation.PageObject;
|
||||
|
||||
import com.machint.automation.Utils.ActionClass;
|
||||
|
||||
public class HR_login_PageObject extends ActionClass
|
||||
{
|
||||
//login
|
||||
public static String Employee_Email = "empEmailId";
|
||||
public static String Password = "password";
|
||||
public static String Login = "//button[@class='btn btn-primary']";
|
||||
|
||||
//After login page click on Profiles
|
||||
public static String Profiles = "//a[@class='nav-link' and @title='Profiles']//span";
|
||||
public static String From = "//input[@id='fromDate']";
|
||||
public static String To = "//input[@id='toDate']";
|
||||
public static String Submit = "//button[@class='btn btn-primary']";
|
||||
public static String Search = "//input[@type='search']";
|
||||
public static String Check = "input[onclick='unChech()']";
|
||||
public static String Shortlist = "//input[@onclick='shortlistCandidate()']";
|
||||
|
||||
//Search Form List
|
||||
public static String Search_Icon = "//*[@class='nav-link' and @title='Search']";
|
||||
public static String Hiring_Plan = "//select[@name='hiringPaln' and @class='form-control']";
|
||||
public static String Candidate_Shortlisted = "//select[@name='shortlist' and @class='form-control']";
|
||||
public static String Highest_Qualification = "highestQualification";
|
||||
public static String Specialization = "Specialization";
|
||||
public static String Percentage = "percentage";
|
||||
public static String Year_Of_Passing = "yop";
|
||||
public static String Knowledge_In_JAVA = "java";
|
||||
public static String Knowledge_In_PEGA = "pega";
|
||||
public static String Knowledge_In_APPIAN = "//select[@id='appain' and @class='form-control']";
|
||||
public static String Knowledge_In_RPA = "rpa";
|
||||
public static String Knowledge_In_PYTHON = "python";
|
||||
public static String Knowledge_In_DATABASE = "//select[@id='data' and @class='form-control']";
|
||||
public static String Search_btn = "//button[@class='btn btn-primary' and text()='Search']";
|
||||
// public static String Download_btn = By.xpath("//button[@class='btn btn-success']");
|
||||
public static String Check_SearchFrom = "//input[@type='checkbox' and @class='checkBoxClass']";
|
||||
public static String DownloadSelected = "//input[@onclick='downloadSelected(event)']";
|
||||
public static String Send_Mail = "//a[@class='nav-link' and @title='Send Mail']/span";
|
||||
public static String Logout = "//a[@class='nav-link' and @title='Logout']/span";
|
||||
}
|
|
@ -0,0 +1,52 @@
|
|||
package com.machint.automation.PageObject;
|
||||
|
||||
import com.machint.automation.Utils.ActionClass;
|
||||
|
||||
public class Insurance_PageObject extends ActionClass
|
||||
{
|
||||
|
||||
//Login Details
|
||||
public static String Username = "un";
|
||||
public static String Password = "pw";
|
||||
public static String Signin = "//input[@onClick='return login_jsp.saveRemember && login_jsp.saveRemember() || true;']";
|
||||
|
||||
// After Login
|
||||
|
||||
// By iframe = By.xpath("//div[contains(@class,'CardLayout---margin_below_standard')]//div[contains(@class,'CertifiedSAILExtension---wrapping_div')]/iframe");
|
||||
public static String Actions = "//div[@class='SiteMenuTab---nav_label' and text()='Actions']";
|
||||
public static String Case_management = "//p[contains(@class,'ParagraphText---default_direction')]/span/span/strong[text()='Case Management']";
|
||||
public static String Line_of_business = "(//div[contains(@class,'DropdownWidget---dropdown_value')])[1]";
|
||||
public static String Product_category = "(//div[contains(@class,'DropdownWidget---dropdown_value')])[2]";
|
||||
public static String Product = "(//div[contains(@class,'DropdownWidget---dropdown_value')])[3]";
|
||||
public static String Select = "(//div[contains(@class,'ColumnLayout---width_auto')])[6]//div[@class='BoxLayout---box_body']//div[contains(@class,'ButtonLayout2---center')]//button";
|
||||
// public static String Continue = "//button[contains(@class,'Button---primary appian-context-first-in-list appian-context-last-in-list')]/parent::*";
|
||||
public static String Continue = "//div/button[contains(@class,'Button---primary appian-context-first-in-list appian-context-last-in-list')]";
|
||||
public static String Add_customer = "//div[contains(@class,'FieldLayout---inAccentBackground')]//strong[@class='StrongText---richtext_strong' and text()='Add Customer']";
|
||||
|
||||
//Personal Details
|
||||
|
||||
public static String Title = "(//div[@class='DropdownWidget---dropdown_value DropdownWidget---placeholder'])[1]";
|
||||
public static String First_name = "(//input[@class='TextInput---text TextInput---align_start'])[1]";
|
||||
public static String Middle_name = "(//input[@class='TextInput---text TextInput---align_start'])[3]";
|
||||
public static String Last_name = "(//input[@class='TextInput---text TextInput---align_start'])[5]";
|
||||
public static String Customer_type = "(//div[contains(@class,'DropdownWidget---dropdown_value')])[2]";
|
||||
public static String Mobile_number = "(//input[@class='TextInput---text TextInput---align_start'])[2]";
|
||||
public static String Email = "(//input[@class='TextInput---text TextInput---align_start'])[4]";
|
||||
public static String Date_of_birth = "//input[@class='DatePickerWidget---text DatePickerWidget---align_start DatePickerWidget---width_narrow']";
|
||||
public static String Gender = "//div[@class='RadioSelect---choice_pair']/label[text()='Female']";
|
||||
public static String Un_married = "//div[@class='RadioSelect---choice_pair']/label[text()='Un Married']";
|
||||
|
||||
//Family Details
|
||||
|
||||
public static String Add_new_row = "//a[@class='GridFooter---add_grid_row_link elements---global_a']";
|
||||
public static String FamilyDetails_title = "(//div[contains(@class,'DropdownWidget---dropdown_value DropdownWidget---inEditableGridLayout')])[1]";
|
||||
public static String FamilyDetails_Relation_Type = "(//div[contains(@class,'DropdownWidget---dropdown_value DropdownWidget---inEditableGridLayout')])[2]";
|
||||
public static String FamilyDetails_first_name = "(//input[@class='TextInput---text TextInput---align_start TextInput---inEditableGridLayout'])[1]";
|
||||
public static String FamilyDetails_last_name = "(//input[@class='TextInput---text TextInput---align_start TextInput---inEditableGridLayout'])[2]";
|
||||
public static String FamilyDetails_middle_name = "(//input[@class='TextInput---text TextInput---align_start TextInput---inEditableGridLayout'])[3]";
|
||||
public static String FamilyDetails_gender = "(//div[contains(@class,'DropdownWidget---dropdown_value DropdownWidget---inEditableGridLayout')])[3]";
|
||||
public static String FamilyDeatils_date_of_birth = "//input[@class='DatePickerWidget---text DatePickerWidget---align_start DatePickerWidget---inEditableGridLayout']";
|
||||
public static String FamilyDetails_mobile_number = "(//input[@class='TextInput---text TextInput---align_start TextInput---inEditableGridLayout'])[4]";
|
||||
public static String Next = "(//div[contains(@class,'ColumnArrayLayout---standard_spacing')])[2]//button[contains(@class,'Button---btn Button---default_direction Button---primary appian-context')]";
|
||||
}
|
||||
|
|
@ -0,0 +1,42 @@
|
|||
package com.machint.automation.PageObject;
|
||||
|
||||
import com.machint.automation.Utils.ActionClass;
|
||||
|
||||
public class RegistrationFrom_PageObject extends ActionClass
|
||||
{
|
||||
//Personal Information details
|
||||
public static String First_Name = "//input[@id='firstName']";
|
||||
public static String Last_Name = "lastName";
|
||||
public static String Contact_Number = "contactNo";
|
||||
public static String Alternate_Contact_Number = "alernateContactNo";
|
||||
public static String Email = "email";
|
||||
public static String City = "city";
|
||||
public static String Location = "Currentlocation";
|
||||
public static String Permanent_Location = "Permanentlocation";
|
||||
public static String Address = "//textarea[@name='address' and @class='form-control']";
|
||||
|
||||
//Education Information details
|
||||
public static String Education_Information = "//div/h4[text()='Education Information']";
|
||||
public static String Highest_Qualification = "//select[@id='qualification' and @class='form-group']";
|
||||
public static String Specialization = "specialization";
|
||||
public static String Percentage = "percentage";
|
||||
public static String Year_Of_Passing = "yearOfPassing";
|
||||
|
||||
//Technical Knowledge
|
||||
public static String Technical_Knowledge ="//div/h4[text()='Technical Knowledge']";
|
||||
public static String Knowledge_In_JAVA = "//select[@name='java']";
|
||||
public static String Knowledge_In_PEGA = "//select[@name='pega']";
|
||||
public static String Knowledge_In_APPIAN = "//select[@name='appian']";
|
||||
public static String Knowledge_In_RPA = "//select[@name='RPA']";
|
||||
public static String Knowledge_In_PYTHON = "//select[@name='python']";
|
||||
public static String Knowledge_In_DATABASE = "//select[@name='dataBase']";
|
||||
|
||||
//Other Info
|
||||
public static String Other_Info = "//div/h4[text()='Other Info']";
|
||||
public static String Source = "campaignName";
|
||||
public static String Employee_referral = "//input[@name='empRef']";
|
||||
public static String Message = "message";
|
||||
public static String Position = "isAttended6months";
|
||||
public static String Resume = "//input[@id='file']";
|
||||
public static String submit = "//button[text()='Submit']";
|
||||
}
|
18
src/main/java/com/machint/automation/Runner/ERF_runner.java
Normal file
18
src/main/java/com/machint/automation/Runner/ERF_runner.java
Normal file
|
@ -0,0 +1,18 @@
|
|||
package com.machint.automation.Runner;
|
||||
|
||||
import org.junit.runner.RunWith;
|
||||
import cucumber.api.CucumberOptions;
|
||||
import cucumber.api.junit.Cucumber;
|
||||
|
||||
@RunWith(Cucumber.class)
|
||||
@CucumberOptions(
|
||||
features="MAF/Feature/ERF.feature",
|
||||
glue={"com.machint.automation.StepDefinition"},
|
||||
monochrome = true,
|
||||
plugin = {"com.cucumber.listener.ExtentCucumberFormatter:target/AautomationExtent-ERF-reports/report.html"},
|
||||
tags= {"@Pega_ERF"}
|
||||
)
|
||||
public class ERF_runner
|
||||
{
|
||||
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
package com.machint.automation.Runner;
|
||||
|
||||
import org.junit.runner.RunWith;
|
||||
|
||||
import cucumber.api.CucumberOptions;
|
||||
import cucumber.api.junit.Cucumber;
|
||||
|
||||
@RunWith(Cucumber.class)
|
||||
@CucumberOptions(
|
||||
features="MAF/Feature/ERF.feature",
|
||||
glue={"com.machint.automation.StepDefinition"},
|
||||
monochrome = true,
|
||||
plugin = {"com.cucumber.listener.ExtentCucumberFormatter:target/AautomationExtent-HRlogin-reports/report.html"},
|
||||
tags= {"@HRlogin"}
|
||||
)
|
||||
public class HR_login_Runner
|
||||
{
|
||||
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
package com.machint.automation.Runner;
|
||||
|
||||
import org.junit.runner.RunWith;
|
||||
import cucumber.api.CucumberOptions;
|
||||
import cucumber.api.junit.Cucumber;
|
||||
|
||||
@RunWith(Cucumber.class)
|
||||
@CucumberOptions(
|
||||
features="MAF/Feature/ERF.feature",
|
||||
glue={"com.machint.automation.StepDefinition"},
|
||||
monochrome = true,
|
||||
plugin = {"com.cucumber.listener.ExtentCucumberFormatter:target/AautomationExtent-Insurence-reports/report.html"},
|
||||
tags= {"@Insurance"}
|
||||
)
|
||||
public class Insurance_Runner
|
||||
{
|
||||
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
package com.machint.automation.Runner;
|
||||
|
||||
import org.junit.runner.RunWith;
|
||||
|
||||
import cucumber.api.CucumberOptions;
|
||||
import cucumber.api.junit.Cucumber;
|
||||
|
||||
@RunWith(Cucumber.class)
|
||||
@CucumberOptions(
|
||||
features="MAF/Feature/ERF.feature",
|
||||
glue={"com.machint.automation.StepDefinition"},
|
||||
monochrome = true,
|
||||
plugin = {"com.cucumber.listener.ExtentCucumberFormatter:target/AautomationExtent-RegistrationForm-reports/report.html"},
|
||||
tags= {"@registration"}
|
||||
)
|
||||
public class RegistrationFrom_Runner {
|
||||
|
||||
}
|
|
@ -0,0 +1,155 @@
|
|||
package com.machint.automation.StepDefinition;
|
||||
|
||||
import org.testng.annotations.Test;
|
||||
|
||||
import com.machint.automation.AutomationController;
|
||||
import com.machint.automation.PageObject.ERF_PageObject;
|
||||
import com.machint.automation.model.FormObject;
|
||||
|
||||
import cucumber.api.java.en.And;
|
||||
import cucumber.api.java.en.Given;
|
||||
import cucumber.api.java.en.When;
|
||||
|
||||
public class ERFSteps extends ERF_PageObject
|
||||
{
|
||||
@Test
|
||||
@Given("^User navigate to Pega Portal$")
|
||||
public void user_navigate_to_Pega_Portal() throws Throwable
|
||||
{
|
||||
FormObject formData = AutomationController.formObject;
|
||||
launchBrowser(formData.getBrowser(),formData.getEnvironment());
|
||||
}
|
||||
@Test
|
||||
@When("^User enter project manager username and password$")
|
||||
public void user_enter_project_manager_username_and_password() throws Throwable
|
||||
{ readExcel("Pega");
|
||||
String username = Machint_TestDataFromExcel("Username");
|
||||
Machint_EnterTextField("name", Username , username , "visibilityOf");
|
||||
|
||||
String password = Machint_TestDataFromExcel("Password");
|
||||
Machint_EnterTextField("name", Password, password, "visibilityOf");
|
||||
}
|
||||
@Test
|
||||
@And("^Click on login button$")
|
||||
public void click_on_login_button() throws Throwable
|
||||
{
|
||||
Machint_Click("xpath", Login, "visibilityOf");
|
||||
}
|
||||
@Test
|
||||
@And("^User verify the project manager home page title$")
|
||||
public void user_verify_the_project_manager_home_page_title() throws Throwable
|
||||
{
|
||||
Machint_getTitle("DManager");
|
||||
}
|
||||
@Test
|
||||
@And("^Click on Employee Requisition Form ERF$")
|
||||
public void click_on_Employee_Requisition_Form_ERF() throws Throwable
|
||||
{
|
||||
Machint_Click("xpath", ERF, "visibilityOf");
|
||||
}
|
||||
@Test
|
||||
@And("^User entered ERF code details$")
|
||||
public void user_entered_ERF_code_details() throws Throwable
|
||||
{
|
||||
Machint_Frame_webElement("xpath", IFrame, "visibilityOf");
|
||||
|
||||
String position = Machint_TestDataFromExcel("Username");
|
||||
Machint_EnterTextField("xpath", Position, position, "visibilityOf");
|
||||
|
||||
String no_of_positions = Machint_TestDataFromExcel("No of Positions");
|
||||
Machint_EnterTextField("id", No_of_Positions , no_of_positions, "visibilityOf");
|
||||
|
||||
String client_project = Machint_TestDataFromExcel("Client/ Project");
|
||||
Machint_EnterTextField("id", Client_Project , client_project, "visibilityOf");
|
||||
|
||||
String projectID = Machint_TestDataFromExcel("Project ID");
|
||||
Machint_EnterTextField("id", Project_ID , projectID, "visibilityOf");
|
||||
|
||||
String department = Machint_TestDataFromExcel("Department");
|
||||
Machint_EnterTextField("id", Department , department, "visibilityOf");
|
||||
|
||||
String location = Machint_TestDataFromExcel("Location");
|
||||
Machint_EnterTextField("id", Location , location, "visibilityOf");
|
||||
|
||||
String external_hiring = Machint_TestDataFromExcel("External Hiring");
|
||||
Machint_selectValue("id", External_Hiring , external_hiring, "visibilityOf");
|
||||
|
||||
String reason_for_request = Machint_TestDataFromExcel("Reason for Request");
|
||||
Machint_EnterTextField("id", Reason_for_Request , reason_for_request, "visibilityOf");
|
||||
|
||||
String salary_range = Machint_TestDataFromExcel("Salary Range");
|
||||
Machint_selectValue("id", Salary_Range , salary_range, "visibilityOf");
|
||||
|
||||
String reporting = Machint_TestDataFromExcel("Reporting");
|
||||
Machint_EnterTextField("id", Reporting , reporting, "visibilityOf");
|
||||
|
||||
String target_date_to_fill = Machint_TestDataFromExcel("Target Date to Fill");
|
||||
Machint_EnterTextField("className", Target_Date_to_Fill , target_date_to_fill, "visibilityOf");
|
||||
|
||||
Machint_Click("xpath", Laptop, "visibilityOf");
|
||||
Machint_Click("xpath", Bag, "visibilityOf");
|
||||
Machint_Click("xpath", HRIS, "visibilityOf");
|
||||
}
|
||||
@Test
|
||||
@And("^User entered the Job Specifications details$")
|
||||
public void user_entered_the_Job_Specifications_details() throws Throwable
|
||||
{
|
||||
String job_responsibilities = Machint_TestDataFromExcel("Job Responsibilities");
|
||||
Machint_EnterTextField("id", Job_Responsibilities, job_responsibilities, "visibilityOf");
|
||||
|
||||
String special_accountabilities = Machint_TestDataFromExcel("Special Accountabilities or Typical Goals");
|
||||
Machint_EnterTextField("name", Special_Accountabilities, special_accountabilities, "visibilityOf");
|
||||
|
||||
String additional_inputs_to_roles = Machint_TestDataFromExcel("Additional Inputs to Roles");
|
||||
Machint_EnterTextField("id", Additional_Inputs_to_Roles, additional_inputs_to_roles, "visibilityOf");
|
||||
}
|
||||
@Test
|
||||
@And("^User entered the Competencies Required details$")
|
||||
public void user_entered_the_Competencies_Required_details() throws Throwable
|
||||
{
|
||||
String practice = Machint_TestDataFromExcel("Practice");
|
||||
Machint_selectVisibleText("id", Practice, practice, "visibilityOf");
|
||||
|
||||
String domain = Machint_TestDataFromExcel("Domain");
|
||||
Machint_selectVisibleText("name", Domain, domain, "visibilityOf");
|
||||
|
||||
String is_certification_required = Machint_TestDataFromExcel("Is Certification Required");
|
||||
Machint_selectVisibleText("id", Is_Certification_Required, is_certification_required, "visibilityOf");
|
||||
|
||||
String certifications = Machint_TestDataFromExcel("Certifications");
|
||||
Machint_selectVisibleText("id", Certifications, certifications, "visibilityOf");
|
||||
|
||||
String technical_competency = Machint_TestDataFromExcel("Technical Competency");
|
||||
Machint_EnterTextField("xpath", Technical_Competency, technical_competency, "visibilityOf");
|
||||
|
||||
String behavioural_competency = Machint_TestDataFromExcel("Behavioural Competency");
|
||||
Machint_selectVisibleText("xpath", Behavioural_Competency, behavioural_competency, "visibilityOf");
|
||||
|
||||
String qualification = Machint_TestDataFromExcel("Qualification");
|
||||
Machint_selectVisibleText("xpath", Qualification, qualification, "visibilityOf");
|
||||
|
||||
String overall_experience_in_years = Machint_TestDataFromExcel("Overall Experience In Years");
|
||||
Machint_selectVisibleText("xpath", Overall_Experience_In_Years, overall_experience_in_years, "visibilityOf");
|
||||
|
||||
String relevant_experience_in_years = Machint_TestDataFromExcel("Overall Experience In Years");
|
||||
Machint_selectVisibleText("xpath", Relevant_Experience_In_Years, relevant_experience_in_years, "visibilityOf");
|
||||
}
|
||||
@Test
|
||||
@And("^User clicks on project manager submit button$")
|
||||
public void user_clicks_on_project_manager_submit_button() throws Throwable
|
||||
{
|
||||
Machint_Click("xpath", Submit, "visibilityOf");
|
||||
}
|
||||
@Test
|
||||
@And("^Project manager page display the message$")
|
||||
public void project_manager_page_display_the_message() throws Throwable
|
||||
{
|
||||
|
||||
}
|
||||
@Test
|
||||
@And("^In project manager page click on logoff$")
|
||||
public void in_project_manager_page_click_on_logoff() throws Throwable
|
||||
{
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,216 @@
|
|||
package com.machint.automation.StepDefinition;
|
||||
|
||||
import org.testng.annotations.Test;
|
||||
|
||||
import com.machint.automation.AutomationController;
|
||||
import com.machint.automation.PageObject.HR_login_PageObject;
|
||||
import com.machint.automation.model.FormObject;
|
||||
|
||||
import cucumber.api.java.en.And;
|
||||
import cucumber.api.java.en.Given;
|
||||
import cucumber.api.java.en.Then;
|
||||
import cucumber.api.java.en.When;
|
||||
|
||||
public class HR_LoginSteps extends HR_login_PageObject
|
||||
{
|
||||
|
||||
@Test
|
||||
@Given("^user navigate to Machint Walk-In Drive Portal$")
|
||||
public void user_navigate_to_Machint_Walk_In_Drive_Portal() throws Throwable
|
||||
{
|
||||
FormObject formData = AutomationController.formObject;
|
||||
launchBrowser(formData.getBrowser(),formData.getEnvironment());
|
||||
}
|
||||
|
||||
@Test
|
||||
@When("^user verify the homepage title$")
|
||||
public void user_verify_the_homepage_title() throws Throwable
|
||||
{
|
||||
Machint_getTitle("Mach");
|
||||
}
|
||||
@Test
|
||||
@Then("^user entered the username and password in walk-in portal$")
|
||||
public void user_entered_the_username_and_password_in_walkin_portal() throws Exception
|
||||
{
|
||||
readExcel("HR_Login");
|
||||
|
||||
String username = Machint_TestDataFromExcel("Username");
|
||||
Machint_EnterTextField("id", Employee_Email , username,"visibilityOf");
|
||||
|
||||
String password = Machint_TestDataFromExcel("Password");
|
||||
Machint_EnterTextField("id", Password, password, "visibilityOf");
|
||||
}
|
||||
@Test
|
||||
@And("^user click on login button$")
|
||||
public void user_click_on_login_button() throws Throwable
|
||||
{
|
||||
Machint_Click("xpath", Login, "visibilityOf");
|
||||
}
|
||||
@Test
|
||||
@Then("^login successfully after display the search from$")
|
||||
public void login_successfully_after_display_the_search_from() throws Throwable
|
||||
{
|
||||
Machint_getTitle("Machint");
|
||||
}
|
||||
@Test
|
||||
@And("^user click on Profiles$")
|
||||
public void user_click_on_Profiles() throws Throwable
|
||||
{
|
||||
Machint_Click("xpath", Profiles, "visibilityOf");
|
||||
Machint_getTitle("Machint");
|
||||
|
||||
}
|
||||
@Test
|
||||
@And("^user select from and to dates$")
|
||||
public void user_select_from_and_to_dates() throws Throwable
|
||||
{
|
||||
String from = Machint_TestDataFromExcel("From");
|
||||
Machint_EnterTextField("xpath", From, from, "visibilityOf");
|
||||
|
||||
String to = Machint_TestDataFromExcel("To");
|
||||
Machint_EnterTextField("xpath", To, to, "visibilityOf");
|
||||
}
|
||||
@Test
|
||||
@And("^user click on submit button$")
|
||||
public void user_click_on_submit_button() throws Throwable
|
||||
{
|
||||
Machint_Click("xpath", Submit, "visibilityOf");
|
||||
}
|
||||
@Test
|
||||
@Then("^display the particular from and to date data$")
|
||||
public void display_the_particular_from_and_to_date_data() throws Throwable
|
||||
{
|
||||
Machint_getTitle("Machint");
|
||||
}
|
||||
@Test
|
||||
@And ("^search the profile id$")
|
||||
public void search_the_profile_id() throws Throwable
|
||||
{
|
||||
Machint_EnterTextField("xpath", Search, "P0021", "visibilityOf");
|
||||
}
|
||||
@Test
|
||||
@And("^check the that particular profile id$")
|
||||
public void check_the_that_particular_profile_id() throws Throwable
|
||||
{
|
||||
Machint_Click("css", Check, "visibilityOf");
|
||||
}
|
||||
@Test
|
||||
@And("^click on shortlist button$")
|
||||
public void click_on_shortlist_button() throws Throwable
|
||||
{
|
||||
Machint_Click("xpath", Shortlist, "visibilityOf");
|
||||
}
|
||||
@Test
|
||||
@Then("^display the alert message$")
|
||||
public void display_the_alert_message() throws Throwable
|
||||
{
|
||||
Machint_acceptAlert();
|
||||
}
|
||||
@Test
|
||||
@And("^user click on search icon$")
|
||||
public void user_click_on_search_icon() throws Throwable
|
||||
{
|
||||
Machint_mouseHover(Search_Icon);
|
||||
Machint_Click("xpath", Search_Icon,"visibilityOf");
|
||||
}
|
||||
@Test
|
||||
@And("^user verify search page url$")
|
||||
public void user_verify_search_page_url() throws Throwable
|
||||
{
|
||||
Machint_getTitle("Mach");
|
||||
}
|
||||
@Test
|
||||
@And("^user entered the Search Form details$")
|
||||
public void user_entered_the_Search_Form_details() throws Exception
|
||||
{
|
||||
|
||||
String HiringPlan = Machint_TestDataFromExcel("HiringPlan");
|
||||
Machint_selectValue("xpath", Hiring_Plan, HiringPlan, "visibilityOf");
|
||||
|
||||
String CandidateShortlisted= Machint_TestDataFromExcel("Candidate Shortlisted");
|
||||
Machint_selectValue("xpath", Candidate_Shortlisted, CandidateShortlisted,"visibilityOf");
|
||||
|
||||
String HighestQualification = Machint_TestDataFromExcel("Highest Qualification");
|
||||
Machint_EnterTextField("id", Highest_Qualification, HighestQualification, "visibilityOf");
|
||||
|
||||
String specialization = Machint_TestDataFromExcel("Specialization");
|
||||
Machint_EnterTextField("id", Specialization, specialization, "visibilityOf");
|
||||
|
||||
String percentage = Machint_TestDataFromExcel("Percentage");
|
||||
Machint_EnterTextField("id", Percentage, percentage, "visibilityOf");
|
||||
|
||||
String YearOfPassing = Machint_TestDataFromExcel("Year Of Passing");
|
||||
Machint_EnterTextField("name", Year_Of_Passing, YearOfPassing, "visibilityOf");
|
||||
|
||||
String KnowledgeInJAVA = Machint_TestDataFromExcel("Knowledge In JAVA");
|
||||
Machint_selectValue("id", Knowledge_In_JAVA, KnowledgeInJAVA, "visibilityOf");
|
||||
|
||||
String KnowledgeInPEGA = Machint_TestDataFromExcel("Knowledge In PEGA");
|
||||
Machint_selectValue("id", Knowledge_In_PEGA, KnowledgeInPEGA, "visibilityOf");
|
||||
|
||||
String KnowledgeInAPPIAN = Machint_TestDataFromExcel("Knowledge In APPIAN");
|
||||
Machint_selectValue("xpath", Knowledge_In_APPIAN, KnowledgeInAPPIAN, "visibilityOf");
|
||||
|
||||
String KnowledgeInRPA = Machint_TestDataFromExcel("Knowledge In RPA");
|
||||
Machint_selectVisibleText("id", Knowledge_In_RPA, KnowledgeInRPA, "visibilityOf");
|
||||
|
||||
String KnowledgeInPYTHON = Machint_TestDataFromExcel("Knowledge In PYTHON");
|
||||
Machint_selectVisibleText("id", Knowledge_In_PYTHON, KnowledgeInPYTHON, "visibilityOf");
|
||||
|
||||
String KnowledgeInDATABASE = Machint_TestDataFromExcel("Knowledge In DATABASE");
|
||||
Machint_selectVisibleText("xpath", Knowledge_In_DATABASE, KnowledgeInDATABASE, "visibilityOf");
|
||||
}
|
||||
@Test
|
||||
@And("^user click on search button$")
|
||||
public void user_click_on_search_button() throws Throwable
|
||||
{
|
||||
Machint_Click("xpath", Search_btn, "visibilityOf");
|
||||
}
|
||||
@Test
|
||||
@And ("^search the profile id in search from$")
|
||||
public void search_the_profile_id_in_search_from() throws Throwable
|
||||
{
|
||||
Machint_EnterTextField("xpath", Search, "P0210", "visibilityOf");
|
||||
}
|
||||
@Test
|
||||
@And("^check the that particular profile id in search from$")
|
||||
public void check_the_that_particular_profile_id_in_search_from() throws Throwable
|
||||
{
|
||||
Machint_Click("xpath", Check_SearchFrom, "visibilityOf");
|
||||
}
|
||||
@Test
|
||||
@And("^user click on Shortlist$")
|
||||
public void user_click_on_Shortlist() throws Throwable
|
||||
{
|
||||
Machint_Click("xpath", Shortlist, "visibilityOf");
|
||||
}
|
||||
@Test
|
||||
@Then("^display the alert messgae in search form$")
|
||||
public void display_the_alert_message_in_search_form() throws Throwable
|
||||
{
|
||||
Machint_acceptAlert();
|
||||
}
|
||||
@Test
|
||||
@And("^user click on download selected$")
|
||||
public void user_click_on_download_selected() throws Throwable
|
||||
{
|
||||
Machint_Click("xpath", Search_btn, "visibilityOf");
|
||||
Machint_EnterTextField("xpath", Search, "P0210", "visibilityOf");
|
||||
Machint_Click("xpath", Check_SearchFrom, "visibilityOf");
|
||||
// Machint_Click("xpath", DownloadSelected, "visibilityOf");
|
||||
}
|
||||
@Test
|
||||
@And("^user click on send mail")
|
||||
public void user_click_on_send_mail() throws Throwable
|
||||
{
|
||||
Machint_Click("xpath", Send_Mail, "visibilityOf");
|
||||
}
|
||||
@Test
|
||||
@And("^user click on logout icon")
|
||||
public void user_click_on_logout_icon() throws Throwable
|
||||
{
|
||||
Machint_Click("xpath", Logout, "visibilityOf");
|
||||
driver.close();
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,190 @@
|
|||
package com.machint.automation.StepDefinition;
|
||||
|
||||
import org.testng.annotations.Test;
|
||||
|
||||
import com.machint.automation.AutomationController;
|
||||
import com.machint.automation.PageObject.Insurance_PageObject;
|
||||
import com.machint.automation.model.FormObject;
|
||||
|
||||
import cucumber.api.java.en.And;
|
||||
import cucumber.api.java.en.Given;
|
||||
import cucumber.api.java.en.Then;
|
||||
import cucumber.api.java.en.When;
|
||||
|
||||
public class InsuranceSteps extends Insurance_PageObject
|
||||
{
|
||||
@Test
|
||||
@Given("^user navigate to parthenon page$")
|
||||
public void user_navigate_to_parthenon_page() throws Throwable
|
||||
{
|
||||
FormObject formData = AutomationController.formObject;
|
||||
launchBrowser(formData.getBrowser(),formData.getEnvironment());
|
||||
}
|
||||
@Test
|
||||
@When("^user validates homepage title$")
|
||||
public void user_validates_homepage_title() throws InterruptedException
|
||||
{
|
||||
Machint_FutureDate();
|
||||
Machint_getTitle("Appian for Rainbow Digital Marketing & Analytics Pte Ltd (DEV)");
|
||||
}
|
||||
@Test
|
||||
@Then("^user entered the username and password$")
|
||||
public void user_entered_the_username_and_password() throws Throwable
|
||||
{
|
||||
readExcel("Insurance");
|
||||
|
||||
String username = Machint_TestDataFromExcel("Username");
|
||||
Machint_EnterTextField("id", Username, username, "visibilityOf");
|
||||
|
||||
String password = Machint_TestDataFromExcel("Password");
|
||||
Machint_EnterTextField("id", Password, password, "visibilityOf");
|
||||
}
|
||||
@Test
|
||||
@And("^user click on signin button$")
|
||||
public void user_click_on_signin_button() throws Throwable
|
||||
{
|
||||
Machint_Click("xpath", Signin, "visibilityOf");
|
||||
}
|
||||
@Test
|
||||
@Then("^parthenon page should be displayed$")
|
||||
public void parthenon_page_should_be_displayed() throws InterruptedException
|
||||
{
|
||||
Machint_getTitle("HOME - Parthenon");
|
||||
}
|
||||
|
||||
//Actions
|
||||
@Test
|
||||
@Given("^user click on actions$")
|
||||
public void user_click_on_actions() throws Throwable
|
||||
{
|
||||
Machint_Click("xpath", Actions, "visibilityOf");
|
||||
}
|
||||
@Test
|
||||
@When("^user validates action page$")
|
||||
public void user_validates_action_page() throws Throwable
|
||||
{
|
||||
Machint_getTitle("//Actions - Parthenon");
|
||||
}
|
||||
@Test
|
||||
@And("^user click on Case management$")
|
||||
public void user_click_on_Case_management() throws Throwable
|
||||
{
|
||||
Machint_Click("xpath", Case_management, "visibilityOf");
|
||||
}
|
||||
@Test
|
||||
@And("^user create case in case management$")
|
||||
public void user_create_case_in_case_management() throws Throwable
|
||||
{
|
||||
String LineOfBusiness = Machint_TestDataFromExcel("Line of business");
|
||||
Machint_EnterTextKey("xpath", Line_of_business, LineOfBusiness, "visibilityOf");
|
||||
|
||||
String ProductCategory = Machint_TestDataFromExcel("Product category");
|
||||
Machint_EnterTextKey("xpath", Product_category, ProductCategory, "visibilityOf");
|
||||
|
||||
String product = Machint_TestDataFromExcel("Product");
|
||||
Machint_EnterTextKey("xpath", Product , product, "visibilityOf");
|
||||
}
|
||||
@Test
|
||||
@And ("^after select the product catalogue in SH - Advanced table click on select button$")
|
||||
public void after_select_the_product_catalogue_in_SH_Advanced_table_click_on_select_button() throws Throwable
|
||||
{
|
||||
Machint_Click("xpath", Select, "visibilityOf");
|
||||
}
|
||||
@Test
|
||||
@And("^click on continue button$")
|
||||
public void click_on_continue_button() throws Throwable
|
||||
{
|
||||
Machint_Click("xpath", Continue, "visibilityOf");
|
||||
}
|
||||
@Test
|
||||
@And("^click on add customer button$")
|
||||
public void click_on_add_customer_button() throws Throwable
|
||||
{
|
||||
Machint_Click("xpath", Add_customer, "visibilityOf");
|
||||
}
|
||||
@Test
|
||||
@Then("^in SH-Advanced Personal Details page displayed$")
|
||||
public void in_SH_Advanced_Personal_Details_page_displayed() throws InterruptedException
|
||||
{
|
||||
Machint_getTitle("PA Customer On-Boarding - Parthenon//");
|
||||
}
|
||||
@Test
|
||||
@And("^user enter personal details$")
|
||||
public void user_enter_personal_details() throws Throwable
|
||||
{
|
||||
String title = Machint_TestDataFromExcel("Title");
|
||||
Machint_EnterTextKey("xpath", Title , title, "visibilityOf");
|
||||
|
||||
String first_name = Machint_TestDataFromExcel("First Name");
|
||||
Machint_EnterTextField("xpath", First_name , first_name, "visibilityOf");
|
||||
|
||||
String middle_name = Machint_TestDataFromExcel("Middle Name");
|
||||
Machint_EnterTextField("xpath", Middle_name , middle_name, "visibilityOf");
|
||||
|
||||
String last_name = Machint_TestDataFromExcel("Last Name");
|
||||
Machint_EnterTextField("xpath", Last_name , last_name, "visibilityOf");
|
||||
|
||||
String customer_type = Machint_TestDataFromExcel("Customer Type");
|
||||
Machint_EnterTextKey("xpath", Customer_type , customer_type, "visibilityOf");
|
||||
|
||||
String mobile_number = Machint_TestDataFromExcel("Mobile Number");
|
||||
Machint_EnterTextField("xpath", Mobile_number , mobile_number, "visibilityOf");
|
||||
|
||||
String email = Machint_TestDataFromExcel("Email");
|
||||
Machint_EnterTextField("xpath", Email , email, "visibilityOf");
|
||||
|
||||
String date_of_birth = Machint_TestDataFromExcel("Date Of Birth");
|
||||
Machint_EnterTextField("xpath", Date_of_birth , date_of_birth, "visibilityOf");
|
||||
|
||||
Machint_Click("xpath", Gender, "visibilityOf");
|
||||
|
||||
Machint_Click("xpath", Un_married, "visibilityOf");
|
||||
}
|
||||
|
||||
@Test
|
||||
@And("^click on add new row in family details$")
|
||||
public void click_on_add_new_row_in_family_details() throws Throwable
|
||||
{
|
||||
Machint_Click("xpath", Add_new_row, "visibilityOf");
|
||||
}
|
||||
@Test
|
||||
@And("^user enter family details$")
|
||||
public void user_enter_family_details() throws Throwable
|
||||
{
|
||||
String title = Machint_TestDataFromExcel("Family Details Title");
|
||||
Machint_EnterTextKey("xpath", FamilyDetails_title, title, "visibilityOf");
|
||||
|
||||
String relation_type = Machint_TestDataFromExcel("Family Details Relation Type");
|
||||
Machint_EnterTextKey("xpath", FamilyDetails_Relation_Type, relation_type, "visibilityOf");
|
||||
|
||||
String first_name = Machint_TestDataFromExcel("Family Details First Name");
|
||||
Machint_EnterTextField("xpath", FamilyDetails_first_name, first_name, "visibilityOf");
|
||||
|
||||
String last_name = Machint_TestDataFromExcel("Family Details Last Name");
|
||||
Machint_EnterTextField("xpath", FamilyDetails_last_name, last_name, "visibilityOf");
|
||||
|
||||
String middle_name = Machint_TestDataFromExcel("Family Details Middle Name");
|
||||
Machint_EnterTextField("xpath", FamilyDetails_middle_name, middle_name, "visibilityOf");
|
||||
|
||||
String gender = Machint_TestDataFromExcel("Family Details Gender");
|
||||
Machint_EnterTextKey("xpath", FamilyDetails_gender, gender, "visibilityOf");
|
||||
|
||||
String date_of_birth = Machint_TestDataFromExcel("Family Details Date Of Birth");
|
||||
Machint_EnterTextField("xpath", FamilyDeatils_date_of_birth, date_of_birth, "visibilityOf");
|
||||
|
||||
String mobile_number = Machint_TestDataFromExcel("Family Details Mobile Number");
|
||||
Machint_EnterTextField("xpath", FamilyDetails_mobile_number, mobile_number, "visibilityOf");
|
||||
}
|
||||
@Test
|
||||
@And("^click on next button$")
|
||||
public void click_on_next_button() throws Throwable
|
||||
{
|
||||
Machint_Click("xpath", Next, "visibilityOf");
|
||||
}
|
||||
@Test
|
||||
@Then("^KYC documents page displayed$")
|
||||
public void KYC_documents_page_displayed() throws Throwable
|
||||
{
|
||||
driver.close();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,151 @@
|
|||
package com.machint.automation.StepDefinition;
|
||||
|
||||
import org.testng.annotations.Test;
|
||||
|
||||
import com.machint.automation.AutomationController;
|
||||
import com.machint.automation.PageObject.RegistrationFrom_PageObject;
|
||||
import com.machint.automation.model.FormObject;
|
||||
|
||||
import cucumber.api.java.en.And;
|
||||
import cucumber.api.java.en.Given;
|
||||
import cucumber.api.java.en.Then;
|
||||
import cucumber.api.java.en.When;
|
||||
|
||||
public class RegistrationSteps extends RegistrationFrom_PageObject
|
||||
{
|
||||
@Test
|
||||
@Given("^user navigate to registration form$")
|
||||
public void user_navigate_to_registration_form() throws Throwable
|
||||
{
|
||||
FormObject formData = AutomationController.formObject;
|
||||
launchBrowser(formData.getBrowser(),formData.getEnvironment());
|
||||
}
|
||||
@Test
|
||||
@When("^user validates the homepage$")
|
||||
public void user_validates_the_homepage() throws Throwable
|
||||
{
|
||||
Machint_getTitle("hint");
|
||||
}
|
||||
@Test
|
||||
@Then("^user entered the Personal Information details$")
|
||||
public void user_entered_the_Personal_Information_details() throws Throwable
|
||||
{
|
||||
readExcel("RegistrationForm");
|
||||
|
||||
String firstname = Machint_TestDataFromExcel("FirstName");
|
||||
Machint_EnterTextField("xpath", First_Name, firstname, "visibilityOf");
|
||||
|
||||
String lastname = Machint_TestDataFromExcel("LastName");
|
||||
Machint_EnterTextField("id", Last_Name, lastname, "visibilityOf");
|
||||
|
||||
String contactno = Machint_TestDataFromExcel("ContactNumber");
|
||||
Machint_EnterTextField("id",Contact_Number, contactno, "visibilityOf");
|
||||
|
||||
String alternatecontactno = Machint_TestDataFromExcel("AlternateContactNumber");
|
||||
Machint_EnterTextField("id",Alternate_Contact_Number, alternatecontactno, "visibilityOf");
|
||||
|
||||
String email = Machint_TestDataFromExcel("Email");
|
||||
Machint_EnterTextField("id",Email, email, "visibilityOf");
|
||||
|
||||
String city = Machint_TestDataFromExcel("City");
|
||||
Machint_EnterTextField("id",City, city, "visibilityOf");
|
||||
|
||||
String location = Machint_TestDataFromExcel("CurrentLocation");
|
||||
Machint_EnterTextField("id",Location, location, "visibilityOf");
|
||||
|
||||
String permanentlocation = Machint_TestDataFromExcel("PermanentLocation");
|
||||
Machint_EnterTextField("id",Permanent_Location, permanentlocation, "visibilityOf");
|
||||
|
||||
String address = Machint_TestDataFromExcel("Address");
|
||||
Machint_EnterTextField("xpath",Address, address, "visibilityOf");
|
||||
|
||||
Machint_mouseHover(Education_Information);
|
||||
|
||||
Machint_AssertEquals("xpath", "//div/h4[text()='Personal Information']", "Personal Information:");
|
||||
}
|
||||
|
||||
@Test
|
||||
@And("^user navigate to Education Information and entered the Education Information details$")
|
||||
public void user_navigate_to_Education_Information_and_entered_the_Education_Information_details() throws Throwable
|
||||
{
|
||||
String highestqualification = Machint_TestDataFromExcel("HighestQualification");
|
||||
Machint_selectVisibleText("xpath",Highest_Qualification, highestqualification, "visibilityOf");
|
||||
|
||||
String specialization = Machint_TestDataFromExcel("Specialization");
|
||||
Machint_selectVisibleText("id",Specialization, specialization, "visibilityOf");
|
||||
|
||||
String percentage = Machint_TestDataFromExcel("Percentage");
|
||||
Machint_EnterTextField("id",Percentage, percentage, "visibilityOf");
|
||||
|
||||
String yearofpassing = Machint_TestDataFromExcel("YearOfPassing");
|
||||
Machint_EnterTextField("name",Year_Of_Passing, yearofpassing, "visibilityOf");
|
||||
|
||||
Machint_mouseHover(Technical_Knowledge);
|
||||
|
||||
Machint_AssertEquals("xpath", "//div/h4[text()='Education Information']", "Education Information");
|
||||
}
|
||||
|
||||
@Test
|
||||
@And("^user navigate to Technical Knowledge and entered the Technical Knowledge details$")
|
||||
public void user_navigate_to_Technical_Knowledge_and_entered_the_Technical_Knowledge_details() throws Throwable
|
||||
{
|
||||
String Java = Machint_TestDataFromExcel("Knowledge In JAVA");
|
||||
Machint_selectValue("xpath",Knowledge_In_JAVA, Java, "visibilityOf");
|
||||
|
||||
String Pega = Machint_TestDataFromExcel("Knowledge In PEGA");
|
||||
Machint_selectValue("xpath",Knowledge_In_PEGA, Pega, "visibilityOf");
|
||||
|
||||
String Appian = Machint_TestDataFromExcel("Knowledge In APPIAN");
|
||||
Machint_selectValue("xpath",Knowledge_In_APPIAN, Appian, "visibilityOf");
|
||||
|
||||
String RPA = Machint_TestDataFromExcel("Knowledge In RPA");
|
||||
Machint_selectValue("xpath",Knowledge_In_RPA, RPA, "visibilityOf");
|
||||
|
||||
String Python = Machint_TestDataFromExcel("Knowledge In PYTHON");
|
||||
Machint_selectValue("xpath",Knowledge_In_PYTHON, Python, "visibilityOf");
|
||||
|
||||
String Database= Machint_TestDataFromExcel("Knowledge In DATABASE");
|
||||
Machint_selectValue("xpath",Knowledge_In_DATABASE, Database, "visibilityOf");
|
||||
|
||||
Machint_mouseHover(Other_Info);
|
||||
|
||||
Machint_AssertEquals("xpath", "//div/h4[text()='Technical Knowledge']", "Technical Knowledge");
|
||||
}
|
||||
|
||||
@Test
|
||||
@Then("^user navigate the Other Info and entered the Other Info details$")
|
||||
public void user_navigate_the_Other_Info_and_entered_the_Other_Info_details() throws Exception
|
||||
{
|
||||
String source = Machint_TestDataFromExcel("Source");
|
||||
Machint_selectValue("name",Source, source, "visibilityOf");
|
||||
|
||||
// String employee_referral = Machint_TestDataFromExcel("Employee referral");
|
||||
// Machint_selectValue("xpath",registration.Employee_referral, employee_referral, "visibilityOf");
|
||||
|
||||
String message = Machint_TestDataFromExcel("Message");
|
||||
Machint_EnterTextField("name",Message, message, "visibilityOf");
|
||||
|
||||
String position = Machint_TestDataFromExcel("Have you applied for any position in our organization in past 6 months");
|
||||
Machint_selectValue("id",Position, position, "visibilityOf");
|
||||
|
||||
Machint_AssertEquals("xpath", "//div/h4[text()='Other Info']", "Other Info:");
|
||||
}
|
||||
@Test
|
||||
@And("^user click on choose file and upload the resume$")
|
||||
public void user_click_on_choose_file_and_upload_the_resume() throws Throwable
|
||||
{
|
||||
Machint_EnterTextField("xpath",Resume, "C:\\Users\\durga\\Desktop\\Automation\\Automation Strategy.docx", "visibilityOf");
|
||||
}
|
||||
@Test
|
||||
@And("^click on Submit button$")
|
||||
public void click_on_Submit_button() throws Throwable
|
||||
{
|
||||
Machint_Click("xpath", submit, "visibilityOf");
|
||||
}
|
||||
@Test
|
||||
@Then("^your registration process completed$")
|
||||
public void your_registration_process_completed() throws Throwable
|
||||
{
|
||||
driver.close();
|
||||
}
|
||||
}
|
727
src/main/java/com/machint/automation/Utils/ActionClass.java
Normal file
727
src/main/java/com/machint/automation/Utils/ActionClass.java
Normal file
|
@ -0,0 +1,727 @@
|
|||
package com.machint.automation.Utils;
|
||||
|
||||
import java.text.DateFormat;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.Iterator;
|
||||
import java.util.Set;
|
||||
|
||||
import org.openqa.selenium.Alert;
|
||||
import org.openqa.selenium.By;
|
||||
import org.openqa.selenium.JavascriptExecutor;
|
||||
import org.openqa.selenium.Keys;
|
||||
import org.openqa.selenium.NoAlertPresentException;
|
||||
import org.openqa.selenium.NoSuchElementException;
|
||||
import org.openqa.selenium.NoSuchFrameException;
|
||||
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;
|
||||
import org.testng.Assert;
|
||||
|
||||
import com.machint.automation.base.BaseClass;
|
||||
|
||||
public class ActionClass extends BaseClass
|
||||
{
|
||||
public static WebElement element;
|
||||
public static By by, locator;
|
||||
public static Select select;
|
||||
public static WebDriverWait wait;
|
||||
public static Actions action;
|
||||
public static String actual, actualValue;
|
||||
public static Boolean flag;
|
||||
public static Alert alert ;
|
||||
|
||||
public static By Machint_locator(String locatorType, String LocatorValue)
|
||||
{
|
||||
switch (locatorType)
|
||||
{
|
||||
case "id":
|
||||
by = By.id(LocatorValue);
|
||||
break;
|
||||
|
||||
case "name":
|
||||
by = By.name(LocatorValue);
|
||||
break;
|
||||
|
||||
case "className":
|
||||
by = By.className(LocatorValue);
|
||||
break;
|
||||
|
||||
case "tagName":
|
||||
by = By.tagName(LocatorValue);
|
||||
break;
|
||||
|
||||
case "xpath":
|
||||
by = By.xpath(LocatorValue);
|
||||
break;
|
||||
|
||||
case "css":
|
||||
by = By.cssSelector(LocatorValue);
|
||||
break;
|
||||
|
||||
case "linkText":
|
||||
by = By.linkText(LocatorValue);
|
||||
break;
|
||||
|
||||
case "partialLinkText":
|
||||
by = By.partialLinkText(LocatorValue);
|
||||
break;
|
||||
|
||||
default:
|
||||
by = null;
|
||||
break;
|
||||
}
|
||||
return by;
|
||||
}
|
||||
|
||||
public static void Machint_EnterTextKey(String LocatorType, String LocatorValue, String value, String WaitType) throws Exception
|
||||
{
|
||||
try
|
||||
{
|
||||
locator = Machint_locator(LocatorType, LocatorValue);
|
||||
element = driver.findElement(locator);
|
||||
|
||||
Machint_Waits(WaitType);
|
||||
element.click();
|
||||
element.sendKeys(value);
|
||||
element.sendKeys(Keys.ENTER);
|
||||
Machint_JSHighlight(element);
|
||||
Thread.sleep(2000);
|
||||
}
|
||||
catch (NoSuchElementException e)
|
||||
{
|
||||
System.err.format("No Element Found to Machint_EnterTextKey \t" + e);
|
||||
}
|
||||
}
|
||||
|
||||
public static void Machint_EnterTextField(String LocatorType, String LocatorValue, String value, String WaitType) throws Exception
|
||||
{
|
||||
try
|
||||
{
|
||||
locator = Machint_locator(LocatorType, LocatorValue);
|
||||
element = driver.findElement(locator);
|
||||
Machint_JSHighlight(element);
|
||||
Machint_Waits(WaitType);
|
||||
element.clear();
|
||||
element.sendKeys(value);
|
||||
Thread.sleep(2000);
|
||||
}
|
||||
catch (NoSuchElementException e)
|
||||
{
|
||||
System.err.format("No Element Found to Machint_EnterTextField \t" + e);
|
||||
}
|
||||
}
|
||||
|
||||
public static void Machint_Click(String LocatorType, String LocatorValue, String WaitType) throws Exception
|
||||
{
|
||||
try
|
||||
{
|
||||
locator = Machint_locator(LocatorType, LocatorValue);
|
||||
element = driver.findElement(locator);
|
||||
Machint_JSHighlight(element);
|
||||
Machint_Waits(WaitType);
|
||||
element.click();
|
||||
Thread.sleep(3000);
|
||||
}
|
||||
catch (NoSuchElementException e)
|
||||
{
|
||||
System.err.format("No Element Found to perform Machint_Click \t" + e);
|
||||
}
|
||||
}
|
||||
|
||||
public static void Machint_contextClick(String LocatorType, String LocatorValue, String WaitType) throws Exception
|
||||
{
|
||||
try
|
||||
{
|
||||
locator = Machint_locator(LocatorType, LocatorValue);
|
||||
element = driver.findElement(locator);
|
||||
Machint_JSHighlight(element);
|
||||
Machint_Waits(WaitType);
|
||||
action=new Actions(driver);
|
||||
action.contextClick(element).build().perform();
|
||||
Thread.sleep(1000);
|
||||
}
|
||||
catch (NoSuchElementException e)
|
||||
{
|
||||
System.err.format("No Element Found to perform Machint_DoubleClick \t" + e);
|
||||
}
|
||||
}
|
||||
|
||||
public static void Machint_doubleClick(String LocatorType, String LocatorValue, String WaitType) throws Exception
|
||||
{
|
||||
try
|
||||
{
|
||||
locator = Machint_locator(LocatorType, LocatorValue);
|
||||
element = driver.findElement(locator);
|
||||
Machint_JSHighlight(element);
|
||||
Machint_Waits(WaitType);
|
||||
action=new Actions(driver);
|
||||
action.moveToElement(element).doubleClick().build().perform();
|
||||
Thread.sleep(1000);
|
||||
}
|
||||
catch (NoSuchElementException e)
|
||||
{
|
||||
System.err.format("No Element Found to perform Machint_DoubleClick \t" + e);
|
||||
}
|
||||
}
|
||||
|
||||
public static void Machint_clickAndHold(String LocatorType, String LocatorValue, String WaitType) throws Exception
|
||||
{
|
||||
try
|
||||
{
|
||||
action = new Actions(driver);
|
||||
locator = Machint_locator(LocatorType, LocatorValue);
|
||||
element = driver.findElement(locator);
|
||||
action.clickAndHold(element).build().perform();
|
||||
Machint_JSHighlight(element);
|
||||
Machint_Waits(WaitType);
|
||||
element.click();
|
||||
Thread.sleep(3000);
|
||||
}
|
||||
catch (NoSuchElementException e)
|
||||
{
|
||||
System.err.format("No Element Found to perform Machint_ClickAndHoldAction\t" + e);
|
||||
}
|
||||
}
|
||||
|
||||
public static void Machint_selectValue(String LocatorType, String LocatorValue, String text, String WaitType) throws Exception
|
||||
{
|
||||
try
|
||||
{
|
||||
locator = Machint_locator(LocatorType, LocatorValue);
|
||||
element = driver.findElement(locator);
|
||||
Machint_JSHighlight(element);
|
||||
Machint_Waits(WaitType);
|
||||
select = new Select(element);
|
||||
select.selectByValue(text);
|
||||
Thread.sleep(1000);
|
||||
}
|
||||
catch (NoSuchElementException e)
|
||||
{
|
||||
System.err.format("No Element Found to Machint_selectValue \t" + e);
|
||||
}
|
||||
}
|
||||
|
||||
public static void Machint_selectIndex(String LocatorType, String LocatorValue, int value, String WaitType) throws Exception
|
||||
{
|
||||
try
|
||||
{
|
||||
locator = Machint_locator(LocatorType, LocatorValue);
|
||||
element = driver.findElement(locator);
|
||||
Machint_JSHighlight(element);
|
||||
Machint_Waits(WaitType);
|
||||
select = new Select(element);
|
||||
select.selectByIndex(value);
|
||||
Thread.sleep(1000);
|
||||
}
|
||||
catch (NoSuchElementException e)
|
||||
{
|
||||
System.err.format("No Element Found to Machint_selectIndex \t" + e);
|
||||
}
|
||||
}
|
||||
|
||||
public static void Machint_selectVisibleText(String LocatorType, String LocatorValue, String text, String WaitType) throws Exception
|
||||
{
|
||||
try
|
||||
{
|
||||
locator = Machint_locator(LocatorType, LocatorValue);
|
||||
element = driver.findElement(locator);
|
||||
Machint_JSHighlight(element);
|
||||
Machint_Waits(WaitType);
|
||||
select = new Select(element);
|
||||
select.selectByVisibleText(text);
|
||||
Thread.sleep(1000);
|
||||
}
|
||||
catch (NoSuchElementException e)
|
||||
{
|
||||
System.err.format("No Element Found to Machint_selectVisibleText \t" + e);
|
||||
}
|
||||
}
|
||||
|
||||
public static void Machint_Waits(String WaitType) throws Exception
|
||||
{
|
||||
switch (WaitType)
|
||||
{
|
||||
case "visibilityOf":
|
||||
Machint_visibilityOf();
|
||||
break;
|
||||
|
||||
case "visibilityOfAllElements":
|
||||
Machint_visibilityOfAllElements();
|
||||
break;
|
||||
|
||||
case "elementToBeClickable":
|
||||
Machint_elementToBeClickable();
|
||||
break;
|
||||
|
||||
case "elementToBeSelected":
|
||||
Machint_elementToBeSelected();
|
||||
break;
|
||||
|
||||
case "elementSelectionStateToBe":
|
||||
Machint_elementSelectionStateToBe();
|
||||
break;
|
||||
|
||||
case "frameToBeAvailableAndSwitchToIt":
|
||||
Machint_frameToBeAvailableAndSwitchToIt();
|
||||
break;
|
||||
|
||||
case "invisibilityOf":
|
||||
Machint_invisibilityOf();
|
||||
break;
|
||||
|
||||
case "invisibilityOfAllElements":
|
||||
Machint_invisibilityOfAllElements();
|
||||
break;
|
||||
|
||||
default:
|
||||
System.out.println(WaitType+ " is invalid");
|
||||
}
|
||||
}
|
||||
|
||||
public static void Machint_visibilityOf()
|
||||
{
|
||||
try
|
||||
{
|
||||
wait = new WebDriverWait(driver, 1000);
|
||||
if(element != null)
|
||||
{
|
||||
wait.until(ExpectedConditions.visibilityOf(element));
|
||||
}
|
||||
}
|
||||
catch (NoSuchElementException e)
|
||||
{
|
||||
System.err.format("No Element Found to Machint_visibilityOf \t" + e);
|
||||
}
|
||||
}
|
||||
|
||||
public static void Machint_visibilityOfAllElements()
|
||||
{
|
||||
try
|
||||
{
|
||||
wait = new WebDriverWait(driver,1000);
|
||||
if(element != null)
|
||||
{
|
||||
wait.until(ExpectedConditions.visibilityOfAllElements(element));
|
||||
}
|
||||
}
|
||||
catch (NoSuchElementException e)
|
||||
{
|
||||
System.err.format("No Element Found to Machint_visibilityOfAllElements \t" + e);
|
||||
}
|
||||
}
|
||||
|
||||
public static void Machint_elementToBeClickable()
|
||||
{
|
||||
try
|
||||
{
|
||||
wait = new WebDriverWait(driver,1000);
|
||||
if(element != null)
|
||||
{
|
||||
wait.until(ExpectedConditions.elementToBeClickable(element));
|
||||
}
|
||||
}
|
||||
catch (NoSuchElementException e)
|
||||
{
|
||||
System.err.format("No Element Found to Machint_elementToBeClickable \t" + e);
|
||||
}
|
||||
}
|
||||
|
||||
public static void Machint_elementSelectionStateToBe()
|
||||
{
|
||||
try
|
||||
{
|
||||
wait = new WebDriverWait(driver,1000);
|
||||
if(element != null)
|
||||
{
|
||||
wait.until(ExpectedConditions.elementSelectionStateToBe(element, flag));
|
||||
}
|
||||
}
|
||||
catch (NoSuchElementException e)
|
||||
{
|
||||
System.err.format("No Element Found to Machint_elementSelectionStateToBe \t" + e);
|
||||
}
|
||||
}
|
||||
|
||||
public static void Machint_elementToBeSelected()
|
||||
{
|
||||
try
|
||||
{
|
||||
wait = new WebDriverWait(driver,1000);
|
||||
if(element != null)
|
||||
{
|
||||
wait.until(ExpectedConditions.elementToBeSelected(element));
|
||||
}
|
||||
}
|
||||
catch (NoSuchElementException e)
|
||||
{
|
||||
System.err.format("No Element Found to Machint_elementToBeSelected \t" + e);
|
||||
}
|
||||
}
|
||||
|
||||
public static void Machint_frameToBeAvailableAndSwitchToIt()
|
||||
{
|
||||
try
|
||||
{
|
||||
wait = new WebDriverWait(driver,1000);
|
||||
if(element != null)
|
||||
{
|
||||
wait.until(ExpectedConditions.frameToBeAvailableAndSwitchToIt(element));
|
||||
}
|
||||
}
|
||||
catch (NoSuchElementException e)
|
||||
{
|
||||
System.err.format("No Element Found to Machint_frameToBeAvailableAndSwitchToIt \t" + e);
|
||||
}
|
||||
}
|
||||
|
||||
public static void Machint_invisibilityOf()
|
||||
{
|
||||
try
|
||||
{
|
||||
wait = new WebDriverWait(driver,1000);
|
||||
if(by != null)
|
||||
{
|
||||
wait.until(ExpectedConditions.invisibilityOf(element));
|
||||
}
|
||||
}
|
||||
catch (NoSuchElementException e)
|
||||
{
|
||||
System.err.format("No Element Found to Machint_invisibilityOf \t" + e);
|
||||
}
|
||||
}
|
||||
|
||||
public static void Machint_invisibilityOfAllElements()
|
||||
{
|
||||
try
|
||||
{
|
||||
wait = new WebDriverWait(driver,1000);
|
||||
if(element != null)
|
||||
{
|
||||
wait.until(ExpectedConditions.invisibilityOfAllElements(element));
|
||||
}
|
||||
}
|
||||
catch (NoSuchElementException e)
|
||||
{
|
||||
System.err.format("No Element Found to Machint_invisibilityOfAllElements \t" + e);
|
||||
}
|
||||
}
|
||||
|
||||
public static void Machint_JSHighlight(WebElement ele)
|
||||
{
|
||||
if (driver instanceof JavascriptExecutor)
|
||||
{
|
||||
((JavascriptExecutor) driver).executeScript("arguments[0].setAttribute('style', 'background: skyblue; border: 2px solid yellow;');",ele);
|
||||
}
|
||||
}
|
||||
|
||||
public static boolean Machint_acceptAlert()
|
||||
{
|
||||
boolean boolFound = false;
|
||||
try
|
||||
{
|
||||
wait = new WebDriverWait(driver, 1000);
|
||||
wait.until(ExpectedConditions.alertIsPresent());
|
||||
alert = driver.switchTo().alert();
|
||||
if (alert != null)
|
||||
{
|
||||
alert.accept();
|
||||
boolFound = true;
|
||||
}
|
||||
}
|
||||
catch (NoAlertPresentException ex)
|
||||
{
|
||||
boolFound = false;
|
||||
ex.printStackTrace();
|
||||
}
|
||||
return boolFound;
|
||||
}
|
||||
|
||||
public static boolean Machint_dismissAlert()
|
||||
{
|
||||
boolean boolFound = false;
|
||||
try
|
||||
{
|
||||
wait = new WebDriverWait(driver, 1000);
|
||||
wait.until(ExpectedConditions.alertIsPresent());
|
||||
alert = driver.switchTo().alert();
|
||||
if (alert != null)
|
||||
{
|
||||
alert.dismiss();
|
||||
boolFound = true;
|
||||
}
|
||||
}
|
||||
catch (NoAlertPresentException ex)
|
||||
{
|
||||
boolFound = false;
|
||||
ex.printStackTrace();
|
||||
}
|
||||
return boolFound;
|
||||
|
||||
}
|
||||
|
||||
public static boolean Machint_getAlertText()
|
||||
{
|
||||
boolean boolFound = false;
|
||||
try
|
||||
{
|
||||
wait = new WebDriverWait(driver, 1000);
|
||||
wait.until(ExpectedConditions.alertIsPresent());
|
||||
alert = driver.switchTo().alert();
|
||||
String AlertMsg=driver.switchTo().alert().getText();
|
||||
if (alert != null)
|
||||
{
|
||||
alert.accept();
|
||||
System.out.println(AlertMsg);
|
||||
boolFound = true;
|
||||
}
|
||||
}
|
||||
catch (NoAlertPresentException ex)
|
||||
{
|
||||
boolFound = false;
|
||||
ex.printStackTrace();
|
||||
}
|
||||
return boolFound;
|
||||
|
||||
}
|
||||
|
||||
public static void Machint_getTitle(String Expected)
|
||||
{
|
||||
String Title = driver.getTitle();
|
||||
Assert.assertEquals(Title, Expected);
|
||||
}
|
||||
|
||||
public static String Machint_AssertEquals(String LocatorType, String LocatorValue, String expectedValue)
|
||||
{
|
||||
locator = Machint_locator(LocatorType, LocatorValue);
|
||||
actualValue = driver.findElement(locator).getText();
|
||||
System.out.println("Actual Value is \t"+actualValue);
|
||||
Assert.assertEquals(actualValue, expectedValue);
|
||||
return actualValue;
|
||||
}
|
||||
|
||||
public static boolean Machint_NotEquals_Validation(String LocatorType,String LocatorValue, String expected)
|
||||
{
|
||||
locator = Machint_locator(LocatorType, LocatorValue);
|
||||
String element = driver.findElement(locator).getText();
|
||||
flag = false;
|
||||
if(element != null)
|
||||
{
|
||||
Assert.assertNotEquals(element, expected);
|
||||
flag = true;
|
||||
}
|
||||
else
|
||||
|
||||
{
|
||||
System.out.println("Actual Value and Expected Value Matched");
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
public static boolean Machint_True_Validation(String LocatorType,String LocatorValue, String expected)
|
||||
{
|
||||
locator = Machint_locator(LocatorType, LocatorValue);
|
||||
boolean condition = driver.findElement(locator).getText() != null;
|
||||
flag = false;
|
||||
|
||||
if(element != null)
|
||||
{
|
||||
Assert.assertTrue( condition, expected);
|
||||
flag = true;
|
||||
System.out.println(flag);
|
||||
}
|
||||
else
|
||||
{
|
||||
System.err.format("Validation is not performed");
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
public static boolean Machint_False_Validation(String LocatorType,String LocatorValue, String expected)
|
||||
{
|
||||
try
|
||||
{
|
||||
locator = Machint_locator(LocatorType, LocatorValue);
|
||||
boolean condition = driver.findElement(locator).getText() != null;
|
||||
flag = false;
|
||||
|
||||
if(element != null)
|
||||
{
|
||||
Assert.assertFalse( condition, expected);
|
||||
flag = true;
|
||||
System.out.println(flag);
|
||||
}
|
||||
}
|
||||
catch (NoSuchElementException e)
|
||||
{
|
||||
System.err.format("Validation is not performed");
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
public static void Machint_mouseHover(String LocatorValue) throws Throwable
|
||||
{
|
||||
action = new Actions(driver);
|
||||
element = driver.findElement(By.xpath(LocatorValue));
|
||||
action.moveToElement(element).build().perform();
|
||||
}
|
||||
|
||||
public static void Machint_Frame_webElement(String LocatorType, String LocatorValue, String WaitType) throws Exception
|
||||
{
|
||||
try
|
||||
{
|
||||
locator = Machint_locator(LocatorType, LocatorValue);
|
||||
element = driver.findElement(locator);
|
||||
Machint_Waits(WaitType);
|
||||
driver.switchTo().frame(element);
|
||||
Thread.sleep(2000);
|
||||
}
|
||||
catch (NoSuchElementException e)
|
||||
{
|
||||
System.err.format("No Element Found to perform Machint_Frame \t" + e);
|
||||
}
|
||||
}
|
||||
|
||||
public void Machint_switchToFrame(String ParentFrame, String ChildFrame)
|
||||
{
|
||||
try
|
||||
{
|
||||
driver.switchTo().frame(ParentFrame).switchTo().frame(ChildFrame);
|
||||
}
|
||||
catch (NoSuchFrameException e)
|
||||
{
|
||||
System.out.println("Unable to locate frame with id " + ParentFrame + " or " + ChildFrame + e.getStackTrace());
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
System.out.println("Unable to navigate to innerframe with id "+ ChildFrame + "which is present on frame with id"+ParentFrame + e.getStackTrace());
|
||||
}
|
||||
}
|
||||
|
||||
public static void Machint_defaultframe()
|
||||
{
|
||||
try
|
||||
{
|
||||
driver.switchTo().defaultContent();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
System.out.println("unable to navigate back to parent frame"+e.getStackTrace());
|
||||
}
|
||||
}
|
||||
|
||||
public static void Machint_windowhandle()
|
||||
{
|
||||
String Parent=driver.getWindowHandle();
|
||||
Set<String>s=driver.getWindowHandles();
|
||||
Iterator<String> I1= s.iterator();
|
||||
|
||||
while(I1.hasNext())
|
||||
{
|
||||
String child_window=I1.next();
|
||||
if(!Parent.equals(child_window))
|
||||
{
|
||||
driver.switchTo().window(child_window);
|
||||
System.out.println(driver.switchTo().window(child_window).getTitle());
|
||||
driver.close();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void Machint_YesterdayDate()
|
||||
{
|
||||
DateFormat sdf = new SimpleDateFormat("MM/dd/YYYY");
|
||||
// Calendar today = Calendar.getInstance();
|
||||
Calendar yesterday = Calendar.getInstance();
|
||||
yesterday.add(Calendar.DATE, -1);
|
||||
Date d = yesterday.getTime(); // get a Date object
|
||||
String yesDate = sdf.format(d); // toString for Calendars is mostly not really useful
|
||||
System.out.println("Yesterday Date is \t"+yesDate);
|
||||
}
|
||||
|
||||
public static void Machint_CurrentDate()
|
||||
{
|
||||
DateFormat sdf = new SimpleDateFormat("dd/MM/YYYY");
|
||||
Date date = new Date();
|
||||
String Date = sdf.format(date);
|
||||
System.out.println("Current Date is\t"+Date);
|
||||
}
|
||||
|
||||
public static void Machint_FutureDate()
|
||||
{
|
||||
DateFormat sdf = new SimpleDateFormat("MM/dd/YYYY");
|
||||
Calendar futureDate = Calendar.getInstance();
|
||||
futureDate.add(Calendar.DATE, 7);
|
||||
Date date = futureDate.getTime();
|
||||
String Date = sdf.format(date);
|
||||
System.out.println("Future Date is\t"+Date);
|
||||
}
|
||||
|
||||
public static void Machint_CurrentMonth()
|
||||
{
|
||||
int month;
|
||||
Calendar cal = Calendar.getInstance();
|
||||
month = cal.get(Calendar.MONTH);
|
||||
month = month+1;
|
||||
System.out.println("Current month is " + month);
|
||||
}
|
||||
|
||||
public static void Machint_CurrentYear()
|
||||
{
|
||||
int year;
|
||||
Calendar cal = Calendar.getInstance();
|
||||
year = cal.get(Calendar.YEAR);
|
||||
System.out.println("Current year is " + year);
|
||||
}
|
||||
|
||||
public static void Machint_getToolTip() throws Exception
|
||||
{
|
||||
// Get tooltip text
|
||||
String toolTipText = element.getAttribute("title").toString();
|
||||
System.out.println("Tool tip text present :- " + toolTipText);
|
||||
|
||||
// Compare toll tip text
|
||||
// Assert.assertEquals(toolTipText, expectedValue);
|
||||
}
|
||||
|
||||
public static Boolean Machint_DragandDropby(String LocatorType, String LocatorValue, int x, int y) throws Exception
|
||||
{
|
||||
boolean flag = false;
|
||||
try
|
||||
{
|
||||
locator = Machint_locator(LocatorType, LocatorValue);
|
||||
element = driver.findElement(locator);
|
||||
action=new Actions(driver);
|
||||
action.dragAndDropBy(element, x, y).build().perform();
|
||||
flag = true;
|
||||
return flag;
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public boolean isCheckBoxSelected(String LocatorType, String LocatorValue) throws Throwable
|
||||
{
|
||||
boolean flag = false;
|
||||
try
|
||||
{
|
||||
locator = Machint_locator(LocatorType, LocatorValue);
|
||||
if (driver.findElement(locator).isSelected()) {
|
||||
flag = true;
|
||||
}
|
||||
return flag;
|
||||
|
||||
}
|
||||
catch (NoSuchElementException e)
|
||||
{
|
||||
flag = false;
|
||||
return flag;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
202
src/main/java/com/machint/automation/Utils/ExcelData.java
Normal file
202
src/main/java/com/machint/automation/Utils/ExcelData.java
Normal file
|
@ -0,0 +1,202 @@
|
|||
package com.machint.automation.Utils;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileOutputStream;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.poi.ss.usermodel.Cell;
|
||||
import org.apache.poi.ss.usermodel.DataFormatter;
|
||||
import org.apache.poi.ss.usermodel.Row;
|
||||
import org.apache.poi.xssf.usermodel.XSSFCell;
|
||||
import org.apache.poi.xssf.usermodel.XSSFRow;
|
||||
import org.apache.poi.xssf.usermodel.XSSFSheet;
|
||||
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
||||
|
||||
public class ExcelData
|
||||
{
|
||||
static XSSFCell cell, cell0;
|
||||
static XSSFSheet sheet;
|
||||
static XSSFWorkbook excelWorkbook;
|
||||
static XSSFRow row;
|
||||
static String filePath = "MAF/testdatafolder/TestData.xlsx";
|
||||
static File file;
|
||||
static FileInputStream inputFile;
|
||||
static FileOutputStream outputFile;
|
||||
static int rowcount;
|
||||
static int i,j;
|
||||
public static String cellValue, celldata;
|
||||
|
||||
public static void readExcel(String sheetName) throws Exception
|
||||
{
|
||||
file = new File(filePath);
|
||||
FileInputStream inputStream = new FileInputStream(file);
|
||||
excelWorkbook = new XSSFWorkbook(inputStream);
|
||||
sheet = excelWorkbook.getSheet(sheetName);
|
||||
}
|
||||
|
||||
public static int getRowCount()
|
||||
{
|
||||
int rowcount = sheet.getLastRowNum();
|
||||
return rowcount;
|
||||
}
|
||||
|
||||
public static int getColumnCount()
|
||||
{
|
||||
row = sheet.getRow(0);
|
||||
int colCount = row.getLastCellNum();
|
||||
return colCount;
|
||||
}
|
||||
|
||||
public static String getCellContentAsString(Cell cell) throws Exception
|
||||
{
|
||||
switch (cell.getCellType())
|
||||
{
|
||||
|
||||
case Cell.CELL_TYPE_BLANK:
|
||||
celldata="";
|
||||
break;
|
||||
|
||||
case Cell.CELL_TYPE_STRING:
|
||||
celldata=cell.getStringCellValue();
|
||||
break;
|
||||
|
||||
case Cell.CELL_TYPE_NUMERIC:
|
||||
DataFormatter df=new DataFormatter();
|
||||
celldata=df.formatCellValue(cell);
|
||||
break;
|
||||
|
||||
case Cell.CELL_TYPE_FORMULA:
|
||||
celldata=String.valueOf(cell.getNumericCellValue());
|
||||
break;
|
||||
|
||||
case Cell.CELL_TYPE_BOOLEAN:
|
||||
celldata=String.valueOf(cell.getBooleanCellValue());
|
||||
break;
|
||||
|
||||
default:
|
||||
celldata=cell.getStringCellValue();
|
||||
break;
|
||||
}
|
||||
return celldata;
|
||||
}
|
||||
|
||||
public static String getCellData(int rowcount, int ColNum) throws Exception
|
||||
{
|
||||
String result = null;
|
||||
|
||||
cell = sheet.getRow(rowcount).getCell(ColNum);
|
||||
result = getCellContentAsString(cell);
|
||||
return result;
|
||||
}
|
||||
|
||||
public static String Machint_TestDataFromExcel(String ColumnName) throws Exception
|
||||
{
|
||||
for(i=1;i<=getRowCount() ; i++)
|
||||
{
|
||||
row = sheet.getRow(i);
|
||||
cell=row.getCell(0);
|
||||
String Actionvalue = cell.getStringCellValue();
|
||||
if(Actionvalue.equalsIgnoreCase(ColumnName))
|
||||
{
|
||||
cell = sheet.getRow(i).getCell(1);
|
||||
cellValue = getCellContentAsString(cell);
|
||||
}
|
||||
}
|
||||
return cellValue;
|
||||
}
|
||||
|
||||
public static String Machint_TestDataFromExcelFile(String ColumnName) throws Exception
|
||||
{
|
||||
try
|
||||
{
|
||||
|
||||
int totalNoOfRows = sheet.getLastRowNum() - sheet.getFirstRowNum();
|
||||
row = sheet.getRow(0);
|
||||
HashMap<String, String> map = new HashMap<String, String>();
|
||||
|
||||
for (int row2 = 1; row2 < totalNoOfRows; row2++) {
|
||||
|
||||
Row row1 = sheet.getRow(row2);
|
||||
if ((row1.getCell(0).getStringCellValue()).equals(ColumnName)) {
|
||||
for (int col = 1; col < row1.getLastCellNum(); col++)
|
||||
{
|
||||
map.put(row.getCell(col).getStringCellValue(), row1.getCell(col).getStringCellValue());
|
||||
}
|
||||
}
|
||||
System.out.println(map);
|
||||
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return cellValue;
|
||||
}
|
||||
|
||||
|
||||
public static List<LinkedHashMap<String, String>> getExcelDataAsMap() throws Exception
|
||||
{
|
||||
// Initialized an empty List which retain order
|
||||
List<LinkedHashMap<String, String>> dataList = new ArrayList<>();
|
||||
// Get data set count which will be equal to cell counts of any row
|
||||
int countOfDataSet = sheet.getRow(0).getPhysicalNumberOfCells();
|
||||
// Skipping first column as it is field names
|
||||
for (int i = 1; i < countOfDataSet; i++)
|
||||
{
|
||||
System.out.println("Number of countOfDataSet \t"+countOfDataSet);
|
||||
// Creating a map to store each data set individually
|
||||
LinkedHashMap<String, String> data = new LinkedHashMap<>();
|
||||
// Get the row i.e field names count
|
||||
int rowCount = sheet.getPhysicalNumberOfRows();
|
||||
System.out.println("Row count is \t"+rowCount);
|
||||
// Now we need to iterate all rows but cell should increases once all row is done
|
||||
// i.e. (1,1),(2,1),(3,1),(4,1),(5,1) - First iteration
|
||||
// (1,2),(2,2),(3,2),(4,2),(5,2) - Second iteration
|
||||
// (1,3),(2,3),(3,3),(4,3),(5,3) - Third iteration
|
||||
for(int j = 1; j<rowCount ; j++)
|
||||
{
|
||||
row = sheet.getRow(j);
|
||||
// Field name is constant as 0th index
|
||||
// cell = row.getCell(0);
|
||||
// String fieldName = getCellContentAsString(cell);
|
||||
String fieldName = row.getCell(0).getStringCellValue();
|
||||
|
||||
System.out.println("Excel field name is \t"+fieldName);
|
||||
|
||||
cell = row.getCell(i);
|
||||
String fieldValue = getCellContentAsString(cell);
|
||||
|
||||
System.out.println("Excel field Value is \t"+fieldValue);
|
||||
// Add data in map
|
||||
data.put(fieldName, fieldValue);
|
||||
|
||||
}
|
||||
// Add map to list after each iteration
|
||||
dataList.add(data);
|
||||
|
||||
}
|
||||
return dataList;
|
||||
}
|
||||
|
||||
// public static void main(String[] args) throws EncryptedDocumentException, IOException
|
||||
// {
|
||||
//
|
||||
// List<LinkedHashMap<String, String>> mapDataList = getExcelDataAsMap();
|
||||
//
|
||||
// for(int k = 0; k<mapDataList.size() ; k++)
|
||||
// {
|
||||
// System.out.println("Data Set "+ (k+1) +" : ");
|
||||
// for(String s: mapDataList.get(k).keySet())
|
||||
// {
|
||||
// System.out.println("Value of "+s +" is : "+mapDataList.get(k).get(s));
|
||||
// }
|
||||
// System.out.println("========================================================");
|
||||
// }
|
||||
// }
|
||||
|
||||
}
|
||||
|
||||
|
41
src/main/java/com/machint/automation/Utils/ext.java
Normal file
41
src/main/java/com/machint/automation/Utils/ext.java
Normal file
|
@ -0,0 +1,41 @@
|
|||
package com.machint.automation.Utils;
|
||||
//package com.Utils;
|
||||
//
|
||||
//
|
||||
//import org.junit.AfterClass;
|
||||
//import org.junit.BeforeClass;
|
||||
//
|
||||
//import com.machint.automation.base.BaseClass;
|
||||
//import com.relevantcodes.extentreports.ExtentReports;
|
||||
//import com.relevantcodes.extentreports.ExtentTest;
|
||||
//
|
||||
//public class ext extends BaseClass
|
||||
//{
|
||||
// protected ExtentTest test;
|
||||
// ExtentReports report;
|
||||
// @BeforeClass
|
||||
// public void startTest()
|
||||
// {
|
||||
// report = new ExtentReports(System.getProperty("user.dir")+"\\ExtentReportResults.html");
|
||||
// test = report.startTest("Ext");
|
||||
// }
|
||||
//
|
||||
// /*
|
||||
// * @Test public void extentReportsDemo() {
|
||||
// * System.setProperty("webdriver.chrome.driver",
|
||||
// * "D:\\SubmittalExchange_TFS\\QA\\Automation\\3rdparty\\chrome\\chromedriver.exe"
|
||||
// * ); WebDriver driver = new ChromeDriver();
|
||||
// * driver.get("https://www.google.co.in");
|
||||
// * if(driver.getTitle().equals("Google")) { test.log(LogStatus.PASS,
|
||||
// * "Navigated to the specified URL"); } else { test.log(LogStatus.FAIL,
|
||||
// * "Test Failed"); } }
|
||||
// */
|
||||
// @AfterClass
|
||||
// public void endTest()
|
||||
// {
|
||||
// report.endTest(test);
|
||||
// report.flush();
|
||||
// }
|
||||
// }
|
||||
//
|
||||
//
|
99
src/main/java/com/machint/automation/base/BaseClass.java
Normal file
99
src/main/java/com/machint/automation/base/BaseClass.java
Normal file
|
@ -0,0 +1,99 @@
|
|||
package com.machint.automation.base;
|
||||
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import org.openqa.selenium.WebDriver;
|
||||
import org.openqa.selenium.chrome.ChromeDriver;
|
||||
import org.openqa.selenium.chrome.ChromeOptions;
|
||||
import org.openqa.selenium.firefox.FirefoxDriver;
|
||||
import org.openqa.selenium.firefox.FirefoxOptions;
|
||||
import org.openqa.selenium.ie.InternetExplorerDriver;
|
||||
import org.openqa.selenium.remote.CapabilityType;
|
||||
import org.openqa.selenium.remote.DesiredCapabilities;
|
||||
import org.testng.annotations.AfterSuite;
|
||||
|
||||
import com.machint.automation.Utils.ExcelData;
|
||||
|
||||
public class BaseClass extends ExcelData
|
||||
{
|
||||
public static WebDriver driver;
|
||||
static DesiredCapabilities ieCapabilities;
|
||||
|
||||
public static WebDriver launchBrowser(String browserType, String appURL) throws Exception
|
||||
{
|
||||
switch (browserType)
|
||||
{
|
||||
case "Chrome":
|
||||
initChromeDriver(appURL);
|
||||
break;
|
||||
|
||||
case "Firefox":
|
||||
initFirefoxDriver(appURL);
|
||||
break;
|
||||
|
||||
case "InternetExplorer":
|
||||
initInternetExplorer(appURL);
|
||||
break;
|
||||
|
||||
default:
|
||||
System.out.println("browser : " + browserType+ " is invalid");
|
||||
}
|
||||
return driver;
|
||||
}
|
||||
|
||||
public static void initChromeDriver(String appURL) throws Exception
|
||||
{
|
||||
System.out.println("Launching google chrome with new profile..");
|
||||
System.setProperty("webdriver.chrome.driver", "MAF/Drivers/geckodriver");
|
||||
ChromeOptions options = new ChromeOptions();
|
||||
options.addArguments("--headless", "--disable-gpu", "--window-size=1920,1200","--ignore-certificate-errors", "--silent");
|
||||
|
||||
driver = new ChromeDriver(options);
|
||||
driver.manage().window().maximize();
|
||||
driver.get(appURL);
|
||||
driver.manage().timeouts().implicitlyWait(30,TimeUnit.SECONDS);
|
||||
}
|
||||
|
||||
public static void initFirefoxDriver(String appURL) throws Exception
|
||||
{
|
||||
System.out.println("Launching Firefox browser..");
|
||||
System.setProperty("webdriver.gecko.driver", "MAF/Drivers/geckodriver");
|
||||
FirefoxOptions options = new FirefoxOptions();
|
||||
options.addArguments("--headless", "--disable-gpu", "--window-size=1920,1200","--ignore-certificate-errors", "--silent");
|
||||
driver = new FirefoxDriver(options);
|
||||
|
||||
driver.manage().window().maximize();
|
||||
driver.get(appURL);
|
||||
driver.manage().timeouts().pageLoadTimeout(40, TimeUnit.SECONDS);
|
||||
driver.manage().timeouts().implicitlyWait(30,TimeUnit.SECONDS);
|
||||
}
|
||||
|
||||
public static void initInternetExplorer(String appURL) throws Exception
|
||||
{
|
||||
System.out.println("Launching InternetExplorer browser..");
|
||||
System.setProperty("webdriver.ie.driver", System.getProperty("user.dir")+"\\Drivers\\IEDriverServer.exe");
|
||||
|
||||
ieCapabilities = DesiredCapabilities.internetExplorer();
|
||||
ieCapabilities.setCapability(InternetExplorerDriver.ENABLE_PERSISTENT_HOVERING, false);
|
||||
ieCapabilities.setCapability(InternetExplorerDriver.UNEXPECTED_ALERT_BEHAVIOR, "accept");
|
||||
// ieCapabilities.setCapability(InternetExplorerDriver.IE_ENSURE_CLEAN_SESSION, true);
|
||||
ieCapabilities.setCapability(InternetExplorerDriver.NATIVE_EVENTS, true);
|
||||
ieCapabilities.setCapability(InternetExplorerDriver.REQUIRE_WINDOW_FOCUS, true);
|
||||
ieCapabilities.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
|
||||
ieCapabilities.setCapability("disable-popup-blocking", true);
|
||||
ieCapabilities.setCapability("ignoreProtectedModeSettings", true);
|
||||
ieCapabilities.setJavascriptEnabled(true);
|
||||
|
||||
driver = new InternetExplorerDriver(ieCapabilities);
|
||||
driver.manage().window().maximize();
|
||||
driver.get(appURL);
|
||||
driver.manage().timeouts().implicitlyWait(30,TimeUnit.SECONDS);
|
||||
}
|
||||
|
||||
@AfterSuite
|
||||
public void Close()
|
||||
{
|
||||
driver.quit();
|
||||
}
|
||||
}
|
||||
|
39
src/main/java/com/machint/automation/base/ExtentDemo.java
Normal file
39
src/main/java/com/machint/automation/base/ExtentDemo.java
Normal file
|
@ -0,0 +1,39 @@
|
|||
//package com.machint.automation.base;
|
||||
//
|
||||
//
|
||||
//import org.junit.AfterClass;
|
||||
//import org.junit.BeforeClass;
|
||||
//import com.relevantcodes.extentreports.ExtentReports;
|
||||
//import com.relevantcodes.extentreports.ExtentTest;
|
||||
//
|
||||
//public class ExtentDemo {
|
||||
//protected static ExtentTest test;
|
||||
//static ExtentReports report;
|
||||
//
|
||||
//
|
||||
//@BeforeClass
|
||||
//public static void startTest()
|
||||
//{
|
||||
//report = new ExtentReports(System.getProperty("D:\\WorkspaceD\\AutomationFramework\\EReorts")+"\\ExtentReportResults.html");
|
||||
//test = report.startTest("ExtentDemo");
|
||||
//}
|
||||
//
|
||||
///*
|
||||
// * @Test public void extentReportsDemo() {
|
||||
// * System.setProperty("webdriver.chrome.driver",
|
||||
// * "D:\\SubmittalExchange_TFS\\QA\\Automation\\3rdparty\\chrome\\chromedriver.exe"
|
||||
// * ); WebDriver driver = new ChromeDriver();
|
||||
// * driver.get("https://www.google.co.in");
|
||||
// * if(driver.getTitle().equals("Google")) { test.log(LogStatus.PASS,
|
||||
// * "Navigated to the specified URL"); } else { test.log(LogStatus.FAIL,
|
||||
// * "Test Failed"); }
|
||||
//
|
||||
//}*/
|
||||
//@AfterClass
|
||||
//public static void endTest()
|
||||
//{
|
||||
//
|
||||
//report.endTest(test);
|
||||
//report.flush();
|
||||
//}
|
||||
//}
|
|
@ -0,0 +1,50 @@
|
|||
package com.machint.automation.managers;
|
||||
|
||||
import java.util.Properties;
|
||||
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* public String getReportConfigPath(){ Properties properties = null;
|
||||
*
|
||||
* @SuppressWarnings("null") String reportConfigPath =
|
||||
* properties.getProperty("reportConfigPath"); if(reportConfigPath!= null) {
|
||||
* return reportConfigPath; } return reportConfigPath;
|
||||
*
|
||||
*
|
||||
* }
|
||||
*/
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.FileReader;
|
||||
import java.io.IOException;
|
||||
|
||||
public class ConfigFileReader {
|
||||
private Properties properties;
|
||||
private final String propertyFilePath = "src//test//resources//configs//Configuration.properties";
|
||||
|
||||
public ConfigFileReader() {
|
||||
BufferedReader reader;
|
||||
try {
|
||||
reader = new BufferedReader(new FileReader(propertyFilePath));
|
||||
properties = new Properties();
|
||||
try {
|
||||
properties.load(reader);
|
||||
reader.close();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
} catch (FileNotFoundException e) {
|
||||
e.printStackTrace();
|
||||
throw new RuntimeException("Configuration.properties not found at " + propertyFilePath);
|
||||
}
|
||||
}
|
||||
|
||||
public String getReportConfigPath() {
|
||||
String reportConfigPath = properties.getProperty("reportConfigPath");
|
||||
if (reportConfigPath != null) return reportConfigPath;
|
||||
else throw new RuntimeException("Report Config Path not specified in the Configuration.properties");
|
||||
}
|
||||
}
|
|
@ -0,0 +1,67 @@
|
|||
package com.machint.automation.managers;
|
||||
import java.io.File;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
|
||||
import com.aventstack.extentreports.ExtentReports;
|
||||
import com.aventstack.extentreports.reporter.ExtentHtmlReporter;
|
||||
import com.aventstack.extentreports.reporter.configuration.ChartLocation;
|
||||
import com.aventstack.extentreports.reporter.configuration.Theme;
|
||||
|
||||
public class ExtentManager {
|
||||
public static final String FILE_LOCATION = "MAF";
|
||||
|
||||
private static String timestamp1 = new SimpleDateFormat("yyyy_MM_dd__hh_mm_ss").format(new Date());
|
||||
private static ExtentReports extent;
|
||||
private static String reportFileName = "Test-Automaton-Report.html";
|
||||
private static String fileSeperator = System.getProperty("file.separator");
|
||||
private static String reportFilepath = FILE_LOCATION +fileSeperator+ "TestReport";
|
||||
private static String reportFileLocation = reportFilepath +fileSeperator+ reportFileName;
|
||||
|
||||
|
||||
public static ExtentReports getInstance() {
|
||||
if (extent == null)
|
||||
createInstance();
|
||||
return extent;
|
||||
}
|
||||
|
||||
//Create an extent report instance
|
||||
public static ExtentReports createInstance() {
|
||||
String fileName = getReportPath(reportFilepath);
|
||||
|
||||
ExtentHtmlReporter htmlReporter = new ExtentHtmlReporter(fileName);
|
||||
htmlReporter.config().setTestViewChartLocation(ChartLocation.BOTTOM);
|
||||
htmlReporter.config().setChartVisibilityOnOpen(true);
|
||||
htmlReporter.config().setTheme(Theme.STANDARD);
|
||||
htmlReporter.config().setDocumentTitle(reportFileName);
|
||||
htmlReporter.config().setEncoding("utf-8");
|
||||
htmlReporter.config().setReportName(reportFileName);
|
||||
htmlReporter.config().setTimeStampFormat("EEEE, MMMM dd, yyyy, hh:mm a '('zzz')'");
|
||||
|
||||
extent = new ExtentReports();
|
||||
extent.attachReporter(htmlReporter);
|
||||
//Set environment details
|
||||
extent.setSystemInfo("OS", "Windows");
|
||||
extent.setSystemInfo("AUT", "QA");
|
||||
|
||||
return extent;
|
||||
}
|
||||
|
||||
//Create the report path
|
||||
private static String getReportPath (String path) {
|
||||
File testDirectory = new File(path);
|
||||
if (!testDirectory.exists()) {
|
||||
if (testDirectory.mkdir()) {
|
||||
System.out.println("Directory: " + path + " is created!" );
|
||||
return reportFileLocation;
|
||||
} else {
|
||||
System.out.println("Failed to create directory: " + path);
|
||||
return System.getProperty("user.dir");
|
||||
}
|
||||
} else {
|
||||
System.out.println("Directory already exists: " + path);
|
||||
}
|
||||
return reportFileLocation;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,26 @@
|
|||
package com.machint.automation.managers;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import com.aventstack.extentreports.ExtentReports;
|
||||
import com.aventstack.extentreports.ExtentTest;
|
||||
|
||||
public class ExtentTestManager {
|
||||
static Map<Integer, ExtentTest> extentTestMap = new HashMap<Integer, ExtentTest>();
|
||||
static ExtentReports extent = ExtentManager.getInstance();
|
||||
|
||||
public static synchronized ExtentTest getTest() {
|
||||
return (ExtentTest) extentTestMap.get((int) (long) (Thread.currentThread().getId()));
|
||||
}
|
||||
|
||||
public static synchronized void endTest() {
|
||||
extent.flush();
|
||||
}
|
||||
|
||||
public static synchronized ExtentTest startTest(String testName) {
|
||||
ExtentTest test = extent.createTest(testName);
|
||||
extentTestMap.put((int) (long) (Thread.currentThread().getId()), test);
|
||||
return test;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,16 @@
|
|||
package com.machint.automation.managers;
|
||||
|
||||
public class FileReaderManager {
|
||||
private static FileReaderManager fileReaderManager = new FileReaderManager();
|
||||
private static ConfigFileReader configFileReader;
|
||||
|
||||
private FileReaderManager() {}
|
||||
|
||||
public static FileReaderManager getInstance() {
|
||||
return fileReaderManager;
|
||||
}
|
||||
|
||||
public ConfigFileReader getConfigReader() {
|
||||
return (configFileReader == null) ? new ConfigFileReader() : configFileReader;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,88 @@
|
|||
package com.machint.automation.managers;
|
||||
|
||||
import java.io.File;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
|
||||
import org.apache.commons.io.FileUtils;
|
||||
import org.openqa.selenium.OutputType;
|
||||
import org.openqa.selenium.TakesScreenshot;
|
||||
import org.testng.ITestContext;
|
||||
import org.testng.ITestListener;
|
||||
import org.testng.ITestResult;
|
||||
|
||||
import com.aventstack.extentreports.Status;
|
||||
import com.machint.automation.base.BaseClass;
|
||||
|
||||
public class TestListener extends BaseClass implements ITestListener
|
||||
{
|
||||
|
||||
public void onStart(ITestContext context)
|
||||
{
|
||||
System.out.println("*** Test Suite " + context.getName() + " started ***");
|
||||
}
|
||||
|
||||
public void onFinish(ITestContext context)
|
||||
{
|
||||
System.out.println(("*** Test Suite " + context.getName() + " ending ***"));
|
||||
ExtentTestManager.endTest();
|
||||
ExtentManager.getInstance().flush();
|
||||
}
|
||||
|
||||
public void onTestStart(ITestResult result) {
|
||||
System.out.println(("*** Running test method " + result.getMethod().getMethodName() + "..."));
|
||||
ExtentTestManager.startTest(result.getMethod().getMethodName());
|
||||
}
|
||||
|
||||
public void onTestSuccess(ITestResult result)
|
||||
{
|
||||
System.out.println("*** Executed " + result.getMethod().getMethodName() + " test successfully...");
|
||||
ExtentTestManager.getTest().log(Status.PASS, "Test passed");
|
||||
}
|
||||
|
||||
/*
|
||||
* @Override public void onTestFailure(ITestResult result) {
|
||||
* System.out.println("***** Error "+result.getName()+" test has failed *****");
|
||||
* String methodName=result.getName().toString().trim(); ITestContext context =
|
||||
* result.getTestContext(); WebDriver driver =
|
||||
* (WebDriver)context.getAttribute("driver"); takeScreenShot(methodName,
|
||||
* driver); }
|
||||
*
|
||||
* public void takeScreenShot(String methodName, WebDriver driver) { File
|
||||
* scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE); //The
|
||||
* below method will save the screen shot in d drive with test method name try {
|
||||
* FileUtils.copyFile(scrFile, new File(filePath+methodName+".png"));
|
||||
* System.out.println("***Placed screen shot in "+filePath+" ***"); } catch
|
||||
* (IOException e) { e.printStackTrace(); } }
|
||||
*/
|
||||
|
||||
public void onTestFailure(ITestResult result)
|
||||
{
|
||||
System.out.println("*** Test execution " + result.getMethod().getMethodName() + " failed...");
|
||||
ExtentTestManager.getTest().log(Status.FAIL, "Test Failed");
|
||||
try
|
||||
{
|
||||
TakesScreenshot screenshot=(TakesScreenshot)driver;
|
||||
File src=screenshot.getScreenshotAs(OutputType.FILE);
|
||||
String timestamp = new SimpleDateFormat("yyyy_MM_dd__hh_mm_ss").format(new Date());
|
||||
FileUtils.copyFile(src, new File("MAF/ScreenShot /"+result.getName()+timestamp+".png"));
|
||||
System.out.println("Successfully captured a screenshot");
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
System.out.println("Exception while taking screenshot "+e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
public void onTestSkipped(ITestResult result)
|
||||
{
|
||||
System.out.println("*** Test " + result.getMethod().getMethodName() + " skipped...");
|
||||
ExtentTestManager.getTest().log(Status.SKIP, "Test Skipped");
|
||||
}
|
||||
|
||||
public void onTestFailedButWithinSuccessPercentage(ITestResult result)
|
||||
{
|
||||
System.out.println("*** Test failed but within percentage % " + result.getMethod().getMethodName());
|
||||
}
|
||||
|
||||
}
|
41
src/main/java/com/machint/automation/model/FormObject.java
Normal file
41
src/main/java/com/machint/automation/model/FormObject.java
Normal file
|
@ -0,0 +1,41 @@
|
|||
package com.machint.automation.model;
|
||||
|
||||
public class FormObject {
|
||||
|
||||
private String environment;
|
||||
private String browser;
|
||||
private String product;
|
||||
private String testCase;
|
||||
public String getEnvironment() {
|
||||
return environment;
|
||||
}
|
||||
public void setEnvironment(String environment) {
|
||||
this.environment = environment;
|
||||
}
|
||||
public String getBrowser() {
|
||||
return browser;
|
||||
}
|
||||
public void setBrowser(String browser) {
|
||||
this.browser = browser;
|
||||
}
|
||||
public String getProduct() {
|
||||
return product;
|
||||
}
|
||||
public void setProduct(String product) {
|
||||
this.product = product;
|
||||
}
|
||||
public String getTestCase() {
|
||||
return testCase;
|
||||
}
|
||||
public void setTestCase(String testCase) {
|
||||
this.testCase = testCase;
|
||||
}
|
||||
@Override
|
||||
public String toString() {
|
||||
return "FormObject [environment=" + environment + ", browser=" + browser + ", product=" + product
|
||||
+ ", testCase=" + testCase + "]";
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
5
src/main/resources/application.properties
Normal file
5
src/main/resources/application.properties
Normal file
|
@ -0,0 +1,5 @@
|
|||
#spring.main.web-application-type=none
|
||||
server.port=8093
|
||||
#spring.resources.static-locations=D:/Dev/mautomation/test-output
|
||||
local.file.path=D:/M_Automation/MAF
|
||||
server.servlet.context-path=/mautomation
|
91
src/main/resources/static/excel_test.html
Normal file
91
src/main/resources/static/excel_test.html
Normal file
|
@ -0,0 +1,91 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<script src="https://kit.fontawesome.com/64d58efce2.js" crossorigin="anonymous"></script>
|
||||
<script src="jquery-3.5.1.min.js"></script>
|
||||
<link rel="stylesheet" href="style.css" />
|
||||
<style type="text/css">
|
||||
|
||||
</style>
|
||||
<title>Automation Test</title>
|
||||
</head>
|
||||
<body>
|
||||
<div class="container">
|
||||
<div class="forms-container">
|
||||
<div class="signin-signup">
|
||||
<form method="POST" enctype="multipart/form-data" id="fileUploadForm" class="sign-in-form">
|
||||
<h2 class="title">Automation Test Run</h2>
|
||||
<label for="file">Select Test Data file</label>
|
||||
<div class="input-field">
|
||||
<i class="fas fa-upload"></i>
|
||||
<input type="file" class="form-control" id="uploadfile" placeholder="Upload File" name="file"></input>
|
||||
</div>
|
||||
<button type="submit" class="btn solid" id="btnSubmit">Upload and Run Test</button>
|
||||
<div>
|
||||
<a href="http://localhost:8092/get_excel_report">Get Test Report</a>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
<div id="overlay">
|
||||
<div class="cv-spinner">
|
||||
<span class="spinner"></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="panels-container">
|
||||
<div class="panel left-panel">
|
||||
<img src="img/log.svg" class="image" alt="" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
jQuery(function($){
|
||||
$(document).ajaxSend(function() {
|
||||
$("#overlay").fadeIn(300);
|
||||
});
|
||||
|
||||
|
||||
|
||||
$('#btnSubmit').click(function(event){
|
||||
event.preventDefault();
|
||||
var form = $('#fileUploadForm')[0];
|
||||
var data = new FormData(form);
|
||||
$("#btnSubmit").prop("disabled", true);
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
enctype: 'multipart/form-data',
|
||||
url: '/run_excel',
|
||||
data: data,
|
||||
//http://api.jquery.com/jQuery.ajax/
|
||||
//https://developer.mozilla.org/en-US/docs/Web/API/FormData/Using_FormData_Objects
|
||||
processData: false, //prevent jQuery from automatically transforming the data into a query string
|
||||
contentType: false,
|
||||
cache: false,
|
||||
timeout: 600000,
|
||||
success: function(data){
|
||||
alert(data);
|
||||
$("#btnSubmit").prop("disabled", false);
|
||||
},
|
||||
error: function (e) {
|
||||
|
||||
alert(e.responseText);
|
||||
console.log("ERROR : ", e);
|
||||
$("#btnSubmit").prop("disabled", false);
|
||||
|
||||
}
|
||||
}).done(function() {
|
||||
setTimeout(function(){
|
||||
$("#overlay").fadeOut(300);
|
||||
//window.location.replace("http://localhost");
|
||||
},500);
|
||||
});
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
170
src/main/resources/static/index.html
Normal file
170
src/main/resources/static/index.html
Normal file
|
@ -0,0 +1,170 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="ISO-8859-1">
|
||||
<title>Automation Testing</title>
|
||||
<script src="jquery-3.5.1.min.js"></script>
|
||||
<link rel="stylesheet" href="style.css" />
|
||||
</head>
|
||||
<body>
|
||||
|
||||
|
||||
<div class="container">
|
||||
<h2 class="title">Automation Test</h2>
|
||||
<form enctype="application/x-www-form-urlencoded" method="POST" id="#testForm" action="#">
|
||||
|
||||
<div class="row">
|
||||
<div class="col-25">
|
||||
<label for="browser">Browser</label>
|
||||
</div>
|
||||
<div class="col-75">
|
||||
<select name="browser" id="browserSelect">
|
||||
<option value="Chrome">Chrome</option>
|
||||
<option value="InternetExplorer">Internet Explorer</option>
|
||||
<option value="Firefox">Firefox</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-25">
|
||||
<label for="product">Product</label>
|
||||
</div>
|
||||
<div class="col-75">
|
||||
<select name="product" id="productSelect">
|
||||
<option value="">Please Select Product</option>
|
||||
<option value="mwid">MWID</option>
|
||||
<option value="parthanon">Parthanon</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-25">
|
||||
<label for="environment">Select Environment</label>
|
||||
</div>
|
||||
<div class="col-75">
|
||||
<select name="environment" id="envSelect">
|
||||
<option value="http://104.211.74.54:8080/MWID/login">(http://104.211.74.54:8080/MWID/login)</option>
|
||||
<option value="https://rainbowtest.appiancloud.com/suite/sites/parthenon">(https://rainbowtest.appiancloud.com/suite/sites/parthenon)</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-25">
|
||||
<label for="testCase">Select Test Case</label>
|
||||
</div>
|
||||
<div class="col-75">
|
||||
<select name="testCase" id="testCaseSelect">
|
||||
<!-- <option value="HR_login_Testng.xml">HR_login_Testng.xml</option>
|
||||
<option value="Insurance.xml">Insurance.xml</option>
|
||||
<option value="pTestNG.xml">pTestNG.xml</option>
|
||||
<option value="Registration_Testng.xml">Registration_Testng.xml</option> -->
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<input type="submit" value="Submit" id="btnSubmit">
|
||||
</div>
|
||||
<div class="row">
|
||||
<a href="https://apps.machint.com/mautomation/get_xml_report">Get Test Report</a>
|
||||
</div>
|
||||
</form>
|
||||
<div id="overlay">
|
||||
<div class="cv-spinner">
|
||||
<span class="spinner"></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
jQuery(function($){
|
||||
var environments = {
|
||||
parthanon: 'https://rainbowtest.appiancloud.com/suite/sites/parthenon',
|
||||
mwid: 'http://104.211.74.54:8080/MWID/login'
|
||||
}
|
||||
var testCases = {
|
||||
mwid: 'HR_login_Testng.xml',
|
||||
parthanon: 'Insurance.xml'
|
||||
}
|
||||
$("#productSelect").change(function () {
|
||||
var productVal = this.value;
|
||||
$('#testCaseSelect').empty();
|
||||
$('#envSelect').empty();
|
||||
$('#testCaseSelect').append(
|
||||
$('<option></option>').val(testCases[productVal]).html(testCases[productVal])
|
||||
);
|
||||
$('#envSelect').append(
|
||||
$('<option></option>').val(environments[productVal]).html(environments[productVal])
|
||||
);
|
||||
//$('#testCaseSelect').find('option[value="'+environments[productVal]+'"]').attr('selected','selected')
|
||||
//$('#testCaseSelect').val(environments[productVal]);
|
||||
});
|
||||
$(document).ajaxSend(function() {
|
||||
$("#overlay").fadeIn(300);
|
||||
});
|
||||
|
||||
/* attach a submit handler to the form */
|
||||
$('#btnSubmit').click(function(event){
|
||||
|
||||
/* stop form from submitting normally */
|
||||
event.preventDefault();
|
||||
|
||||
;
|
||||
|
||||
/* Send the data using post with element id name and name2*/
|
||||
var runTestAjax = $.post('run_test', {
|
||||
browser: $('#browserSelect').val(),
|
||||
product: $('#productSelect').val(),
|
||||
environment: $('#envSelect').val(),
|
||||
testCase: $('#testCaseSelect').val()
|
||||
});
|
||||
|
||||
/* Alerts the results */
|
||||
runTestAjax.done(function(data) {
|
||||
alert(data);
|
||||
setTimeout(function(){
|
||||
$("#overlay").fadeOut(300);
|
||||
},500);
|
||||
});
|
||||
runTestAjax.fail(function() {
|
||||
alert('Error Occured in Running Test');
|
||||
$("#overlay").fadeOut(300);
|
||||
});
|
||||
});
|
||||
|
||||
/*$('#btnSubmit').click(function(event){
|
||||
event.preventDefault();
|
||||
var form = $('#testForm')[0];
|
||||
var data = new FormData(form);
|
||||
alert(data);
|
||||
$("#btnSubmit").prop("disabled", true);
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
url: '/run_test',
|
||||
data: data,
|
||||
//http://api.jquery.com/jQuery.ajax/
|
||||
//https://developer.mozilla.org/en-US/docs/Web/API/FormData/Using_FormData_Objects
|
||||
processData: false, //prevent jQuery from automatically transforming the data into a query string
|
||||
contentType: 'application/x-www-form-urlencoded',
|
||||
cache: false,
|
||||
timeout: 600000,
|
||||
success: function(data){
|
||||
alert(data);
|
||||
$("#btnSubmit").prop("disabled", false);
|
||||
},
|
||||
error: function (e) {
|
||||
|
||||
alert(e.responseText);
|
||||
console.log("ERROR : ", e);
|
||||
$("#btnSubmit").prop("disabled", false);
|
||||
|
||||
}
|
||||
}).done(function() {
|
||||
setTimeout(function(){
|
||||
$("#overlay").fadeOut(300);
|
||||
//window.location.replace("http://localhost");
|
||||
},500);
|
||||
});
|
||||
}); */
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
2
src/main/resources/static/jquery-3.5.1.min.js
vendored
Normal file
2
src/main/resources/static/jquery-3.5.1.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
105
src/main/resources/static/style.css
Normal file
105
src/main/resources/static/style.css
Normal file
|
@ -0,0 +1,105 @@
|
|||
@import url("https://fonts.googleapis.com/css2?family=Poppins:wght@200;300;400;500;600;700;800&display=swap");
|
||||
|
||||
* {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
body,
|
||||
input {
|
||||
font-family: "Poppins", sans-serif;
|
||||
}
|
||||
/* Style inputs, select elements and textareas */
|
||||
input[type=text], select, textarea{
|
||||
width: 100%;
|
||||
padding: 12px;
|
||||
border: 1px solid #ccc;
|
||||
border-radius: 4px;
|
||||
box-sizing: border-box;
|
||||
resize: vertical;
|
||||
}
|
||||
|
||||
/* Style the label to display next to the inputs */
|
||||
label {
|
||||
padding: 12px 12px 12px 0;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
/* Style the submit button */
|
||||
input[type=submit] {
|
||||
background-color: #4CAF50;
|
||||
color: white;
|
||||
padding: 12px 20px;
|
||||
border: none;
|
||||
border-radius: 4px;
|
||||
cursor: pointer;
|
||||
float: right;
|
||||
}
|
||||
|
||||
/* Style the container */
|
||||
.container {
|
||||
border-radius: 5px;
|
||||
background-color: #f2f2f2;
|
||||
padding: 20px;
|
||||
}
|
||||
|
||||
/* Floating column for labels: 25% width */
|
||||
.col-25 {
|
||||
float: left;
|
||||
width: 25%;
|
||||
margin-top: 6px;
|
||||
}
|
||||
|
||||
/* Floating column for inputs: 75% width */
|
||||
.col-75 {
|
||||
float: left;
|
||||
width: 75%;
|
||||
margin-top: 6px;
|
||||
}
|
||||
|
||||
/* Clear floats after the columns */
|
||||
.row:after {
|
||||
content: "";
|
||||
display: table;
|
||||
clear: both;
|
||||
}
|
||||
|
||||
/* Responsive layout - when the screen is less than 600px wide, make the two columns stack on top of each other instead of next to each other */
|
||||
@media screen and (max-width: 600px) {
|
||||
.col-25, .col-75, input[type=submit] {
|
||||
width: 100%;
|
||||
margin-top: 0;
|
||||
}
|
||||
}
|
||||
#overlay{
|
||||
position: fixed;
|
||||
top: 0;
|
||||
z-index: 100;
|
||||
width: 100%;
|
||||
height:100%;
|
||||
display: none;
|
||||
background: rgba(0,0,0,0.6);
|
||||
}
|
||||
.cv-spinner {
|
||||
height: 100%;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
.spinner {
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
border: 4px #ddd solid;
|
||||
border-top: 4px #2e93e6 solid;
|
||||
border-radius: 50%;
|
||||
animation: sp-anime 0.8s infinite linear;
|
||||
}
|
||||
@keyframes sp-anime {
|
||||
100% {
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
}
|
||||
.is-hide{
|
||||
display:none;
|
||||
}
|
Loading…
Reference in New Issue
Block a user