blob: efac26223bee580d88b2c1cd34bdc1d24f29df7c [file] [log] [blame]
# 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
#
# http://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.
-=READ ME=-
This is some clarification on what is included in the jUDDI XLT test suite and how to use it to run load tests.
-Packages in this test suite (under src/)-
When scripting started, the idea was to do all jUDDI manipulations through the Pluto Portal web interface. The packages org.apache.juddi.xlt.action.http, org.apache.juddi.xlt.validators and org.apachejuddi.xlt.test.http represent what was written for this purpose before it was decided that we would access jUDDI with uddi_client during testing instead.
-org.apache.juddi.xlt.action.http: includes actions that access the juddi pluto portal.
-org.apache.juddi.xlt.validators: a few easily reusable validators for the http actions.
-org.apache.juddi.xlt.test.http: single test (so far) that just browses the juddi node through the pluto portal.
All other packages have to do with testing jUDDI by accessing it through SOAP messages with the help of uddi_client.
-org.apache.juddi.xlt.action.SOAP: includes actions that query the juddi node trough an exchange of SOAP massages.
-org.apache.juddi.xlt.test: include general purpose test ( i.e. TViewNode, prints all businesses and services to standard ouput) and test that are not done yet (i.e. TSubscription).
-org.apache.juddi.xlt.test.benchmark: includes test that were used to benchmarck a certain jUDDI setup. Basically measures how many results can be found in a search, how quickly businesses can be published, and the rate at which searches can be executed. All these test should be run on there own.
TRegisterBusinessBM: Publishes a business with a unique name and some services under it,
then prints out the name of the business to file (BusinessNames.txt). Can be used to measure
how fast businesses can be published to a node.
TFindBusinessBM: Finds a business in a preloaded node. This test can read in a file
containing the names of the businesses already published to the node (such as BusinessNames.txt
generated by TRegisterBusiness) and then search for those businesses. Can be used to measure
the maximum rate at which search requests can be returned. When the BusinessNames.txt file is
used the result is always a lone business since the search is for a name and the names are
all unique.
TSearchableLimitBM: Publishes a business and searches for all businesses. This test should be
run with only one user starting with an empty database. It will eventually find how many
business results can be returned for a single search, by incrementally adding a business to the
node and then searching for the wild-card character (%). This does not include returning a SOAP
message with all the businesses (max results returned is set to 5).
TSearchableLimitStaticAuthTokenBM: This does the same thing as TSearchableLimitBM but using
the same AuthToken troughout.
-org.apache.juddi.xlt.test.performance: three self sustaining test (no preload needed)that register, search for and delete businesses. They can be run in parallel and provide a certain amount of load to the node. Although there is only one of these test called TRegisterBusiness, all three test actually publish businesses. The two other test do so to generate a pool of existing businesses that can be searched for or deleted.
TRegisterBusinessPT: This works in the same way TRegisterBusinessBM does but without writing
published business names to a file.
TFindBusinessPT: This test case either publishes a business to the jUDDI node or finds one.
When it publishes, it retains the returned BusinessEntity object from the save_business operation
in a data pool. The data pool is in turn queried for a BusinessEntity when the test searches for
a business. This adds some randomness to the searches and makes it so that the node doesn't have
to be preloaded with data.
TDeleteBusinessPT: This test case either publishes a business to the jUDDI node or deletes one.
When it publishes, it retains the returned BusinessEntity object from the save_business operation
in a data pool. The data pool is in turn queried for a BusinessEntity when the test deletes a business
from the node.
-org.apache.juddi.xlt.flow: Flows are usually a collection of actions that are often run in the same order in a test suite. The RegisterBusinessFlow publishes a business to a node and also publishes services under it. This facilitates the reuse of this sequence of actions.