|  | <!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}.  | 
|  | Please do not install glassfish under tests/quicklook since the | 
|  | "clean" 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 "NULL" (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="-D-Xmx512M | 
|  | -Dmaven.repo.local={Local_Maven}"</I> | 
|  | </P> | 
|  | <LI><P>Make a symbolic link from ${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 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> <BR>war.file=hellouniverse<BR>testsuite.name=basicweb<BR>testng.test.name=web_jsp_hello_universe<BR>contextroot=hellouniverse<BR><BR>Please | 
|  | make  following changes to build.xml.  Change Project | 
|  | name<BR><project name="hello-universe" default="default" | 
|  | basedir="."><BR>Under runtest target<BR><param | 
|  | name="contextroot" value="hellouniverse"/><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  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  (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  | 
|  | -Dglassfish.home={Installation Dir} build </I><BR><BR>Make sure no | 
|  | errorss on consol<BR><I>% ant  -Dglassfish.home={Installation | 
|  | Dir} deploy </I><BR><BR>make sure no errors in server.log (while | 
|  | loading application)<BR><I>% ant  -Dglassfish.home={Installation Dir}  runtest</I></P> | 
|  | <P STYLE="margin-bottom: 0in">Now you should see 4 tests run and | 
|  | passed <BR>Please add "all" target to include "build | 
|  | deploy runtest"</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, testng_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> |