blob: edf04917b3eabd912e5dcb59755639a0c905ec04 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!--
Copyright (c) 2012, 2020 Oracle and/or its affiliates. All rights reserved.
This program and the accompanying materials are made available under the
terms of the Eclipse Public License v. 2.0, which is available at
http://www.eclipse.org/legal/epl-2.0.
This Source Code may also be made available under the following Secondary
Licenses when the conditions for such availability set forth in the
Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
version 2 with the GNU Classpath Exception, which is available at
https://www.gnu.org/software/classpath/license.html.
SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
-->
<HTML>
<HEAD>
<META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=utf-8">
<TITLE>QuickLook Instructions</TITLE>
<META NAME="GENERATOR" CONTENT="OpenOffice.org 3.2 (Linux)">
<META NAME="AUTHOR" CONTENT="d s">
<META NAME="CREATED" CONTENT="20080319;10465100">
<META NAME="CHANGED" CONTENT="20101026;23422600">
<STYLE TYPE="text/css">
<!--
@page { margin: 0.79in }
P { margin-bottom: 0.08in }
-->
</STYLE>
</HEAD>
<BODY LANG="en-US" DIR="LTR">
<H1 STYLE="margin-left: 0.83in"><FONT FACE="Trebuchet MS, sans-serif"><FONT SIZE=5><B>Instructions
for QuickLook tests</B></FONT></FONT></H1>
<P>Last updated at: Oct 26, 2010<BR>By: Ming.Zhang@sun.com</P>
<P ALIGN=LEFT STYLE="margin-bottom: 0in"><FONT SIZE=5><B>I. Running
QuickLook tests:</B></FONT></P>
<P><BR>The QuickLook (QL) implements three profiles (web profile,
dev_debug profile and glassfish profile) to run QL in 3 different
scenarios: testing web distribution, testing web distribution
in debug mode, testing glassfish distribution.<BR><BR>First,
install/unzip the glassfish bundle to a directory. Let's call the
full path to glassfish directory as {Installation Dir}.&nbsp;
Please do not install glassfish under tests/quicklook since the
&quot;clean&quot; target of QL will clean up all war files under
quicklook directory. Change directory to <B>appserver/tests/quicklook</B>.
All italic text below indicate a command. <BR><BR>QL will work with
the default admin password &quot;NULL&quot; (empty). Please clean up
the previous ~/.asadminpass if it contains other password.<BR><BR><B>1.
To Run QL in Glassfish Profile:</B><BR><BR>The glassfish
full profile distribution includes extra modules such as EJB, jts and corba other
than the modules in web distribution. The glassfish full profile is the
<B>default</B> profile of QL. <BR><B>New:</B> Added cluster testing
support for QL glassfish.
</P>
<UL>
<LI><P STYLE="margin-bottom: 0in">For <B>glassfish</B> bundle,
{Installation Dir} is equivalent to /test/glassfish in the
example above.
</P>
<UL>
<LI><P STYLE="margin-bottom: 0in"><I>mvn -Dglassfish.home={Installation Dir} test | tee run.log </I>
</P>
</UL>
<LI><P STYLE="margin-bottom: 0in">For <B>glassfish-ips.zip</B>
bundle, the same command can be used but {Installation Dir}
is equivelent to in /test/glassfish7/glassfish:
</P>
<LI><P>To run cluster tests only, you can go to <B>tests/quicklook</B>
and do: <I>ant -Dglassfish.home={Installation Dir} all_cluster</I></P>
</UL>
<P STYLE="margin-bottom: 0in">The test results will be in test-output
directory.</P>
<P STYLE="margin-bottom: 0in"><A NAME="__DdeLink__0_178707749"></A><B>2.
To Run QL in Web Profile:</B><BR>The web profile (-P test_wd) should
be used for testing the web distribution.</P>
<UL>
<LI><P><I>mvn -Dglassfish.home={Installation Dir} <B>-P test_wd
test</B> | tee run.log </I>
</P>
</UL>
<P STYLE="margin-bottom: 0in"><BR>
</P>
<P STYLE="margin-bottom: 0in"><B>3. To Run QL in Embedded
Profile:</B><BR>The web profile (-P test_em) should be used for
testing the embedded mode.</P>
<UL>
<LI><P><I>mvn -Dglassfish.home={Installation Dir} <B>-P test_em
test</B> | tee run.log </I>
</P>
</UL>
<P STYLE="margin-bottom: 0in"><BR>
</P>
<P STYLE="margin-bottom: 0in"><B>4. To Run QL in Glassfish</B>
<B>Profile with Security Manager Turned On:</B><BR><BR>The web
profile (-P test_wd_security) should be used for testing the web
distribution.</P>
<UL>
<LI><P><I>mvn -Dglassfish.home={Installation Dir} <B>-P
test_gd_security test</B> | tee run.log </I>
</P>
</UL>
<P><B>5. To Run QL in Web Profile with Security Manager Turned
On:</B><BR><BR>The web profile (-P test_wd_security) should be used
for testing the web distribution.</P>
<UL>
<LI><P><I>mvn -Dglassfish.home={Installation Dir} <B>-P
test_wd_security test</B> | tee run.log </I>
</P>
</UL>
<P><B>6. To Run QL in Debug Profile:</B><BR><BR>Usually, user
wants to run QL against a running instance started in debug mode.
The dev_debug profile can be used (-P dev_debug) in this scenario.
</P>
<UL>
<LI><P STYLE="margin-bottom: 0in">Start glassfish in debug mode. For
example: <I>java -jar modules/glassfish.jar</I></P>
<LI><P><I>mvn -Dglassfish.home={Installation Dir} </I><I><B>-Pdev_debug</B></I>
<I>test | tee run.log</I></P>
</UL>
<P>Note: The tests require restart domain (admincli) will be skipped
in this scenario.<BR><BR><B>7. To Run Individual Test Suite from
Directory Level:</B><BR><BR>After the first run with maven from top
level, the dependency jars will be downloaded to local maven
repository. Now it's possible to run individual test suite from
directory level. Change directory to the test directory. For example,
to run quicklook/ejb/slsbnicmt test suite against <B>glassfish</B>
bundle:</P>
<UL>
<UL>
<LI><P STYLE="margin-bottom: 0in"><I>{Installation
Dir}/bin/asadmin start-domain</I></P>
<LI><P STYLE="margin-bottom: 0in"><I>{Installation
Dir}/bin/asadmin start-database</I>
</P>
<LI><P STYLE="margin-bottom: 0in"><I>cd ejb/slsbnicmt</I>
</P>
<LI><P><I>ant -Dglassfish.home={Installation Dir} all</I></P>
</UL>
</UL>
<P><B>8. Using Local Maven Repository in Non-Default
Directory:</B><BR>Section 1 and 2 assume the use of default local
maven repository directory, ${user.home}/.m2/repository. If you local
maven repository is in another directory, say directory
{Local_Maven}, you can use one of the following ways to point to your
specific maven repository:</P>
<UL>
<UL>
<LI><P STYLE="margin-bottom: 0in">Add option on command line:
<I>-Dmaven.repo.local={Local_Maven}</I>
</P>
<LI><P STYLE="margin-bottom: 0in">Set MVN_OPTS environment
varialable: <I>MVN_OPTS=&quot;-D-Xmx512M
-Dmaven.repo.local={Local_Maven}&quot;</I>
</P>
<LI><P>Make a symbolic link from&nbsp;${user.home}/.m2/repository
to the actuall maven repository (will not work on windows
platform).
</P>
</UL>
</UL>
<P STYLE="margin-bottom: 0in"><FONT SIZE=5><B>II. Adding Tests to
QuickLook</B></FONT></P>
<P STYLE="margin-bottom: 0in"><B>1. Requirements for the Adding Tests
to QL:</B></P>
<P STYLE="margin-bottom: 0in">The QL has a wide user community which
includes developer, RE and SQE teams. So the candidate tests need
conform to the following criteria:</P>
<UL>
<LI><P STYLE="margin-bottom: 0in">The tests need to be robust. For
example, the failure of the test in any process (compile, build,
deploy, run ...) should not stop the process of generating the
finial QL report.
</P>
<LI><P STYLE="margin-bottom: 0in">Not depend on internet access. The
tests should be off-line and self-sufficient.
</P>
<LI><P>Performance. The QL tests should be testing the basic
features of the module and fast. Ideally, tests for one&nbsp;module
should be less than 1 minute.
</P>
</UL>
<P>To make sure the tests don't break the RE and SQE processes,
please send the tests to Ming.Zhang@sun.com for reviewing.
</P>
<P STYLE="margin-bottom: 0in"><B>2. Steps of Adding Tests to QL</B></P>
<P STYLE="margin-bottom: 0in">The test framework of QuickLook is
<A HREF="http://testng.org/doc/">TestNG</A>. TestNG allows us to
add/remove tests from harness easily and simplifies the client side
programming. Below is an example of how to add a test suite to QL:</P>
<P STYLE="margin-bottom: 0in">An easy way to do is to copy an
existing test suite, such as quicklook/web/helloworld, to your test
directory. Then add your java or xml files (or your test logics to
the existing files) to the test directory. The build.xml and
properties files are inherited. <BR><BR>For examples on the client
side java testing code, please look at the following files for
reference:</P>
<UL>
<LI><P STYLE="margin-bottom: 0in">Using HttpURLConnection to access
URL and read the content:
quicklook/web/helloworld/src/test/HelloJSPTestNG.java
</P>
<LI><P>Using httpclient as a testing tool:
quicklook/adminconsole/src/test/admin/BaseAdminConsoleTest.java</P>
</UL>
<P STYLE="margin-bottom: 0in">Here is an example of adding a test
suite hellouniverse. All italic text indicate a command. Unix OS is
used for the commands<BR><BR><I>% cp -r helloworld hellouniverse</I><BR><I>%
cd hellouniverse</I><BR><BR>Please make the following changes to
build.properties<BR>&nbsp;<BR>war.file=hellouniverse<BR>testsuite.name=basicweb<BR>testng.test.name=web_jsp_hello_universe<BR>contextroot=hellouniverse<BR><BR>Please
make&nbsp; following changes to build.xml.&nbsp; Change Project
name<BR>&lt;project name=&quot;hello-universe&quot; default=&quot;default&quot;
basedir=&quot;.&quot;&gt;<BR>Under runtest target<BR>&lt;param
name=&quot;contextroot&quot; value=&quot;hellouniverse&quot;/&gt;<BR><BR><I>%
cd metadata</I><BR><BR>Edit web.xml to reflect the new application as
universe .<BR><BR>Edit src/java/SimpleServlet.java, change the name
of servlet to SimpleServlet1, change the package directory from myapp
to hellouniverse and rename to src/java/SimpleServlet1.java<BR><BR>Edit
src/test/HelloJSPTestNG.java, change the classname, testurl&nbsp; and
rename to src/test/HelloUniverseTestNG.java<BR><BR>Now all editing is
complete, lets try to build/deploy/run from leaf level (hellouniverse
level)<BR><BR>Assume we are using web.zip for glassfish. Make sure
javadb and server are started&nbsp; (please use ant 1.6.5)<BR><I>% cd
test/quicklook</I><BR><I>% ant -Dglassfish.home={Installation
Dir} startDerby</I><BR><I>% ant -Dglassfish.home={Installation
Dir} start-server</I><BR><BR>Once the server and derby are started,
go to <BR><I>% cd web/hellouniverse</I><BR><I>% ant&nbsp;
-Dglassfish.home={Installation Dir} build </I><BR><BR>Make sure no
errorss on consol<BR><I>% ant&nbsp; -Dglassfish.home={Installation
Dir} deploy </I><BR><BR>make sure no errors in server.log (while
loading application)<BR><I>% ant&nbsp; -Dglassfish.home={Installation Dir}&nbsp; runtest</I></P>
<P STYLE="margin-bottom: 0in">Now you should see 4 tests run and
passed <BR>Please add &quot;all&quot; target to include &quot;build
deploy runtest&quot;</P>
<P STYLE="margin-bottom: 0in">Since QL runs in multiple profiles, the
test cases need to be defined in the 3 test lists (under
quicklook/testng dir) for the profiles: testng_web_profile.xml for the Web
profile, ttestng_full_profile.xml for Glassfish full profile, testng_debug.xml for
the debug profile. The module level testng.xml is optional but it
provides the conveniences of running the module test locally. User
can also choose to define the class name in the local build.xml. In
this case, there is no need to defined the test cases in local
testng.xml .
</P>
<P STYLE="margin-bottom: 0in">To integrate your tests into quicklook,
please contact <A HREF="ming.zhang@sun.com">Ming Zhang</A> .</P>
<P STYLE="margin-bottom: 0in"><BR>
</P>
</BODY>
</HTML>