-
Notifications
You must be signed in to change notification settings - Fork 146
/
QuickLook_Test_Instructions.html
253 lines (247 loc) · 11.3 KB
/
QuickLook_Test_Instructions.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
<!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: [email protected]</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 [email protected] 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="[email protected]">Ming Zhang</A> .</P>
<P STYLE="margin-bottom: 0in"><BR>
</P>
</BODY>
</HTML>