Search This Blog
Friday, December 23, 2016
JBOSS wont start on jdk8
Tuesday, December 20, 2016
Wednesday, December 14, 2016
jmx via mission controller
append the following to the java process, while starting the process.
-Dcom.sun.management.jmxremote=true
Sunday, November 13, 2016
remote wiresharking
Thursday, November 10, 2016
split files in linux
Tuesday, November 8, 2016
Inspect java code with javasnoop
https://code.google.com/archive/p/javasnoop/
Once downloaded extract and change the startup.bat to point to your JDK not jre.
i changed to this to make it work with jdk 8
echo %JAVA_HOME% | find /i "8" > NUL
not startup snoop via the bat or shell.
Now either attach to a local jvm process or specify the new process
Let me attach to my local eclipse code which i want to debug.
Add new hook to your class methods
Now you can print the variables while hook is active and tamper with the parameter and return values at run time.
If hook is active you might see this
change the variables in the jvm from here
Let me rename the variable to another value and see what happens in the target jvm.
i changed the variable to India and return value to india1
You can see that target jvm has new values now
This is very helpfull in debugging the COTS products where we don’t have the souce code and neither we are able to regenrate the source code by looking at the decompiiled binaries via JAD or whatever.
This will display the actual variables values at run time inside the jvm.
Oh one more thing, you can also execute custom scripts after your hooks are active as shown below.
click on this
execute now
Another cool feature is you can track your input data across the methods and classes.
You can find out where is the user data going by going into the CANARY mode.
Lets see how to enable this.
Go to actions and enable canary mode.
Enter the data you are interested in.
As the code is executed which is operating on the input data there will be a chirp in the canary mode as shown above.
Now you can directly hook all the methods your data is flowing throw, Cool isn’t it ?
I think its a life saver, i used to decompile the binaries from different decompilers and attach the generated source in eclipse to debug earlier, but i guess this is better and faster.
Make sure you use JDK to run eclipse else you will get error “ target jvm doesn’t have providers to attach to kinda stuff”
Steps required to Demo
- Run the below code in eclipse using JDK and put a breat point at “ String value = a(abhi);”
- Now debug the code and let the breakpoint hit the above line.
- Now seperate cmd window open snoop and attach to the existing jvm.
- Attach the hook, once attached resume the breakpoint in the eclipse.
- Your hook will become active and you are ready to rock.
My source which was running in eclipse,
//
package javacode;
import java.lang.Integer;
import java.util.HashMap;
public class Main
{
private static final String String = null;
public static void main (String[] args) throws java.lang.Exception
{
String abhi="df";
String value = a(abhi);
Thread.sleep(10000);
System.out.println(value);
}
public static String a(String abhi ) {
// TODO Auto-generated method stub
System.out.println(abhi);
return abhi;
}
}
Monday, November 7, 2016
No initial context if connecting to remove jvm via load balancer jdk 6 --> jdk 8
Friday, July 15, 2016
JBOSS - not able to lookup the connection factory from remote host
You telnet it on 1100 and get a marshal object from the port
For example telnet host 1100 and you see a marshaled object in putty, it might be the serialized object,a stub from the remote server.
you might get the reply from 8083 and ha load balance proxy.
Now jboss while it boots acquires port 4447 and your default 8080 and other ports for bisocket connector.So these ports are required for jboss to function properly.
If you are facing issues with looking up the remote CF it might be due to the network connectivity with required ports.
Try following things
Do a lookup from local system if it works you can be sure that the CF jndi is correct.
Now check the firewall status of the your jboss server. $ service iptable status or ip6tables
If it says firewall is turned off, try doing telnet on all the ports required for JBOSS.
You should be able to telnet all the required ports which are required for JBOSS not just the 8080.
If you are not able to telnet required ports from your client it means that you wont be able to do any lookups on the remote naming url, you might get the context though.
Also check for listen ports by
$ netstat -an |grep LISTEN
Check for your source and target specific connection
$netstat -tcp | egrep "clientip|destinationip"
Monday, July 4, 2016
How to start vnc server, connect to it and change password
$vncserver
after you press enter you will get
-bash-4.1$ vncserver
New 'xxxxx:17 (appltest)' desktop is xxxx:17
Starting applications specified in /homet/.vnc/xstartup
Log file is /home/.vnc/xxxx:17.log
now connect on port 17 in vnc box
host:17 and press connect, before that you can set the password as
vncpasswd
after you press enter it will ask for the new password , use it above to connect.
This is an alternative to export displays from the linux based systems.
Monday, June 27, 2016
How cisco Load balancer works
So For e.g
If a request came from a client for x.x.x.x:8008 it will land on the 8008 farm and will be routed to the farm member which is a pool of ip. The response will follow the same path as request came but while going back it will be sent back to client by the NATTED ip address .
One of the ip under 8008 farm y.y.y.1/y.y.y.2/y.y.y.3 , will send the response back to the client.Different farms have different policies for routes.In case a farm behaves in a different way it should have a different policy.
Friday, June 10, 2016
Enable flight recorder on weblogic
Thursday, June 9, 2016
Enable jmx weblogic
Saturday, June 4, 2016
Start managedweblogic with nohup
nohup will prevent your process from shutting down once the terminal in which you started the process is closed.
Friday, June 3, 2016
Share internet from windows 7 to other computers via ad-hoc wifi network
In case you are short with lan cables and open ports in office and you want to share local interet from a cable to other laptops via wifinetwork, you might have to create an ad-hoc network and bridge it with the local area network.
Details below.
Step 1
Go to network and connections
Step2
Press control and select both local area connection and wireless network connection and right click --- add to bridge.
Step 3
Go to manage wireless networks
Step 4
create an ad-hoc network for other laptops to connect to your computer, name it router or whatever.
select a password and check the save the network box.(e.g network name myrouter)
Step 5
Make sure you wifi antenna is on and then connect to your ad-hoc network.It should display waiting for users.
Step 6
Go to antoher computer and search for the wifi network name “myrouter” – connect to it.
Step 7
Once connected from client laptop, your computer should display the status of myrouter as connected.
Step 8
You are done , browse the internet on your client laptop which is connected to network “myrouter” hosted on your computer.
I have used connectify and other virtual router stuff but found this one more efficient and credible, more over its windows OOB so it works flawlessly.
Thursday, May 26, 2016
Apply patch on weblogic
Add custom jms properties in the header - weblogic
Wednesday, May 25, 2016
Create jms on Weblogic 12c (OSB) cluster–JMS servers health not up.
bug # 21830665.
Version 12.2.1.0.0
21830665: HEALTH CHECK RESULT OF JMS SERVERS ARE LEFT BLANK
JMS infrastructure on above versions of weblogic using OSB 12c will not work untill the patch 21830665 is applied.
Once the patch is applied , follow the configuration below to make it work.
Create a cluster.
A cluster will contain two managed servers ms1 and ms2 and cluster name is mycluster(select unicast mode of messaging)
Both ms have different ports and are started by going to domains/bin startManagedServer.cmd ms1 (press enter and username/pwd when asked)
Get your cluster up and running.
Now go to JMS servers and create two new jms servers pointing to both managed servers ms1 and ms2.
JMServer1 and JMServer2 both pointed to two managed servers.(JMS servers act as containers for the JMS infrastructure and are mapped directly to either managed servers or the clusters)
Use filestore for both of the jms servers.
Now go to JMS modules
Create a jms module called clusterjmsmodule, in targets select the cluster so that jms servers under that clusters are available for subdeployment mapping of other jms resources in this module.
Create a connection factory and map it to the cluster.
Create queue1 and create a sub-deployment and select the first jms server, similarly create another queue and map it to the other jmsserver.
JMS Server health should be green after this configuration is complete and you should be able to see monitoring tab in the queues.
Use a program in eclipse to send message to queueu and see the count of messages in monitoring tab of queue.
Use this link bottom line code , to find out how to send messages to a queue via code.
P.S File store statistics should be available if the JMS servers are up and running fine.
Create jms bridge in weblogic
To create a bridge between two weblogics W1 and W2 you will have to create two destinations.
Bridge source is going to be your source queue on W1 and destination is going to be the target queue on the W2 server.
Source destination looks like this
Q3 is my local queueu in W1.
Now create bridge destination
Now use this code to send message to the q3 on W1 and it should forward to queue4 on W2
////////////////////
import javax.jms.*;
import javax.naming.*;
public class Consumer {
/**
* Main method.
*
* @param args the destination used by the example
* and, optionally, the number of
* messages to send
*/
static java.util.Hashtable env;
public static void main(String[] args) {
final int NUM_MSGS;
/* if ((args.length < 1) || (args.length > 2)) {
System.out.println("Program takes one or two arguments: " +
"<dest_name> [<number-of-messages>]");
System.exit(1);
}*/
// String destName = new String(args[0]);
/*
* Create a JNDI API InitialContext object if none exists
* yet.
*/
Context jndiContext = null;
try {
env = new java.util.Hashtable();
env.put("java.naming.factory.initial", "weblogic.jndi.WLInitialContextFactory");
System.out.println("-- ok 1 -- ");
/*env.put("java.naming.provider.url", "t3://10.105.98.8:7001");
env.put("java.naming.security.principal", "weblogic");
env.put("java.naming.security.credentials", "weblogic");
*/
env.put("java.naming.provider.url", "t3://localhost:7004");
env.put("java.naming.security.principal", "weblogic");
env.put("java.naming.security.credentials", "weblogic@123");
System.out.println("-- ok 2 -- ");
jndiContext = new InitialContext(env);
// jndiContext.lookup("weblogic.jndi.WLInitialContextFactory");
System.out.println(" jndiContext - " + jndiContext);
} catch (NamingException e) {
System.out.println("Could not create JNDI API context: " +
e.toString());
System.exit(1);
}
/*
* Look up connection factory and destination. If either
* does not exist, exit. If you look up a
* TopicConnectionFactory or a QueueConnectionFactory,
* program behavior is the same.
*/
ConnectionFactory connectionFactory = null;
Destination dest = null;
try {
System.out.println(" -- ok 3 -- ");
// System.out.println("Lookup done---------- " + obj);
Context ctx = new InitialContext(env);
//ctx.lookup("CreateVASErrorQ20");
QueueConnectionFactory factory = (QueueConnectionFactory) ctx.lookup("ConnectionFactory1"); //Connection Factory JNDI
QueueConnection con = factory.createQueueConnection();
QueueSession session = con.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
Queue queue = (Queue) ctx.lookup("Queue1"); //Find the Queue
QueueSender sender = session.createSender(queue); //Instantiating the message sender
TextMessage message = session.createTextMessage("Message sent again");
con.start();
sender.send(message);
System.out.println(" -- Message sent -- ");
// Now receiving the message:
int count = 0 ;
QueueReceiver receiver = session.createReceiver(queue);
while(true) {
TextMessage receivedMessage = (TextMessage)receiver.receiveNoWait();
if(receivedMessage != null) {
if(receivedMessage instanceof javax.jms.TextMessage) {
System.out.println("Received message = " + receivedMessage);
System.out.println(" -- Message Received -- "+receivedMessage.getJMSMessageID());
count++;
} /*else {
break;
}*/
}
}
// System.out.println(" -- Message Received -- "+receivedMessage.getJMSMessageID());
/*connectionFactory = (ConnectionFactory) jndiContext.lookup("PrepaidActValDS");
dest = (Destination) jndiContext.lookup(destName);
System.out.println( "dest "+ dest);*/
} catch (Exception e) {
System.out.println("JNDI API lookup failed: " + e.toString());
e.printStackTrace();
//System.exit(1);
}
/*
* Create connection.
* Create session from connection; false means session is
* not transacted.
* Create producer and text message.
* Send messages, varying text slightly.
* Send end-of-messages message.
* Finally, close connection.
*/
// Connection connection = null;
// MessageProducer producer = null;
// try {
// connection = connectionFactory.createConnection();
//
// Session session =
// connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
// producer = session.createProducer(dest);
//
// TextMessage message = session.createTextMessage();
//
// for (int i = 0; i < NUM_MSGS; i++) {
// message.setText("This is message " + (i + 1));
// System.out.println("Sending message: " + message.getText());
// producer.send(message);
// }
//
// /*
// * Send a non-text control message indicating end of
// * messages.
// */
// producer.send(session.createMessage());
// } catch (JMSException e) {
// System.out.println("Exception occurred: " + e.toString());
// } finally {
// if (connection != null) {
// try {
// connection.close();
// } catch (JMSException e) {
// }
// }
// }
}
}
Wednesday, April 20, 2016
Tuesday, April 19, 2016
set m2_repo as maven variable in eclipse
set M2_REPO –> .m2/repository
rebuild
Thursday, April 7, 2016
mysql login via command line
mysql.exe -u root -proot dbname -h localhost
taking dump
mysqldump.exe -uroot -proot dbname >dbname.sql
Thursday, March 31, 2016
PXE-M0F: Exiting Intel PXE ROM. Operating System Not Found"
While trying to add machines i was not able to boot the machines from the vmimages provided in the Datastore.
I tried multiple options like
- F2—>change boot order –>CD rom first
- Changed guest os to Windows/linux/solaris etc.
- Tried to change boot options by delaying it to 10000 ms
- Tried deleting and adding new machines and also tried to add local iso.
Finally i found out that the iso which were provided by vmware were corrupted and one of my damnsmalllinux.iso worked perfectly.
Please check your iso and try again.
Tuesday, March 22, 2016
“Too many open files “ error on weblogic or any other server
This usually happens because of lack of open file handles which we call as file descriptors.
On unix based systems current limits can be checked with ulimit –a
its defaulted to 1024.
For weblogic or servers you will have to change the default limit.
check current limits in /etc/security/limits.conf
Add the limit at user/group level here or set the limit in setDomainEnv.sh if your user has sudo or permission to change this parameter.
Adding ulimit –S –n XXX/ulimit –H –n XXX at setDomainEnv.sh or CommonEnv.sh did not reflect the changes for me.
Its a good idea to set it in limits.conf file and restart all the services for that user.
Its advisable as per oracle docs to set hard limit to 65k.
Friday, March 18, 2016
Not able to ssh to a host any more
If you were able to login to a remote host and now its failing with errors like “ Remote host identification has changed”
“It is possible that someone is doing something nasty “
Just try to delete the known_hosts file in the
/home/%Userprofile%//.ssh/known_hosts
Make a backup by cp /path/filename /path/filename_backup before deleting
After deleting the known_hosts file you will be able to login
Thursday, March 17, 2016
How to transfer data across virtual machines(virtual box/vmware) across different networks ?
To transfer data across multiple virtual machine lying in different netwoks and on different systems,
you can use the port forwarding feature in virtual machines.
click on port forwarding and set the incoming port of host and target port of the virtual machine.
here you can see if a remote virtual machine v1 hosted on h1 wants to ssh to virtual machine v2 hosted on host h2
so it can do ssh root@h2 -p 49837 and it will connect to V2 hosted on H2.
// easy way out –you can set incoming and outgoing both port as 22 if it is free and available to you.
I came across this problem specifically for moving docker images from one vm to another vm on different systems becuase for boot2docker image , the virtual box guest addition doesn’t work
Instead if you try to put guest addition on virtual box which is running docker, it stops booting and show a black screen.
// had to do another fix for it – revmove guestaddition iso from storage – in vm settings
Docker Basics -101
Docker is same like a virtual machine except it doesn’t have its on kernel and its container based.
Docker images can be built from docker files and deployed on multiple containers in same virtual machine.
Docker is more application oriented and doesn’t required seperate OS resources.
For windows docker can be installed by the docker toolkit which is a handle to docker virtual machine (default) which hots docker daemon.
$docker // will give you all the options available to docker
even if you are on windows you can directly open the virtual box and login to the vm and execute your commands directly instead of using docker client.
To list images do
$docker images // –q for just ids/numerics
To save an image
docker save –o /path/imagename.tar image-name ( i found repository name working here, the first column on list images screen)
here codenvy/che is the repository name
To move images between different systems , use scp
scp image.tar root@ip:location //
now go to target system and do
$docker load < image.tar
Friday, March 11, 2016
Grep doesn't work in solars
find . | xargs grep "keyworld" "path"
Continuous netstat also doesn't work on that so use script tag instead.
$ script filename.txt // will start recording
do netstat or whatever
$exit
and your terminal output is recorded on the file , kool feature.
Tuesday, March 8, 2016
use nmap in kali linux
once results come use xsltproc to convert xml to html
xsltproc source dest
Sunday, March 6, 2016
how to use github
Create a folder where you want to have your local repository.
$ git init // will create a .git file
$git config --global user.name "username"
$git config --global user.email "xxx@gmail.com"
$git init
$git add README.md
$git commit -m "first commit"
$git remote add origin https://github.com/username/gold.git
git push -u origin master
Monday, February 29, 2016
Friday, February 26, 2016
Find website load times with simple java code
import java.io.*;
public class TimerTest
{
public static final Double NANO_TO_MILLIS = 1000000.0;
public static void main(String[] args) throws MalformedURLException, IOException
{
int i =0;
while(i<5){
// start timer
long nanoStart = System.nanoTime();
long milliStart = System.currentTimeMillis();
// do work to be timed
doWork();
// stop timer
long nanoEnd = System.nanoTime();
long milliEnd = System.currentTimeMillis();
// report response times
long nanoTime = nanoEnd - nanoStart;
long milliTime = milliEnd - milliStart;
reportResponseTimes(nanoTime, milliTime);
i++;
}
}
private static void reportResponseTimes(long nanoTime, long milliTime)
{
// convert nanoseconds to milliseconds and display both times with three digits of precision (microsecond)
String nanoFormatted = String.format("%,.3f", nanoTime / NANO_TO_MILLIS);
String milliFormatted = String.format("%,.3f", milliTime / 1.0 );
//System.out.println("Milliseconds using nanoTime(): " + nanoFormatted);
System.out.println("Milliseconds using currentTimeMillis: " + milliFormatted);
}
private static void doWork() throws MalformedURLException, IOException
{
URL url = new URL("http://google.com");
URLConnection conn = url.openConnection();
BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
System.out.println("Checking "+url.toString());
while (in.readLine() != null) {
//System.out.println(in.readLine());
}
in.close();
}
}
Monday, February 22, 2016
Grep linux
grep -rnw './path' -e 'pattern'
to search in current file
grep "string" filename
to find cpu
cat /proc/cpuinfo
To find memory
cat /proc/meminfo
Saturday, February 13, 2016
codeigniter .htaccess file working
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?/$1 [L]
Mysql command line import
go to /bin/mysql.exe -u username -ppassword dbname < "c:\user\import.sql"
Wednesday, February 10, 2016
Monitor Weblogic via JMX code
Go to last and find out JAVA_OPTIONS
Append the JMX parameters to the options
set JAVA_OPTIONS=%JAVA_OPTIONS% -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8888 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false
Restart the server run this java code , this will monitor memory,threads and deadlocks on your weblogic server and add it to an alert file. You can add SMTP details to get an email in case the thresh hold is reached.
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.lang.management.ManagementFactory;
import java.lang.management.ThreadMXBean;
import java.net.MalformedURLException;
import java.util.Date;
import java.util.HashMap;
import javax.management.AttributeNotFoundException;
import javax.management.InstanceNotFoundException;
import javax.management.MBeanException;
import javax.management.MalformedObjectNameException;
import javax.management.ObjectName;
import javax.management.ReflectionException;
import javax.management.openmbean.CompositeData;
import javax.management.remote.*;
/**
*
* @author AB839805
*/
public class JMXCron {
/**
* @param args the command line arguments
*/
public static void main(String[] args) throws IOException, MBeanException, AttributeNotFoundException, InstanceNotFoundException, ReflectionException, MalformedObjectNameException {
BufferedWriter writer =null;
String host ="your server ip",threadState = "";
int port = 8888;
HashMap map = new HashMap();
boolean deadLockFound = false;
String[] credentials = new String[2];
credentials[0] = "username";
credentials[1] = "password";
map.put("jmx.remote.credentials", credentials);
JMXConnector c = JMXConnectorFactory.newJMXConnector(createConnectionURL(host, port), map);
c.connect();
ObjectName runtimeService = new ObjectName("com.bea:Name=RuntimeService,Type=weblogic.management.runtime.RuntimeServiceMBean");
//ObjectName sr = (ObjectName) c.getMBeanServerConnection().getAttribute(runtimeService,"ServerRuntime");
//ThreadPoolRuntimeMBean threadPoolRuntimeMBean = runtimeService.getThreadPoolRuntime();
//ObjectName[] managedServers = (ObjectName[])c.getMBeanServerConnection().getAttribute(runtimeService, "ServerRuntimes");
//String threadCount = (String) c.getMBeanServerConnection().getAttribute(
// new ObjectName(ManagementFactory.THREAD_MXBEAN_NAME), "ThreadCount").toString();
ThreadMXBean thMxB = ManagementFactory.getThreadMXBean();
long [] runningThreads = thMxB.getAllThreadIds();
for( int i =0;i<runningThreads.length;i++){
threadState += thMxB.getThreadInfo(runningThreads[i]).getThreadState().toString()+"/";
}
System.out.println("thread state "+threadState);
if(thMxB.findDeadlockedThreads()!=null)
deadLockFound = true;
System.out.println("thread count"+thMxB.getThreadCount());
//weblogic.health.HealthState tpHealthState = (weblogic.health.HealthState) connection.getAttribute(serverTP, "HealthState");
Object oM = c.getMBeanServerConnection().getAttribute(new ObjectName("java.lang:type=Memory"), "HeapMemoryUsage");
Object oT = c.getMBeanServerConnection().getAttribute(new ObjectName("java.lang:type=Threading"), "ThreadCount");
CompositeData cd = (CompositeData) oM;
Long used = (Long) cd.get("used");
Long max = (Long) cd.get("max");
Long percentage = ((used * 100) / max);
System.out.println("Percentage of memory used "+percentage + "%" );
if(percentage>10 ){
//writer = new PrintWriter("d:\\alert.log", "UTF-8");
writer = new BufferedWriter(new FileWriter("d:\\alert.log ", true));
writer.newLine();
writer.append("Percentage of memory used "+percentage + "% "+(new Date())+"\n Thread Count "+runningThreads.length+" Thread State "+threadState);
writer.close();
}
if(deadLockFound ){
//writer = new PrintWriter("d:\\alert.log", "UTF-8");
writer = new BufferedWriter(new FileWriter("d:\\alert.log", true));
writer.newLine();
writer.append("Dead Lock Found at "+(new Date()));
writer.close();
}
}
private static JMXServiceURL createConnectionURL(String host, int port) throws MalformedURLException
{
return new JMXServiceURL("rmi", "", 0, "/jndi/rmi://" + host + ":" + port + "/jmxrmi");
}
}
Thursday, February 4, 2016
Run TestNg with selenium for load testing and generate Reports from ATU framework
import java.util.Date;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.htmlunit.HtmlUnitDriver;
import org.testng.Assert;
import org.testng.ITestResult;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.Listeners;
import org.testng.annotations.Test;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.AfterTest;
import atu.testng.reports.ATUReports;
import atu.testng.reports.listeners.ATUReportsListener;
import atu.testng.reports.listeners.ConfigurationListener;
import atu.testng.reports.listeners.MethodListener;
import atu.testng.reports.logging.LogAs;
import atu.testng.reports.utils.Directory;
import atu.testng.reports.utils.Platform;
@Listeners({ ATUReportsListener.class, ConfigurationListener.class,
MethodListener.class })
public class Scale {
public Scale(){
System.setProperty("atu.reporter.config", "E:\\atu.properties");
}
// constructor for report parameters
public Scale(String reportName ){
ATUReports.indexPageDescription = reportName;
}
@Test(invocationCount = 10 ,threadPoolSize =10)
public void loadTestThisWebsite() {
HtmlUnitDriver unitDriver = new HtmlUnitDriver();
unitDriver.setJavascriptEnabled(true);
unitDriver.get("http://localhost/PT");
WebElement button = unitDriver.findElement(By.name("submit"));
button.click();
String title = (String) unitDriver.executeScript("return document.title");
System.out.println("Tittle is " + title);
if("Welcome".equals(unitDriver.getTitle()))
{
ATUReports.add("Load time", "PASS", true);
// Thread.sleep(2000);
String currentDate = (new Date()).toString();
ATUReports.currentRunDescription= currentDate;
System.out.println("Report Name "+Directory.RUNDir);
}
else
Assert.fail("I have thrown Exception");
unitDriver.quit();
}
/*
@AfterMethod
public void getRunTime(ITestResult tr) {
long time = tr.getEndMillis() - tr.getStartMillis();
System.out.println("Time taken for the request "+ time+" millisec");
}
*/
}