EFFECTIVE PERFORMANCE TESTING OF DOCUMENTUM APPLICATIONS

Document Sample
EFFECTIVE PERFORMANCE TESTING OF DOCUMENTUM APPLICATIONS Powered By Docstoc
					EFFECTIVE PERFORMANCE TESTING OF DOCUMENTUM APPLICATIONS

By Schering-Plough Performance Team Performance Testing CoE

Effective Performance Testing Of Documentum Applications

Table of Contents
1.0 Documentum ................................................................................................... 3
1.1 1.2 1.3 1.4 Why Documentum ............................................................................................................. 3 Components and Architecture ......................................................................................... 4 Solutions to implement Documentum ............................................................................. 4 Workflows in Documentum .............................................................................................. 5

2.0

Performance Testing On Documentum ......................................................... 6
2.1 Introduction ........................................................................................................................ 6 2.1.1 Applet Invocation Challenge .................................................................................... 7 2.2 2.3 2.4 2.5 The Solution to Applet Challenge .................................................................................... 7 Unified Client Framework (UCF): ..................................................................................... 7 Impact of UCF Client Invoker Tool in Load Runner: ...................................................... 8 Setup in Load Generator Machine ................................................................................... 9 2.5.1 Customized Function for Documentum with LR..................................................... 10

3.0

Workflows ...................................................................................................... 10
3.1 Export Operation ............................................................................................................. 10 3.1.1 Changing the UCF session IDs .............................................................................. 11 Step 1:Search .................................................................................................................... 11 Step 2: Get a UID .............................................................................................................. 11 Step 3: Replace hard coded UIDs ..................................................................................... 11 3.1.2 The Applet .............................................................................................................. 11 3.2 Import Operation ............................................................................................................. 12 Step 1: give full path of the file to be imported .................................................................. 12 Step 2: find the UID ........................................................................................................... 12 3.3 Check-In, Check-Out and Rendition Operations .......................................................... 13 3.3.1 Finding the UID ...................................................................................................... 13

4.0

Trouble Shooting........................................................................................... 13

Appendix .................................................................... Error! Bookmark not defined.14

White Paper

Page 2 of 14

Effective Performance Testing Of Documentum Applications

Abstract
Documentum, a content management software which ensures enterprise- wide security and has access controls with consistent categorization and end-to-end business process management capabilities. Documentum is being increasingly used by companies because of its features and its ease-of-use. Documentum is a web based application but scripting in LoadRunner cannot be done the conventional way of using Web (HTTP/HTML) protocol. Invocation of applets and JVM requirement makes scripting difficult in LoadRunner. LoadRunner and EMC came up with a solution to tackle the problem created by applet invocations and JVM initialization and they introduced WebTop Development kit. Documentum applications are being used by a lot of clients and the requirements for performance testing of those applications are increasing. This whitepaper gives a detailed step by step explanation on the methodology of scripting that would be helpful in scripting Documentum applications.

1.0 Documentum
Documentum is a content management software that provides management of document content and attributes. Documentum enables organizations to manage content systematically, ensuring enterprise- wide security and access controls, consistent categorization, and end-to-end business process management capabilities. Ideally, content should be stored adjacent to where people are working, supported by a smart infrastructure that can replicate and cache files across the network. Documentum product is a three-tier, client-server system built on top of a relational database.

1.1

Why Documentum

Global enterprises expect to securely manage all their content at the speed of work. Although content access and storage are linked through distributed network environment, the physical location of content server dominates the content access as time consuming one. The bandwidth, Latency for file transfers vary widely across locations .To Mitigate N/w Latency, the concept called Documentum was established.

White Paper

Page 3 of 14

Effective Performance Testing Of Documentum Applications
Documentum is used by hundreds of companies around the world in every industry from financial and healthcare/pharmaceutical to manufacturing and oil/petrochemical. Documentum is used by companies to support web related content.

1.2

Components and Architecture

Documentum components comprise the following:   Content Server - Manage access to the metadata stored in the relational database and the Content files, usually stored in the file system Webtop/Wdk Server - J2EE-based web application framework

DOCUMENTUM ARCHITECTURE FRAMEWORK

1.3

Solutions to implement Documentum
 Documentum Replication Services - Maintain separate content server & database at each locations and then replicate content at frequent intervals from master database Documentum Accelerated Content Services - Maintains a single database for metadata, which runs at the principal data center, and a primary Content Server and then replicates the content to remote at periodic intervals



White Paper

Page 4 of 14

Effective Performance Testing Of Documentum Applications
 Documentum Branch Office Caching Services - Extended version of the two mentioned above. The content is dynamically cached and stored on demand, on a local file system instead of replication.

The WebTop multi-user test script kit is a sample suite of Load Runner Scripts designed to simulate users performing actions against out–of–box installation and identifies some solutions to break the challenge. Here the backend is known as WDK (Web Development Kit) and the front end is called WebTop which uses the UI components of WDK.

1.4

Workflows in Documentum

The basic/commonly used features in Documentum are View Content, Import Documents into the Docbase, Export documents from the doc base, Check-IN documents, Check –OUT documents, Create/ view Renditions, Create a new document and Edit an existing document. Check-Out: When a user wants to edit a file, he/she must “check out” the file through the client interface. The system then “locks” the file so that other users cannot edit it. The lock is released once the document is checked in. This is a critical function of a Content Management System in that it helps prevent users from trying to work on a file at the same time or proliferating multiple copies and versions of a file. Check-In: When the user is done editing the file, the user is prompted to “check in” the file. If the object is one that already existed, checking it in can overwrite what is in the docbase or create a new version. Usually the person who checked the object out is the only person who can check it in. Import: To create a new document and incorporate the contents of a file external to the docbase. Importing does not destroy the external file. The file still exists independent of Documentum. Export: To copy a content file in the docbase to an external file. Exporting a file does not destroy the file in the docbase. Renditions: Renditions are copies of documents that are in a different file format from the original document. Sometimes a user might want to view a document that is stored in an unrecognizable format that cannot be viewed or edited. In such cases, the user can access the document by using a rendition. A rendition seems to mean a PDF (Adobe portable document format) version of a proprietary-format file, such as a Microsoft Word document or Adobe Photoshop image. Then, someone else can view

White Paper

Page 5 of 14

Effective Performance Testing Of Documentum Applications
the PDF rendition (using the free Adobe acrobat Reader) without having to own or run a specialized or expensive software application such as Photoshop or MS Word. A desired watermark can also be added in the rendition. A Docbase is a Documentum repository that stores document content, attributes, relationships, versions, renditions, formats, workflow, and security.

2.0 Performance Testing On Documentum
Documentum is a web based application but scripting in LoadRunner cannot be done the conventional way of using Web (HTTP/HTML) protocol. Invocation of applets and JVM startup for each user requirement makes scripting difficult in LoadRunner. The only solution for this problem was brought about by LoadRunner and EMC and they introduced WebTop Development kit.

2.1

Introduction

The following portion of the document discusses on the First Doc application hosted on the webtop 5.3 platform. Scripting against this application can be carried out using the Web (HTTP/HTML) protocol. Correlation plays a vital role in scripting. Auto correlation is preferable than manual correlation in Documentum applications, considering the number of correlations that are required by default and the accuracy of the Auto-correlation feature. To perform auto correlation a file called Documentum.cor or EMC_docuementum.cor (which defines basic correlation rules) needs to be imported. During auto correlation all the Request IDs, Reload IDs, Serial Numbers & UCF Request Keys get correlated. Some data like Session ID, UID (A Unique ID which is required when there is a file transfer between the Client and the Content Server) have to be captured manually. An applet is invoked at the client side when a file within the docbase is accessed and while files are imported into a docbase. Applet/UCF client being client side Java application requires a JVM for each user and it cannot be run in Web/Http virtual user of Load Runner.

White Paper

Page 6 of 14

Effective Performance Testing Of Documentum Applications
2.1.1 Applet Invocation Challenge
The invocation of the Applet requires a JVM startup for each user. In a multi-user testing environment, starting up JVM for each user is not practical. This prompted the creation of a invoker tool to help with multi-user testing.

2.2

The Solution to Applet Challenge

To ease the load on the test machine (load generators), a multi threaded server is created which uses one JVM. The WebTop provides support for this tool by allowing the content location to be coded in the web request. So, instead of the Applet interacting with a user, the test script is modified (after the test is recorded) to tell the WebTop the location of the document to be transferred.

WEBTOP CONTENT TRANSFER

2.3

Unified Client Framework (UCF):

Whenever a user requests a file access, a new applet gets invoked through the browser and run in Client side. For each file operations, UCF client establishes a UCF session with UCF server with unique session id with the name UID. This id is sent to server in subsequent http requests. These HTTP requests and responses are recorded in Load Runner as binary (Hexadecimal) data, which cannot be interpreted for handling dynamic value of UID. White Paper Page 7 of 14

Effective Performance Testing Of Documentum Applications

CONTENT TRANSFER USING INVOKER

2.4

Impact of UCF Client Invoker Tool in Load Runner:

Documentum has suggested a solution to customize the scripts for file access activities. It has provided UCF Client Invoker tool, which is composed of a Java program and a C++ program compiled into a DLL. The DLL is loaded by the LoadRunner script. The DLL provides a single function called getUID. The getUID function passes the jsessionid which returns a UCF session id (UID). UIDs are integer numbers starting with 0. If -1 is returned it indicates an error. When the LoadRunner script calls the getUID, the DLL makes a connection to the Java process (which is a multi-threaded server). The Java process makes a connection to the UCF server and gets a UCF session which passes to the DLL which in turn passes to the script. Hence the DLL is a bridge between the LoadRunner and JVM which talks via socket using port 7338. The LoadRunner script embeds the UID into its next WebTop request that requires a UID. Proper Configuration leads UCF Client Invoker to simulate the client-side communication during content transfer, and also in creating the files and folders during various file access functionalities in order to properly execute the scripts from VuGen or through a multi-user Load Runner scenario.

White Paper

Page 8 of 14

Effective Performance Testing Of Documentum Applications
2.5 Setup in Load Generator Machine

To implement the Documentum approach the UCF Client Invoker is used while playback for multi-user test scripts through Load Runner. The following things are required:

1. Ensure at least one manual content transfer has been done to the load generator machine. It will download the UCF client binaries such as UCFWin32JNI.dll, ucfclient-impl.jar, ucf-client-api.jar into the folder
C:\Documents and Settings\<windowsusername>\Documentum\ucf\<hostname>\shared\bin

2. The “PATH” Environment Variable needs to be set to UCF binary folder. UCF Client invoker will fail if path is not set properly and also check for java installation& its path settings.

3. UCFInvokerTool.zip has to extracted and all “.renamed” extensions from filenames must be removed. 4. All the paths in the startInvoker.bat file has to be updated to match the working environment 5. The path settings in ucf.client.config.xml file have to be checked. 6. The path to the DLL has to be updated in the vuser_init section of the sample scripts. 7. The invoker can be started using “startInvoker.bat”.

White Paper

Page 9 of 14

Effective Performance Testing Of Documentum Applications
2.5.1 Customized Function for Documentum with LR

The getUID function passes the jsessionid which returns a UCF session id (UID). If the UCF Client Invoker is not running, the setUID script will return -1 and fail the user script.

3.0 Workflows
3.1 Export Operation
While browsing a folder in WebTop which has 3 files, their relative index will be 0, 1 and 2. On exporting the second document, the index in the recorded script will be StreamlineView_0_StreamlineView_actionlst_1. To cycle through a large number of documents, the value is parameterized .Consider an example where there are a bunch of files that needs to be picked at random, a parameter named FileIndex is used as an index. Here is a how the request will look after editing. Look for {FileIndex}.

White Paper

Page 10 of 14

Effective Performance Testing Of Documentum Applications

3.1.1 Changing the UCF session IDs
Step 1:Search The recorded script is searched for occurrences of 0%3B. The actual 0%3B is far to the right of the URL in below request (not shown in pic). The number 0 is the UID. If the App Server is not restarted prior to recording, then 0 may not be the number required. On such cases you need to search for %3B and look for the number preceding it.

Step 2: Get a UID The getUID function has to be called and must be placed before the above request.

The url of the above call is: The sessionid is the saved value of parameter {jsess} . The paramname is just a comment and can have any value. The “uid” returned by getUID has to be converted to a parameter via lr_save_string; say to UID0. The setUID function from Utils.c can be used instead of coding the getUID Step 3: Replace hard coded UIDs All occurrences of 0%3B have to be replaced with {UID0}%3B. Steps 1 through 3 have to be repeated for 1%3B.

3.1.2 The Applet
One needs to prevent the Applet from interacting with the user. To do this, find and comment out all requests with wdk5-appletresultsink string (on 5.3 SP2 one should see two occurrences). White Paper Page 11 of 14

Effective Performance Testing Of Documentum Applications
A request like the example below has to be created and has to be placed right after the second occurrence of wdk5-appletresultsink. WebTop will export the file to the ExportPath which is the actual directory path where the file will reside finally.

3.2

Import Operation

Everything that applies to export also applies to import. The differences are – Step 1: give full path of the file to be imported The ImportFile in below request is the full path of the file to be imported.

Step 2: find the UID One of the UIDs is hard to detect (unlike the ones which have %3B). The fileselection.jsp request has to be searched for “__dmfUcfClientId”. The value for this should reflect the UID. Look for {UID1} in below snippet.

White Paper

Page 12 of 14

Effective Performance Testing Of Documentum Applications

3.3

Check-In, Check-Out and Rendition Operations

3.3.1 Finding the UID
This is similar to the import functionality.

4.0 Trouble Shooting
1. “An error has occurred. After closing the pop up error message window click the Refresh or Reload button in your browser to continue” This occurs due to correlation problems. All possibilities of correlation values have to be checked.

2. “History Released The requested page is no longer in the page history trial. Please navigate to your location” Failure to capture Request ID /capturing the previous Request ID sends a wrong value to the next request.

3. “Documentum.ucf.common.transport.transporterror “ This error occurs in Invoker.bat file, check all Path settings and parameters in the set UID function which may capture the wrong UID value.

White Paper

Page 13 of 14

Effective Performance Testing Of Documentum Applications

References
http://codesearch.developer.emc.com/info.aspx?c=ProjectInfo&pid=8HYZ4LRH 5P9WYSRN4U1KN7Q7GF http://www.componentmonster.com/doogle/

White Paper

Page 14 of 14