Alert readers may have noticed that lately we've published a series of Lotus Workplace articles written by the Lotus Engineering Test (LET) team. These articles have covered such topics as running Lotus Workplace with SSL, running Lotus Workplace and other Lotus products on an IBM eServer BladeCenter, integrating Lotus Workplace Messaging with Tivoli Access Manager, and creating MyContacts lists to test Lotus Workplace. The purpose of this series is to describe our experiences setting up realistic testing environments and scenarios for Lotus Workplace, Notes/Domino, and WebSphere Portal-based applications and to share what we've learned with customers in the process of integrating Lotus Workplace pilots into new and existing corporate infrastructures. Along the way, we've also demonstrated the capabilities and value of IBM Rational tools for test and scalability analysis. These articles are intended to help you anticipate the characteristics and requirements of your integrated Lotus Workplace environment before you begin deployment.
This article furthers the theme introduced in the previous article, "Testing Lotus Workplace Messaging and Domino interoperability." In that article, we discussed how we modeled and tested an integrated Domino/Lotus Workplace Messaging configuration. In this article, we explain how we used Rational tools to test a more sophisticated system that included Lotus Workplace, Notes/Domino, WebSphere Portal, DB2, and a number of other IBM and Lotus products. We begin by describing our integrated environment, which simulated an actual customer support center. We then discuss how we used Rational Robot GUI and Rational Robot VU to perform our testing, and we present a detailed look at the code of a GUI script. We also talk briefly about Rational XDE Tester and how we plan to use it in future testing.
The target audience for this article includes experienced administrators with some knowledge of Lotus Workplace and Domino, and (ideally) familiarity with software test tools, such as Rational Suite. Site planners and application developers should also find this article useful.
Creating the Lotus Workplace/Domino test scenario
As mentioned in previous articles, the LET Solutions Test team specializes in pre-release product testing through a technique called scenario testing. Scenario testing involves running an actual application within a test environment set up to simulate as closely as possible user activity within a real corporate enterprise. This allows us to serve as the product's first customer, encountering and addressing situations and issues before our users do.
For release 1.1 of the Lotus Workplace products, our team constructed a model customer support application to simulate and test an integrated Lotus Workplace/Domino configuration. To do this, we created a complex integrated applications environment, based on an actual customer support center that included five major components:
- Personal communication
- Personal collaboration
- Technical information/research
- Systems and test
- e-Learning
This customer support environment is illustrated in Figure 1:
Figure 1. Simulated customer support environment

This application allowed us to test numerous integration points between the Lotus Workplace products and Domino.
Our integrated environment required a number of application servers, products, and application configurations. This was due to the fact that the support center we modeled has a large investment in Domino and is interested in integrating Lotus Workplace products and functionality into their environment.
Our simulated customer support system included the following software:
- Lotus Workplace server
- Domino 6.5.1 LDAP server
- Lotus Instant Messaging and Web Conferencing (Sametime) 6.5.1
- Lotus Team Collaboration (QuickPlace) 6.5.1
- Lotus Virtual Classroom 1.1.1
- Lotus Collaborative Portlets
- WebSphere Application Server v5
- WebSphere Portal Server Multi-Platform v1
- DB2 8.1
- Rational Suite Test Enterprise version 2003 Hotfix 2 (T30)
Our operating systems included AIX 5.2, Windows 2000, and SuSe Linux 8.1.
To host our software test configuration, we set up an IBM eServer BladeCenter containing eight BladeCenter HS20 blades. Each blade is a dual processor Pentium Xeon. The BladeCenter is connected to the lab network via a single 1 GB Cat 6 network connection from the BladeCenter Ethernet switch to the Cisco 6500 switch. The BladeCenter ran the Lotus products (Lotus Workplace, WebSphere Portal, Domino, and so on) as well as DB2.
In addition, our environment included six IBM eServer x330 servers and two IBM p630 servers. The complete hardware environment is described in detail in the article, "Setting up an IBM eServer BladeCenter for Lotus products." We found that the BladeCenter significantly reduced the lab space required to host our servers, which saved a substantial amount of overhead costs. It was also quick to install, easy to manage, and relatively painless to expand.
Rational Suite testing tools gives us three viable options for creating user test scripts:
- Rational Robot VU (virtual user) language, which provides a C language like interface
- Rational Robot GUI language, which provides a Visual Basic/LotusScript like interface
- Rational XDE Tester, which provides a Java-based interface
We investigated all three tools and their features to determine which were most appropriate to our particular requirements. (Eventually, we plan to also use the Lotus Workplace APIs in future testing when they become available. This is an option you may also want to consider for your own testing and analysis programs.)
Creating a test script with Rational Robot GUI
Our testing required simulating a user repetitively performing a wide range of tasks. To create a script for this, we used Rational Robot GUI's Recorder feature to record the actions of a single real user. We then used GUI's VB-like programming interface to generalize this script to simulate a large number of different users. (This is a very powerful feature of Rational Robot GUI, as described in the article, "Creating MyContacts lists to test Lotus Workplace.")
The following is an example script we created with Rational Robot GUI. This script simulates a Lotus Workplace administrator scheduling two weeks' worth of meetings for the team so that there would always be a meeting available for virtual users to log on to.
The script starts by defining the Include file that allows GUI applications to use datapools:
'$Include "SQAUTIL.SBH"
Next, we set the loop controls, including the number of days to loop through the applications and the number of simultaneous values:
Sub Main
Dim Result As Integer
Dim myhour As String
Dim myMeeting As String
Dim x,y,z As Integer 'loop controls
Dim dp As Long 'datapool reference long
Dim myDate As String 'Number of days we are going
to loop through applications
Dim numDays As Integer 'Number of days wished to loop
Dim numSimultaneous As Integer 'Number of Simultaneous Values
Dim AMPM as String
'Initially Recorded: 10/14/2003 10:53:15 PM
'Script Name: conf3
|
Here we initialize the data structure and define the initial launch application:
myDate="10/23/03" ' Initialization of Date Structure
Window SetContext, "Class=Shell_TrayWnd", "" 'Initially Launching Application
Toolbar Click, "ObjectIndex=3;\;ItemText=Launch Internet Explorer Browser",
"Coords=8,8"
The third line in the preceding code snippet tells the script to go to the user's toolbar and to search for the third object at position 8,8.
Now the script opens an SQL Datapool (this datapool has to be configured within Rational Suite Test Manager):
numSimultaneous=10
numDays=14
dp=SQADatapoolOpen("conf2")
This section sets a number of variables, such as server names, the user name, and password:
Window SetContext, "Caption=IBM Intranet - Microsoft Internet Explorer", ""
ComboEditBox Click, "ObjectIndex=2", "Coords=31,9" ' My Browsers coordinates
ComboEditBox Left_Drag, "ObjectIndex=2", "Coords=104,7,33,0"
'Removed the value that was on the recorders browser
InputKeys "blade3.pie.notesdev.ibm.com/wps/myportal{ENTER}"
'Our Server Names
Browser NewPage,"HTMLTitle=IBM Lotus Workplace",""
EditBox Click, "Name=userid", "Coords=13,5"
InputKeys "blade3user2" 'Persons UserName
EditBox Click, "Name=password", "Coords=19,13"
InputKeys "all4pie" 'User's password
PushButton Click, "HTMLText=Log in"
|
Here the browser sends back an HTML page titled "IBM Lotus Workplace:"
Browser NewPage,"HTMLTitle=IBM Lotus Workplace",""
HTMLLink Click, "HTMLText=Web Conferences", ""
Next, the script extracts a value from the datapool and pulls the field MyMeeting from the first column in this datapool:
for y= 1 to numDays
Call SQADatapoolFetch(dp)
Call SQADatapoolValue(dp,1,myMeeting)
myDate=myMeeting
The program now loops through the user actions required to create and schedule a new Lotus Workplace Web conference:
for x= 0 To 23
if (x >12) then AMPM="PM" else AMPM="AM"
myHour="Text="+trim(Str$((x MOD 12) +1))
'print (myHour)
for z=0 To numSimultaneous
Browser NewPage,"HTMLTitle=IBM Lotus Workplace",""
PushButton Click, "HTMLTitle=New Web Conference"
Browser NewPage,"HTMLTitle=IBM Lotus Workplace",""
EditBox Left_Drag, "Name=PC_7_0_A9_name", "Coords=135,4"
'Coordinates may all have to change if the
'screen configurations change on the application.
InputKeys "GUIPLAY "+myMeeting+" "+ Str$(z)
EditBox Left_Drag, "Name=PC_7_0_A9_scheduledStartDateUI_DatePicker_InputField",
"Coords=3,8,96,15" 'The Coordinates on our browsers
InputKeys myDate
Window SetContext, "Caption=IBM Lotus Workplace - Microsoft Internet Explorer", ""
ComboBox Click, "Name=PC_7_0_A9_scheduledStartTimeUI_TimePicker_Hour", ""
ComboListBox Click, "Name=PC_7_0_A9_scheduledStartTimeUI_TimePicker_Hour",
myHour
ComboBox Click, "Name=PC_7_0_A9_scheduledStartTimeUI_TimePicker_Min", ""
ComboListBox Click, "Name=PC_7_0_A9_scheduledStartTimeUI_TimePicker_Min",
"Text=07"
ComboBox Click, "Name=PC_7_0_A9_scheduledStartTimeUI_TimePicker_Ampm", ""
ComboListBox Click, "Name=PC_7_0_A9_scheduledStartTimeUI_TimePicker_Ampm",
"Text="+AMPM
ComboBox Click, "Name=PC_7_0_A9_durationHour", ""
ComboListBox Click, "Name=PC_7_0_A9_durationHour", "Text=2"
EditBox Click, "Name=PC_7_0_A9_description", "Coords=43,14"
InputKeys "test2"
PushButton Click, "Name=PC_7_0_A9_OK"
Browser NewPage,"HTMLTitle=IBM Lotus Workplace",""
HTMLLink Click, "HTMLText=Return to Web conference list", ""
Next z
Next x
Next y
|
Finally, we finish up our datapool.
Call SQADatapoolClose(dp)
We then click the logout button and end the script:
HTMLLink Click, "HTMLText=Log out", ""
End Sub
The primary benefit of this script is the ease with which this administrative task was created. The Rational datapool feature allows you to set up ranges of dates you need in a separate environment, and it freezes the behavior in time to produce consistent tasks that work with the application. The only limitation is that even if you are using the VU load features, you should consider running at least one GUI record user anyway. The GUI interface allows the user's interactive experiences to be recorded, timed, and analyzed. In addition to automating administrative tasks, this feature is also an excellent way to record client activity.
Rational Robot VU is the only tool currently available to us that provides the option of loading multiple instances of the application. For this reason, we chose Rational Robot VU to create all elements of our customer support scenario we intended to run under multiple simultaneous loads.
VU's detailed internal packet tracing and manipulation options require knowledge of the dynamic internals resident in the application. While the internal features of the pre-release were being developed, we had to continually update the VU scripts to reflect the changes in internal packet behavior performed by each scenario user we modeled. We mitigated the risk of large amounts of application changes by recording very small, discrete, specific behaviors. By dividing the feature functions into smaller units, each feature that had a development change could be replaced with a fresh recording as needed.
We also managed the risk of coding to a changing product by generalizing the code of our scripts. For more information on generalizing test script code, see the article, "Creating a Lotus Workplace Messaging test scenario with Rational Suite TestStudio."
We also looked at Rational XDE Tester as a possible component of our Lotus Workplace/Domino integration test strategy. XDE Tester is Java based, which appealed to our Java-experienced team.
Rational XDE tester requires an object map model. Unlike Rational Robot GUI, XDE Tester allows you to identify and define your own recognition patterns within the data you retrieve from your applications. In the limited time available to us, we chose to use VB and Rational's built-in recognition options rather than develop our own. In the future, as more Lotus Workplace object maps are created and made available, we will likely incorporate Rational XDE Tester into our portfolio of tools.
Based on our experiences using Rational tools to test Lotus Workplace and Domino integration, we concluded the following:
| Tool | Optimal usage |
| Rational Robot GUI |
|
| Rational Robot VU |
|
| Rational XDE Tester |
|
As we continue developing future test scenarios, we will choose the tools that provide us the best results for the particular set of products under test. All three Rational products have their own unique and special role within our environment and will be used appropriately according to the situation, features exercised, and the level of need defined by our scenario.
- The article "Testing Lotus Workplace Messaging and Domino interoperability" also discusses using Rational tools to help set up an integrated Lotus Workplace Messaging/Domino environment.
- Another article, "Setting up an IBM eServer BladeCenter for Lotus products," describes the hardware configuration we used to simulate our integrated environment.
Cynthia Barber-Mingo is an Advisory Software Engineer specializing in scenario development for the Lotus Solutions Engineering Test group. She currently leads the Solutions Test Development Team, with a focus on Rational test tools and Lotus Workplace and Domino integration code strategies. She's also served in senior engineering positions in Unix, Domino, SNA, and PC programming integration for IBM, Lotus, and Digital. Cindi holds a BA in Computer Science from Columbia.
Michael Gazda has worked on projects involving network compression, IMAP, and Domino Web Access (iNotes). Mike currently leads the Solutions Test Infrastructure Team. Previously, he spent over three years as a Senior Technical Support Analyst in Lotus Notes/Domino Technical Support where he handled a variety of support issues, including database design, mail routing, and server issues. He is a Certified Lotus Professional in both database design and server administration for both R4 and R5. Michael recently earned his BA in Computer Science from Boston University.




