SilkPerformer® - Borland Technical Publications
SilkPerformer® - Borland Technical Publications SilkPerformer® - Borland Technical Publications
User Guide SilkPerformer ® 2008
- Page 2 and 3: Borland Software Corporation 8303 N
- Page 4 and 5: Chapter 8 Defining Workload 185 Ove
- Page 6 and 7: vi SilkPerformer User Guide
- Page 8 and 9: INTRODUCTION What's New in SilkPerf
- Page 10 and 11: INTRODUCTION Upgrading to SilkPerfo
- Page 12 and 13: INTRODUCTION Performance and Scalab
- Page 14 and 15: INTRODUCTION Memory Footprints by A
- Page 16 and 17: INTRODUCTION Memory Footprints by A
- Page 18 and 19: INTRODUCTION Memory Footprints by A
- Page 20 and 21: INTRODUCTION Memory Footprints by A
- Page 22 and 23: 1 GETTING STARTED Outlining Project
- Page 24 and 25: 1 GETTING STARTED Outlining Project
- Page 26 and 27: 1 GETTING STARTED Outlining Project
- Page 28 and 29: 1 GETTING STARTED Validating Test S
- Page 30 and 31: 1 GETTING STARTED Customizing Test
- Page 32 and 33: 1 GETTING STARTED Establishing Base
- Page 34 and 35: 1 GETTING STARTED Executing Load Te
- Page 36 and 37: 1 GETTING STARTED Exploring Test Re
- Page 38 and 39: 2 CONFIGURING SILKPERFORMER SilkPer
- Page 40 and 41: 2 CONFIGURING SILKPERFORMER SilkPer
- Page 42 and 43: 2 CONFIGURING SILKPERFORMER SilkPer
- Page 44 and 45: 2 CONFIGURING SILKPERFORMER SilkPer
- Page 46 and 47: 2 CONFIGURING SILKPERFORMER SilkPer
- Page 48 and 49: 2 CONFIGURING SILKPERFORMER Applica
- Page 50 and 51: 2 CONFIGURING SILKPERFORMER Applica
User Guide<br />
SilkPerformer ®<br />
2008
<strong>Borland</strong> Software Corporation<br />
8303 N. Mopac Expressway, Suite A-300<br />
Austin, TX 78759-8374<br />
http://www.borland.com<br />
<strong>Borland</strong> Software Corporation may have patents and/or pending patent applications covering subject<br />
matter in this document. Please refer to the product CD or the About dialog box for the list of applicable<br />
patents. The furnishing of this document does not give you any license to these patents.<br />
Copyright © 1992-2008 <strong>Borland</strong> Software Corporation and/or its subsidiaries. All <strong>Borland</strong> brand and<br />
product names are trademarks or registered trademarks of <strong>Borland</strong> Software Corporation in the United<br />
States and other countries. All other marks are the property of their respective owners.<br />
March 2008<br />
Contents<br />
Introduction 1<br />
Overview . . . . . . . . . . . . . . . . . . . . . 1<br />
What's New in SilkPerformer 2008 . . . . . . . . 2<br />
Upgrading to SilkPerformer 2008 . . . . . . . . . 4<br />
Evaluation Version . . . . . . . . . . . . . . . . 4<br />
Performance and Scalability Matrix . . . . . . . . 5<br />
Memory Footprints by Application Type. . . . . . 7<br />
Chapter 1<br />
Getting Started 15<br />
Overview . . . . . . . . . . . . . . . . . . . . 15<br />
Outlining Projects . . . . . . . . . . . . . . . . 16<br />
Modeling Test Scripts . . . . . . . . . . . . . . 21<br />
Validating Test Scripts. . . . . . . . . . . . . . 22<br />
Customizing Test Scripts . . . . . . . . . . . . 24<br />
Establishing Baseline Performance . . . . . . . 25<br />
Defining Workload. . . . . . . . . . . . . . . . 27<br />
Executing Load Tests . . . . . . . . . . . . . . 28<br />
Exploring Test Results . . . . . . . . . . . . . 29<br />
Chapter 2<br />
Configuring SilkPerformer 31<br />
Overview . . . . . . . . . . . . . . . . . . . . 31<br />
SilkPerformer Workbench . . . . . . . . . . . . 32<br />
SilkPerformer Recorder . . . . . . . . . . . . . 39<br />
Application Profiles . . . . . . . . . . . . . . . 41<br />
Proxy Settings. . . . . . . . . . . . . . . . . . 45<br />
Remote Agents . . . . . . . . . . . . . . . . . 48<br />
Client Certificates . . . . . . . . . . . . . . . . 52<br />
Java Configuration . . . . . . . . . . . . . . . 55<br />
Chapter 3<br />
Configuring Projects 59<br />
Overview . . . . . . . . . . . . . . . . . . . . 59<br />
Project Profile Settings . . . . . . . . . . . . . 60<br />
Test Scripts . . . . . . . . . . . . . . . . . . .119<br />
Data Files . . . . . . . . . . . . . . . . . . . .120<br />
Agent Computers . . . . . . . . . . . . . . . .121<br />
Workload Definition . . . . . . . . . . . . . . .121<br />
Outlining Projects . . . . . . . . . . . . . . . .125<br />
Chapter 4<br />
Modeling Test Scripts 127<br />
Overview . . . . . . . . . . . . . . . . . . . 127<br />
Recording Test Scripts . . . . . . . . . . . . 128<br />
Writing Test Scripts Manually . . . . . . . . . 131<br />
Working From Sample Scripts. . . . . . . . . 131<br />
Trying Out Test Scripts . . . . . . . . . . . . 132<br />
Chapter 5<br />
Validating Test Scripts 135<br />
Overview . . . . . . . . . . . . . . . . . . . 135<br />
Visual Analysis with TrueLog Explorer . . . . 135<br />
Log Files. . . . . . . . . . . . . . . . . . . . 136<br />
Report Files . . . . . . . . . . . . . . . . . . 137<br />
Output Files . . . . . . . . . . . . . . . . . . 138<br />
Chapter 6<br />
Customizing Test Scripts 139<br />
Overview . . . . . . . . . . . . . . . . . . . 139<br />
Inserting Function & Transaction Declarations 141<br />
Customizing Workload . . . . . . . . . . . . 142<br />
Customizing Session Handling . . . . . . . . 149<br />
Inserting Parsing Functions . . . . . . . . . . 153<br />
Adding Verifications to Test Scripts . . . . . . 155<br />
Manual Script Editing . . . . . . . . . . . . . 159<br />
Using the System Configuration Manager. . . 160<br />
Serializing and Synchronizing Virtual Users. . 160<br />
Using Custom DLLs in Test Scripts . . . . . . 166<br />
Matrix: Functions, the Recorder, and TrueLog<br />
Explorer . . . . . . . . . . . . . . . . . . . 174<br />
Chapter 7<br />
Establishing Baseline<br />
Performance 177<br />
Overview . . . . . . . . . . . . . . . . . . . 177<br />
Identifying Baseline Performance . . . . . . . 179<br />
Confirming Test Baselines. . . . . . . . . . . 179<br />
Setting Response Time Thresholds . . . . . . 182<br />
Setting Up Server Monitoring . . . . . . . . . 183<br />
SilkPerformer User Guide<br />
iii
Chapter 8<br />
Defining Workload 185<br />
Overview . . . . . . . . . . . . . . . . . . . . 185<br />
Setting Up Workload . . . . . . . . . . . . . . 187<br />
Adjusting Session Times . . . . . . . . . . . . 191<br />
Maintaining Transaction Rates . . . . . . . . . 191<br />
Chapter 9<br />
Executing Load Tests 193<br />
Overview . . . . . . . . . . . . . . . . . . . . 193<br />
Starting Load Tests . . . . . . . . . . . . . . . 194<br />
Monitoring Load Tests . . . . . . . . . . . . . 194<br />
Launching Load Tests Via the Command Line . 205<br />
Chapter 10<br />
Exploring Test Results 209<br />
Overview . . . . . . . . . . . . . . . . . . . . 209<br />
Performance Explorer . . . . . . . . . . . . . 212<br />
Reports . . . . . . . . . . . . . . . . . . . . . 229<br />
Measurements . . . . . . . . . . . . . . . . . 230<br />
Chapter 11<br />
Additional Workbench Features<br />
245<br />
Overview . . . . . . . . . . . . . . . . . . . . 245<br />
Teamwork Features . . . . . . . . . . . . . . 246<br />
Code Completion . . . . . . . . . . . . . . . . 249<br />
Parameter Wizard . . . . . . . . . . . . . . . 252<br />
Java Integration . . . . . . . . . . . . . . . . 256<br />
Converting CSV Data for Use With Silk Performance<br />
Explorer . . . . . . . . . . . . . . . . . . . . 259<br />
Chapter 12<br />
SilkPerformer Plug-Ins 263<br />
Overview . . . . . . . . . . . . . . . . . . . . 263<br />
Checking and Initializing Plug-Ins . . . . . . . 264<br />
Message Output . . . . . . . . . . . . . . . . 264<br />
<strong>Borland</strong> Optimizeit ServerTrace Plug-In . . . . 265<br />
dynaTrace Diagnostics Plug-In. . . . . . . . . 267<br />
Chapter 13<br />
Component Testing (Java &<br />
.NET) 269<br />
Overview . . . . . . . . . . . . . . . . . . . . 269<br />
.NET Support . . . . . . . . . . . . . . . . . . 269<br />
Java Support . . . . . . . . . . . . . . . . . . 271<br />
Chapter 14<br />
Unit Test Integration (JUnit &<br />
NUnit) 273<br />
Overview . . . . . . . . . . . . . . . . . . . . 273<br />
JUnit Integration . . . . . . . . . . . . . . . . 273<br />
NUnit Integration . . . . . . . . . . . . . . . . 281<br />
Chapter 15<br />
SilkCentral Test Manager<br />
Integration 287<br />
Overview . . . . . . . . . . . . . . . . . . . . 287<br />
Configuring Test Manager Integration . . . . . 288<br />
Opening SilkPerformer Projects from Test Manager<br />
289<br />
Importing SilkPerformer Projects from Test Manager<br />
291<br />
Uploading SilkPerformer Projects to Test Manager<br />
292<br />
Uploading Test Results to Test Manager . . . . 293<br />
Downloading Test Results from Test Manager . 294<br />
Chapter 16<br />
Source Control Integration 295<br />
Overview . . . . . . . . . . . . . . . . . . . . 295<br />
Configuring Source Control Integration . . . . 296<br />
Placing Projects and Files Under Source Control298<br />
Checking Files In . . . . . . . . . . . . . . . . 300<br />
Checking Files Out . . . . . . . . . . . . . . . 301<br />
Getting the Latest File Versions . . . . . . . . 302<br />
. . . . . . . . . Checking In/Out Project Files302<br />
Removing Source Control Linkage . . . . . . . 303<br />
Synchronizing Source Control Status. . . . . . 303<br />
Known Issues and Workarounds . . . . . . . . 304<br />
Chapter 17<br />
Other Supported Environments<br />
307<br />
Overview . . . . . . . . . . . . . . . . . . . . 307<br />
Windows Vista . . . . . . . . . . . . . . . . . 308<br />
Multibyte Support . . . . . . . . . . . . . . . . 308<br />
AJAX Support for Web Application Testing . . . 311<br />
SAP eCATT Support . . . . . . . . . . . . . . 312<br />
Terminal Emulation Support . . . . . . . . . . 314<br />
GUI-Level Testing Support . . . . . . . . . . . 317<br />
SilkPerformer Plug-In for Eclipse . . . . . . . . 325<br />
Remedy Support . . . . . . . . . . . . . . . . 333<br />
Adobe Flex AMF3 Support . . . . . . . . . . . 337<br />
iv<br />
SilkPerformer User Guide
Customizing Oracle Applications 12i Scripts for<br />
Replay . . . . . . . . . . . . . . . . . . . . .349<br />
Chapter 18<br />
Trouble Shooting 353<br />
Overview . . . . . . . . . . . . . . . . . . . .353<br />
Controller Agent Communication Troubleshooting .<br />
354<br />
Error Message Overview . . . . . . . . . . . .356<br />
Index 359<br />
SilkPerformer User Guide<br />
v
vi<br />
SilkPerformer User Guide
INTRODUCTION<br />
Overview<br />
Introduction<br />
About this manual<br />
This manual provides all the information you need to work effectively with<br />
SilkPerformer.<br />
This chapter contains the following sections:<br />
Section<br />
Page<br />
Overview 1<br />
What's New in SilkPerformer 2008 2<br />
Upgrading to SilkPerformer 2008 4<br />
Evaluation Version 4<br />
Performance and Scalability Matrix 5<br />
Memory Footprints by Application Type 7<br />
Overview<br />
SilkPerformer is the load testing tool that leads the industry today. It is used to<br />
assess the performance of Internet servers, database servers, distributed<br />
applications, and middleware—both before and after they are developed.<br />
SilkPerformer helps you to quickly and cost-effectively produce reliable, highquality<br />
application solutions.<br />
SilkPerformer creates highly realistic and fully customizable load tests. It does<br />
this through the use of virtual users that automatically submit transactions to<br />
systems under test, in the same way that real users would. Using a minimum of<br />
hardware resources, you can generate tests that simulate hundreds or thousands<br />
of concurrent users. And you can use SilkPerformer's powerful reporting tools<br />
both during and after load tests to analyze the performance of servers and locate<br />
bottlenecks, so that you can maximize the potential of your system.<br />
Questions SilkPerformer can help you answer:<br />
• How many simultaneous users can my server support?<br />
• What response times will my users experience during peak hours?<br />
• Which hardware and software products do I need to ensure optimum<br />
performance from my server?<br />
• Which components are the bottlenecks in my system?<br />
SilkPerformer User Guide 1
INTRODUCTION<br />
What's New in SilkPerformer 2008<br />
• What will the performance impact on my system be if I employ security<br />
technology?<br />
• Which areas of my application perform well and which have bottlenecks<br />
(business transactions, objects, and operations can all be evaluated)?<br />
• Which factors affect performance? What effects do they have? And at<br />
what point will those factors impact service levels?<br />
What's New in SilkPerformer 2008<br />
Following are the significant enhancements and changes that were made to<br />
SilkPerformer 2008.<br />
Enhanced Multibyte Character Set Support<br />
Oracle Forms Multibyte Support<br />
The SilkPerformer Recorder is now able to convert the UTF-8 strings of Oracle<br />
Forms to the system code page, and the replay engine converts them back to<br />
UTF-8, thus enabling multibyte support for Oracle Forms applications. This<br />
includes viewing and customizing multibyte scripts with Silk TrueLog Explorer.<br />
Citrix Multibyte Support<br />
Same as for Oracle Forms, SilkPerformer now supports record and replay of<br />
multibyte strings with Citrix. This includes viewing and customizing multibyte<br />
scripts with Silk TrueLog Explorer.<br />
Note Optical character recognition (OCR) for multibyte characters<br />
is currently not supported.<br />
Multibyte Enabled Project Packages<br />
Project packages containing filenames with multibyte characters can now be<br />
uploaded to and downloaded from SilkCentral Test Manager. The allowed file<br />
name length restriction of about 40 Japanese characters has also been removed.<br />
Enhanced AJAX Support<br />
SilkPerformer now recognizes AJAX requests that come in the form of XML or<br />
JSON, both of which can now be pretty-formatted both in the script and in<br />
TrueLog Explorer. This allows for a much better readability of such requests.<br />
2 SilkPerformer User Guide
INTRODUCTION<br />
What's New in SilkPerformer 2008<br />
Additionally, AJAX requests can be visually customized and verified in<br />
TrueLog Explorer.<br />
See “AJAX Support for Web Application Testing” for full details.<br />
FLEX/AMF3 Support<br />
SilkPerformer now supports FLEX applications based on the new AMF3<br />
protocol. The non-readable AMF3 data is converted to a readable format within<br />
the script, which also enables visual customization and verification via TrueLog<br />
Explorer.<br />
See “Adobe Flex AMF3 Support” for full details.<br />
Remedy Web ARS Support<br />
SilkPerformer now supports Remedy Web ARS versions 6.3, 7.0, 7.0.1, and 7.1.<br />
The proprietary data format of Remedy is translated into an XML-based<br />
representation that makes scripts easier to understand and customizable.<br />
Remedy support is licensed under the Premium Virtual User type.<br />
See “Remedy Support” for full details.<br />
Importing External Monitoring Data Into Silk<br />
Performance Explorer<br />
SilkPerformer offers a command line tool (csv2tsd.exe) that enables you to<br />
convert CSV (Comma Separated Values) files into TSD (Time Series Data)<br />
files. This is useful when you are monitoring external Windows data that, for<br />
security reasons, can not be monitored by SilkPerformer. By converting CSV<br />
data to TSD format, external data can be analyzed alongside internal<br />
SilkPerformer monitoring data within Performance Explorer.<br />
See “Converting CSV Data for Use With Silk Performance Explorer” for full<br />
details.<br />
Technology Updates<br />
• SAPGUI: The SAPGUI for Windows 7.10 client is now supported.<br />
• Oracle Applications 12: Oracle Applications 12, which is based on<br />
Oracle Application Server 10g, is now supported.<br />
See “Customizing Oracle Applications 12i Scripts for Replay” for full<br />
details.<br />
SilkPerformer User Guide 3
INTRODUCTION<br />
Upgrading to SilkPerformer 2008<br />
Upgrading to SilkPerformer 2008<br />
Licensing:<br />
SilkPerformer 2008 requires a SilkPerformer 2008 license.<br />
Project files:<br />
Project files can be upgraded from SilkPerformer versions 4.0 and higher (by<br />
opening them in the current version). Downgrading from the current version to<br />
older SilkPerformer versions is not supported (i.e., has not been tested).<br />
Installation Information:<br />
Parallel installations:<br />
SilkPerformer 2008 (controller and agent) can be installed together with any<br />
older version of SilkPerformer on the same machine; they do not influence each<br />
other.<br />
For complete installation instructions, please refer to the SilkPerformer<br />
Installation Guide.<br />
Evaluation:<br />
During the installation process, you will install one of the following versions:<br />
• Evaluation version: Installing an evaluation version of SilkPerformer<br />
2008 grants you full product functionality for a period of 30 days, limited<br />
to 10 virtual users. To upgrade to the full version at a later time, please<br />
contact your <strong>Borland</strong> sales representative.<br />
• Full version: Installing a full version of SilkPerformer 2008 requires a<br />
license. Contact your <strong>Borland</strong> sales representative for further<br />
information regarding licensing.<br />
Evaluation Version<br />
If you have installed the evaluation version of SilkPerformer 2008, you may use<br />
the full product functionality for 30 days, limited to 10 virtual users. The<br />
software will stop operating when the evaluation period expires.<br />
Tip To ease you into the process of working with SilkPerformer<br />
2008, it is recommended that you review the Web Load Testing<br />
Tutorial. This PDF-based tutorial can be found in SilkPerformer's<br />
documentation set, in the Tutorials folder.<br />
To upgrade to the full version of SilkPerformer 2008, contact your <strong>Borland</strong> sales<br />
representative.<br />
4 SilkPerformer User Guide
INTRODUCTION<br />
Performance and Scalability Matrix<br />
Performance and Scalability Matrix<br />
Max. # of Vusers per<br />
agent<br />
4xPIII, 1GHz, 4<br />
GByte RAM<br />
2xPIII, 1GHz, 2<br />
GByte RAM<br />
1xPIII, 1GHz, 1<br />
GByte RAM<br />
1xPIII, 1GHz, 512<br />
MByte RAM<br />
1xPIII, 600Mhz, 512<br />
MByte RAM<br />
1xPIII, 600Mhz, 256<br />
MByte RAM<br />
Web Business<br />
App.<br />
Table 1: Performance and Scalability Matrix<br />
Web Business App.<br />
with SSL(-35%)<br />
Web low level<br />
(+20%)<br />
5900 3800 7100 4<br />
3600 2300 4300 2<br />
1900 1200 2300 1<br />
800 500 1000 1<br />
800 500 1000 1<br />
300 200 400 1<br />
Note Web Business App uses Page-based Browser-level API<br />
(HTML/HTTP)<br />
Note Web low level uses Browser-level API (HTTP)<br />
Recommended<br />
#NICs<br />
Test Parameters<br />
The numbers in the table above have been determined using a realistic workload<br />
with the following characteristics:<br />
• The page structure of all requested Web pages corresponds to popular<br />
public Web pages.<br />
• The average think-time between pages views for virtual users was 32<br />
seconds.<br />
• A single virtual user was emulated with four concurrent connections.<br />
This means that the number of virtual user simulated corresponds to a realistic<br />
number of concurrent users accessing a popular Web site, resulting in:<br />
Avg. Hits/page: 39<br />
Avg. page size: 130 kByte<br />
Avg. think time between pages: 32 sec<br />
SilkPerformer User Guide 5
INTRODUCTION<br />
Performance and Scalability Matrix<br />
Formula:<br />
The formula for calculating the recommended maximum number of vusers per<br />
agent computer, which is relevant for realistic workload using Web Business<br />
App. = Page-based Browser-level API, is:<br />
Given:<br />
agentCpu: specifies processor speed in MHz (must be >= 100)<br />
agentCpuCount: specifies the number of processors<br />
agentRamMb: specifies the RAM of the agent in MByte. (has to be > 64)<br />
cpuBound = 0;<br />
if (agentCpu >= 100 && agentCpu < 200) cpuBound = 100;<br />
if (agentCpu >= 200 && agentCpu < 300) cpuBound = 450;<br />
if (agentCpu >= 300 && agentCpu < 400) cpuBound = 600;<br />
if (agentCpu >= 400 && agentCpu < 500 cpuBound = 750;<br />
if (agentCpu >= 500 && agentCpu < 600) cpuBound = 900;<br />
if (agentCpu >= 600 && agentCpu < 800) cpuBound = 1200;<br />
if (agentCpu >= 800 && agentCpu < 1000) cpuBound = 1500;<br />
if (agentCpu >= 1000 && agentCpu < 1400) cpuBound = 2000;<br />
if (agentCpu >= 1400) cpuBound = 2500;<br />
ramBound = (agentRamMB-64) * 2.0;<br />
agentCpuFactor = 1.0;<br />
for (i = 2; i
INTRODUCTION<br />
Memory Footprints by Application Type<br />
1000 Mhz P III, 1 GByte<br />
maxVuserPerAgent = (Minimum((1024 - 64) * 2.0, 2000)/100)*100 =<br />
(Minimum(1920,2000)/100)*100 = 1900 Vusers<br />
1000 Mhz P III, 512 MByte<br />
maxVuserPerAgent = (Minimum((512 - 64) * 2.0, 2000)/100)*100 =<br />
(Minimum(896,2000)/100)*100 = 800 Vusers<br />
600 Mhz PIII, 512 MByte<br />
maxVuserPerAgent = (Minimum((512 - 64) * 2.0, 1200)/100)*100 =<br />
(Minimum(896,1200)/100)*100 = 800 Vusers<br />
600 Mhz PIII, 256 MByte<br />
maxVuserPerAgent = (Minimum((256 - 64) * 2.0, 1200)/100)*100 =<br />
(Minimum(384,1200)/100)*100 = 300 Vusers<br />
Memory Footprints by Application Type<br />
The following table outlines the size of the memory footprint associated with<br />
each of the application types supported by SilkPerformer.<br />
Note The listed users are in-process, i.e., 25 users run in a single<br />
process, and 50 users run in a single process, respectively.<br />
Users PerfRun (KB) Per User (KB) Per User (MB)<br />
Web Business Transaction (HTML/HTTP)<br />
1 1,935 1,935 1.89<br />
25 10,323 413 0.40<br />
50 20,400 408 0.40<br />
Web Low Level (HTTP)<br />
1 2,044 2,044 2.00<br />
25 12,136 485 0.47<br />
50 22,732 455 0.44<br />
Flash Remoting<br />
1 1,912 1,912 1.87<br />
25 12,776 511 0.50<br />
50 20,896 418 0.41<br />
SilkPerformer User Guide 7
INTRODUCTION<br />
Memory Footprints by Application Type<br />
Users PerfRun (KB) Per User (KB) Per User (MB)<br />
WebDav (MS Outlook Web Access)<br />
1 3,588 3,588 3.50<br />
25 17,724 709 0.69<br />
50 33,364 667 0.65<br />
Remedy Ars Web<br />
1 2,288 2,288 2.23<br />
25 9,688 388 0.38<br />
50 17,340 347 0.34<br />
Email (SMTP/POP)<br />
1 1,904 1,904 1.86<br />
25 5,268 211 0.21<br />
50 8,912 178 0.17<br />
Directory Server (LDAP)<br />
1 2,920 2,920 2.85<br />
25 not tested N/A N/A<br />
50 not tested N/A N/A<br />
FTP<br />
1 2,420 2,420 2.36<br />
25 5,352 214 0.21<br />
50 8,348 167 0.16<br />
Streaming Media (MS, Real)<br />
1 7,188 7,188 7.02<br />
25 30,188 1,208 1.18<br />
8 SilkPerformer User Guide
INTRODUCTION<br />
Memory Footprints by Application Type<br />
Users PerfRun (KB) Per User (KB) Per User (MB)<br />
50 67,782 1,356 1.32<br />
TCP/IP based Application<br />
1 1,912 1,912 1.87<br />
25 5,624 225 0.22<br />
50 9,500 190 0.19<br />
Mixed Protocols<br />
1 N/A N/A N/A<br />
25 N/A N/A N/A<br />
50 N/A N/A N/A<br />
TN3270<br />
1 2,224 2,224 2.17<br />
25 7,424 297 0.29<br />
50 13,652 273 0.27<br />
TN5250<br />
1 1,495 1,495 1.46<br />
25 not tested N/A N/A<br />
50 not tested N/A N/A<br />
VT100/VT200<br />
1 2,069 2,069 2.02<br />
25 7,168 287 0.28<br />
50 10,664 213 0.21<br />
SAPGUI<br />
1 30,656 30,656 29.94<br />
SilkPerformer User Guide 9
INTRODUCTION<br />
Memory Footprints by Application Type<br />
Users PerfRun (KB) Per User (KB) Per User (MB)<br />
25 110,180 4,407 4.30<br />
50 194,532 3,891 3.80<br />
SAP NetWeaver (Web)<br />
1 2,072 2,072 2.02<br />
25 10,084 403 0.39<br />
50 17,936 359 0.35<br />
Peoplesoft 8<br />
1 1,936 1,936 1.89<br />
25 9,812 392 0.38<br />
50 16,408 328 0.32<br />
Oracle 11i<br />
1 22,636 22,636 22.11<br />
25 34,748 1,390 1.36<br />
50 51,104 1,022 1.00<br />
Siebel 7 Web Client (incl. IE Option Pack)<br />
1 2,256 2,256 2.20<br />
25 11,532 461 0.45<br />
50 20,576 412 0.40<br />
WAP<br />
1 1,848 1,848 1.80<br />
25 5,408 216 0.21<br />
50 9,164 183 0.18<br />
i-Mode<br />
10 SilkPerformer User Guide
INTRODUCTION<br />
Memory Footprints by Application Type<br />
Users PerfRun (KB) Per User (KB) Per User (MB)<br />
1 1,936 1,936 1.89<br />
25 10,323 413 0.40<br />
50 20,400 408 0.40<br />
Radius<br />
1 16,104 16,104 15.73<br />
25 21,284 851 0.83<br />
50 26,268 525 0.51<br />
XML/SOAP (recording Web Service client)<br />
1 2,676 2,676 2.61<br />
25 8,460 338 0.33<br />
50 16,436 329 0.32<br />
.Net Framework using Visual Studio .Net Add-On<br />
1 19,964 19,964 19.50<br />
25 N/A N/A N/A<br />
50 N/A N/A N/A<br />
Java Framework<br />
1 13,044 13,044 12.74<br />
25 22,356 894 0.87<br />
50 27,920 558 0.55<br />
COM / DCOM / MTS / COM+ / ADO<br />
1 4,608 4,608 4.50<br />
25 28,160 1,126 1.10<br />
50 51,200 1,024 1.00<br />
SilkPerformer User Guide 11
INTRODUCTION<br />
Memory Footprints by Application Type<br />
Users PerfRun (KB) Per User (KB) Per User (MB)<br />
IIOP – Corba / EJB (RMI over IIOP)<br />
1 2,736 2,736 2.67<br />
25 31,696 1,268 1.24<br />
50 61,960 1,239 1.21<br />
Jacada<br />
1 15,556 15,556 15.19<br />
25 24,020 961 0.94<br />
50 31,552 631 0.62<br />
Citrix Metaframe<br />
1 3,900 3,900 3.81<br />
25 9,000 360 0.35<br />
50 11,500 230 0.22<br />
Visual Basic<br />
1 2,100 2,100 2.05<br />
25 4,128 165 0.16<br />
50 6,276 126 0.12<br />
Oracle<br />
1 1,732 1,732 1.69<br />
25 3,696 148 0.14<br />
50 5,792 116 0.11<br />
ODBC<br />
1 5,468 5,468 5.34<br />
25 16,918 677 0.66<br />
12 SilkPerformer User Guide
INTRODUCTION<br />
Memory Footprints by Application Type<br />
Users PerfRun (KB) Per User (KB) Per User (MB)<br />
50 29,016 580 0.57<br />
DB2 CLI<br />
1 5,168 5,168 5.05<br />
25 21,952 878 0.86<br />
50 37,468 749 0.73<br />
Tuxedo (all Feat.) + Clarify<br />
1 2,400 2,400 2.34<br />
25 not tested N/A N/A<br />
50 not tested N/A N/A<br />
SilkTest<br />
1 13,000 13,000 12.7<br />
25 N/A N/A N/A<br />
50 N/A N/A N/A<br />
Chordiant CRM<br />
1 not tested N/A N/A<br />
25 not tested N/A N/A<br />
50 not tested N/A N/A<br />
Siebel 6/DB2<br />
1 not tested N/A N/A<br />
25 not tested N/A N/A<br />
50 not tested N/A N/A<br />
Siebel 6/Oracle<br />
1 9,428 9,428 9.21<br />
SilkPerformer User Guide 13
INTRODUCTION<br />
Memory Footprints by Application Type<br />
Users PerfRun (KB) Per User (KB) Per User (MB)<br />
25 66,540 2,662 2.60<br />
50 125,720 2,514 2.46<br />
Siebel 6/SQL Server<br />
1 not tested N/A N/A<br />
25 not tested N/A N/A<br />
50 not tested N/A N/A<br />
GUI-level testing<br />
1 1,788 1,788 1.75<br />
25 5,080 203 0.2<br />
50 not tested not tested not tested<br />
Note GUI-level tests require additional memory resources through<br />
the usage of terminal services sessions and SilkTest:<br />
- 6,300 KB per VUser for Windows Terminal Services<br />
- 13,000 KB per VUser for SilkTest<br />
- 1,092 KB per VUser for SilkPerformer’s Session Manager<br />
14 SilkPerformer User Guide
1<br />
Getting 1Chapter<br />
Started<br />
Introduction<br />
What you will learn<br />
This chapter explains how to get started working with SilkPerformer.<br />
This chapter contains the following sections:<br />
Section<br />
Page<br />
Overview 15<br />
Outlining Projects 16<br />
Modeling Test Scripts 21<br />
Validating Test Scripts 22<br />
Customizing Test Scripts 24<br />
Establishing Baseline Performance 25<br />
Defining Workload 27<br />
Executing Load Tests 28<br />
Exploring Test Results 29<br />
Overview<br />
To conduct a SilkPerformer load test, a series of well-defined steps should be<br />
followed:<br />
1 “Outlining Projects”: The basic settings for your load test project are<br />
defined first.<br />
2 “Modeling Test Scripts”: Next, the test script that will prescribe the<br />
actions of the virtual users in your test is created.<br />
SilkPerformer User Guide 15
1 GETTING STARTED<br />
Outlining Projects<br />
3 “Validating Test Scripts”: A trial run of the test script is performed. The<br />
results of the trial run are inspected with the help of TrueLog Explorer to<br />
make sure that the script works properly.<br />
4 “Customizing Test Scripts”: The test is customized to create realistic<br />
tests.<br />
5 “Establishing Baseline Performance”: The baseline performance of the<br />
application under test is identified in a test run with a single user per user<br />
type. This will form the basis for the calculation of the number of<br />
concurrent users and threshold settings for timers later during the full<br />
load test. The results of the baseline test are inspected to confirm that the<br />
baseline reflects the performance required from the tested application;<br />
the results will be used to calculate the number of concurrent users and<br />
appropriate threshold settings.<br />
6 “Defining Workload”: Prior to the execution of a load test, the number of<br />
virtual users per user type, the duration, and the number of agents<br />
involved must be set.<br />
7 “Executing Load Tests”: The full load test is run, using the customized<br />
test and the full complement of agent computers and virtual users.<br />
8 “Exploring Test Results”: Finally, the results of the load test are analyzed<br />
to assess the performance of the target application.<br />
Outlining Projects<br />
The first step in conducting a SilkPerformer load test is to define the basic<br />
settings for the load testing project. The project is given a name, and optionally a<br />
brief description can be added. The type of application to be tested is specified<br />
from a range of choices that includes all of the major traffic available today on<br />
the Internet and on the Web, including the most important database and<br />
distributed applications. See “Available application types” for details.<br />
The settings that are specified are associated with a particular load testing<br />
project. It is easy to switch between different projects, to edit projects, and to<br />
save projects so that they can later be modified and reused.<br />
A project contains all the resources needed to complete a load test. These<br />
include a workload, one or more profiles and test scripts, all the data files that<br />
are accessed from the script, and a specific number of agent computers and<br />
information for server side monitoring. Options for all of these resources are<br />
available directly from the project icon in the corresponding tree list.<br />
Note For details on the memory footprint associated with each<br />
supported application type, see “Memory Footprints by Application<br />
Type”.<br />
16 SilkPerformer User Guide
1 GETTING STARTED<br />
Outlining Projects<br />
Available application<br />
types<br />
• Web browser<br />
- Web business transaction (HTML/HTTP)<br />
- Web low level (HTTP)<br />
- Flash Remoting<br />
- WebDAV (MS Outlook Web Access)<br />
• Internet<br />
- Email (SMTP/POP)<br />
- Directory server (LDAP)<br />
- FTP<br />
- Streaming media (MS, Real)<br />
- TCP/IP based application<br />
- Mixed Protocol<br />
- WebDAV (MS Outlook Web Access)<br />
• Terminal Emulation<br />
- TN3270<br />
- TN5250<br />
- VT100<br />
- VT200+<br />
• ERP/CRM<br />
- SAP<br />
o SAPGUI<br />
o SAP NetWeaver (Web)<br />
- PeopleSoft<br />
o PeopleSoft 8<br />
- Chordiant CRM<br />
- Clarify 8-10 (Tuxedo)<br />
- Oracle<br />
o Oracle Applications 11i<br />
o Oracle Applications 12i<br />
- Siebel<br />
o Siebel 6/DB2<br />
o Siebel 6/Oracle<br />
o Siebel 6/SQL Server<br />
SilkPerformer User Guide 17
1 GETTING STARTED<br />
Outlining Projects<br />
o Siebel 7 Web Client (incl. IE Option Pack)<br />
- Remedy<br />
o Remedy 6.3<br />
o Remedy 7.01<br />
o Remedy 7.0<br />
o Remedy 7.1<br />
• Wireless<br />
- WAP<br />
- i-Mode<br />
- Radius<br />
• Web Services<br />
- XML/SOAP (recording Web Service client)<br />
- .NET Explorer<br />
- Java Explorer<br />
• Database<br />
- Oracle<br />
- ODBC<br />
- DB2 CLI<br />
- ADO<br />
• Application Server/Component Models<br />
- Corba (IIOP)<br />
- EJB (RMI over IIOP)<br />
- EJB (Java Explorer)<br />
- Tuxedo (ATMI)<br />
- Tuxedo (JOLT)<br />
- COM/DCOM/MTS/COM+/ADO<br />
- .NET Remoting<br />
- Jacada<br />
- Oracle<br />
o Oracle Forms 10g<br />
o Oracle Forms 6i<br />
o Oracle Forms 9i<br />
• Terminal Services<br />
18 SilkPerformer User Guide
1 GETTING STARTED<br />
Outlining Projects<br />
- Citrix MetaFrame<br />
• .NET<br />
- .NET Explorer<br />
- .NET Framework using Visual Studio .NET Add-On<br />
• Java<br />
- Java RMI/EJB (recording)<br />
- Java Explorer<br />
- Java Framework<br />
• Frameworks<br />
- .NET Framework using Visual Studio .NET<br />
- Java<br />
- Visual Basic<br />
• Monitoring<br />
- BDL Monitor for Performance Explorer<br />
• Unit Testing<br />
- JUnit<br />
- Java Testing<br />
- NUnit<br />
- .NET Testing<br />
• GUI-Level Testing<br />
- SilkTest<br />
Sample scripts<br />
Sample project files, including scripts, include files, data files, profile files,<br />
workload definitions, and more, are available from the Application type window<br />
on the Outline Project dialog when you are initially prompted to outline a new<br />
project. These files can be used as templates that you can edit manually to meet<br />
your needs, as explained in “Modeling Test Scripts”.<br />
Sample scripts are available for the following application/component/protocol<br />
types:<br />
• ADO<br />
• COM<br />
• Internet<br />
- Cookies<br />
- email<br />
- Form-based file upload<br />
SilkPerformer User Guide 19
1 GETTING STARTED<br />
Outlining Projects<br />
Outlining a project<br />
- FTP<br />
- LDAP<br />
- Mapi<br />
• .NET<br />
- .NET Remoting<br />
- Web Services<br />
• Java Framework<br />
- JDBC<br />
- RMI/IIOP<br />
- RMI<br />
• ShopIT V6.0<br />
• XML<br />
Procedure To define a basic outline for your project:<br />
1 Click the Start here button on the SilkPerformer Workflow bar. If you<br />
have already used this icon in your current project, the icon will be<br />
named Outline Project. The Workflow - Outline Project dialog appears.<br />
2 In the Project name field, enter a name for your project.<br />
3 In the Project description field, enter a description for your project (this<br />
description is for your own project management purposes only).<br />
4 From the Application type tree list, choose the type of application that<br />
you want to use in your load test. See “Available application types” for<br />
details.<br />
Note If you are load testing a Web application, choose the Web<br />
business transaction (HTML/HTTP) option to create simpler scripts<br />
while incorporating advanced functionality.<br />
Choose the Web low level (HTTP) option if you want to put the<br />
highest possible load on your application. These scripts are more<br />
complex than Web business transaction scripts, which require more<br />
effort to customize.<br />
It is recommended that use the Web business transaction (HTML/<br />
HTTP) instead of the Web low level (HTTP) scripts for browser<br />
based applications.<br />
5 Click OK.<br />
An icon for the new project appears in the tree-view area of the main<br />
SilkPerformer window.<br />
20 SilkPerformer User Guide
1 GETTING STARTED<br />
Modeling Test Scripts<br />
6 If you need to add additional resources to the project, right-click the<br />
project icon in the tree list. It is particularly important that all the user<br />
data files (.csv), random data files (.rnd), and .idl files needed by<br />
SilkPerformer are set up for the project.<br />
Modeling Test Scripts<br />
The second step in conducting a SilkPerformer load test is to create a test script<br />
that will prescribe the actions of the simulated users who will be run during the<br />
test. The script is written in SilkPerformer's proprietary scripting language, the<br />
Benchmark Description Language (BDL). See the BDL Function Reference for<br />
full details.<br />
Scripts can be created in different ways depending on the application type. The<br />
easiest way is to use the SilkPerformer Recorder, which automates much of the<br />
process for you. Alternately, you can create a test script manually or edit a<br />
sample script.<br />
• Test script generation with the SilkPerformer Recorder: The standard<br />
method for creating a test script is to use the SilkPerformer Recorder to<br />
capture and record traffic that is representative of the type you need to<br />
simulate in your test. The SilkPerformer Recorder automatically<br />
generates a BDL test script based on the recorded traffic.<br />
• Manual test script generation: A second method of creating a test script<br />
is to manually create a new script from scratch in BDL.<br />
• Sample script reuse: A variant on the second method of creating a test<br />
script is to base the new script on one of the sample BDL scripts that are<br />
provided with SilkPerformer. See “Sample scripts” for a list of available<br />
sample scripts.<br />
Modeling the test<br />
script<br />
Procedure To create a test script:<br />
1 Click the Model Script button on the SilkPerformer Workflow bar.<br />
The Workflow - Model Script dialog appears.<br />
2 In the Script area, define how you want your script to be generated.<br />
- Select the Record option to have the SilkPerformer Recorder capture<br />
and record network traffic, and then automatically generate the<br />
script.<br />
From the Select application profile drop-down list, select the profile<br />
of the application type you want to use. If a profile is not set up for<br />
that application, click the button (...) to the right of the drop-down<br />
list to set one up. See “Application Profiles” for further details.<br />
SilkPerformer User Guide 21
1 GETTING STARTED<br />
Validating Test Scripts<br />
If you are load testing a Web application, you can insert the URL of<br />
the application’s home page in the URL field. Otherwise, enter the<br />
command line options that you want to pass to the client application.<br />
See “Recording Test Scripts”.<br />
- If you want to use one of the sample scripts that accompany<br />
SilkPerformer, select the Sample script option in the Script area. See<br />
“Working From Sample Scripts”.<br />
- Experienced users may want to create their scripts manually. To do<br />
so, select the New script option in the Script area. See “Writing Test<br />
Scripts Manually”Click OK.<br />
Validating Test Scripts<br />
The third step in conducting a SilkPerformer load test is to perform a trial run of<br />
the test script that you created in the previous step. The object of a trial run is to<br />
ensure that your test script is free from errors, and that it accurately reproduces<br />
the interaction needed between the client application and the server. Normally,<br />
this is the traffic that was recorded by the SilkPerformer Recorder in the<br />
previous step.<br />
For a try-out of the test script, options are automatically selected so that you can<br />
see a live display of the actual data as it is downloaded. Log files and a report<br />
file are created so that you can confirm later that the script ran properly. Only<br />
one user is run and the stress test option is enabled so that there is no think time<br />
and no delay between transactions.<br />
TrueLog Explorer can assist you in finding replay errors quickly, customizing<br />
session handling, and adding verifications to your script.<br />
For Try Script runs, the following options are automatically set to the specified<br />
values (see “Replay options” for details):<br />
• The Stress test option is on.<br />
• The Stop virtual users after simulation time (Queuing Workload) option<br />
is off.<br />
• The Virtual user log files (.log) option is on.<br />
• The Virtual user output files (.wrt) option is on.<br />
• The Virtual user report files (.rpt) option is on.<br />
• The Virtual user report on error files (.rpt) option is on.<br />
• The TrueLog files (.xlg) option is on.<br />
• The TrueLog On Error files (.xlg) option is off.<br />
• The Compute time series data (.tsd) option is off.<br />
22 SilkPerformer User Guide
1 GETTING STARTED<br />
Validating Test Scripts<br />
Trying out the test<br />
script<br />
• All logging detail options (Results/Logging and Results/Internet logging<br />
tab) are on.<br />
• The Enable all measure groups (TSD measure groups) option is off.<br />
• The Bandwidth option is set to High Speed (unlimited).<br />
• The Downstream option is set to Unlimited.<br />
• The Upstream option is set to Unlimited.<br />
• The Duplex option is off.<br />
• The Modem compression rate is set to 1.0 x.<br />
Procedure To try out your test script:<br />
1 Click the Try Script button on the SilkPerformer Workflow bar.<br />
The Workflow – Try Script dialog appears.<br />
2 In the Profile drop-down list, the currently active profile is selected (this<br />
is the default profile if you have not configured another).<br />
3 If you want to configure the simulation settings for the selected profile,<br />
click the button (...) to the right of the drop-down list. See “Replay<br />
options” for details.<br />
4 In the Script drop-down list, the first script added to the project is<br />
selected. Use this script, or choose another from the list.<br />
5 Since this is a Try Script, only one virtual user will be run. In the list of<br />
user groups and virtual users, select the user group from which you want<br />
to run a virtual user.<br />
6 To view the actual data that is downloaded from a Web server during the<br />
try-out as it is happening, select the Animated option. If you are testing<br />
anything other than a Web application, you should disable this option.<br />
7 Click Run.<br />
8 The Try Script is run. All recorded think times are ignored during test<br />
runs. The Monitor window opens; giving you detailed information about<br />
the progress of the Try Script.<br />
If you have selected the Animated option, TrueLog Explorer will open.<br />
Here you can view the actual data that is downloaded during the<br />
TryScript.<br />
If any errors occur during the Try Script, TrueLog Explorer will help you<br />
to find the errors quickly and to customize any problematic session<br />
information. Once you have finished examining and customizing your<br />
script with TrueLog Explorer, your script should run without error.<br />
SilkPerformer User Guide 23
1 GETTING STARTED<br />
Customizing Test Scripts<br />
Customizing Test Scripts<br />
Customizing the test<br />
The fourth step in conducting a SilkPerformer load test is customizing your test<br />
script. Script customization has several purposes: to enhance scripts with<br />
randomized user data; to handle session-specific data that might otherwise lead<br />
to errors; and to insert verification functions.<br />
When an uncustomized test script is used, load tests based on that script<br />
repeatedly reproduce the exact behavior recorded on a particular occasion. This<br />
won’t provide accurate results. To realistically emulate the varied traffic of a<br />
large number of different users, transactions in test scripts need to be modified<br />
and, wherever appropriate, randomized.<br />
The behavior of virtual users can be customized in a number of ways. They can<br />
employ different Web browsers and modem speeds. Wherever randomized data<br />
is appropriate, random variables can be employed to provide realistic user data.<br />
In this way, virtual users can input different names, addresses, credit card<br />
numbers, and so on. They can vary in the products they search for, in the<br />
products they order, and in many other ways. When an application under test<br />
uses load balancers, realistic simulation can be achieved by giving each virtual<br />
user a unique IP address. Test scripts can be edited manually to provide<br />
extensive customization.<br />
Procedure To customize a test script:<br />
1 Click the Customize Test button on the SilkPerformer workflow bar.<br />
The Workflow - Customize Test dialog appears.<br />
2 In the Profile drop-down list, the currently active profile is selected (this<br />
is the default profile unless you have configured another profile).<br />
3 If you want to configure simulation settings for the selected profile, click<br />
the button (...) to the right of the drop-down list. See “Replay options”<br />
for details.<br />
4 If you want to add a new profile to your workload, click the second<br />
button to the right of the drop-down list.<br />
5 To define settings for the modem speeds to be emulated in your load test,<br />
click the Modem Speeds button or link. See “Network options” for<br />
details.<br />
6 To configure simulation settings for your Web browser, click the<br />
Browser Types link. See “Browser options” for details.<br />
7 To create realistic functionality for the virtual users in your load test by<br />
means of parameters, click the Create New Parameter Wizard button or<br />
link. See “Parameter Wizard” for details.<br />
24 SilkPerformer User Guide
1 GETTING STARTED<br />
Establishing Baseline Performance<br />
8 To modify user groups and transactions, click the User Group/<br />
Transaction Wizard icon or link. See “Visual user group customization”<br />
for details.<br />
9 If you want to give your virtual users individual IP addresses, click the<br />
System Configuration Manager link. It is recommended that you use this<br />
option if your application uses a load balancer. See “Setting up<br />
individual IP addresses” for details.<br />
10 Once you have finished customizing your test, click the Yes button.<br />
Establishing Baseline Performance<br />
The fifth step in conducting a SilkPerformer load test is to ascertain an<br />
application’s baseline performance (i.e., its ideal performance). This is achieved<br />
by running your newly customized test script with a single virtual user per user<br />
type. The unstressed performance of the application forms the basis for<br />
calculating the number of concurrent users and appropriate threshold settings for<br />
page and transaction times. The measurements typical of a real load test (e.g.,<br />
response times and throughput) are performed during baseline tests.<br />
A secondary reason for running a baseline test is that it serves as a trial run of the<br />
customized test that you’ve created. The objective is to ensure that the<br />
customizations have not introduced errors into the script, and that the script<br />
accurately and fully reproduces the interaction that is required between the client<br />
application and the server.<br />
For baseline runs, the following options are set automatically to the specified<br />
value:<br />
• A Baseline report file is automatically created.<br />
• The Stop virtual users after simulation time (Queuing Workload) option<br />
is on.<br />
• The Random thinking time option is off.<br />
• The Load test description field is set to "BaseLine Test".<br />
• The Display All Errors Of All Users option in the Monitor window is on.<br />
• The Virtual user output files (.wrt) option is on.<br />
• The Virtual user report files (.rpt) option is on.<br />
Identifying a test<br />
baseline<br />
Procedure To find your test baseline:<br />
1 Click the Find Baseline button on the SilkPerformer Workflow bar.<br />
The Workflow - Find Baseline dialog appears.<br />
SilkPerformer User Guide 25
1 GETTING STARTED<br />
Establishing Baseline Performance<br />
Confirming the test<br />
baseline<br />
Analyzing the baseline<br />
report<br />
2 Using the checkboxes on the left of the dialog, select the User Types that<br />
you want to run in the actual baseline test. A “user type” is a combination<br />
of a usergroup, a script, and a profile. One virtual user from each User<br />
Type will be executed.<br />
3 The active profile is selected in the Profile drop-down list (this is the<br />
default profile unless you have configured another).<br />
To add new user types to your load test, press the Add button and select a<br />
combination of script, usergroup, and profile. In actual projects, each<br />
profile can be selected with any usergroup from any script in the project.<br />
4 If you want to configure the simulation settings for the selected profile,<br />
click the button (...) to the right of the drop-down list. See “Simulation<br />
options” for details.<br />
5 Click Run to perform the baseline test.<br />
6 The baseline test is run. The Monitor window opens; giving you detailed<br />
information about the progress of the test. See “Monitoring Load Tests”<br />
for details.<br />
The sixth step in conducting a SilkPerformer load test is to confirm that the test<br />
baseline established by the test in the previous step actually reflects the desired<br />
performance of the application under test. This is done by inspecting the results<br />
of that test in a baseline report. If the results are satisfactory, the baseline can be<br />
accepted and will form the basis for calculating the number of concurrent virtual<br />
users and thresholds of specific timers in future tests. The baseline results will be<br />
used later for comparison with the results of actual load tests.<br />
A secondary reason for running a baseline test is that it serves as a trial run for<br />
the customized test. The baseline confirmation step provides an opportunity to<br />
inspect the measurements generated during the test to ensure that the final load<br />
test contains all the required results.<br />
At this stage, server monitoring is set up so that live monitoring of the server<br />
will occur during load tests, and server-side results information is generated for<br />
exploration and correlation after the test.<br />
Procedure To confirm your test baseline:<br />
1 Click the Confirm Baseline button on the SilkPerformer Workflow bar.<br />
The Workflow - Confirm Baseline dialog appears.<br />
2 To view a report of the results from your baseline test, click the Baseline<br />
Report button or link. In the Summary report that appears, you can<br />
accept the results of the previous test as your baseline by clicking the<br />
Accept Baseline button in the report and clicking Yes on the confirmation<br />
dialog.<br />
26 SilkPerformer User Guide
1 GETTING STARTED<br />
Defining Workload<br />
Note To view the accepted baselines that are currently in effect,<br />
click the Confirm Baseline button. Then click the Accepted Baseline<br />
Report link to view the results. See “Viewing Accepted Baseline<br />
Reports” for details.<br />
3 To set thresholds for future load tests, click the set response time<br />
thresholds button or link. MeasureSetBound statements will be added to<br />
your script accordingly. See “Setting Response Time Thresholds” for<br />
details.<br />
4 To receive online performance data during load tests, you can establish a<br />
monitoring template. See “Monitoring server performance during tests”<br />
for details.<br />
5 If you want to see the output of write statements used in the test script<br />
(assuming their generation has been enabled) click the Virtual User<br />
Output Files link. See “Virtual User Output files” for details.<br />
6 If you are satisfied that you have confirmed the baseline performance of<br />
your application, click Yes.<br />
Note If the baseline test did not identify the correct baseline<br />
performance for your application, or if any errors occurred during<br />
the baseline test, click No. Then click the Customize Test button and<br />
repeat the steps outlined in “Customizing the test”.<br />
Defining Workload<br />
Prior to the execution of a load test, you must select the workload model you<br />
want to use for the test.<br />
You must select one of the following workload models:<br />
• Increasing<br />
• Steady State<br />
• Dynamic<br />
• All Day<br />
• Queuing<br />
• Verification<br />
Note Additionally, the number of concurrent virtual users per user<br />
type, the duration, and the involved agents must be defined.<br />
Specifying load test<br />
workload<br />
Procedure To specify workload for a load test:<br />
1 Click the Adjust Workload button on the SilkPerformer Workflow bar.<br />
SilkPerformer User Guide 27
1 GETTING STARTED<br />
Executing Load Tests<br />
2 Select the Workload model that best fits your needs and click the<br />
Workload Wizard button.<br />
3 Specify the simulation times of the load test and click next.<br />
4 The number of concurrent virtual users is calculated automatically when<br />
you specify the number of user sessions you expect per hour.<br />
In some cases it’s desirable to adjust the session time of user types to a<br />
particular duration. By adjusting a user type’s session time, throughput<br />
can be influenced on a per-virtual-user basis to meet particular load test<br />
requirements.<br />
5 After completing your specifications, the Workload Configuration dialog<br />
appears and allows you to change any of the load test’s parameters.<br />
Executing Load Tests<br />
The eighth step in conducting a SilkPerformer load test is to run a full load test.<br />
Based on the test script, multiple virtual users are run to test the target server. A<br />
large load test requires that an appropriate testing environment be set up in the<br />
local area network, including a full complement of agent computers to host the<br />
virtual users.<br />
It is essential that you carefully set the options for the appropriate type of test to<br />
be used to accurately define the necessary workload, and to enable generation of<br />
the types of test results that will be required to assess the performance of the<br />
server. The TrueLog On Error option helps you to visually inspect replay errors.<br />
With TrueLog On Error, the necessary log files are written to disk only when<br />
errors occur.<br />
Comprehensive information is provided to you while the load test is performed.<br />
This includes real-time information about agent computers, virtual users, and<br />
transactions—in real-time, as they are conducted. Real-time monitoring of the<br />
target server is available as a graph.<br />
If the test is configured as a verification run, the following options will be<br />
automatically set to the specified value:<br />
• A Baseline Report file will be automatically created.<br />
• The Stop virtual users after simulation time (Queuing Workload) option<br />
is off.<br />
• The Virtual user log files (.log) option is off.<br />
• The Virtual user report files (.rpt) option is on.<br />
• The Virtual user report on error files (.rpt) option is on.<br />
• The Compute time series data (.tsd) option is off.<br />
28 SilkPerformer User Guide
1 GETTING STARTED<br />
Exploring Test Results<br />
Running the load test<br />
Procedure To run a load test:<br />
1 Click the Run Test button on the SilkPerformer Workflow bar.<br />
The Workload Configuration dialog appears.<br />
2 If necessary, change the workload configuration for your load test. Then<br />
click Run to begin the test. See “Workload Definition” for details.<br />
3 While the test is in progress, you can monitor its progress and monitor<br />
server activity by viewing the tabular monitor view in SilkPerformer and<br />
the graphical monitor view in Performance Explorer. See “Monitoring<br />
Load Tests” for details.<br />
Exploring Test Results<br />
Exploring test results<br />
The ninth and final step in conducting a SilkPerformer load test is to display and<br />
analyze the results of the test to assess the performance of the server under test.<br />
For detailed information on exploring test results, please refer to “Exploring<br />
Test Results”.<br />
Procedure To explore test results:<br />
1 Click the Explore Results button on the SilkPerformer Workflow bar.<br />
The Workflow - Explore Results dialog appears.<br />
2 To view a report of the results from your load test, click the Baseline<br />
Report button or link. In such Summary reports, you can accept the<br />
results of any previous test as your baseline. See “Viewing Baseline<br />
Reports” for details.<br />
3 If you want to see the accepted baselines so far, click the Accepted<br />
Baseline Report button to view the results. See “Viewing Accepted<br />
Baseline Reports” for details.<br />
4 If the previous load test produced errors and the TrueLog On Error<br />
option has been enabled, you can inspect the errors with TrueLog<br />
Explorer. See “Visual Analysis with TrueLog Explorer” for details.<br />
5 To view a graphic display of the results from your load test, click the<br />
Performance Explorer button or link. See “Performance Explorer” for<br />
details.<br />
SilkPerformer User Guide 29
1 GETTING STARTED<br />
Exploring Test Results<br />
30 SilkPerformer User Guide
2<br />
Configuring 2Chapter<br />
SilkPerformer<br />
Introduction<br />
What you will learn<br />
This chapter explains how to configure SilkPerformer settings.<br />
This chapter contains the following sections:<br />
Section<br />
Page<br />
Overview 31<br />
SilkPerformer Workbench 32<br />
SilkPerformer Recorder 39<br />
Application Profiles 41<br />
Proxy Settings 45<br />
Remote Agents 48<br />
Client Certificates 52<br />
Java Configuration 55<br />
Overview<br />
The SilkPerformer configuration options provide the opportunity to set global<br />
SilkPerformer settings that are not associated with a particular project.<br />
“SilkPerformer Workbench”: The basic characteristics of a SilkPerformer load<br />
testing configuration are set here—those related to the agent computers used in<br />
tests, the directories where files used in and generated by tests are located, the<br />
layout of the text of test scripts, and how results information is generated.<br />
“SilkPerformer Recorder”: The basic settings used by SilkPerformer's<br />
recording and script generating program, the SilkPerformer Recorder, are<br />
defined here. These include the settings for capturing and recording the network<br />
traffic that will be modeled in your load test scripts. Here, profiles are set up and<br />
SilkPerformer User Guide 31
2 CONFIGURING SILKPERFORMER<br />
SilkPerformer Workbench<br />
managed for the client applications that are to be used during data capture and<br />
recording. Proxies can be added or removed, and their settings edited. Here you<br />
can set the port for the integrated Web server that is used by the SilkPerformer<br />
Recorder, and enable recording to begin as soon as the client application starts.<br />
“Remote Agents”: SilkPerformer allows for remote agent computers to be<br />
located both in the LAN, out on the Internet, and even behind firewalls—<br />
connected through HTTP and SOCKS proxies. The communication between the<br />
remote agents and the controller can be configured to include secure, encrypted<br />
connections in a distributed secure environment.<br />
“Java Configuration”: Java Framework projects and Java based APIs require a<br />
Java SDK Environment. The Java SDK version, its location, and parameters<br />
such as class path and optional Java Virtual Machine settings can be configured<br />
here.<br />
SilkPerformer Workbench<br />
The basic characteristics of SilkPerformer load testing configuration are set<br />
from the System Settings dialog (Settings/System).<br />
Agent Pool<br />
The pool of agent computers that can be used with the controller computer can<br />
be set up and managed here. New agents can be added to the agent pool, either<br />
from the local network or from somewhere on the Internet, or existing agents<br />
can be removed. A wide range of system options for agent computers can be set,<br />
and their availability for service can be checked.<br />
Directories<br />
You can specify the directories where various types of SilkPerformer files are<br />
located. Default directories are set up during installation; you can specify<br />
alternative directories here. You can set locations for load testing scripts, for<br />
include files, for the various file types containing the results of load tests, and for<br />
user data files, certificate files, and random data files.<br />
Layout<br />
The way the editor behaves when you manually insert text into a script file can<br />
be customized; options can be set for formatting, printing, and how keywords<br />
are highlighted in the SilkPerformer tree view editor.<br />
Control<br />
The options for the multi-machine controller can be set in this area. Settings can<br />
be specified for the time interval within which a controller computer must<br />
communicate with an agent computer or a virtual user; if it fails, a timeout error<br />
will be reported. The frequency with which the controller will ping an agent<br />
computer until it receives a reply is set here, as can the number of virtual users<br />
per process and the number of transaction failures permitted for a virtual user<br />
before the user is terminated.<br />
32 SilkPerformer User Guide
2 CONFIGURING SILKPERFORMER<br />
SilkPerformer Workbench<br />
Configuring agent<br />
pool settings<br />
Results<br />
Use the Time series data option for merging time series data files (.tsd) on the<br />
agent computers where they were created and to ensure that only the merged<br />
files will be sent to the controller computer. This is especially useful for quickly<br />
processing the results of long load tests as the calculations will then be<br />
distributed to various processors and less traffic will be sent over the network.<br />
The drawback, however, is that time series data files for individual virtual users<br />
are not available on the controller computer.<br />
Note If you do not select this option, you manually have to merge<br />
the time series data files in Silk Performance Explorer in order to get<br />
overall results for the load test.<br />
Workspace<br />
This area is used to specify general settings for the Workbench. Workbench<br />
options include start-up settings, workflow settings, file handling, and the<br />
display of message boxes.<br />
Test Manager<br />
Use this area to set up a connection to SilkCentral Test Manager.<br />
Source Control<br />
Use this area to specify general SCC connection parameters. Click a specific<br />
item for detailed information.<br />
Procedure To specify SilkPerformer agent pool settings:<br />
1 From the SilkPerformer menu bar, select Settings/System.<br />
The System Settings dialog opens at the Agent Pool tab.<br />
2 Use the Agent Pool list to view the computers that are currently<br />
configured as part of the SilkPerformer agent pool.<br />
To add a computer to the default pool of agents associated with this<br />
controller computer:<br />
3 On a LAN network: Click the Add LAN Agent button.<br />
The Add LAN Agent dialog appears, listing all compatible agent<br />
computers that are available on the subnet.<br />
a From the Running agents list of computers in your local network,<br />
select the computer(s) you want to add to your agent pool.<br />
b Click the Add button.<br />
4 On a WAN network: Click the Add WAN Agent button.<br />
The Add WAN Agent dialog appears. Enter connection parameters for the<br />
WAN agent.<br />
a In the Host name or IP address field, enter the computer’s host name<br />
or IP address.<br />
SilkPerformer User Guide 33
2 CONFIGURING SILKPERFORMER<br />
SilkPerformer Workbench<br />
Configuring directory<br />
settings<br />
b If you want to add a computer from Windows domains outside your<br />
local network, click the browse (...) button.<br />
The Browse for Computer dialog appears.<br />
c Select the computer you want to add to the agent pool and click OK.<br />
d Click OK again on the Add WAN Agent dialog.<br />
5 To remove agent(s) from the default pool of agents associated with this<br />
controller computer, select them in the agent pool list and click the<br />
Remove button.<br />
6 In the ensuing SilkPerformer Message dialog, confirm that you want to<br />
remove the agent(s).<br />
7 To set configuration options for an agent computer, click the Manage<br />
button. This opens the System Configuration Manager, which allows you<br />
to set options for the selected agent computer, including configuring<br />
multiple IP addresses.<br />
8 To validate that a selected agent is available and active, click the Check<br />
Availability button, which will send a remote call to the agent.<br />
Procedure To specify directory settings:<br />
1 From the SilkPerformer menu bar, select Settings/System.<br />
2 Click the Directories tab.<br />
3 Use the File locations area to specify the directories where various<br />
SilkPerformer file types are stored. Default directories are set during<br />
installation.<br />
Click the button (...) to the right of each field to browse the directory<br />
structure and locate appropriate files and directories.<br />
4 In the Projects field, specify the directory where the project files are to<br />
be saved.<br />
5 In the User data files (.pem, .rnd, .csv, .txt, .idl) field, specify the<br />
directory where the system-defined user data files (.csv), certificate files<br />
(.pem), random data files (.rnd files), text files (.txt), and Interface<br />
Definition Language files (.idl) are to be stored. The compiler first<br />
searches for random data files in the directory where the .bdf file is<br />
located, then in this directory. To use a random data file from a different<br />
location, specify a full path for the file in your script file. This location is<br />
used for user data files that are delivered with SilkPerformer.<br />
6 In the Custom user data files (.pem, .rnd, .csv, .txt, .idl) field, specify the<br />
directory where your self-created user data files (.csv), certificate files<br />
(.pem), random data files (.rnd files), text files (.txt), and Interface<br />
Definition Language files (.idl) are located. In contrast to the specified<br />
34 SilkPerformer User Guide
2 CONFIGURING SILKPERFORMER<br />
SilkPerformer Workbench<br />
Configuring layout<br />
settings<br />
User data files location, this location is used for your own user data files.<br />
As with SilkPerformer pre-defined user data files, custom user data files<br />
in this directory can be shared across multiple projects.<br />
7 In the Include files (.bdh) field, specify the directory where the include<br />
files (.bdh files) are located. The compiler searches for include files first<br />
in the directory where the .bdf file is located, and then in this directory. If<br />
you want to use an include file from a different location, you can specify<br />
a full path in the use statement in your script for your include file.<br />
External function prototypes, internal functions, constants, random<br />
variables, and external function declarations are reusable in different<br />
script files when defined in include files. This location is used for include<br />
files that are delivered with SilkPerformer.<br />
8 In the Custom include files (.bdh) field, specify the directory where your<br />
self-created include files (.bdh files) are located. In contrast to the<br />
specified Include files location, this location is used for your own include<br />
files. As with SilkPerformer pre-defined include files, custom include<br />
files in this directory can be shared across multiple projects.<br />
9 In the Working field, specify the default directory for opening and saving<br />
load test scripts (.bdf files).<br />
Procedure To specify layout settings:<br />
1 From the SilkPerformer menu bar, select Settings/System.<br />
2 Click the Layout tab.<br />
3 Use the Editor area to customize how the editor behaves when you<br />
manually insert text into a script file.<br />
4 In the Tab. size field, enter the number of space characters that equal one<br />
tab character.<br />
5 Select the Auto indent option to automatically insert indents in your test<br />
script. Each time you create a new line in a script file, the line is<br />
automatically indented the same number of spaces as the previous line.<br />
6 Select the Replace tabs with spaces option to automatically insert four<br />
spaces each time a tab is used in a test script. This option makes it easier<br />
to view script files in a text editor.<br />
7 Click the Font & Colors button to select a font and style for<br />
SilkPerformer's script editor. You can select a different color to use for<br />
each type of content in a test script.<br />
The Editor Font and Colors Settings dialog opens.<br />
8 From the Text type list, select the type of text for which you want to<br />
adjust the font, size, style, and color.<br />
SilkPerformer User Guide 35
2 CONFIGURING SILKPERFORMER<br />
SilkPerformer Workbench<br />
Configuring control<br />
settings<br />
- Normal Text - Identifiers and symbols.<br />
- Keywords - Predefined statements.<br />
- Custom Keywords - Words added to the keyword list by the user.<br />
- Numbers - Whole numbers and floating-point values.<br />
- Comments - Notes in explanation included in a script.<br />
- Strings - Sequence of characters delimited by " characters.<br />
9 From the Font name, Font size, Style, and Color drop-down lists, select<br />
the format options you want to use for the currently selected text type.<br />
10 Click OK.<br />
11 Use the Printing area to specify options for how script files are formatted<br />
when they are printed. Select the Line number option to automatically<br />
number the lines in the printed script file.<br />
12 Select the Wrap marker option to automatically print a marker at the end<br />
of each line that wraps to the next line.<br />
13 Click the Font button to select a font and style for your printed test<br />
scripts. The Printer Font and Colors Settings dialog opens.<br />
14 From the Text type list, select the type of text for which you want to<br />
adjust the font, size, and style. (See step 8).<br />
15 From the Font name, Font size, and Style drop-down lists, select the<br />
format options you want to use for the currently selected text type.<br />
16 Click OK.<br />
17 Use the Custom keywords area to define custom keywords. For<br />
readability, keywords are highlighted in the SilkPerformer tree view<br />
editor.<br />
18 To enter a new custom keyword into the list, click the New button to the<br />
immediate right of the list heading. All keywords entered in the list are<br />
highlighted in SilkPerformer's tree view editor for readability.<br />
19 To remove a custom keyword from the list, select it and click the Delete<br />
button to the far right of the list heading.<br />
Procedure To specify control settings:<br />
1 From the SilkPerformer menu bar, select Settings/System.<br />
2 Click the Control tab.<br />
3 Use the Virtual users area to set options for running the virtual users in<br />
your load test. In the Virtual users per process field, insert the number of<br />
virtual users to be run within each system process.<br />
36 SilkPerformer User Guide
2 CONFIGURING SILKPERFORMER<br />
SilkPerformer Workbench<br />
4 In the Stop virtual users after __ transaction failures field, enter the<br />
number of transaction failures after which virtual users should be<br />
stopped.<br />
5 Use the Remote agent connection area to specify whether or not to<br />
optimize the controller-agent communication for local or wide area<br />
networks.<br />
Select the LAN option for the controller-agent communication to be<br />
optimized for a local area network. This is especially useful if all of the<br />
agent computers you are going to use for your load tests are located in<br />
the same local area network and all are using a fast connection.<br />
Select the WAN option for the controller-agent communication to be<br />
optimized for a wide area network. This is especially useful if you are<br />
going to use many agent computers that are located somewhere on the<br />
Internet.<br />
Select the Custom option for entering custom parameters for agentcontroller<br />
communication.<br />
Note Use the Custom option only if you run into problems with<br />
LAN or WAN settings.<br />
6 In the Connect field (enabled only when the Custom option is selected),<br />
enter the time, in seconds, in which the controller computer should try to<br />
establish a connection to each remote agent computer. If connection to an<br />
agent computer is not successful within this time interval, SilkPerformer<br />
will report it as an error.<br />
Note It is recommended that you not change this setting.<br />
7 In the Ping Interval field, enter the length of time, in seconds, within<br />
which the controller computer should attempt to retrieve load test status<br />
data from the agent computers. The controller computer requests this<br />
information from the agent computers whenever the contents of the<br />
Monitor window need to be updated. If the agent computer fails while<br />
receiving data during this time interval, SilkPerformer will report a<br />
warning.<br />
Note It is recommended that you not change this setting.<br />
8 Edit the time (in seconds) in the Command field (enabled only with the<br />
Custom option selected), in which the controller computer should try to<br />
send a command to a remote agent computer. If sending the command to<br />
the agent computer is not successful within this time interval,<br />
SilkPerformer will report it as an error.<br />
Note It is recommended that you not change this setting.<br />
SilkPerformer User Guide 37
2 CONFIGURING SILKPERFORMER<br />
SilkPerformer Workbench<br />
Configuring result<br />
settings<br />
Configuring<br />
workspace settings<br />
Procedure To specify results settings:<br />
1 From the SilkPerformer menu bar, select Settings/System.<br />
2 Click the Results tab.<br />
3 Select the Merge time series data on agents option in the Time series<br />
data area for time series data files (.tsd) to be merged in the agent<br />
computers where they were created and to ensure that only the merged<br />
files are sent to the controller computer. This is especially useful for<br />
quickly processing the results of long load tests as the calculations will<br />
then be distributed to various processors and less traffic will be sent over<br />
the network. The drawback, however, is that time series data files for<br />
individual virtual users are not available on the controller computer.<br />
Note If you do not select this option, you will have to manually<br />
merge the time series data files in Performance Explorer to get<br />
overall results for the load test.<br />
4 Click OK to exit the dialog and save your changes.<br />
Procedure To specify workspace settings:<br />
1 From the SilkPerformer menu bar, select Settings/System. Click the<br />
Workspace tab.<br />
2 Select the Open the last opened project file on startup option in the<br />
Workbench start options area to have the last load test project you<br />
worked on opened automatically each time you launch SilkPerformer.<br />
3 Use the Workflow options area to specify the display of the workflow bar.<br />
Select the Always enable all workflow buttons checkbox to enable all<br />
buttons in the workflow bar. By default, workflow buttons are enabled in<br />
sequence based on your progress through SilkPerformer’s workflow.<br />
4 Select the Show simple workflow checkbox to enable simple workflow.<br />
Simple workflow bypasses the baseline concept to make the load testing<br />
process quicker and easier.<br />
5 Check the Enable document file locking checkbox in the Document file<br />
options area to enable document file locking. The document file locking<br />
mechanism allows multiple users (on SilkPerformer Controller<br />
machines) to work simultaneously on the same document files (bdf script<br />
files, bdh include files, data files) without overwriting the files of each<br />
other. Locked document files from other users can still be used read-only.<br />
This option is enabled by default.<br />
38 SilkPerformer User Guide
2 CONFIGURING SILKPERFORMER<br />
SilkPerformer Recorder<br />
6 Click the Show All Messages button in the Uncheckable message boxes<br />
area to reset the display setting of all uncheckable message boxes to their<br />
default value so that all message boxes will be displayed again as long as<br />
you do not uncheck the corresponding setting.<br />
To specify Test Manager settings, see “Configuring Test Manager Integration”.<br />
To specify Source Control settings, see “Configuring Source Control<br />
Integration”.<br />
SilkPerformer Recorder<br />
The basic settings used by SilkPerformer's recording and script generation<br />
program, the SilkPerformer Recorder, include settings for capturing and<br />
recording the network traffic that will be modeled in your load test scripts.<br />
These settings comprise profiles that are applied to client applications during<br />
data capture and recording. Proxies can be added or removed, and their settings<br />
edited. You can set the port for the integrated Web server that is used by the<br />
SilkPerformer Recorder, and enable recording to begin as soon as the client<br />
application is started.<br />
Application profiles<br />
In configuring the SilkPerformer Recorder, a wide choice of options can be set<br />
for client applications to use during data capture and recording. New application<br />
profiles can be added and named; existing profiles can be edited, removed, or<br />
copied; and applications can be started. Options that can be set include the<br />
application path, working directory, program arguments, and application type<br />
for each application, as well as the method that the SilkPerformer Recorder is to<br />
use for recording traffic.<br />
Proxies<br />
New proxies can be set up on your computer, and existing proxies can be edited<br />
or removed. A wide number of options can be specified for each proxy,<br />
including the protocol type, the listen port, details of the server to which the<br />
SilkPerformer Recorder forwards intercepted traffic, and details concerning the<br />
client certificate that the SilkPerformer Recorder presents to the Web server.<br />
When a SOCKS proxy is being set up, automatic protocol detection can be<br />
disabled for any port you want to specify. Whenever a client application sends<br />
SOCKS traffic to one of these specified ports, the SilkPerformer Recorder<br />
records traffic at the TCP/IP level without trying to detect a familiar protocol<br />
first. A port range can be specified for which the recording of data by the<br />
SilkPerformer Recorder will be suppressed.<br />
Services<br />
Options can be set for the Web server that is integrated into SilkPerformer, and<br />
also for recording with the SilkPerformer Recorder. The port that the integrated<br />
Web server listens to can be specified, and you can use this server to retrieve the<br />
SilkPerformer User Guide 39
2 CONFIGURING SILKPERFORMER<br />
SilkPerformer Recorder<br />
Configuring<br />
application profile<br />
settings<br />
Configuring proxy<br />
settings<br />
Configuring services<br />
root CA certificate that signed the SilkPerformer Recorder server certificate.<br />
The root CA certificate may be downloaded from this Web site and installed into<br />
the Web browser to avoid security warnings by the browser. See “Client<br />
Certificates” for details.<br />
The SilkPerformer Recorder can be set to begin recording function calls<br />
automatically when an application is started from within the SilkPerformer<br />
Recorder.<br />
Procedure To specify application profile settings:<br />
1 From the SilkPerformer menu bar, select Settings/System. Click the<br />
Recorder icon.<br />
2 The Recorder group opens at the Application Profiles tab.<br />
3 Use the Application profile list to view the application profiles that are<br />
set up for recording network traffic, to add new application profiles, and<br />
to edit, remove, or copy existing profiles. You can also start applications<br />
from here.<br />
4 To add, edit, copy, or remove application profiles, or to start an<br />
application, see “Application Profiles”.<br />
Procedure To specify proxy settings:<br />
1 From the SilkPerformer menu bar, select Settings/System. Click the<br />
Recorder icon.<br />
2 Click the Proxies tab. Use the Proxies list to activate proxies, to add<br />
proxies, or to edit or remove existing ones.<br />
3 To activate, add, edit, remove, or copy a proxy, see “Proxy Settings”.<br />
Procedure To specify services settings:<br />
1 From the SilkPerformer menu bar, select Settings/System. Click the<br />
Recorder icon.<br />
2 Click the Services tab.<br />
3 Use the Integrated Web server area to change the port number of the Web<br />
server that is integrated into the SilkPerformer Recorder. The default<br />
address of the server is http://localhost:19100 (where 19100 is the<br />
default port number). You must have the SilkPerformer Recorder<br />
running to use this Web server.<br />
4 In the Port field, enter the port that the integrated Web server listens to.<br />
The default is 19100. Using the integrated Web server, you can retrieve<br />
the root CA certificate that signed the SilkPerformer Recorder server<br />
40 SilkPerformer User Guide
2 CONFIGURING SILKPERFORMER<br />
Application Profiles<br />
certificate. The root CA certificate may be downloaded from this Web<br />
server and installed into the Web browser to avoid security warnings by<br />
the browser. See “Client Certificates” for details.<br />
5 Select the Autostart recording option in the Recording area to start<br />
recording traffic and function calls automatically when SilkPerformer’s<br />
Recorder is started. If this option is disabled, you must use the Start<br />
Recording button on the SilkPerformer Recorder toolbar to begin<br />
recording.<br />
6 Click OK to exit the dialog and save your changes.<br />
Application Profiles<br />
Adding application<br />
profiles<br />
Procedure To add an application profile:<br />
1 From the SilkPerformer menu bar, select Settings/System.<br />
The System Settings - Workbench dialog appears, open at the Agent Pool<br />
tab of the Workbench group.<br />
2 Click the Recorder icon on the left of the dialog. The Recorder group<br />
opens at the Application Profiles tab.<br />
You can also reach this dialog by means of the Model Script button on<br />
the SilkPerformer Workflow bar and the ensuing dialog, or from the<br />
SilkPerformer Recorder.<br />
3 Click the Add button to add a new application profile to the list.<br />
The Application Profile dialog appears.<br />
4 In the Application profile field, enter a unique name for the application<br />
profile. The name is required to identify the application in the<br />
SilkPerformer Recorder window.<br />
5 In the Application path field, enter the name of the application's<br />
executable and the directory where it is located. To locate the executable,<br />
click Browse.<br />
6 Select the Record executable is different from application path option to<br />
enable recording of a process that is different from the specified<br />
application's executable. This may be required if the application is hosted<br />
by another process that powers the communication process.<br />
7 In the Record executable field, enter the name of the application's<br />
executable and the directory where it is located. To locate the executable,<br />
click Browse.<br />
SilkPerformer User Guide 41
2 CONFIGURING SILKPERFORMER<br />
Application Profiles<br />
8 In the Working directory field, enter the working directory of the<br />
application. The working directory is the folder that contains the<br />
application or some related files. Some applications need files located in<br />
other directories, so you may have to specify the folder where these files<br />
are located.<br />
9 In the Program arguments field, enter any number of application<br />
parameters. Passing parameters to an application is useful, for example,<br />
when recording the function calls performed by a command line tool that<br />
has no graphical user interface.<br />
10 From the Application type drop-down list, select the type of application<br />
traffic you want the SilkPerformer Recorder to capture:<br />
- Custom Application to have the SilkPerformer Recorder hook into a<br />
particular function library of the application, and capture and record<br />
all the traffic that the application generates.<br />
- MS Internet Explorer to have the SilkPerformer Recorder redirect<br />
traffic from Microsoft's Internet Explorer to the Recorder proxies.<br />
- Netscape Browser to have the SilkPerformer Recorder redirect<br />
traffic from your Netscape browser to the Recorder proxies.<br />
- Windows NT Service to have the SilkPerformer Recorder capture and<br />
record all traffic generated by a Windows service.<br />
11 Use the Protocol selection area of the dialog to specify the function<br />
library that you want the SilkPerformer Recorder to hook into.<br />
Note The options available here vary based on the selected<br />
application type.<br />
12 Select the Web option to have the SilkPerformer Recorder hook into a<br />
Web application, intercept all function calls, and display results.<br />
When the Web option is selected, you can click the Web Settings button<br />
to open the Web Settings dialog, which enables you to select the method<br />
that the Recorder is to use to capture Web and TCP/IP-based traffic.<br />
- Select the WinSock option to have the SilkPerformer Recorder hook<br />
into the WinSock function library of the client application, wrap all<br />
traffic the application produces in the SOCKS protocol, and redirect<br />
the traffic to a Recorder SOCKS proxy.<br />
- Select the Proxy option to have the SilkPerformer Recorder redirect<br />
all traffic from the selected browser to the Recorder proxies.<br />
Note: This is available only when MS Internet Explorer or Netscape<br />
Browser is selected in the Application type list box.<br />
42 SilkPerformer User Guide
2 CONFIGURING SILKPERFORMER<br />
Application Profiles<br />
- Select the SocksCap option to have the SilkPerformer Recorder use<br />
SocksCap to hook into the WinSock function library of the<br />
application for which you want to record traffic. SocksCap wraps all<br />
the traffic the application produces in the SOCKS protocol and<br />
redirects the traffic to a Recorder SOCKS proxy.<br />
Note: This is available only when SocksCap is installed and Custom<br />
Application, MS Internet Explorer or Netscape Browser is selected<br />
in the Application type list box.<br />
- When the Web option is selected you can also enable any available<br />
Java APIs by selecting the corresponding checkboxes in the field on<br />
the right of the dialog. The following Java APIs are available for<br />
selection:<br />
o Jacada<br />
o Java EJB (JBoss)<br />
o Java EJB (Other)<br />
o Java EJB (WebLogic)<br />
o Java EJB (WebSphere)<br />
o Java JNDI (Naming & Directory Interf.)<br />
o Java RMI (Custom Client-Server)<br />
o Jolt<br />
o Oracle Applications 11i<br />
o Oracle Applications 12i<br />
o Oracle Forms 6i<br />
o Oracle Forms 6i on HTTP/HTTPS<br />
o Oracle Forms 6i on Socket<br />
o Oracle Forms 9i<br />
o Product Manager Sample Extensions<br />
- When a Java API is enabled, you can click the Java Settings button<br />
to open a dialog that enables you to specify Java recording settings,<br />
such as the hooked Java Virtual Machine library or other settings.<br />
Select the Java Virtual machine hooking option to automatically<br />
hook into the Java VM. If this option is enabled, from the JVM DLL<br />
drop-down list you must select the dynamic link library you want the<br />
SilkPerformer Recorder to hook into for recording traffic.<br />
Select the Network only option to only hook class and jar files that<br />
SilkPerformer User Guide 43
2 CONFIGURING SILKPERFORMER<br />
Application Profiles<br />
are downloaded via HTTP.<br />
Select the Manual option if you have manually prepared a startup<br />
script for recording your Java application.<br />
13 Select the TCP/IP option to have the SilkPerformer Recorder hook into a<br />
TCP/IP application, intercept all function calls, and display the results.<br />
14 Select the IIOP option to have the SilkPerformer Recorder hook into the<br />
IIOP function library of the client application, intercept all the function<br />
calls, and display the results.<br />
15 Select the Citrix option to have the SilkPerformer Recorder hook into a<br />
Citrix application, intercept all function calls, and display the results.<br />
16 Select the ODBC option to have the SilkPerformer Recorder hook into<br />
the ODBC function library of the client application, intercept all function<br />
calls, and display the results.<br />
17 Select the DB2 CLI option to have the SilkPerformer Recorder hook into<br />
the DB2 CLI function library of the client application, intercept all<br />
function calls, and display the results.<br />
18 Select the Oracle OCI option to have the SilkPerformer Recorder hook<br />
into the Oracle function library of the client application, intercept all<br />
function calls, and display the results.<br />
Click the OCI Settings button to open a dialog that allows you to select<br />
the OCI client library that is to be hooked into for intercepting function<br />
calls. Select the appropriate library from the drop-down list and click<br />
OK.<br />
19 Select the Tuxedo option to have the SilkPerformer Recorder hook into<br />
the TUXEDO function library of the client application, intercept all<br />
function calls, and display the results.<br />
20 Select the COM option to have the SilkPerformer Recorder hook into a<br />
COM application, intercept all function calls, and display the results.<br />
Click the Interfaces button to open a dialog that allows you to select the<br />
server interfaces that should be used with the COM application. Select<br />
appropriate interfaces from the drop-down list and click OK.<br />
To add a new server interface, select the Add button on the Server<br />
Interfaces dialog.<br />
To delete a selected server interface from the list, select the Remove<br />
button on the Server Interfaces dialog.<br />
21 Select the ADO option to have the SilkPerformer Recorder hook into an<br />
ADO application, intercept all function calls, and display the results.<br />
22 Select SAPGUI option to have the SilkPerformer Recorder hook into<br />
functions of SAPGUI interfaces, intercept all the function calls, and<br />
display the results<br />
44 SilkPerformer User Guide
2 CONFIGURING SILKPERFORMER<br />
Proxy Settings<br />
23 Click OK to add the new profile to the Application Profiles list.<br />
Editing, copying, &<br />
removing profiles<br />
Procedure To edit, copy, or remove an application profile, or to start an<br />
application:<br />
1 At the Application Profiles tab in the Recorder group, select an<br />
application profile.<br />
2 Click the Edit or Copy button. The Application Profile dialog appears.<br />
3 Edit or copy the profile as necessary, based on the instructions detailed<br />
“Adding application profiles”<br />
4 To remove a selected application profile, click the Remove button.<br />
5 Click Yes on the confirmation dialog to remove the profile.<br />
Proxy Settings<br />
Configuring proxy<br />
settings<br />
Procedure To configure proxy settings:<br />
1 From the SilkPerformer menu bar, select Settings/System.<br />
The System Settings - Workbench dialog appears, open at the Agent Pool<br />
tab of the Workbench group.<br />
2 Click the Recorder icon on the left of the dialog. The Recorder group<br />
opens at the Application Profiles tab.<br />
3 Click the Proxies tab.<br />
4 Use the Proxies list to activate proxies, add proxies, edit proxies, or<br />
remove proxies.<br />
5 To activate a proxy, select the checkbox to the left of the proxy name.<br />
6 Click the Add button to set up a new proxy on the controller computer.<br />
You can set up proxies for recording a number of types of traffic, and you<br />
can have a number of proxies active at the same time.<br />
The Proxy Settings dialog appears.<br />
7 Use the Proxy type area to select a protocol type and a port for<br />
forwarding and recording traffic.<br />
8 From the Protocol drop-down list, select a protocol type for forwarding<br />
and recording traffic. You have to set up a proxy for each type of traffic<br />
you want to record. Forwarding and recording traffic with the following<br />
protocols is supported:<br />
- FTP - File Transfer Protocol<br />
- HTTP - Hypertext Transfer Protocol<br />
- LDAP - Lightweight Directory Access Protocol<br />
SilkPerformer User Guide 45
2 CONFIGURING SILKPERFORMER<br />
Proxy Settings<br />
- POP3 - Post Office Protocol<br />
- SMTP - Simple Mail Transport Protocol<br />
- SOCKS - When capturing SOCKS traffic, the SilkPerformer<br />
Recorder automatically detects other protocols like IIOP, FTP, POP3<br />
and SMTP for recording.<br />
- TCP/IP - (Custom Protocol) Custom protocol based on TCP/IP.<br />
9 In the Listen port field, enter the port number to which traffic will be sent<br />
by the traffic-generating client computer. Although any port not in use<br />
can be chosen, avoid standard port numbers (usually smaller than 1500).<br />
10 Use the Remote host area to specify the host name or the IP address, and<br />
the port of the server to which you want the SilkPerformer Recorder to<br />
forward intercepted traffic.<br />
11 Select the Any option to forward intercepted traffic to the host specified<br />
by the traffic-generating client computer.<br />
Select the Proxy/Firewall option to forward intercepted traffic to a<br />
specified proxy or firewall. In this case, the host name and IP address<br />
specified by the traffic-generating client computer are ignored.<br />
Select the Specified option to forward intercepted traffic to a specified<br />
remote host. In this case, the host name and IP address specified by the<br />
traffic-generating client computer are ignored.<br />
12 In the case of a specified remote host, select the Secure checkbox to<br />
record and forward Secure Socket Layer protocol traffic. If this option is<br />
selected, HTTPS traffic will be recorded instead of HTTP traffic, for<br />
example.<br />
13 In the Host name or IP address field, enter the host name or IP address of<br />
a specific server to which you want the SilkPerformer Recorder to<br />
forward intercepted traffic.<br />
14 In the Port field, enter the port number that a specific server—the one to<br />
which the SilkPerformer Recorder forwards intercepted traffic—listens<br />
to.<br />
15 Use the Client certificate area to select a client certificate that the<br />
SilkPerformer Recorder presents to the Web server on behalf of the real<br />
client's certificate. To use a client certificate, you must export it from the<br />
Web browser and place it in the Recorder's certificate store first.<br />
16 From the Certificate drop-down list, select a client certificate that the<br />
SilkPerformer Recorder is to present to the Web server on behalf of the<br />
real client’s certificate.<br />
46 SilkPerformer User Guide
2 CONFIGURING SILKPERFORMER<br />
Proxy Settings<br />
17 Click the View button to view detailed information about the client<br />
certificate currently in use. The information appears in the View<br />
Certificate dialog.<br />
18 Click the Import button to import a new client certificate from a<br />
certificate file (.p12, .pfx, or .pem). To use a client certificate, you must<br />
export it from the Web browser and place it in the SilkPerformer<br />
Recorder's certificate store first.<br />
19 The Open Certificate dialog appears. Use this dialog to locate and select<br />
the new client certificate that is to be imported.<br />
20 To remove the client certificate that is currently in use, click the Remove<br />
button.<br />
21 Click Yes on the confirmation dialog to remove the certificate.<br />
22 When setting up a SOCKS proxy, use the Record always at TCP/IP<br />
protocol level area to specify any number of ports for which to disable<br />
automatic protocol detection. Whenever a client application sends<br />
SOCKS traffic to one of the specified ports, the SilkPerformer Recorder<br />
records traffic at the TCP/IP level without attempting to detect a familiar<br />
protocol first.<br />
23 In the Within port range field, you can enter multiple port numbers and<br />
ranges, separated by commas (,); a range specification consists of the<br />
lower and upper boundary, separated by a hyphen (-).<br />
24 Use the Suppress recording (only forward data) area to specify a port<br />
range for which you want to suppress the recording of data by the<br />
SilkPerformer Recorder. The data will still be forwarded, however.<br />
25 In the Within port range field, enter a port range for which you want to<br />
suppress the recording of data by the SilkPerformer Recorder; the data<br />
will still be forwarded. You can enter multiple port numbers and ranges,<br />
separated by commas (,); a range specification consists of the lower and<br />
upper boundary, separated by a hyphen (-).<br />
26 Click OK.<br />
27 To edit a selected proxy, click the Edit button.<br />
The Proxy Settings dialog appears.<br />
28 Use steps outlined in this section to edit the selected proxy settings.<br />
29 To remove a selected proxy, click the Remove button.<br />
30 Click Yes on the confirmation dialog to remove the proxy.<br />
31 Click OK to exit the dialog and save your changes.<br />
SilkPerformer User Guide 47
2 CONFIGURING SILKPERFORMER<br />
Remote Agents<br />
Remote Agents<br />
Configuring remote<br />
agents, specifying<br />
port settings<br />
Configuring remote<br />
agents, specifying a<br />
password<br />
Configuring the<br />
controller connection<br />
SilkPerformer allows for remote agent computers to be located both in your<br />
LAN or somewhere out on the Internet. The communication between the remote<br />
agents and the controller can be configured in a distributed secure environment<br />
to include secure and encrypted connections.<br />
Communication between remote agents and the controller may be made in a<br />
variety of ways with a choice of proxies, including connections made through<br />
multiple firewalls and through TCP/IP, HTTP, or SOCKS firewalls. These<br />
connections include access through choices for secure or non-secure<br />
connections, with or without encryption.<br />
Procedure To configure remote agents and specify port settings:<br />
1 From the SilkPerformer menu bar, select Tools/System Configuration<br />
Manager.<br />
2 The System Configuration Manager dialog appears; click the Service<br />
Status tab.<br />
3 In the Port and Secure port fields, enter the numbers of the unsecured<br />
port and the secured port. By default these settings are 19200 for the<br />
unsecured port and 19201 for the secured port, respectively.<br />
4 Click OK.<br />
Procedure To configure remote agents and specify a password:<br />
1 From the SilkPerformer menu bar, select Tools/System Configuration<br />
Manager.<br />
2 The System Configuration Manager dialog appears; click the Service<br />
Status tab.<br />
3 To require that a password be used to secure controller/agent<br />
communication, click the Change button in the Password area. By<br />
specifying a password here, the controller must supply a password to be<br />
able to connect to that remote agent.<br />
4 After specifying a password, confirm the password, and then click OK.<br />
Procedure To configure how the controller connects directly to remote<br />
agents:<br />
1 From the SilkPerformer menu bar select Settings/System.<br />
2 The System Settings-Workbench dialog appears; click the Agent Pool tab.<br />
48 SilkPerformer User Guide
2 CONFIGURING SILKPERFORMER<br />
Remote Agents<br />
Connecting through<br />
TCP/IP firewalls<br />
3 In the Agent Pool tab you can choose to configure one of the agents you<br />
have already connected by choosing that agent from the window. Double<br />
click the name and computer icon for the agent you have already<br />
connected. If you have not yet chosen and named an agent to connect,<br />
then click the Add WAN Agent button. A LAN agent may also be added<br />
and configured at this time by choosing the Add LAN Agent button and<br />
choosing the agent from the list. After naming an agent, then proceed as<br />
you would for an agent already chosen, as follows:<br />
4 The Agent Connection Properties or the Add WAN Agent dialog appears,<br />
depending on if you are configuring an already chosen agent or adding a<br />
WAN agent; apart from the name in the name bar of the dialog box, these<br />
two dialog windows are the same. You have a number of options in this<br />
dialog for choosing how the controller connects to remote agents:<br />
- Security - Encryption (SSL): By checking this option, you force the<br />
controller to use a secure connection to the remote agent.<br />
- Security - Authenticate/Password: By checking this option and<br />
supplying a password, the controller will connect to the remote agent<br />
using a password. The password must be identical to the password<br />
you specified in the System Configuration Manager.<br />
- Connection - Connect to port: The controller connects to the agent<br />
using this port if you have turned off the security. The port must be<br />
identical to the Agent connection port you specified in the System<br />
Configuration Manager.<br />
- Connection - Connect to secure port: The controller connects to the<br />
agent using this port if you have turned on the security option. The<br />
port must be identical to the Agent connection secure port you<br />
specified in the System Configuration Manager.<br />
- Firewall - Use HTTP proxy server: The controller connects via an<br />
HTTP firewall to the agent by tunneling the controller/agent<br />
communication in the HTTP protocol.<br />
- Firewall - Use Socks proxy server: The controller connects via a<br />
SOCKS firewall to the agent by tunneling the controller/agent<br />
communication in the SOCKS protocol.<br />
Procedure To configure how the controller connects to remote agents<br />
through TCP/IP firewalls:<br />
1 From the SilkPerformer menu bar, select Tools/System Configuration<br />
Manager.<br />
2 The System Configuration Manager dialog appears; click the Service<br />
Status tab.<br />
SilkPerformer User Guide 49
2 CONFIGURING SILKPERFORMER<br />
Remote Agents<br />
3 In the Port and Secure port fields, enter the numbers of the unsecured<br />
port and the secured port. By default these settings are 19200 for the<br />
unsecured port and 19201 for the secured port, respectively. These port<br />
connections must be changed in order to tell SilkPerformer where it can<br />
go through the firewall if the port is open.<br />
4 If you want to change the port settings, the following examples may be<br />
helpful to you:<br />
Connecting through<br />
HTTP firewalls<br />
Ports to open on the firewall:<br />
- 20000: default connection port to SilkPerformer ACS<br />
- 20020: secure connection to ACS (you only have to open this port if<br />
you want a secure connection).<br />
- 20021, (20022*): for connecting to SilkPerformer Simulation<br />
Controller Agent and System Configuration Manager Agent. (Port<br />
20022* is only to be used if you want the System Configuration<br />
Manager and a Simulation Controller Agent to run simultaneously.)<br />
5 Click OK.<br />
Procedure To configure how the controller connects to remote agents<br />
through HTTP firewalls:<br />
1 From the SilkPerformer menu bar select Settings/System.<br />
2 The System Settings-Workbench dialog opens to the Agent Pool tab.<br />
3 In the Agent Pool tab you can choose to configure one of the agents you<br />
have already connected by choosing that agent from the window.<br />
Double-click the name and computer icon/image for the agent you have<br />
already connected. If you have not yet selected and named an agent to<br />
connect to, click the Add LAN Agent or Add WAN Agent button and<br />
proceed as follows:<br />
a<br />
After adding a LAN agent, double-click the name and computer<br />
icon/image for the agent you have just connected.<br />
b After naming a WAN agent, proceed as you would for an agent<br />
you’d already selected.<br />
4 The Agent Connection Properties or the Add WAN Agent dialog appears,<br />
depending upon whether you are configuring an already selected agent or<br />
adding a WAN agent (apart from the name in the name bar of the dialog,<br />
these two dialogs are the same).<br />
5 In the Firewall area of the dialog, check the Use HTTP proxy server<br />
option.<br />
50 SilkPerformer User Guide
2 CONFIGURING SILKPERFORMER<br />
Remote Agents<br />
Connecting through<br />
SOCKS firewalls<br />
6 You must then enter the address for the firewall in the Address field. The<br />
address and port number to be used can be obtained from your system<br />
administrator.<br />
7 In the corresponding Port field to the right of the Address field, you must<br />
add the port number through which SilkPerformer is to tunnel.<br />
8 Click OK.<br />
Procedure To configure how the controller connects to remote agents<br />
through SOCKS firewalls:<br />
1 From the SilkPerformer menu bar select Settings/System.<br />
2 The System Settings-Workbench dialog opens to the Agent Pool tab.<br />
3 In the Agent Pool tab you can choose to configure one of the agents you<br />
have already connected by choosing that agent from the window.<br />
Double-click the name and computer icon/image for the agent you have<br />
already connected. If you have not yet selected and named an agent to<br />
connect to, click the Add LAN Agent or Add WAN Agent button and<br />
proceed as follows:<br />
a<br />
After adding a LAN agent, double-click the name and computer<br />
icon/image for the agent you have just connected.<br />
b After naming a WAN agent, proceed as you would for an agent<br />
you’d already selected.<br />
4 The Agent Connection Properties or the Add WAN Agent dialog appears,<br />
depending upon whether you are configuring an already selected agent or<br />
adding a WAN agent; apart from the name in the name bar of the dialog,<br />
these dialogs are the same.<br />
5 In the Firewall area of the dialog, check the Use SOCKS proxy server<br />
option.<br />
6 You must then enter the address for the firewall in the Address field. The<br />
address and port number to use can be obtained from your system<br />
administrator.<br />
7 In the corresponding Port field to the right of the Address field, add the<br />
port number through which SilkPerformer is to listen.<br />
8 Click OK.<br />
SilkPerformer User Guide 51
2 CONFIGURING SILKPERFORMER<br />
Client Certificates<br />
Connecting through<br />
multiple firewalls<br />
Procedure To configure how the controller connects to remote agents<br />
through multiple firewalls:<br />
1 To configure a SilkPerformer agent connection so that it uses a SOCKS<br />
proxy and an HTTP proxy in a series, you must indicate the address and<br />
port number for each. The agent will first connect to the SOCKS proxy<br />
and then connect to the HTTP proxy. From the SilkPerformer menu bar<br />
select Settings/System.<br />
2 The System Settings-Workbench dialog opens to the Agent Pool tab.<br />
3 In the Agent Pool tab you can choose to configure one of the agents you<br />
have already connected by choosing that agent from the window.<br />
Double-click the name and computer icon/image for the agent you have<br />
already connected. If you have not yet selected and named an agent to<br />
connect to, click the Add LAN Agent or Add WAN Agent button and<br />
proceed as follows:<br />
a<br />
After adding a LAN agent, double-click the name and computer<br />
icon/image for the agent you have just connected.<br />
b After naming a WAN agent, proceed as you would for an agent<br />
you’d already selected.<br />
4 The Agent Connection Properties or the Add WAN Agent dialog appears,<br />
depending upon whether you are configuring an already selected agent or<br />
adding a WAN agent (apart from the name of the dialog, these dialogs<br />
are the same).<br />
5 In the Firewall area of the dialog, check the Use SOCKS proxy server<br />
option and the Use HTTP proxy server option.<br />
6 You must then enter the address and port number for the firewall in the<br />
corresponding Address and Port fields for each of the selected options.<br />
The address and port number to use can be obtained from your system<br />
administrator.<br />
7 After entering the information in both sets of fields, click OK to<br />
complete the configuration.<br />
Client Certificates<br />
A secure Web server can be configured to refuse clients that do not have a<br />
proper client certificate from a trusted certification authority. In such cases, the<br />
server asks the client to send its certificate before performing any requests. As<br />
long as the client certificate is signed by a trusted CA, the server does not care<br />
what the client is. If the Web server requests a client certificate, it is necessary to<br />
52 SilkPerformer User Guide
2 CONFIGURING SILKPERFORMER<br />
Client Certificates<br />
Installing client<br />
certificates<br />
Using a client<br />
certificate for<br />
recording<br />
export the client certificate from the Web browser and place it in<br />
SilkPerformer’s certificate store to be used for recording and replay.<br />
Procedure To install a client certificate:<br />
1 From the menu bar, select Settings/Active Profile.<br />
2 In the shortcut list on the left side, click the Internet icon.<br />
3 Switch to the Security tab.<br />
4 In the Client certificate area click Import and locate a certificate file of<br />
the formats .p12, .pfx, or .pem (e.g., C:\clientcert\ johndoe.pfx).<br />
Enter the password you used for encryption when exporting the<br />
certificate from your Web browser.<br />
Note: You have to export a client certificate from your Web browser<br />
before the SilkPerformer Recorder can import it.<br />
5 Click OK. This confirmation also creates a certificate file (.pem) in the<br />
SilkPerformer user data directory (e.g., \Working\Data\johndoe.pem).<br />
Note: The certificate's password/pass phrase is set to "Performer"<br />
(without the enclosing comma) when using SilkPerformer's Client<br />
Certificate Import facility.<br />
Each proxy connection set up in the SilkPerformer Recorder can be<br />
associated with a client certificate. The SilkPerformer Recorder presents<br />
the client certificate to the Web server on behalf of the actual client.<br />
Procedure To use a client certificate for recording:<br />
1 From the menu bar, select Settings/System.<br />
The System Settings – Workbench dialog opens.<br />
2 In the shortcut list on the left, click the Recorder icon.<br />
3 In the System Settings - Recorder dialog, click the Proxies tab.<br />
4 Click Add to set up a new proxy connection or select an existing proxy of<br />
your choice to be associated with a client certificate (e.g., SOCKS) and<br />
click the Edit button.<br />
5 Select an appropriate certificate from the Certificate drop-down list in<br />
the Client Certificate area (e.g., John Doe).<br />
If you have not imported any client certificates so far, follow the<br />
procedure for installing a client certificate, as shown above.<br />
6 Click OK.<br />
7 Restart the SilkPerformer Recorder before beginning recording.<br />
The SilkPerformer replay engine presents the client certificate to the Web server<br />
on behalf of the actual client.<br />
SilkPerformer User Guide 53
2 CONFIGURING SILKPERFORMER<br />
Client Certificates<br />
Replay within the GUI<br />
Replay using the<br />
scripting function<br />
Handling client<br />
certificates with the<br />
Web browser<br />
Exporting client<br />
certificates<br />
Procedure To use a client certificate for replay using the SilkPerformer<br />
GUI:<br />
1 From the menu bar, select Settings/Active Profile.<br />
2 In the shortcut list on the left, click the Internet icon<br />
3 Switch to the Security tab.<br />
4 In the Client certificate area select an appropriate certificate from the<br />
Certificate drop-down list (e.g., John Doe).<br />
If you have not imported any client certificates so far, follow the<br />
procedure for installing a client certificate, as shown above.<br />
5 Click OK.<br />
Procedure To use a client certificate for replay using the scripting function:<br />
1 Use the bdl function SslSetClientCert(). For example,<br />
SslSetClientCert(johndoe.pem).<br />
A secure Web server can be configured to refuse clients that do not have a<br />
proper client certificate from a trusted certification authority. If a Web server<br />
requests a client certificate, it is necessary to export the client certificate from<br />
the Web browser and place it in SilkPerformer’s certificate store.<br />
Since the SilkPerformer Recorder works as a proxy between a client and a Web<br />
server, and the replay engine represents the simulated client itself, successful<br />
connection to the server requires a certificate from the client. Therefore the<br />
certificate must be exported by the Web browser and imported into<br />
SilkPerformer.<br />
Note When obtaining a client certificate from a certification<br />
authority, be sure to allow the private keys to be exported with the<br />
certificate. Otherwise, the certificate will be useless for the Secure<br />
Internet Recorder.<br />
Internet Explorer 6 Procedure To export a client certificate from Internet Explorer 6:<br />
1 From Internet Explorer’s menu bar, select Tools/Internet Options.<br />
The General tab of the Internet Options dialog opens.<br />
2 Click the Content tab.<br />
3 In the Certificates area, click the Certificates button.<br />
The Certificate Manager dialog opens.<br />
4 From the list, select the certificate to export then click Export.<br />
Internet Explorer automatically starts the Certificate Manager Export<br />
Wizard. Using the wizard, perform all steps described to export your<br />
54 SilkPerformer User Guide
2 CONFIGURING SILKPERFORMER<br />
Java Configuration<br />
client certificate.<br />
Note: You have to export the private key with the certificate for the<br />
certificate to be usable with the SilkPerformer Recorder.<br />
5 In the Certificate Manager dialog, click Close.<br />
6 Click OK to close the Internet Options dialog.<br />
The certificate file (.pfx) can now be imported by the SilkPerformer Recorder.<br />
Netscape 7 Procedure To export a client certificate from Netscape 7:<br />
1 From the Netscape menu bar, select Edit/Preferences.<br />
The Preferences dialog opens.<br />
2 Select Privacy & Security/Certificates from the menu on the left side.<br />
The Certificates dialog opens.<br />
3 Click the Manage Certificates button.<br />
The Certificate Manager dialog opens.<br />
4 Click the Backup button.<br />
5 In the File Name To Backup dialog, enter a name of the certificate file.<br />
6 In the following dialog, enter the password protecting your Netscape<br />
software security device.<br />
7 Afterwards, fill out the Choose a Certificate Backup Password dialog by<br />
entering the password used for encrypting your certificate.<br />
8 Click OK to close the Netscape dialog.<br />
Java Configuration<br />
General Java<br />
environment settings<br />
Java Environment configuration is managed by SilkPerformer’s system settings<br />
and individual project profile settings. Both system settings and profile settings<br />
offer the same Java configuration options. System settings serve as default<br />
settings for new projects and new profiles within existing projects. However,<br />
during load tests virtual users use the Java Environment configurations of the<br />
profiles to which they are assigned. For detailed information about Java profile<br />
settings, please refer to “Java options”.<br />
Note See “Java Integration” for information on setting up Java<br />
testing projects using SilkPerformer’s Java Framework.<br />
The Java SDK version, its location on your hard drive, and the class path can be<br />
configured using general Java settings. When a class path contains well-known<br />
locations such as a project directory or data directory, these path parts are<br />
automatically replaced with placeholders. Placeholders are useful when<br />
SilkPerformer User Guide 55
2 CONFIGURING SILKPERFORMER<br />
Java Configuration<br />
migrating projects or running virtual users on agent machines where the<br />
directories have different names than on the controller machine.<br />
Advanced settings<br />
Procedure To configure general Java system settings:<br />
1 Select System from the Settings menu.<br />
2 Click the Java group icon.<br />
3 On the General tab, select the version number of the Java virtual<br />
machine from the Version drop-down list.<br />
4 Click the Browse (...) button to the right of the Java home field to select<br />
the installation directory of the Java Virtual Machine.<br />
5 In the Classpath field, specify the class path of the Java Virtual Machine.<br />
By default the class path is set to the system class path.<br />
6 Click the File button to navigate to a class file and add it to the class path<br />
for the Java Virtual Machine.<br />
7 Click the Dir button to navigate to a directory and add it to the class path<br />
of the Java Virtual Machine.<br />
8 (Optional) Click the Up and Dwn buttons to move selected files up or<br />
down incrementally in the class path hierarchy. Reorder the files as<br />
necessary.<br />
9 (Optional) Click the Remove button to remove a selected file from the<br />
class path.<br />
10 Select the Use system classpath checkbox to ensure that the system class<br />
path is used.<br />
11 Click OK to save your settings.<br />
Some Java classes require specific Virtual Machine options to run successfully.<br />
Tuning parameters may also be specified in VM parameters. The JIT (Just-In-<br />
Time) compiler can be disabled when required and non-standard VM DLLs can<br />
be specified. To ensure that the Java environment is set up properly, the<br />
configuration should be tested.<br />
Procedure To configure advanced Java settings:<br />
1 Select System from the Settings menu.<br />
2 Click the Java group icon.<br />
3 Select the Advanced tab.<br />
4 In the Command line options field, enter any command line options that<br />
are to be passed to the Java Virtual Machine.<br />
5 Select the Disable JIT compiler checkbox if you want to disable the Just<br />
In Time (JIT) compiler of the Java Virtual Machine.<br />
56 SilkPerformer User Guide
2 CONFIGURING SILKPERFORMER<br />
Java Configuration<br />
Adding data files<br />
6 Click the Browse (...) button to the right of the JVM dll field to navigate<br />
to the Dynamic Link Library (.dll) that implements the Java Virtual<br />
Machine that is to be used.<br />
7 Click the Check JVM button to verify your Java Virtual Machine<br />
configuration settings.<br />
8 Click OK to save your settings.<br />
When data files have typical Java archive file extensions, such as .jar and .zip,<br />
SilkPerformer Workbench offers to add the files to the class path of the currently<br />
active profile.<br />
SilkPerformer User Guide 57
2 CONFIGURING SILKPERFORMER<br />
Java Configuration<br />
58 SilkPerformer User Guide
3<br />
Configuring 3Chapter<br />
Projects<br />
Introduction<br />
What you will learn<br />
This chapter explains how to configure SilkPerformer load test projects.<br />
This chapter contains the following sections:<br />
Section<br />
Page<br />
Overview 59<br />
Project Profile Settings 60<br />
Test Scripts 119<br />
Data Files 120<br />
Agent Computers 121<br />
Workload Definition 121<br />
Outlining Projects 125<br />
Overview<br />
A SilkPerformer project contains all the resources that are required to complete<br />
a load test. These include a workload, one or more profiles and test scripts, data<br />
files, and a specific number of agent computers. Options for all of these<br />
resources are available directly in SilkPerformer’s project tree view.<br />
“Project Profile Settings”: When a project is set up, profiles can be added,<br />
copied, renamed, or deleted; and options can be specified for recording traffic,<br />
replaying load test scripts, and generating test results. Options for the different<br />
kinds of network traffic that can be simulated are also available.<br />
“Test Scripts”: Load test scripts can be added to or removed from projects, and<br />
scripts can be compiled.<br />
SilkPerformer User Guide 59
3 CONFIGURING PROJECTS<br />
Project Profile Settings<br />
“Data Files”: It is important that all user data files (.csv), certificate files (.pem),<br />
random data files (.rnd), .idl files, and type library files (.tlb, .dll, .exe, .ocx, .olb,<br />
.pkg) required by test scripts be added to projects. Otherwise, they will not be<br />
available to remote agent computers during tests.<br />
“Agent Computers”: Agent computers on which load tests are run can be<br />
added—and existing agents can be removed.<br />
“Workload Definition”: Options for the workloads to be employed in load tests<br />
can be defined.<br />
Once you’ve configured load test properties, you’re ready for the first step in<br />
creating a load test: “Outlining a project”.<br />
Project Profile Settings<br />
A project profile contains many important project-specific settings. A project<br />
may contain as many different profiles as necessary, each with its own settings.<br />
New profiles can easily be added to projects; and existing profiles can be copied,<br />
renamed, or deleted.<br />
In each profile, options can be set for how the SilkPerformer Recorder generates<br />
test scripts from recorded traffic, and for the protocols that are used during<br />
recording. Simulation settings can be defined for script replay. Options for the<br />
results files that are generated during tests can be defined. Options are also<br />
available for the various types of network traffic that can be simulated: Internet,<br />
Web, CORBA/IIOP, COM, TUXEDO, Jolt, Database, Oracle Forms, Citrix,<br />
.NET, ADO, WAP, and Java.<br />
Specified settings are associated with specific load test projects. It is easy to<br />
switch between different projects, to edit projects, and to save projects so that<br />
they can be modified and reused later.<br />
Administering Profiles<br />
Adding profiles<br />
Procedure To add a profile:<br />
1 On the Project tab of SilkPerformer’s tree view window, right-click the<br />
Profiles folder.<br />
2 Select New Profile.<br />
3 The New Profile dialog appears. Enter a name for the new profile and<br />
click OK. The Profiles folder then expands, with the new profile<br />
appearing in the tree view.<br />
Alternative Select Project/New Profile from SilkPerformer’s menu<br />
bar.<br />
60 SilkPerformer User Guide
3 CONFIGURING PROJECTS<br />
Project Profile Settings<br />
Activating profiles<br />
Editing profiles<br />
Renaming profiles<br />
Deleting profiles<br />
Copying profiles<br />
Procedure To activate a profile:<br />
1 In the tree-view area, right-click the icon of the profile that you want to<br />
have set as the active profile.<br />
2 Select Set as Active Profile from the context menu. The active profile<br />
appears in bold text.<br />
Procedure To edit a profile:<br />
1 In the tree-view area, right-click the icon of the profile for which you<br />
want to edit settings.<br />
2 Select Edit Profile from the context menu.<br />
The Profile Settings dialog appears.<br />
3 Edit settings as required. For help on editing settings, see specific help<br />
topics in this guide.<br />
4 Click OK to exit the dialog and save your changes.<br />
Procedure To rename a profile:<br />
1 In the tree-view area, right-click the icon of the profile that you want to<br />
rename.<br />
2 Choose Rename Profile. The Rename Profile dialog appears.<br />
3 Type a new name for the profile.<br />
4 Click OK.<br />
Procedure To delete a profile:<br />
1 In the tree-view area, right-click the icon of the profile you want to<br />
delete.<br />
2 Choose Delete Profile.<br />
3 Click Yes on the confirmation dialog to delete the profile.<br />
Procedure To copy a profile:<br />
1 In the tree-view area, right-click the icon for the profile you want to<br />
copy.<br />
2 Select Copy Profile from the context menu.<br />
3 A new profile then appears in the tree view, with the name Copy of<br />
.<br />
SilkPerformer User Guide 61
3 CONFIGURING PROJECTS<br />
Project Profile Settings<br />
Recording options<br />
General options<br />
Procedure To set general record options:<br />
1 In the Project tab of SilkPerformer’s main tree view, expand the Profiles<br />
folder.<br />
2 Right-click the icon for the profile for which you want to configure<br />
settings.<br />
3 Select Edit Profile from the context menu. The Profile - [Loadtest] -<br />
Simulation dialog opens.<br />
Alternative Select Settings/Active Profile from the SilkPerformer<br />
menu bar.<br />
4 In the shortcut list on the left side, select the Record category and click<br />
the Script icon.<br />
5 On the General tab, select the Comments option to have the<br />
SilkPerformer Recorder automatically insert comments into the<br />
generated script. Comments are left-delimited by // symbols.<br />
6 Select the Commented functions option to mark in the generated test<br />
script the function calls that are performed to retrieve return parameters<br />
as comments.<br />
7 Select the Include think time option to generate ThinkTime function calls<br />
in the recorded script. These function calls produce delays that simulate<br />
typing time and thinking time in the recorded script to create a more<br />
realistic simulation.<br />
8 Enter a time (in milliseconds) in the Min. think time recorded field to<br />
define a lower limit for delays that will be included as ThinkTime<br />
function calls in the recorded script. Delays less than the time specified<br />
in the Min. think time recorded field will not expanded to ThinkTime<br />
function calls.<br />
9 In the Max. line length field, specify the maximum number of characters<br />
in a script line. This setting can be used to split large amounts of<br />
recorded data into several script lines.<br />
10 (optional) In the Script namespace field, you can enter a prefix for the<br />
names that are declared in the generated script. The user groups,<br />
transactions, timers, and variables defined in the script begin with the<br />
specified string.<br />
11 Select the Record passwords encrypted option to have the SilkPerformer<br />
Recorder automatically encrypt recorded passwords before inserting<br />
them into generated scripts.<br />
62 SilkPerformer User Guide
3 CONFIGURING PROJECTS<br />
Project Profile Settings<br />
Protocol-specific<br />
options<br />
Procedure To set protocol-specific record options:<br />
1 Click the Protocols tab.<br />
2 In the Web comments area of the tab, specify details about automatically<br />
inserted comments (for Web functions) in the generated script. The<br />
settings for these options are only taken into account when the Comments<br />
option (General tab) for script generation is enabled.<br />
- Select the Redirection / Authentication option to have comments<br />
inserted into the generated script when a redirection (HTTP 302,<br />
HTTP 407) from one URL to another is recorded.<br />
- Select the HTTP errors option to have comments inserted into the<br />
generated script when HTTP errors (HTTP 4xx, HTTP 5xx) are<br />
recorded.<br />
- Select the Link, form, custom URL search details option to have<br />
comments inserted into the generated script when links, forms, or<br />
customs URLs are recorded.<br />
- Select the Detailed info for form fields option to have comments<br />
inserted into the generated script when hidden, changed, or filled out<br />
form fields are recorded.<br />
- Select the Custom URL parsing details option to have comments<br />
inserted into the generated script when parsing details of custom<br />
URLs are recorded.<br />
3 In the IIOP area of the tab, select the Generate IIOP Get functions option<br />
to include functions in your test script that will retrieve the return<br />
parameters of CORBA operation calls. You can mark the corresponding<br />
function calls as comments.<br />
4 Use the Database area of the tab to specify how SQL statements are<br />
displayed and whether to include fetched data in the generated test script.<br />
Select the SQL comment option to include SQL statements marked as<br />
comments in the generated test script immediately before the parse<br />
operation.<br />
5 Select the Trim SQL option to display SQL statements in the generated<br />
test script in a more readable format, with line breaks and indentation for<br />
SQL keywords.<br />
6 Select the Fetched data option to include the fetched data, marked as<br />
comments, in the generated test script immediately after the fetch<br />
operation.<br />
7 In the Max. number of rows field, enter the maximum number of data<br />
rows that are to be inserted as comments immediately after fetch<br />
operations.<br />
SilkPerformer User Guide 63
3 CONFIGURING PROJECTS<br />
Project Profile Settings<br />
8 In the Max. column width field, enter the maximum width of columns<br />
inserted as commentary.<br />
Replay options<br />
Simulation options<br />
Procedure To set simulation options:<br />
1 In the Project tab of SilkPerformer’s tree-view, expand the Profiles<br />
folder.<br />
2 Right-click the icon of the profile you want to configure.<br />
3 Select Edit Profile from the context menu.<br />
The Profile - [Profile1] - Simulation dialog opens at the Replay category,<br />
Simulation tab.<br />
Alternative Select Settings/Active Profile from the SilkPerformer<br />
menu bar.<br />
4 Choose the Stress test option to disable the use of wait periods that are<br />
specified in browser-level functions or invoked by calling ThinkTime<br />
functions.<br />
5 Select the Random thinking time option to replace recorded actual<br />
thinking periods that are specified in browser-level functions or invoked<br />
by calling ThinkTime functions, with random values that follow an<br />
exponential distribution.<br />
6 Select the Think time limited to option to define a limit for think times. If<br />
this option is selected, think times will be limited to the specified<br />
maximum value. Enter an upper limit (in seconds) in the provided field.<br />
7 Select the Smooth transaction arrival rate (Queuing Workload) option to<br />
have each virtual user perform its transactions within the specified<br />
simulation interval. With this option selected, the simulation time period<br />
and the total number of transactions to be called determine the mean<br />
arrival interval of the transactions.<br />
When this option is disabled, SilkPerformer calculates the delay of each<br />
transaction arrival randomly.<br />
8 Select the Choose transactions randomly option to force the<br />
SilkPerformer simulation engine to execute all transactions defined in<br />
load test scripts in random order, based on SilkPerformer's queuing<br />
model.<br />
When this option is disabled, simulated virtual users perform their<br />
transactions exactly in the order in which they are defined in test scripts.<br />
64 SilkPerformer User Guide
3 CONFIGURING PROJECTS<br />
Project Profile Settings<br />
Error-handling options<br />
9 Select the Stop virtual users after simulation time (Queuing Workload)<br />
option to cancel users when simulation time expires.<br />
10 Select the Call end transactions for stopped virtual users option to have<br />
stopped virtual users execute end transactions before stopping.<br />
When this option is disabled, virtual users complete their executions<br />
without calling end transactions.<br />
11 Select the Complete current transactions of stopped virtual users option<br />
to allow stopped virtual users to complete active transactions before<br />
stopping. When this option is selected, virtual users check whether to<br />
stop only at the beginning of each new transaction. Thus active<br />
transactions are completed before users stop.<br />
When this option is disabled, virtual users check if they should stop<br />
during think and wait times, while in the queue, and at the beginning of<br />
each transaction.<br />
12 Select the Stop virtual users when errors occur in begin transactions<br />
option to immediately stop virtual users when errors occur during test<br />
initialization (which usually occurs in begin transactions). This setting<br />
overrides the Call end transactions for stopped virtual users and<br />
Complete current transactions of stopped virtual users options.<br />
This setting is useful for tests that involve Connect operations that must<br />
be successful before tests can proceed.<br />
Procedure To set error-handling options:<br />
1 In the Project tab of SilkPerformer’s tree-view, expand the Profiles<br />
folder.<br />
2 Right-click the icon of the profile you want to configure.<br />
3 Select Edit Profile from the context menu.<br />
The Profile - [Profile1] - Simulation dialog opens at the Replay category,<br />
Simulation tab.<br />
4 Click the Errors tab.<br />
5 Use the Severity definition area to modify the severity of the simulation<br />
errors that SilkPerformer reports in its Monitor window.<br />
6 Click the Add button to add a custom severity definition to the list.<br />
The Edit Replay Errors and Warnings dialog appears.<br />
7 From the Module drop-down list, select the module that may cause the<br />
simulation error for which you want to define a custom level of severity.<br />
All errors of the selected severity are displayed below in the list.<br />
8 From the Severity drop-down list, select the default severity of the error<br />
for which you want to define a custom level of severity:<br />
SilkPerformer User Guide 65
3 CONFIGURING PROJECTS<br />
Project Profile Settings<br />
- success - Error is ignored<br />
- informational - Error is ignored, but reported<br />
- warning - Error is ignored, but causes a warning<br />
- error - Error is treated as an error<br />
Note All errors of each selected severity are displayed in the below<br />
field.<br />
9 In the Error code field, enter the code of the error for which you want to<br />
define a custom level of severity. Alternately, you can select the<br />
respective error from the list above the field.<br />
10 In the Description field, enter a description for native errors.<br />
Descriptions of other simulation errors are predefined and cannot be<br />
modified by the user.<br />
11 From the Custom severity drop-down list, select the custom severity for<br />
the specified error:<br />
- success - Error is ignored<br />
- informational - Error is ignored, but reported<br />
- warning - Error is ignored, but causes a warning<br />
- error - Error is reported, but does not affect the simulation<br />
- transaction exit - Current transaction is aborted<br />
- process exit - Simulation of the user is terminated<br />
12 Click OK.<br />
13 To edit the custom severity of an error, select it from the error list and<br />
click the Edit button.<br />
The Edit Replay Errors and Warnings dialog appears.<br />
14 Edit the custom severity of the error as explained earlier in this<br />
procedure.<br />
15 To remove a custom severity definition from the list, select it from the<br />
error list and click the Remove button.<br />
16 Click OK to exit the dialog and save your changes.<br />
Result options<br />
General options<br />
Procedure To set general result options:<br />
1 In the Project tab of the tree-view area of the main SilkPerformer<br />
window, expand the Profiles folder.<br />
66 SilkPerformer User Guide
3 CONFIGURING PROJECTS<br />
Project Profile Settings<br />
2 Right-click the icon for the profile for which you want to configure<br />
settings.<br />
3 Choose Edit Profile.<br />
The Profile - [Loadtest] - Simulation dialog opens.<br />
Alternately, select Settings/Active Profile from the SilkPerformer menu<br />
bar.<br />
4 In the shortcut list on the left side, click the Results icon.<br />
5 Select the Replay category.<br />
6 Click the General tab.<br />
- Use the Results files area to specify the types of results files you<br />
want to generate. While the test is running, a separate file is created<br />
for each user in the current agent. Since generating results files will<br />
alter the time measures for your load test, these files should be<br />
created for debugging purposes only.<br />
- Select the Log files (.log) option to generate log files (.log), one for<br />
each user in the current agent. These files contain all the function<br />
calls invoked by the transactions of a specific user.<br />
- Select the Report files (.rpt) option to generate report files (.rpt), one<br />
for each user in the current agent. These files contain the simulation<br />
results for each user.<br />
- Select the Output files (.wrt) option to generate output files (.wrt),<br />
one for each user in the current agent. These files contain the output<br />
of write statements used in the test script. An output file is generated<br />
for a particular user only if that user executes write statements.<br />
- Select the True log files (.xlg) option to create an accurate view of<br />
data downloaded during a load test to be made available by means of<br />
TrueLog Explorer.<br />
- Select the Time series data (.tsd) option to enable generation of the<br />
throughput information used by SilkPerformer's Performance<br />
Explorer. You can specify the interval at which data is computed.<br />
- Select the Client-side measures in real-time option to enable<br />
SilkPerformer to retrieve real-time client-side measurements for use<br />
in Silk Performance Explorer. See the Silk Performance Explorer<br />
User Guide for full details.<br />
7 Use the Timer statistics area to specify time bounds, or limits, for use in<br />
results reporting. Several reports list the percentage of all the<br />
transactions completed within the time bound specified.<br />
SilkPerformer User Guide 67
3 CONFIGURING PROJECTS<br />
Project Profile Settings<br />
Time series data<br />
8 In the Time bound 1 field, enter a first time bound, or limit, for use in<br />
results reporting. Several reports list the percentage of all the<br />
transactions completed within the time bound specified. This time bound<br />
is commonly set to the amount of time that represents the goal for the<br />
completion of the transaction being tested.<br />
9 In the Time bound 2 field, enter a second time bound, or limit, for results<br />
reporting. Several reports list the percentage of all the transactions<br />
completed within the time bound specified. This time bound is<br />
commonly set to the amount of time that should not be exceeded for the<br />
completion of the transaction being tested.<br />
Procedure To set options related to the generation of time series data:<br />
1 In the Project tab of the tree-view area of the main SilkPerformer<br />
window, expand the Profiles folder.<br />
2 Right-click the icon for the profile for which you want to configure<br />
settings.<br />
3 Choose Edit Profile.<br />
The Profile - [Loadtest] - Simulation dialog opens.<br />
Alternately, select Settings/Active Profile from the SilkPerformer menu<br />
bar.<br />
4 In the shortcut list on the left side, click the Results icon.<br />
5 Select the Replay category.<br />
6 Click the Time Series tab.<br />
7 Use the Time series data area to specify options for the information used<br />
by SilkPerformer's Performance Explorer.<br />
8 From the Computation interval drop-down list, select the interval at<br />
which you want data to be calculated. This setting is used for all time<br />
series data generated. Keep in mind that the shorter the interval and the<br />
longer the load test, the more data will be generated.<br />
9 Select the Enable all measure groups option to generate high-level<br />
throughput information for all the measure groups shown in the list<br />
below. To choose a particular combination of measure groups for which<br />
you want to generate high-level throughput information, deselect the<br />
Enable all measure groups option, and select your options in the<br />
measure group list.<br />
10 Specify a Detailed Page Timers generation setting (For the whole page,<br />
For documents only, or Disabled).<br />
68 SilkPerformer User Guide
3 CONFIGURING PROJECTS<br />
Project Profile Settings<br />
11 To define an overview report template for generating overview reports<br />
from Performance Explorer for this load testing project, click the browse<br />
(...) button in the Overview report template portion of the Time Series<br />
tab. From the Select template file dialog, select the overview report<br />
template (.ovt) file that you want to have applied to your SilkPerformer<br />
projects.<br />
The file that you specify here will be used as an overview report template<br />
for the generation of all overview reports for this load testing project.<br />
The template file name will also be preselected on the Overview Report<br />
Template workflow dialog when new overview reports are created<br />
manually.<br />
Monitoring options<br />
Procedure To set monitoring options:<br />
1 In the Project tab of the tree-view area of the main SilkPerformer<br />
window, expand the Profiles folder.<br />
2 Right-click the icon for the profile for which you want to configure<br />
settings.<br />
3 Choose Edit Profile.<br />
The Profile - [Loadtest] - Simulation dialog opens.<br />
Alternately, select Settings/Active Profile from the SilkPerformer menu<br />
bar.<br />
4 In the shortcut list on the left side, click the Results icon.<br />
5 Select the Replay category.<br />
6 Click the Monitoring tab.<br />
7 In the Monitoring options area, select the Automatically start monitoring<br />
option to automatically launch the monitoring facility of Performance<br />
Explorer when you start a load test. Performance Explorer will then<br />
display the server performance data relevant to the type of server that<br />
you are testing.<br />
- Select the Use default monitoring template option to activate the<br />
default monitor template.<br />
- Select the Use custom monitoring template option to use a custom<br />
monitor template.<br />
8 In the Performance monitor integration area, select the Compute online<br />
performance data option to compute data for additional performance<br />
measurements to be displayed in the Windows NT/2000 Performance<br />
Monitor. This data can be used to view the concurrent users, transaction<br />
throughput, data sent and received, and SQL statements executed.<br />
SilkPerformer User Guide 69
3 CONFIGURING PROJECTS<br />
Project Profile Settings<br />
TrueLog options<br />
Procedure To set TrueLog options:<br />
1 In the Project tab of the tree-view area of the main SilkPerformer<br />
window, expand the Profiles folder.<br />
2 Right-click the icon for the profile for which you want to configure<br />
settings.<br />
3 Choose Edit Profile.<br />
The Profile - [Loadtest] - Simulation dialog opens.<br />
Alternately, select Settings/Active Profile from the SilkPerformer menu<br />
bar.<br />
4 In the shortcut list on the left side, click the Results icon.<br />
5 Select the Replay category.<br />
6 Click the TrueLog tab.<br />
7 To enable generation of TrueLog files (.xlg) during the recording<br />
session, select the TrueLog files (.record.xlg) checkbox. TrueLog files<br />
contain all traffic that is sent to and received from the server, and the<br />
transactions and function calls that are to be generated in the test script.<br />
Note TrueLog files should be created for debugging purposes only.<br />
8 Select the TrueLog files (.xlg) checkbox to generate a TrueLog file (.xlg)<br />
for each virtual user. These files contain all the function calls that are<br />
invoked by the transactions of a specific virtual user.<br />
9 To enable generation of TrueLog On Error files (.xlg), select the<br />
TrueLog On Error files (.xlg) checkbox.<br />
Note Truelog On Error files can be turned on for even large load<br />
tests where you expect a moderate number of errors without major<br />
impact on replay performance.<br />
10 Select the High-resolution timers for page statistics checkbox to enable<br />
SilkPerformer to use high-resolution timers for page statistics. Note that<br />
you can use the WebSetOption(WEB_OPT_HIGH_RES, x) function to<br />
adjust the resolution of these timers (the default is 100us).<br />
11 The options in the TrueLog On Error area of the dialog are only<br />
available when TrueLog On Error file generation has been enabled<br />
above.<br />
Specify how much information is to be stored in the TrueLog using the<br />
Store TrueLog options.<br />
- Select For one transaction to log the entire transaction in which each<br />
error occurrs. This option requires a significant amount of memory.<br />
70 SilkPerformer User Guide
3 CONFIGURING PROJECTS<br />
Project Profile Settings<br />
General logging<br />
options<br />
- Select Based on content history to log a minimum of relevant data<br />
(based on data kept in the history) to the TrueLog. If browser-level<br />
calls are used, this setting will have no impact on the size of stored<br />
data. This selection requires minimal memory.<br />
12 From the Generate TrueLog On Error for drop-down list, select the<br />
severity level at which TrueLogs are to be generated (Errors, Severe<br />
errors, or Warnings). The default severity level is Errors.<br />
13 Select the Log all embedded objects option to log all embedded objects<br />
(images, java files, etc) in the TrueLog. Logged objects appear in the<br />
cached documents section of the TrueLog.<br />
14 Select the Exclude cached embedded objects option to only log<br />
embedded objects (images, java files, etc) that have been downloaded<br />
within the scope of the current log in the TrueLog. Objects may not be<br />
logged if they appear in the current log as a cache hit. Such objects may<br />
have been downloaded outside the scope of the current log. They may<br />
also no longer be present in the cache.<br />
15 Select the Exclude all embedded objects option to exclude all embedded<br />
objects (images, java files, etc) from being logged in the TrueLog. Note<br />
that optimal scalability is achieved by selecting this option.<br />
16 Click OK to save your settings.<br />
Procedure To set general logging options:<br />
1 In the Project tab of the tree-view area of the main SilkPerformer<br />
window, expand the Profiles folder.<br />
2 Right-click the icon for the profile for which you want to configure<br />
settings.<br />
3 Choose Edit Profile.<br />
The Profile - [Loadtest] - Simulation dialog opens.<br />
Alternately, select Settings/Active Profile from the SilkPerformer menu<br />
bar.<br />
4 In the shortcut list on the left side, click the Results icon.<br />
5 Select the Replay category.<br />
6 Click the Logging tab.<br />
7 Select the Log all option to include all available types of information in<br />
the generated log files. These files contain information about timers,<br />
transactions performed by the user, and function calls invoked by the<br />
transactions. However, keep in mind that creating log files can alter the<br />
time measures of the load test.<br />
SilkPerformer User Guide 71
3 CONFIGURING PROJECTS<br />
Project Profile Settings<br />
Internet-specific<br />
logging<br />
8 Use the General area to specify which types of information to include in<br />
log files.<br />
- Select the Transactions option to include in the log file an overview<br />
of the transactions the user performs during the simulation.<br />
- Select the Timers option to include custom timer information in the<br />
log file.<br />
- Select the API calls option to include in the log file an overview of<br />
the SilkPerformer API calls that the user performs during the<br />
simulation.<br />
- Select the Informational option to include additional information—<br />
for example, connection information—in the log file.<br />
- Select the Data option to include in the log file the data that was<br />
exchanged with the server.<br />
- Select the Nonprintable characters option to include nonprintable<br />
characters, represented as dots, in the log file.<br />
Procedure To set Internet-specific logging options:<br />
1 In the Project tab of the tree-view area of the main SilkPerformer<br />
window, expand the Profiles folder.<br />
2 Right-click the icon for the profile for which you want to configure<br />
settings.<br />
3 Choose Edit Profile.<br />
The Profile - [Loadtest] - Simulation dialog opens.<br />
Alternately, select Settings/Active Profile from the SilkPerformer menu<br />
bar.<br />
4 In the shortcut list on the left side, click the Results icon.<br />
5 Select the Replay category.<br />
6 Click the Internet logging tab.<br />
7 Use the Data sent to server area to specify the level of detail at which<br />
data that SilkPerformer and the Recorder send to the server are written to<br />
the log file.<br />
- Select the HTTP client request header option to write to the log file<br />
all the client request headers sent to the server. This option is only<br />
available when recording HTTP traffic (not for replay).<br />
- Select the Header option to write to the log file all the headers<br />
included in requests that are sent to the server.<br />
- Select the Printable data option to write to the log file all the<br />
printable data included in requests that are sent to the server.<br />
72 SilkPerformer User Guide
3 CONFIGURING PROJECTS<br />
Project Profile Settings<br />
ARM options<br />
- Select the Binary data option to write to the log file all the binary<br />
data included in requests that are sent to the server.<br />
- In the Max. number of lines field, specify the maximum number of<br />
lines to be written to the log file in the case of lines containing<br />
request data that are sent to the server.<br />
8 Use the Data received from server area to specify the level of detail at<br />
which the data that SilkPerformer and the Recorder receive from the<br />
server is written to the log file.<br />
- Select the HTTP response header to client option to write the client<br />
HTTP response headers (received from the server) to the log file.<br />
This option is only available when recording HTTP traffic (not for<br />
replay).<br />
- Select the Header option to write to the log file all the headers<br />
included in responses that are received from the server.<br />
- Select the Printable data option to write to the log file all the<br />
printable data included in responses that are received from the<br />
server.<br />
- Select the Binary data option to write to the log file all the binary<br />
data included in responses that are received from the server.<br />
- In the Max. number of lines field, specify the maximum number of<br />
lines to be written to the log file in the case of lines containing<br />
response data that are received from the server.<br />
9 Select the Images, applets, and Java classes option to write to the log file<br />
all the images, applets, and Java classes received from the server. If this<br />
option is selected, these items are represented as binary data.<br />
10 Select the TCP/IP connection information option to write additional<br />
information to the log file; for example, when connections to the server<br />
are established or closed.<br />
Procedure To set ARM options:<br />
1 In the Project tab of the tree-view area of the main SilkPerformer<br />
window, expand the Profiles folder.<br />
2 Right-click the icon for the profile for which you want to configure<br />
settings.<br />
3 Choose Edit Profile.<br />
The Profile - [Loadtest] - Simulation dialog opens.<br />
Alternately, select Settings/Active Profile from the SilkPerformer menu<br />
bar.<br />
4 In the shortcut list on the left side, click the Results icon.<br />
SilkPerformer User Guide 73
3 CONFIGURING PROJECTS<br />
Project Profile Settings<br />
Recorder logging<br />
options<br />
5 Select the Replay category.<br />
6 Click the ARM tab.<br />
7 Use the Settings area to specify the types of ARM transactions that are to<br />
be reported.<br />
8 Select the Enable ARM for transactions checkbox to enable ARM<br />
transaction reporting for BDL transactions.<br />
9 Select the Enable ARM for custom timers checkbox to enable ARM<br />
transaction reporting for custom timers.<br />
10 Select the Enable ARM for page timers checkbox to enable ARM<br />
transaction reporting for page timers.<br />
Procedure To set SilkPerformer Recorder logging options:<br />
1 In the Project tab of the tree-view area of the main SilkPerformer<br />
window, expand the Profiles folder.<br />
2 Right-click the icon for the profile for which you want to configure<br />
settings.<br />
3 Choose Edit Profile.<br />
The Profile - [Loadtest] - Simulation dialog opens.<br />
Alternately, select Settings/Active Profile from the SilkPerformer menu<br />
bar.<br />
4 In the shortcut list on the left side, click the Results icon.<br />
5 Select the Replay category.<br />
6 Click the Hook logging tab.<br />
7 Select the Record category.<br />
8 Use the Hooking area to display—in SilkPerformer Recorder’s Log<br />
tab—all the function calls that the client application performs and the<br />
parameters that the client application passes to function calls.<br />
- Select the Function calls option to display—in SilkPerformer<br />
Recorder’s Log tab—all the function calls that the client application<br />
performs. You can also specify whether to display the function<br />
parameters.<br />
- Select the Function parameters option to display—in SilkPerformer<br />
Recorder’s Log tab—all the parameters that the client application<br />
passes to function calls. To enable this option, you must first select<br />
the Function calls option.<br />
9 Click OK to exit the dialog and save your changes.<br />
74 SilkPerformer User Guide
3 CONFIGURING PROJECTS<br />
Project Profile Settings<br />
Real-time client-side<br />
measure options<br />
Procedure To enable real-time client-side monitoring for Silk Performance<br />
Explorer:<br />
1 Go to Settings/Active Profile.<br />
2 Select the Results group icon (in the Replay group).<br />
3 On the General tab, ensure that the Client-side measures in real-time<br />
checkbox is selected.<br />
4 Select the Real-time measures tab.<br />
5 Set the Computation interval to 5 sec.<br />
6 Select the Enable all measure groups checkbox to enable monitoring of<br />
all measure groups. Alternately, you can select specific measure types in<br />
the field below.<br />
7 Click OK to save your settings.<br />
Internet options<br />
Network options<br />
Procedure To set network-related options:<br />
1 In the Project tab of the tree-view area of the main SilkPerformer<br />
window, expand the Profiles folder.<br />
2 Right-click the icon for the profile for which you want to configure<br />
settings.<br />
3 Choose Edit Profile.<br />
The Profile - [Loadtest] - Simulation dialog opens.<br />
Alternately, select Settings/Active Profile from the SilkPerformer menu<br />
bar.<br />
4 In the shortcut list on the left side, click the Internet icon.<br />
5 Select the Replay category.<br />
6 Click the Network tab.<br />
7 Use the Modem area to specify which type of network device is to be<br />
simulated for Internet access.<br />
8 From the Bandwidth drop-down list, select the bandwidth of the network<br />
device to simulate for Internet access. SilkPerformer causes each virtual<br />
user to transfer data both to and from the server at the rate of the<br />
specified device. Note that, as with a real Web browser, multiple threads<br />
share the selected bandwidth. To use duplex bandwidth, where<br />
downstream and upstream bandwidths are different, select the Custom<br />
option.<br />
SilkPerformer User Guide 75
3 CONFIGURING PROJECTS<br />
Project Profile Settings<br />
9 Check the Duplex option to set a different bandwidth for downstream<br />
and upstream traffic when you select a custom bandwidth of the network<br />
device to simulate for Internet access. Use the Downstream and<br />
Upstream fields to set the desired bandwidth.<br />
10 In the Downstream and Upstream fields, enter values [bits/sec] for the<br />
downstream and upstream bandwidth when you want to use the duplex<br />
option.<br />
11 From the Modem compression rate drop-down list, select the hardware<br />
compression rate of the simulated network device. SilkPerformer causes<br />
each virtual user to transfer data both to and from the server at the<br />
specified compression rate.<br />
12 From the Optimize network settings for drop-down list, select the type of<br />
simulation for SilkPerformer and WinSock buffers. This setting<br />
determines the size of the buffers used to transfer data both to and from<br />
the server. Large buffers provide good performance; however,<br />
SilkPerformer needs more memory to achieve this performance. Small<br />
buffers may be useful on driver machines with less memory. Note that,<br />
when using modem simulation, small buffers will create a more realistic<br />
load on the server.<br />
13 Use the Network area to specify network-specific settings.<br />
14 Select the Client IP address multiplexing option to enable IP address<br />
multiplexing. To assign individual IP addresses to virtual users, you first<br />
have to set up multiple IP addresses for the network device. You do this<br />
with the SilkPerformer System Configuration Manager. Afterwards, you<br />
can assign each of the IP addresses to a different virtual user.<br />
15 Select the Host name cache option for SilkPerformer to use its internal<br />
host name cache. If this option is selected, SilkPerformer stores the IP<br />
addresses of resolved host names and therefore does not need to contact<br />
the DNS server each time the replay engine requires a host's IP address.<br />
16 Select the Passive FTP semantics option to enable passive FTP<br />
semantics, which may be useful when connecting through firewalls or<br />
proxies. This option affects FTP data transfers only.<br />
17 In the Connect attempts field, enter how often a simulated user will<br />
attempt to connect to the server before an error is reported.<br />
18 In the Connect timeout field, specify for how long the simulated user will<br />
attempt to connect to the server before a timeout is reported.<br />
19 In the Send timeout field, specify for how long the simulated user will<br />
attempt to send data to the server before a timeout is reported.<br />
76 SilkPerformer User Guide
3 CONFIGURING PROJECTS<br />
Project Profile Settings<br />
20 In the Receive timeout field, specify for how long the simulated user will<br />
attempt to receive data from the server before a timeout is reported.<br />
Host options<br />
Security options<br />
Procedure To set host-related options:<br />
1 In the Project tab of the tree-view area of the main SilkPerformer<br />
window, expand the Profiles folder.<br />
2 Right-click the icon for the profile for which you want to configure<br />
settings.<br />
3 Choose Edit Profile.<br />
The Profile - [Loadtest] - Simulation dialog opens.<br />
Alternately, select Settings/Active Profile from the SilkPerformer menu<br />
bar.<br />
4 In the shortcut list on the left side, click the Internet icon.<br />
5 Select the Replay category.<br />
6 Click the Hosts tab.<br />
7 In the Standardhost area, specify the server you want to use as the<br />
standard host. You can use either a domain name or an IP address. The<br />
name you specify will be used whenever the "standardhost" variable is<br />
included in load test scripts. Optionally, you can use the Port field to<br />
specify a port number to use with the standard host.<br />
8 In the SOCKS4 proxy area, use the Proxy name or IP address and Port<br />
fields to specify the host name or IP address, and also the port number,<br />
for a SOCKS4 proxy through which all Internet traffic will be directed.<br />
This option can be used, for example, when the traffic in a load test has<br />
to negotiate a firewall.<br />
Procedure To set security options:<br />
1 In the Project tab of the tree-view area of the main SilkPerformer<br />
window, expand the Profiles folder.<br />
2 Right-click the icon for the profile for which you want to configure<br />
settings.<br />
3 Choose Edit Profile.<br />
The Profile - [Loadtest] - Simulation dialog opens.<br />
Alternately, select Settings/Active Profile from the SilkPerformer menu<br />
bar.<br />
4 In the shortcut list on the left side, click the Internet icon.<br />
5 Select the Replay category.<br />
6 Click the Security tab.<br />
SilkPerformer User Guide 77
3 CONFIGURING PROJECTS<br />
Project Profile Settings<br />
Recording options<br />
7 Use the Protocol area to specify protocol-specific settings used for<br />
secure connections to remote servers.<br />
8 From the SSL version drop-down list, select the Secure Socket Layer<br />
protocol version used when establishing a secure connection to the<br />
server.<br />
9 From the Encryption strength drop-down list, select the encryption<br />
strength for data transferred to and from the server over a secure<br />
connection.<br />
10 From the Certificate drop-down list in the Client certificate area, select<br />
the client certificate that SilkPerformer is to present to the Web server on<br />
behalf of the actual client. To use a client certificate, export it from the<br />
Web browser and place it in SilkPerformer's certificate store first.<br />
11 To view detailed information about the client certificate currently in use,<br />
click the View button.<br />
12 To import a new client certificate from a certificate file (.p12, .pfx, or<br />
.pem), click the Import button.<br />
13 Use the following dialog to navigate to and select the new client<br />
certificate.<br />
14 To remove the currently selected client certificate from the drop-down<br />
list, click the Remove button.<br />
15 Select the Force secure connection option to use the Secure Socket<br />
Layer protocol for replaying load tests. This is equivalent, for example,<br />
to replacing all the HTTP schemes with HTTPS in the URL’s of<br />
browser-level functions. It can be used to simplify how load tests are<br />
used to compare performance with and without the use of secure<br />
connections.<br />
Procedure To set recording options:<br />
1 In the Project tab of the tree-view area of the main SilkPerformer<br />
window, expand the Profiles folder.<br />
2 Right-click the icon for the profile for which you want to configure<br />
settings.<br />
3 Choose Edit Profile.<br />
The Profile - [Loadtest] - Simulation dialog opens.<br />
Alternately, select Settings/Active Profile from the SilkPerformer menu<br />
bar.<br />
4 In the shortcut list on the left side, click the Internet icon.<br />
5 Select the Replay category.<br />
6 Click the Recording tab.<br />
78 SilkPerformer User Guide
3 CONFIGURING PROJECTS<br />
Project Profile Settings<br />
7 In the SMTP area, select the Enable SMTP data recording option to<br />
record mail body data exchanged between the client application and the<br />
mail server. To record SMTP traffic, set up an appropriate proxy<br />
connection on the Proxy tab (see “Proxy options” for details).<br />
8 Use the Recorder server certificate area to specify which server<br />
certificate you want the SilkPerformer Recorder to present to the client<br />
on behalf of the actual server.<br />
9 Select the Use custom server certificate option to have the SilkPerformer<br />
Recorder present a custom server certificate to the client instead of the<br />
default Recorder server certificate. Click the browse button (...) to the<br />
right of the field to locate the server certificate you want to use.<br />
10 In the Pass phrase field, enter the pass phrase that is to be used, if the<br />
server certificate you want the SilkPerformer Recorder to use is<br />
protected with a pass phrase.<br />
11 Select the Send root CA during SSL handshake option for the<br />
SilkPerformer Recorder to send the root CA certificate during the SSL<br />
handshake. The root CA certificate may be requested by a client to<br />
authenticate the certificate authority that signed the Recorder server<br />
certificate. Click the browse button (...) to the right of the field to locate<br />
the root CA certificate that you want to use.<br />
12 Click OK to exit the dialog and save your changes.<br />
Web Options<br />
Browser options<br />
Procedure To set browser-related options:<br />
1 In the Project tab of the tree-view area of the main SilkPerformer<br />
window, expand the Profiles folder.<br />
2 Right-click the icon for the profile for which you want to configure<br />
settings.<br />
3 Choose Edit Profile.<br />
The Profile - [Loadtest] - Simulation dialog opens.<br />
Alternately, select Settings/Active Profile from the SilkPerformer menu<br />
bar.<br />
4 In the shortcut list on the left side, click the Web icon.<br />
5 Select the Replay category.<br />
6 Click the Browser tab.<br />
SilkPerformer User Guide 79
3 CONFIGURING PROJECTS<br />
Project Profile Settings<br />
7 Use the Browser type area to specify browser-specific settings. From the<br />
Browser drop-down list, select the Web browser you want to use for your<br />
simulation. The selection you make determines the format of the header<br />
information included in your HTTP requests and the threading model<br />
used for simulation.<br />
8 Select the Limit connections per server option to limit the connections on<br />
a per server basis (as real browsers do), e.g., two connections to one<br />
server, four connections to two servers.<br />
Note It is not recommended to use this option for browser-level<br />
API, as only the Max total connections value is considered.<br />
- In the Max concurrent connections to a HTTP 1.0 server field,<br />
specify the connection limit to every server using HTTP 1.0.<br />
- In the Max concurrent connections to a HTTP 1.1 server field, secify<br />
the connection limit to every server using HTTP 1.1.<br />
- In the Max total connections field, specify the absolute maximum<br />
number of connections, which the emulated browser opens. To<br />
perform an accurate connection simulation this value should be<br />
above the per server setting (above options).]<br />
9 Select the Limit connections per virtual user option to limit the<br />
connections on a per user basis (e.g., four connections to one server, four<br />
connections to two servers).<br />
- In the Max. concurrent connections field, specify the maximum<br />
number of simultaneous connections the client may establish to the<br />
server in the case of custom browsers. Since the server has to<br />
allocate more system resources for each connection, the server's<br />
performance decreases as the number of connections increases. In<br />
the same way as Web browsers, SilkPerformer uses one thread per<br />
connection to send and receive data concurrently. For singlethreaded<br />
(synchronous) operations, set this value to 1. For multithreaded<br />
simulations, choose a value between 2 and 32.<br />
Note Values are pre-defined for each selected Browser.<br />
You can only edit Max. concurrent connections if you select<br />
Custom from the Browser drop-down list.<br />
- Select the Single-threaded option to replay load tests using a single<br />
thread. This setting forces all browser-level functions to execute<br />
synchronously.<br />
10 From the HTTP version drop-down list, select the HTTP version of the<br />
browser to be simulated. This is typically HTTP/1.0.<br />
80 SilkPerformer User Guide
3 CONFIGURING PROJECTS<br />
Project Profile Settings<br />
11 Select the Keep-Alive semantics option to set Keep-Alive for HTTP/<br />
HTTPS. Keep-Alive is a feature that, when supported by both browser<br />
and server, allows connections to remain intact after a request and<br />
response are completed.<br />
12 Select the Content-Encoding option to enable SilkPerformer to decode<br />
compressed data received from the server.<br />
If this option is enabled, SilkPerformer sends an Accept-Encoding<br />
header to inform the server that encoded data (by using gzip and deflate<br />
compression methods) can be submitted.<br />
13 In the User agent field, specify user agent information sent to the server<br />
in the case of custom browsers. This is typically the browser name,<br />
including platform information. This string is used for the HTTP request<br />
header “User-Agent:” that is sent using SilkPerformer's browser-level<br />
functions.<br />
14 In the Accept field, specify the document types that the server may send<br />
to the client in the case of custom browsers. This string is used in the<br />
HTTP request header “Accept:” that is sent using SilkPerformer's<br />
browser-level functions.<br />
15 In the Additional HTTP headers field, specify one or more additional<br />
headers, using exact syntax in the case of custom browsers. Use a new<br />
line for each header. These headers will be appended to each request that<br />
is sent using SilkPerformer's browser-level functions.<br />
Proxy options<br />
The proxy settings allow you to specify in which way SilkPerformer connects to<br />
the Internet. You can define one of the following methods:<br />
• Direct connection to the Internet: Connect to the Internet without using a<br />
proxy.<br />
• Connect simulated browsers through a proxy server: Connect to the<br />
Internet through a specific proxy server. You can specify separate<br />
proxies for HTTP, HTTPS, FTP, and SOCKS traffic.<br />
• Automatic proxy configuration URL: Connect to the Internet through<br />
dynamic proxy configuration. Dynamic proxy configuration is a<br />
technique used in Web browsers to determine a proxy for each request<br />
sent out from the Web browser to the Internet. Depending on the URL or<br />
the host to connect to, a proxy is dynamically determined.<br />
A PAC (Proxy Auto-Config) file is used for determining the proxy server<br />
for each request. A Proxy Auto-Config file tells the browser to load its<br />
proxy configuration information from a remote JavaScript file, rather<br />
than from static information you enter directly.<br />
For detailed information about the PAC file specification, please refer to<br />
http://wp.netscape.com/eng/mozilla/2.0/relnotes/demo/proxy-live.html.<br />
SilkPerformer User Guide 81
3 CONFIGURING PROJECTS<br />
Project Profile Settings<br />
Procedure To set proxy-related options:<br />
1 In the Project tab of the tree-view area of the main SilkPerformer<br />
window, expand the Profiles folder.<br />
2 Right-click the icon for the profile for which you want to configure<br />
settings.<br />
Alternately, select Settings/Active Profile from the SilkPerformer menu<br />
bar.<br />
3 Choose Edit Profile.<br />
The Profile - [Loadtest] - Simulation dialog opens.<br />
4 In the shortcut list on the left side, click the Web icon.<br />
5 Select the Replay category.<br />
6 Click the Proxy tab.<br />
7 Select one of the following:<br />
- Direct connection to the Internet: Connect to the Internet without<br />
using a proxy.<br />
- Connect simulated browsers through a proxy server: Connect to the<br />
Internet through a specific proxy server.<br />
o Click the Advanced button to open the the Proxy Settings dialog.<br />
o In the Internet access area, configure the Host name or IP<br />
address and Port of the proxy server for each protocol.<br />
Check Use the same proxy server for all protocols to use the<br />
same proxy for all Web traffic. Checking this setting enables<br />
Address and Port fields on the Profile - [Loadtest] - Simulation<br />
dialog.<br />
To change the SOCKS proxy settings, go to the Hosts tab of the<br />
Profile Settings - Internet dialog.<br />
o In the Exceptions area, list any host names, IP addresses, or<br />
subdomains for which you do not want to use the proxies<br />
specified in the Internet access area. This list can contain<br />
wildcards (*) that cause the application to bypass the proxy<br />
server for addresses that fit the specified pattern. To list multiple<br />
addresses and host names, separate them with semicolons.<br />
o Click OK to save your settings.<br />
- Automatic proxy configuration URL: Connect to the Internet through<br />
dynamic proxy configuration. Specify the location of the PAC file to<br />
be loaded.<br />
82 SilkPerformer User Guide
3 CONFIGURING PROJECTS<br />
Project Profile Settings<br />
8 Click OK to save your proxy settings.<br />
Browser simulation<br />
Procedure To set browser simulation options:<br />
1 In the Project tab of the tree-view area of the main SilkPerformer<br />
window, expand the Profiles folder.<br />
2 Right-click the icon for the profile for which you want to configure<br />
settings.<br />
3 Choose Edit Profile.<br />
The Profile - [Loadtest] - Simulation dialog opens.<br />
Alternately, select Settings/Active Profile from the SilkPerformer menu<br />
bar.<br />
4 In the shortcut list on the left side, click the Web icon.<br />
5 Select the Replay category.<br />
6 Click the Simulation tab.<br />
7 Use the Simulation area to set options for realistic simulation of users<br />
who visit a Web site.<br />
8 Select the Simulate user behavior for each transaction option to order all<br />
virtual users to reset their browser emulation after each transaction.<br />
Depending on the additional option you select, SilkPerformer either<br />
simulates users who visit a Web site for the first time or users who revisit<br />
the site. While users who visit a site for the first time have no persistent<br />
cookies stored and no documents cached, users who revisit a page<br />
typically have closed their browsers between the Web site visits, have<br />
documents cached, and persistent cookies set. Disabling this option lets<br />
the virtual user emulate a Web browser that is not closed until the end of<br />
the load test, thus reusing cached information throughout multiple<br />
transactions.<br />
9 Select the First time user option to generate a realistic simulation of<br />
users who visit a Web site for the first time. Persistent connections will<br />
be closed, the Web browser emulation will be reset, and the document<br />
cache, the document history, the cookie database, the authentication<br />
databases, and the SSL context cache will be cleared after each<br />
transaction. In this case, SilkPerformer always downloads the complete<br />
sites from the server, including all files.<br />
10 Select the Revisiting user option to generate a realistic simulation of<br />
users who revisit a Web site. Persistent connections will be closed, and<br />
the document history, the non-persistent cookie database, the<br />
authentication database, and the SSL context cache will be cleared after<br />
each transaction. In this case, the users do not clear the document cache.<br />
SilkPerformer User Guide 83
3 CONFIGURING PROJECTS<br />
Project Profile Settings<br />
For more details, review the WebSetUserBehavior function in the BDL<br />
Function Reference.<br />
11 Use the User tolerance area to adjust the advanced options of the user<br />
tolerance simulation.<br />
12 Use the slider to adjust the tolerance level of the simulated user.<br />
Click the Customize button to open a dialog that enables you to alter the<br />
individual behavior of the selected user tolerance level.<br />
Advanced User Tolerance dialog:<br />
Use the Loading times tolerance area to specify the user tolerance<br />
regarding the loading times.<br />
- Select the If no data arrives after option to make the virtual user<br />
react if the server does not respond at all in a given time frame.<br />
Also specify the maximum time in seconds a user is willing to wait if<br />
the server does not respond.<br />
- Select the If document is not complete after option to make the<br />
virtual user react if the first document (root) is received, but the<br />
HTML content (frames) is not completely loaded within a given<br />
time frame.<br />
Also specify the maximum time in seconds a user is willing to wait if<br />
the first document (root) is received, but the HTML content (frames)<br />
is not complete.<br />
- Select the If page is not complete after option to make the virtual<br />
user react if the HTML content (documents) is received, but the<br />
embedded objects are not completely loaded within a given time<br />
frame.<br />
Also specify the maximum time in seconds and user is willing to<br />
wait if the HTML content (documents) is received, but the<br />
embedded objects are not completely loaded.<br />
- Select the If the pure image load time exceeds option to make the<br />
virtual user react if the loading time of the embedded objects<br />
exceeds a given time frame (The timer starts, when the last HTML<br />
document is received.<br />
Also specify the maximum time in seconds a user is willing to wait<br />
for the loading of all embedded objects. This time starts, when the<br />
last HTML document is loaded.<br />
- Specify Reload times to define how many times the user presses the<br />
Refresh button when timeouts occur.<br />
84 SilkPerformer User Guide
3 CONFIGURING PROJECTS<br />
Project Profile Settings<br />
- Select the Continue waiting option if the user is to continue to wait if<br />
the timeout occurs and the page has already been retried the<br />
specified number of times; unlimited or until another timeout occurs.<br />
- Select the Abandon option if the user should press the stop button<br />
(abandon) when a timeout occurs and the page has already been<br />
retried the specified number of times.<br />
- Select the Wait additional option if the user is to wait an additional<br />
amount of time if the timeout occurs and the page has already been<br />
retried the specified number of times. If this time expires too, the<br />
user will press the stop button (abandoning the load).<br />
Also specify the number of seconds that the virtual user is to wait<br />
before pressing the stop button.<br />
Browser<br />
authentication<br />
Use the Error tolerance area to specify user tolerance regarding<br />
errors on a page.<br />
- Select the Retry option to make the virtual user react to errors in the<br />
page.<br />
- Specify how often the user is to press the Refresh button in the case<br />
of errors.<br />
- Select the Page option to have the user press the Refresh button on<br />
any error in the page (e.g., a missing image).<br />
- Select the Documents option to have the user press the Refresh<br />
button only when errors in the document portion of the page. (e.g., a<br />
missing frame) occur.<br />
Use the browser authentication settings if you want all VUsers to login with the<br />
same credentials. If you want each VUser to connect with different login<br />
credentials, we recommend that you specify the credentials with project<br />
attributes (see Project Attributes Overview in the BDL Function Reference for<br />
detailed information) or that you use script customization through data files (see<br />
“Data Files” for detailed information).<br />
Procedure To set browser authentication options:<br />
1 In the Project tab of the tree-view area of the main SilkPerformer<br />
window, expand the Profiles folder.<br />
2 Right-click the icon for the profile for which you want to configure<br />
settings.<br />
3 Choose Edit Profile.<br />
The Profile - [Loadtest] - Simulation dialog opens.<br />
Alternately, select Settings/Active Profile from the SilkPerformer menu<br />
bar.<br />
SilkPerformer User Guide 85
3 CONFIGURING PROJECTS<br />
Project Profile Settings<br />
Browser emulation<br />
4 In the shortcut list on the left side, click the Web icon.<br />
5 Select the Replay category.<br />
6 Click the Authentication tab.<br />
7 Use the User authentication area to enter a user name and a password for<br />
user authentication when connecting to a remote server.<br />
8 In the User name field, enter a user name for authentication when<br />
connecting to a protected server.<br />
9 In the Password field, enter a password for authentication when<br />
connecting to a protected server.<br />
10 Use the Proxy authentication area to enter a user name and a password<br />
for proxy authentication login required when connecting to the Internet<br />
through a proxy server.<br />
11 In the Login name field, enter a user name for the proxy authentication<br />
required when connecting to the Internet through a protected proxy<br />
server.<br />
12 In the Password field, enter a password for the proxy authentication<br />
required when connecting to the Internet through a protected proxy<br />
server.<br />
Procedure To set browser emulation options:<br />
1 In the Project tab of the tree-view area of the main SilkPerformer<br />
window, expand the Profiles folder.<br />
2 Right-click the icon for the profile for which you want to configure<br />
settings.<br />
3 Choose Edit Profile.<br />
The Profile - [Loadtest] - Simulation dialog opens.<br />
Alternately, select Settings/Active Profile from the SilkPerformer menu<br />
bar.<br />
4 In the shortcut list on the left side, click the Web icon.<br />
5 Select the Replay category.<br />
6 Click the Emulation tab.<br />
7 Use the Emulation area to set options for realistic emulation of a Web<br />
browser.<br />
8 Select the Accept cookies option to store cookies in SilkPerformer's<br />
cookie database for each virtual user. Note that the cookie database is<br />
non-persistent and exists only as long as a load test is running.<br />
86 SilkPerformer User Guide
3 CONFIGURING PROJECTS<br />
Project Profile Settings<br />
9 Select the Allow automatic redirections option for SilkPerformer to<br />
automatically parse redirection responses and redirect the request to the<br />
specified server. In addition, if this option is selected, SilkPerformer uses<br />
the user name and password entered on the Authentication tab for<br />
automatic authentication to the server whenever necessary.<br />
In the field to the right of the checkbox, enter the maximum number of<br />
automatic redirections. SilkPerformer automatically parses redirection<br />
responses and redirects the request to the specified server.<br />
10 Select the Automatically load images option for SilkPerformer to<br />
download images from the server. Deselecting this option may be useful<br />
if you are interested in testing dynamic parts of the Web application.<br />
Usually images are static objects that stress the network more than the<br />
server. Note that ignoring images is a trade-off in the realism of the test.<br />
11 Use the Document cache and history area to specify whether to emulate a<br />
document cache. SilkPerformer can emulate a document cache by<br />
keeping local copies of frequently accessed documents, thus reducing the<br />
time connected to the network.<br />
12 Select the Document cache option to have SilkPerformer emulate a<br />
document cache. A document cache is used to keep local copies of<br />
frequently accessed documents and thus reduce the number of hits on the<br />
server.<br />
For more details, review the WebSetDocumentCache function in the<br />
BDL Function Reference.<br />
13 Select the Once per session option to check once per session whether a<br />
page has changed on the Web server since the virtual user last viewed it.<br />
The term of a session is the sequence of starting a Web browser, surfing<br />
the Web, and closing the Web browser. The correlation of a session to<br />
SilkPerformer transactions can be adjusted with the Simulate user<br />
behavior for each transaction option in the Simulation tab.<br />
“Once per session” works as follows: each time you start your Web<br />
browser, it will first look into its cache before sending a request. This<br />
request will either be: a conditional request (if the document resides in<br />
the cache and is requested for the first time in the session); a normal<br />
request (if the document cannot be looked up in the cache); or, a cache<br />
hit (if the document has already been requested in the session).<br />
Select the Every time option to always check if a page has changed on the<br />
Web server since the virtual user last viewed it. Documents with a future<br />
expiration date are not requested until their dates expire.<br />
The “Every time” strategy is slightly different from “Once per session”<br />
caching in that it checks for newer documents each time you reload a<br />
SilkPerformer User Guide 87
3 CONFIGURING PROJECTS<br />
Project Profile Settings<br />
page.<br />
Recording options<br />
Select the Never option to never check whether a page has changed since<br />
the virtual user last viewed it. Selecting this option speeds up the display<br />
of pages the user has already viewed.<br />
14 In the Document history size field, enter the maximum number of pages<br />
to be stored in the history. If this amount is exceeded, the oldest page is<br />
dropped from the history. As long as a page is stored in the history, all<br />
HTML document related information (links, forms, embedded objects,<br />
frames) is kept in memory. As soon as the page is dropped from the<br />
history this information is no longer available. Therefore related<br />
WebPageLink and WebPageSubmit calls do not succeed and subsequent<br />
page-level calls to the same URL do not find the document in the cache<br />
any more.<br />
15 Select the Emulate DNS lookup option to have SilkPerformer emulate a<br />
DNS lookup mechanism for each virtual user, which can be helpful for<br />
DNS-based load balancing. When this option is combined with a user<br />
behavior option, it allows each virtual user to send its individual DNS<br />
query to the DNS server.<br />
For more details, review the WebSetOption function in the BDL Function<br />
Reference.<br />
Procedure To set recording options:<br />
1 In the Project tab of the tree-view area of the main SilkPerformer<br />
window, expand the Profiles folder.<br />
2 Right-click the icon for the profile for which you want to configure<br />
settings.<br />
3 Choose Edit Profile.<br />
The Profile - [Loadtest] - Simulation dialog opens.<br />
Alternately, select Settings/Active Profile from the SilkPerformer menu<br />
bar.<br />
4 In the shortcut list on the left side, click the Web icon.<br />
5 Select the Record category.<br />
6 Click the Recording tab.<br />
7 Use the Browser emulation level area to specify the level at which you<br />
want to record Web traffic for use in your test scripts.<br />
- Select the Page-based browser-level API (HTML / HTTP) option to<br />
record Web traffic at the browser level. If you choose this option the<br />
SilkPerformer Recorder generates scripts that call functions<br />
provided by the page-based browser-level API.<br />
88 SilkPerformer User Guide
3 CONFIGURING PROJECTS<br />
Project Profile Settings<br />
- Select the Browser-level API (HTTP) option to record Web traffic at<br />
the browser level. If you choose this option the SilkPerformer<br />
Recorder generates scripts that call functions provided by the<br />
browser-level API.<br />
- Select the TCP/IP-level API (TCP/IP / HTTP) option to record Web<br />
traffic on the TCP/IP level. Select this option to capture proprietary<br />
protocols carried by HTTP.<br />
8 Select an Advanced context management level from the combo box.<br />
Click the View Settings button to view or customize the level of<br />
advanced context management.<br />
9 Select the Automatic page detection option to enable the page notion<br />
technology of the Recorder. When you use the page-based Web<br />
functions, this feature attaches embedded documents that are loaded by<br />
JavaScript code into a Web page. When you use the other browser-level<br />
functions, this feature wraps all the requests that load a Web page in<br />
WebUrlBeginPage and WebUrlEndPage function calls and so<br />
automatically creates page timers and synchronizes the downloading of<br />
Web pages for improved accuracy.<br />
10 Select the Convert URL query strings to forms option to convert recorded<br />
URL query strings to Web forms and then include the forms in the<br />
dclform section of the generated test script. You should disable this<br />
option only if the URLs are irregular.<br />
11 Select the Enable persistent-cookie recording for returning-user<br />
simulation option to have the Recorder generate a WebCookieSet<br />
function call at the beginning of the current transaction for each<br />
persistent cookie that you receive from the Web server. During a load<br />
test, each WebCookieSet function then emulates a cookie that is<br />
persistently stored in the virtual user’s cookie database.<br />
Note The WebCookieSet function calls are marked as comments—<br />
so you must remove the comment marks to activate the function<br />
calls.<br />
12 Select the Encapsulate concurrent pages using timers option to<br />
encapsulate concurrent pages with timers. Page timers, normally<br />
included in the page-based browser-level functions or in calls of the<br />
WebUrlBeginPage function, are not scripted. Instead, MeasureStart and<br />
MeasureStop functions are inserted automatically (based on timings).<br />
A series of browser activities is considered “concurrent” if there is no<br />
browser idle period longer than the value of the minimum thinktime<br />
recorded.<br />
SilkPerformer User Guide 89
3 CONFIGURING PROJECTS<br />
Project Profile Settings<br />
Verification options<br />
13 Use the Record additional HTTP headers area to specify additional<br />
HTTP headers you want to record, such as those generated by a custom<br />
HTTP client.<br />
14 Click the Add button to add the name of an additional HTTP header you<br />
want to record, such as one generated by a custom HTTP client you are<br />
using. You must know the exact name of the header you want to record<br />
to use this feature.<br />
15 The HTTP Headers dialog appears. Enter the name of the header you<br />
want to add to the list, or select one from the drop-down list.<br />
16 Click OK.<br />
17 Click the Edit button if you want to edit the selected additional HTTP<br />
header.<br />
18 The HTTP Headers dialog appears. Edit the header as required.<br />
19 Click OK.<br />
20 Click the Remove button if you want to remove the selected additional<br />
HTTP header from the list.<br />
Procedure To set verification options:<br />
1 In the Project tab of the tree-view area of the main SilkPerformer<br />
window, expand the Profiles folder.<br />
2 Right-click the icon for the profile for which you want to configure<br />
settings.<br />
3 Choose Edit Profile.<br />
The Profile - [Loadtest] - Simulation dialog opens.<br />
Alternately, select Settings/Active Profile from the SilkPerformer menu<br />
bar.<br />
4 In the shortcut list on the left side, click the Web icon.<br />
5 Select the Replay category.<br />
6 Click the Verification tab.<br />
7 Use the Recording area to specify options for generating verification<br />
functions when recording a script based on captured Web traffic. Click a<br />
specific item for detailed information.<br />
8 Select the Record title verification option if you want the SilkPerformer<br />
Recorder to automatically generate a title verification function<br />
(WebVerifyHtmlTitle) for each Web page.<br />
90 SilkPerformer User Guide
3 CONFIGURING PROJECTS<br />
Project Profile Settings<br />
9 Select the Record digest verification option if you want the<br />
SilkPerformer Recorder to automatically generate a digest verification<br />
function (WebVerifyDataDigest) for a response that can be in the form<br />
of one of the listed content types:<br />
- Select the All characters option to include in the digest all of the<br />
characters that are received in HTTP response messages from the<br />
Web server.<br />
- Select the Printable characters option to include in the digest only<br />
the printable characters that are received in HTTP response<br />
messages from the Web server.<br />
- Select the Alphanumeric characters option to include in the digest<br />
only the alphanumeric characters that are received in HTTP response<br />
messages from the Web server.<br />
- Use the Verify data of content type area to list all HTTP response<br />
content types for which to generate a response verification digest.<br />
- Click the Add button to add a new HTTP response content type that<br />
you want to use for response verification.<br />
The Response Content Types dialog appears.<br />
Enter the name of the new content type you want to add to the list, or<br />
select one from the drop-down list.<br />
Click OK.<br />
Click the Edit button to edit the currently selected HTTP response<br />
content type.<br />
The Response Content Types dialog appears.<br />
Edit the currently selected HTTP response content type.<br />
Click OK.<br />
Click the Remove button to remove the currently selected HTTP<br />
response content type from the list.<br />
Click OK to exit the dialog and save your changes.<br />
10 Use the HTML / XML area to enable HTML and XML document<br />
verification when replaying scripts based on Web traffic captured by the<br />
SilkPerformer Recorder.<br />
11 Select the Title verification option to enable SilkPerformer to verify the<br />
title of HTML documents. An operation (depending on the specified<br />
severity: error, warning, informational, custom) will be performed if the<br />
verification fails. The setting used here is valid for both the page-based<br />
browser-level API and the browser-level API (WebSetVerificationEx).<br />
If this option is selected, it will trigger the execution of the<br />
WebVerifyHtmlTitle function in the BDL script.<br />
SilkPerformer User Guide 91
3 CONFIGURING PROJECTS<br />
Project Profile Settings<br />
12 Select the Table verification option to enable SilkPerformer to verify that<br />
a table within an HTML document contains some specific text. An<br />
operation (depending on the specified severity: error, warning,<br />
informational, custom) will be performed if the verification fails. The<br />
setting used here is valid for both the page-based browser-level API and<br />
the browser-level API (WebSetVerificationEx).<br />
If this option is selected, it will trigger the execution of the<br />
WebVerifyTable function in the BDL script.<br />
13 Select the Digest verification tolerance level option to verify the HTML<br />
content of a server response. Use TrueLog Explorer to generate<br />
WebVerifyHtmlDigest function calls.<br />
Enter the maximum difference in character frequency, quantified in<br />
bytes, that may occur between the server response that has been used by<br />
TrueLog Explorer to generate the HTML digest and the response that is<br />
received during replay. An operation (depending on the specified<br />
severity: error, warning, informational, custom) is performed, if the<br />
number of differing bytes exceeds this limit.<br />
14 Select the HTML verification option to enable SilkPerformer to verify<br />
that an HTML document contains some specific text. An operation<br />
(depending on the specified severity: error, warning, informational,<br />
custom) will be performed if the verification fails. The setting used here<br />
is valid for both the page-based browser-level API and the browser-level<br />
API.<br />
If this option is checked it will trigger the execution of the<br />
WebVerifyHTML and WebVerifyHTMLBound functions in the BDL<br />
script.<br />
15 Select the Link checking option to check the validity of links in HTML<br />
documents received while a load test is run. The HTML document is<br />
parsed on receipt, and additional requests are sent to check that links are<br />
valid. An error message is generated if a target pointed to by a link is<br />
invalid. This feature is available only in the page-based browser-level<br />
API.<br />
16 Select the XML verification option to enable SilkPerformer to verify, that<br />
an XML document contains some specific values or attributes. An<br />
operation (depending on the specified severity: error, warning,<br />
informational, custom) will be performed if the verification fails. The<br />
setting used here is valid for both the page-based browser-level API and<br />
the browser-level API.<br />
If this option is checked it triggers the execution of the<br />
WebXmlVerifyNodeValue and WebXmlVerifyNodeAttribute functions<br />
in the BDL script.<br />
92 SilkPerformer User Guide
3 CONFIGURING PROJECTS<br />
Project Profile Settings<br />
HTTP body<br />
transformation<br />
17 Use the Data area to specify options for HTTP response verification<br />
when replaying a script based on Web traffic captured by the<br />
SilkPerformer Recorder.<br />
18 Select the Data verification option to enable SilkPerformer to verify that<br />
raw data received from the server contains certain specific data (e.g.,<br />
HTML source code containing some specific code). An operation<br />
(depending on the specified severity: error, warning, informational,<br />
custom) will be performed if the verification fails. The setting used here<br />
is valid for both the page-based browser-level API and the browser-level<br />
API.<br />
If this option is checked it triggers execution of the WebVerifyData and<br />
WebVerifyDataBound functions in the BDL script.<br />
19 Select the Digest verification tolerance level option to have<br />
SilkPerformer verify server response data during a load test. Note that<br />
the SilkPerformer Recorder generates the digests needed for verification.<br />
In the field to the right, enter the maximum difference in character<br />
frequency, quantified in bytes, that may occur between the response<br />
message received from the server during recording and the response<br />
message received during replay. If the number of bytes that differ<br />
exceeds this limit, SilkPerformer will report an error. The SilkPerformer<br />
Recorder creates digests only for the content types that are included in<br />
the Verify data of content type list.<br />
Procedure To install an HTTP body transformation:<br />
1 In the Project tab of the tree-view area of the main SilkPerformer<br />
window, expand the Profiles folder.<br />
2 Right-click the icon for the profile for which you want to configure<br />
settings.<br />
3 Choose Edit Profile.<br />
The Profile - [Loadtest] - Simulation dialog opens.<br />
Alternately, select Settings/Active Profile from the SilkPerformer menu<br />
bar.<br />
4 In the shortcut list on the left side, click the Web icon.<br />
5 Select the Replay category.<br />
6 Click the Transformation tab.<br />
7 Select a transformation type from the Type drop-down list.<br />
8 Optionally, enter additional parameters for the transformation type.<br />
SilkPerformer User Guide 93
3 CONFIGURING PROJECTS<br />
Project Profile Settings<br />
Note See the SilkPerformer Advanced Concepts book for details<br />
about valid parameters for the Flash Remoting transformation<br />
package that is pre-installed with SilkPerformer.<br />
9 Use the checkboxes to specify if the transformation should be applied to<br />
HTTP request bodies (Transform HTTP requests), HTTP response<br />
bodies (Transform HTTP responses), or both. Select the respective Log<br />
encoded checkboxes to additionally log the encoded HTTP response<br />
bodies.<br />
Terminal Client options<br />
Note SilkPerformer offers tutorials that walk you through the<br />
process of load testing terminal client applications (Load Testing<br />
IBM Mainframe Applications and Load Testing VT 100+<br />
Applications). These tutorials are available in Miscellaneous<br />
Tutorials (/Documentation/<br />
Tutorials/...).<br />
Terminal client<br />
options<br />
Procedure To set terminal client options:<br />
1 In the Project tab of the tree-view area of the main SilkPerformer<br />
window, expand the Profiles folder.<br />
2 Right-click the icon of the profile for which you want to configure<br />
settings.<br />
3 Select Edit Profile from the context menu.<br />
The Profile - [Loadtest] - Simulation dialog opens.<br />
4 In the shortcut list on the left, click the Terminal Client icon.<br />
5 Select the Record category.<br />
6 In the Telnet settings area of the Telnet tab, specify a telnet detection<br />
mode.<br />
- Select Always assume Telnet-mode to instruct the recorder to assume<br />
that each connection is a Telnet connection.<br />
- Select Auto-detect Telnet-mode to instruct the recorder to<br />
automatically detect Telnet on each new connection.<br />
- Select Never assume Telnet-mode to instruct the recorder to assume<br />
that no connections are Telnet connections.<br />
7 In the Command prompt string field, you can specify a command prompt<br />
string that is to be used by the recorder to script<br />
WebTcpipRecvPacketsUntilData functions wherever possible. This<br />
makes recorded scripts more effective for dynamic content.<br />
94 SilkPerformer User Guide
3 CONFIGURING PROJECTS<br />
Project Profile Settings<br />
8 From the Log level drop-down list in the Terminal properties section of<br />
the dialog, select the appropriate logging level (None, Error, Normal, or<br />
Debug).<br />
9 From the Terminal type drop-down list select the supported terminal<br />
types. When correctly specified, the recorder scripts the appropriate<br />
terminal-type initialization functions and renders the screens to the<br />
TrueLog.<br />
10 In the Configuration string field, initialize the terminal emulator with a<br />
custom configuration string (see your terminal emulator documentation<br />
for available options).<br />
11 Use the Default screen fields to indicate the default appearance of the<br />
terminal screen to the recorder. The recorder will use these values if the<br />
actual values cannot be detected during session initialization.<br />
- Use the rows field to indicate the default height of the terminal<br />
screen. The recorder will use these values if the actual height cannot<br />
be detected during session initialization.<br />
- Use the columns field to indicate the default width of the terminal<br />
screen. The recorder will use these values if the actual width cannot<br />
be detected during session initialization.<br />
- Select the Colors checkbox to specify default color use on the<br />
terminal screen. The recorder will use these values if the use of<br />
colors cannot be detected during session initialization.<br />
12 In the Host code page field, specify the code page that is used by the<br />
server. The code page is used for various data conversions. The available<br />
code pages have been installed with the system. If the required code page<br />
is not listed, you may install it on the system. Ensure that the selected<br />
code page is also available on each agent computer.<br />
13 Click the Advanced tab.<br />
14 Select the Record basic functions option to prevent the recorder from<br />
scripting synchronized receive-functions, for example<br />
WebTcpipScreenRecvPacketsUntilCursor and<br />
WebTelnetScreenRecvRecordsUntilStatus. If enabled, scripted receive<br />
functions will not rely on rendered screen content. This option is enabled<br />
by default when a terminal type is not specified.<br />
GUI-Level Testing options<br />
General options<br />
Procedure To configure GUI-level testing settings for your project:<br />
1 Select Active Profile from the Settings menu.<br />
SilkPerformer User Guide 95
3 CONFIGURING PROJECTS<br />
Project Profile Settings<br />
2 Scroll down and select the GUI-Level Testing group icon.<br />
3 The Session settings section of the General tab is used to configure the<br />
connection between your console session and remote desktop sessions.<br />
Select the Run TryScript on console checkbox to have SilkTest run a<br />
TryScript on the console application. When this option is enabled, you<br />
can view what SilkPerformer does during tests, but you are limited in<br />
what you can do on your computer because SilkTest uses your console.<br />
If disabled, TryScripts will connect to and run SilkTest on remote<br />
desktop sessions.<br />
4 Select the Allow usage of console session on agents checkbox if you do<br />
not have a terminal-server license for all agents, or if your agents run on<br />
Windows Home or Windows Professional editions. SilkPerformer only<br />
uses this option if the connection to a terminal services session fails, or if<br />
no user credentials are provided.<br />
Note When this option is selected, you can start only one virtual<br />
user on each agent (for agents that have no Terminal Server license<br />
and Windows Home/Professional systems).<br />
5 Define a Connection timeout (in seconds) to specify how long<br />
SilkPerformer should wait before a connection is established to remote<br />
desktops. Set this setting to '0' to have no timeout.<br />
6 Complete the Username/Password settings to enable automatic login if<br />
you only require a single set of login credentials. These credentials will<br />
be automatically loaded into StInitSession functions. These credentials<br />
can be overruled by scripted settings, e.g., providing parameters to the<br />
StInitSession function by using project attributes. See “Specifying user<br />
credentials” for more information.<br />
7 The Execution Settings portion of the dialog enables you to configure<br />
settings for the script and the runtime. Select the Log SilkTest errors<br />
checkbox to have errors and warnings that are sent back by SilkTest<br />
logged as informational warnings (this option is enabled by default).<br />
8 Select a TrueLog setting for the remote desktop session. From the<br />
Generate TrueLog file for drop-down list, select None (the default) to not<br />
have TrueLog written. Select On Error to have TrueLog written only<br />
when errors are encountered. Or select Custom when you wish to have<br />
TrueLog written based on your custom settings.<br />
If you select Custom TrueLog settings, your TrueLog settings will be<br />
read from the SilkTest option file, or they can be set via the StSetOption<br />
function.<br />
96 SilkPerformer User Guide
3 CONFIGURING PROJECTS<br />
Project Profile Settings<br />
Note Even if you select OnError or Custom from the TrueLog on<br />
SilkTest drop-down list, SilkTest will only write TrueLog files if you<br />
also specify in SilkPerformer’s settings that TrueLog should be<br />
written. To do this, click the Generate TrueLog Files button or the<br />
Generate TrueLog On Error Files button on SilkPerformer’s<br />
toolbar.<br />
9 Specify an Execution timeout (in seconds) to specify how long the<br />
runtime should wait before test cases execute. Set this setting to '0' to<br />
have no timeout.<br />
10 Results history size (set to 9 by default) specifies how many test case<br />
results SilkTest can save in a .res file.<br />
Note By starting a new load test, the results in the .res file are reset.<br />
11 In the SilkTest option file field, browse to and select a SilkTest option<br />
file. See the Silk Online Help for full details about using option files.<br />
12 Click OK to save your settings.<br />
Oracle Forms options<br />
Note SilkPerformer offers a tutorial that walks you through the<br />
process of load testing Oracle Forms. The Oracle Forms tutorial is<br />
available at (/Documentation/<br />
Tutorials/...).<br />
Oracle Forms options<br />
Procedure To set Oracle Forms options:<br />
1 In the Project tab of the tree-view area of the main SilkPerformer<br />
window, expand the Profiles folder.<br />
2 Right-click the icon of the profile for which you want to configure<br />
settings.<br />
3 Select Edit Profile from the context menu.<br />
The Profile - [Loadtest] - Simulation dialog opens.<br />
4 In the shortcut list on the left, scroll down to and select the Oracle Forms<br />
icon.<br />
5 Select the Replay category.<br />
6 Oracle Forms clients can communicate with servers via Sockets, HTTP,<br />
or HTTPS. Select a Connection mode setting that reflects the server<br />
version and configuration you are testing.<br />
Note This setting can be overridden by the<br />
OraFormsSetConnectMode(connectMode) BDL function call.<br />
SilkPerformer User Guide 97
3 CONFIGURING PROJECTS<br />
Project Profile Settings<br />
- Select Socket mode when the Oracle Forms server is set up for<br />
socket mode.<br />
- Select HTTP mode for Oracle Forms servers that are configured for<br />
HTTP connections.<br />
- Select HTTPS mode for Oracle Forms servers that are configured for<br />
secure HTTP connections.<br />
7 In the Connection timeout field, specify a timeout period (in seconds) for<br />
send and receive connections.<br />
8 To configure additional runtime settings, you can optionally have the<br />
virtual user send a heartbeat message to the server at a specified interval.<br />
Enter an interval (in seconds) in the sec field.<br />
9 Select the Automatically wait for application timers checkbox to direct<br />
the replay engine to wait for application timers to expire after each<br />
function call.<br />
10 The Application timer and window timeout setting specifies the<br />
maximum wait time for expiration of application timers and appearance<br />
of windows. When enabled, the replay engine waits for timers to expire<br />
after each function call. When this option is not enabled, a function<br />
named OraFormsWaitForTimer can be used to make an application wait<br />
for timers to expire. Maximum wait time is specified by this setting. The<br />
function OraFormsWaitForWindow may be used to have an application<br />
wait for windows to appear. This option specifies the maximum wait<br />
time for window appearance.<br />
11 Enter the Forms version you are working with. Oracle Forms clients<br />
send the required version when connecting to the Oracle Forms server.<br />
Create profiles and change this setting when testing applications<br />
deployed on different server versions.<br />
Note This setting can be overridden by the<br />
OraFormsSetInt("INITAL_VERSION", theVersion) BDL function<br />
call.<br />
12 Click the Logging tab. Here you can specify that additional properties<br />
have their values logged during replay.<br />
13 Set the Log level for virtual user logging:<br />
- None - No additional logs will be written (disables logging)<br />
- Error - Only errors that occur during replay will be logged.<br />
- Normal - Oracle Forms Messages will be logged.<br />
- Debug - Additional information will be logged (e.g., events).<br />
98 SilkPerformer User Guide
3 CONFIGURING PROJECTS<br />
Project Profile Settings<br />
14 In the Additional properties field you can specify other properties for<br />
which virtual users are to log values.<br />
- Click Add to add a property that is to have its value logged during<br />
replay.<br />
- Click Edit to edit a selected property.<br />
- Click Remove to remove a selected property. No further values will<br />
be logged for this property.<br />
15 Click the Measuring tab. Here you can specify a custom measurement<br />
level. By default, all available performance metrics are collected during<br />
test runs.<br />
16 Select the Enable all timers and counters for all controls checkbox to<br />
enable all timers and counters for all actions on controls during replay.<br />
Or, select a specific control from the Control drop-down list and select<br />
the specific timer/counter types that you want to have applied to that<br />
control:<br />
- Enable timers - Measure how long it takes to complete an action on<br />
the selected control.<br />
- Count round trips - Count the round trips for each action on the<br />
selected control.<br />
- Count bytes - Count the bytes sent and received for each action on<br />
the selected control.<br />
- Count messages - Count the messages sent and received for each<br />
action on the selected control.<br />
Note Alternately, you can click the Apply to All Controls button to<br />
apply your timer/counter settings to all controls.<br />
17 Click OK to save your settings.<br />
SAP GUI options<br />
Note SilkPerformer offers a tutorial that walks you through the<br />
process of load testing SAP GUI applications. The SAP tutorial is<br />
available at (/Documentation/<br />
Tutorials/...).<br />
SAP GUI options<br />
Procedure To set SAP GUI options:<br />
1 In the Project tab of the tree-view area of the main SilkPerformer<br />
window, expand the Profiles folder.<br />
SilkPerformer User Guide 99
3 CONFIGURING PROJECTS<br />
Project Profile Settings<br />
2 Right-click the icon of the profile for which you want to configure<br />
settings.<br />
3 Select Edit Profile from the context menu.<br />
The Profile - [Loadtest] - Simulation dialog opens.<br />
4 In the shortcut list on the left, scroll down to and select the SAP GUI<br />
icon.<br />
5 Select the Record category.<br />
6 On the General tab you can define options for how the SAP Recorder<br />
records and replays scripts.<br />
7 Login to SAP systems involves several user interactions. With the Script<br />
logon as a single function option enabled, the recorder only scripts one<br />
function that performs all the required login actions.<br />
8 Select the Script low level functions option to use a basic set of scripting<br />
functions instead of object-specific functions.<br />
9 Select the Script timers option to script timers automatically. These<br />
timers are used for measuring SAP API calls.<br />
10 Select Attach to existing SAP session to have the recorder attach to an<br />
existing session rather than create a new session.<br />
11 Select the Record window title verification option to record<br />
SapGuiSetActiveWindow functions in such a way that title verifications<br />
are automatically performed on activated windows during test runs.<br />
12 Now select the Replay category to configure replay settings.<br />
13 In the Replay timeout field, specify a timeout period (in seconds) for<br />
automatic shutdown of SAPFewgsrv (when not otherwise closed at the<br />
end of test runs).<br />
14 Select the Show SAP GUI during replay checkbox to display the R/3<br />
client during test runs. GUI display is only an option with TryScript<br />
executions. This setting is ignored for baseline tests and load tests.<br />
15 Select the Enable client-side scripting option to enable SAP client-side<br />
scripting via the registry. This option disables warnings that raise pop-up<br />
windows when new users start.<br />
16 Select the User new SAP Visual Design option to enable SAP visual<br />
design for the SAP client.<br />
17 Click the Logging tab to specify additional log levels.<br />
Note These settings affect performance and resource utilization.<br />
18 From the Log level drop-down list, select a log level for virtual user<br />
logging:<br />
100 SilkPerformer User Guide
3 CONFIGURING PROJECTS<br />
Project Profile Settings<br />
- Disable - Virtual user logging is disabled.<br />
- Normal - Default logging.<br />
- Debug - Detailed information is logged, such as additional session<br />
information and errors.<br />
19 Select the Capture screenshots option to generate screenshots for each<br />
activated window. Screenshot capture is only enabled for TryScript<br />
executions. This setting is ignored for baseline tests and load tests.<br />
20 Select the Capture screenshots for each action checkbox to have each<br />
action performed by the script documented with a screenshot. Screenshot<br />
capture is only enabled for TryScript executions. This setting is ignored<br />
for baseline tests and load tests.<br />
21 Select the Log control information in TrueLog option to have additional<br />
control information written to the TrueLog.<br />
22 Select the Log control information for single run in TrueLog option to<br />
have additional control information written to the TrueLog only for try<br />
script and verification tests.<br />
23 Select the Log control information on error option to enable writing of<br />
control information to TrueLogs in the case of errors.<br />
24 Select the Highlight controls checkbox to have controls highlighted as<br />
they are accessed by the script.<br />
25 Select the Measuring tab to specify a custom measurement level. By<br />
default, all available performance metrics are collected during test runs.<br />
26 Select the Enable all timers and counters for all controls checkbox to<br />
enable all timers and counters for all actions on controls during replay.<br />
Or, select a specific control from the Control drop-down list and select<br />
the specific counter types that you want to have applied to that control:<br />
- Count round-trips - The number of round-trips for the action on the<br />
control.<br />
- Count response time - The time it takes a function to return<br />
requested data.<br />
- Count Interpretation time - The time it takes to interpret a request.<br />
- Count flushes - The number of flushes per action.<br />
Note Alternately, you can click the Apply to All Controls button to<br />
apply your counter settings to all controls.<br />
27 Click OK to save your settings.<br />
SilkPerformer User Guide 101
3 CONFIGURING PROJECTS<br />
Project Profile Settings<br />
Citrix options<br />
Note SilkPerformer offers a tutorial that walks you through the<br />
process of load testing Citrix-based applications. The Citrix tutorial<br />
is available at (/Documentation/<br />
Tutorials/...).<br />
Citrix options<br />
Procedure To set Citrix options:<br />
1 In the Project tab of the tree-view area of the main SilkPerformer<br />
window, expand the Profiles folder.<br />
2 Right-click the icon of the profile for which you want to configure<br />
settings.<br />
3 Select Edit Profile from the context menu.<br />
The Profile - [Loadtest] - Simulation dialog opens.<br />
4 In the shortcut list on the left, scroll down to and select the Citrix icon.<br />
5 Select the Replay category.<br />
6 In the Options area you can specify general Citrix options. In the<br />
Synchronization timeout field, enter a default synchronization timeout<br />
(in seconds) that is to be used by all CitrixWaitForXXX functions that<br />
don't specify a timeout value.<br />
7 Select the Force window position checkbox to make the calls to<br />
CitrixWaitForWindowCreation and CitrixWaitForWindowRestore move<br />
windows to the coordinates captured during recording. When this option<br />
is not selected, both functions provide a parameter (bForcePos) that<br />
enables this option for each individual call.<br />
8 Select the Disconnect on transaction end option to disconnect the Citrix<br />
client upon each transaction end (this includes the TInit transaction).<br />
9 You can specify Citrix logging options in the Logging area of the dialog.<br />
When TrueLog generation is enabled, at the end of each synchronization<br />
function a screenshot is made and written to the TrueLog. Select the Log<br />
screen before each user action option to also capture and write a<br />
screenshot at the beginning of each user action.<br />
10 The CitrixWaitForScreen function captures a screen region and checks it<br />
against a specified condition (normally it compares it to a hash value<br />
that's captured at recording). If the function call fails when the Dump<br />
window region on unsuccessful screen synchronization option is selected<br />
(i.e., if the condition still doesn't match and the timeout period has<br />
102 SilkPerformer User Guide
3 CONFIGURING PROJECTS<br />
Project Profile Settings<br />
expired), the captured screen region will be written to a file in the result<br />
directory. This file can later be examined or compared to what was<br />
captured during recording for error analysis.<br />
11 Select the User RAM disk option to use a different drive for intermediate<br />
storage of images. If the specified drive is a RAM disk, TrueLog<br />
generation performance will improve. Select the drive letter of the RAM<br />
disk from the drop-down list.<br />
12 Click the Simulation tab.<br />
13 In the Mouse area of the dialog you can specify mouse options. In the<br />
Length of time mouse button remains pressed field, enter the length of<br />
time that the virtual user is to hold the mouse button in the pressed state<br />
(for CitrixMouseClick and CitrixMouseDblClick).<br />
14 In the Length of time between the clicks of a double-click field, enter the<br />
length of time that is to pass between the two clicks of a double click (for<br />
CitrixMouseDblClick).<br />
15 In the Mouse speed field, enter the speed at which the mouse is to move<br />
across the screen (pixels per second).<br />
16 In the Keyboard area of the dialog you can specify keyboard options. In<br />
the Length of time each key remains pressed field, enter the length of<br />
time that the virtual user is to hold a keyboard key in the down state (for<br />
CitrixKey and CitrixKeyString).<br />
17 In the Length of time between keystrokes when entering strings field,<br />
enter the length of time that is to pass between the individual key-strokes<br />
specified by the CitrixKeyString function.<br />
18 In the Key repeat time field, enter the time required for a complete key<br />
stroke when simulating repeat functionality (a value of 50 means 20 keys<br />
per second).<br />
19 In the Think times area of the dialog you can specify think time options.<br />
In the Delay after successful synchronization field, enter the length of<br />
time that virtual users are to remain inactive after passing a successful<br />
synchronization point (CitrixWaitForXXX).<br />
20 In the Delay after each user action field, enter the length of time that<br />
virtual users are to remain inactive between actions.<br />
21 Select the Citrix client tab to specify Citrix client options.<br />
22 From the Network protocol drop-down list, select which low-level<br />
network protocol is to be used to locate and connect to the MetaFrame<br />
server (see Citrix client documentation for more information).<br />
23 Select the Use data compression option to compress all transferred data.<br />
This reduces file size, but requires additional processor resources.<br />
SilkPerformer User Guide 103
3 CONFIGURING PROJECTS<br />
Project Profile Settings<br />
24 Select the Use disk cache for bitmaps option to store commonly used<br />
graphical objects, such as bitmaps, in a local disk cache.<br />
25 Select the Queue mouse movements and keystrokes option to queue<br />
mouse and keyboard updates. This reduces the number of network<br />
packets that are sent from the Citrix client to the MetaFrame server.<br />
26 From the SpeedScreen latency reduction drop-down list, select an option<br />
for enhancing user experience on slower network connections. For<br />
slower connections (e.g., WANs) select On. For faster connections (e.g.,<br />
LANs), select Off. Set the mode to Auto to turn latency reduction on and<br />
off based on the latency of connections.<br />
27 From the Encryption level drop-down list, select a level of encryption for<br />
the ICA connection. The MetaFrame server must be configured to allow<br />
the selected encryption level, or higher.<br />
Note Using an encryption level other than the server default or<br />
Basic disables automatic logon to the MetaFrame server.<br />
.NET options<br />
.NET options<br />
Procedure To set .NET options:<br />
1 In the Project tab of the tree-view area of the main SilkPerformer<br />
window, expand the Profiles folder.<br />
2 Right-click the icon of the profile for which you want to configure<br />
settings.<br />
3 Select Edit Profile from the context menu.<br />
The Profile - [Loadtest] - Simulation dialog opens.<br />
Alternately, select Settings/Active Profile from the SilkPerformer menu<br />
bar.<br />
4 In the shortcut list on the left, scroll down to and select the .NET icon.<br />
5 Select the Replay category.<br />
6 Select the Route HTTP .NET through SilkPerformer Web engine<br />
checkbox to route all http/https traffic that is generated by your .NET test<br />
driver through the SilkPerformer Web engine. This allows you to take<br />
advantage of the features that SilkPerformer offers for accurate load<br />
testing, such as its high performance Web engine, modem simulation,<br />
detailed timing/throughput information for each transmission, HTTP/<br />
XML TrueLog, and IP spoofing.<br />
104 SilkPerformer User Guide
3 CONFIGURING PROJECTS<br />
Project Profile Settings<br />
7 The Routed Web service proxy classes field displays the .NET<br />
WebService client classes that are used in your .NET test driver. HTTP/<br />
SOAP traffic of selected classes will be routed through SilkPerformer’s<br />
Web engine, regardless of the setting above. This setting can only be<br />
changed via the SilkPerformer .NET AddIn.<br />
8 Select the One application domain for each virtual user container<br />
process option to share one .NET application domain among all virtual<br />
users running in a virtual user process. This minimizes the administrative<br />
overhead for the .NET Common Language Runtime, but may cause<br />
runtime problems because all objects will be loaded into the same<br />
application domain.<br />
9 Select the One application domain for each virtual user option to give<br />
each virtual user its own .NET application domain. This increases the<br />
administrative overhead of the .NET Common Language Runtime, but<br />
ensures that objects from different virtual users won’t interfere with one<br />
another.<br />
10 Click OK to save your settings.<br />
CORBA/IIOP options<br />
Replay options<br />
Procedure To set replay options:<br />
1 In the Project tab of the tree-view area of the main SilkPerformer<br />
window, expand the Profiles folder.<br />
2 Right-click the icon for the profile for which you want to configure<br />
settings.<br />
3 Select Edit Profile from the context menu.<br />
The Profile - [Loadtest] - Simulation dialog opens.<br />
Alternately, select Settings/Active Profile from the SilkPerformer menu<br />
bar.<br />
4 In the shortcut list on the left side, click the CORBA / IIOP icon.<br />
5 Select the Replay category.<br />
6 Use the IIOP 1.2 area to specify the default settings for IIOP 1.2 replay.<br />
7 In the Max. chunk size for value type field, enter the maximum size for a<br />
single part of a chunked-encoded value type, that is, a value type that has<br />
been broken into smaller parts.<br />
8 Select the Use fragmentation option to fragment IIOP request and<br />
response messages if they exceed the length set in the Fragmentation<br />
size field.<br />
SilkPerformer User Guide 105
3 CONFIGURING PROJECTS<br />
Project Profile Settings<br />
9 Use the Fragmentation size field to set the fragmentation size for a<br />
chunked-encoded value type. If a request or response message exceeds<br />
this size, the message will be sent using fragmentation.<br />
WChar/WString<br />
options<br />
Procedure To set WChar / WString options:<br />
1 In the Project tab of the tree-view area of the main SilkPerformer<br />
window, expand the Profiles folder.<br />
2 Right-click the icon of the profile for which you want to configure<br />
settings.<br />
3 Select Edit Profile from the context menu.<br />
The Profile - [Loadtest] - Simulation dialog opens.<br />
Alternately, select Settings/Active Profile from the SilkPerformer menu<br />
bar.<br />
4 In the shortcut list on the left side, click the CORBA / IIOP icon.<br />
5 Select the Replay category.<br />
6 Click the WChar / WString tab.<br />
7 Use the Code set area to specify the settings for the wide-character code<br />
set. In general, a code set determines the encoding rules for characters<br />
and wide characters. Code sets can be byte-oriented or non-byte-oriented<br />
(e.g., ASCII is a byte-oriented code set for single byte characters).<br />
Multibyte characters defined by non-byte-oriented code sets have a byteorientation<br />
(big-endian, little-endian), whereas byte-oriented code sets<br />
do not.<br />
8 Select the Unicode option to use the Unicode code set. Unicode is a nonbyte-oriented<br />
code set for two-byte characters. The byte orientation of<br />
Unicode characters is determined by the IIOP message byte order.<br />
9 From the WChar size drop-down list, select the size of a CORBA wide<br />
character (wchar).<br />
10 Select the Byte-oriented option for a byte-oriented code set to be used for<br />
CORBA wchars and wstrings.<br />
Or, select the Non-byte-oriented option for a non-byte-oriented code set<br />
to be used for CORBA wchars and wstrings. If you select this option, use<br />
the Script byte order drop-down list to select the byte orientation of nonbyte-oriented<br />
CORBA wchar/wstring representation in the BDL script.<br />
The byte orientation can be little-endian (least significant bit first) or bigendian<br />
(most significant bit first).<br />
11 Use the IIOP 1.2 area to specify the settings for IIOP 1.2. The wchar and<br />
wstring encoding in IIOP 1.2 differs from the encoding in previous IIOP<br />
versions. However, not all ORBs use the correct encoding for IIOP 1.2.<br />
106 SilkPerformer User Guide
3 CONFIGURING PROJECTS<br />
Project Profile Settings<br />
Recording options<br />
12 Select the CORBA compliant option if the ORB uses CORBA compliant<br />
wchar/wstring encoding in IIOP 1.2.<br />
13 In the WChar area, select the No length encoding option to use pre IIOP<br />
1.2 encoding. CORBA compliant IIOP 1.2 encoded wchars use a length<br />
indication for the size of the wchar.<br />
14 In the WString area, select the Null-terminated option if the ORB uses<br />
null-terminated wstrings. CORBA compliant IIOP 1.2 encoded wstrings<br />
are not null-terminated.<br />
15 Select the Chars option if the ORB uses the number of chars as wstring<br />
length. CORBA compliant IIOP 1.2 encoded wstrings specify the string<br />
length in bytes (chars).<br />
Or select the WChars option if the ORB uses the number of wchars as<br />
wstring length.<br />
Procedure To set recording options:<br />
1 In the Project tab of the tree-view area of the main SilkPerformer<br />
window, expand the Profiles folder.<br />
2 Right-click the icon for the profile for which you want to configure<br />
settings.<br />
3 Select Edit Profile from the context menu.<br />
The Profile - [Loadtest] - Simulation dialog opens.<br />
Alternately, select Settings/Active Profile from the SilkPerformer menu<br />
bar.<br />
4 In the shortcut list on the left side, click the CORBA / IIOP icon.<br />
5 Click the Recording tab.<br />
6 Select the Record category.<br />
7 Use the Proprietary ORB features support area to specify whether to<br />
consider ORB-specific features when generating load test scripts based<br />
on recorded IIOP traffic. If the appropriate options are selected, the<br />
generated script becomes more readable.<br />
8 When generating a load test script based on recorded IIOP traffic<br />
- Select the Orbix option to consider Orbix-specific features<br />
- Select the OrbixWeb option to consider OrbixWeb-specific features<br />
- Select the VisiBroker C++ option to consider features specific to<br />
VisiBroker for C++<br />
- Select the VisiBroker Java to consider features specific to<br />
VisiBroker for Java<br />
SilkPerformer User Guide 107
3 CONFIGURING PROJECTS<br />
Project Profile Settings<br />
- Select the M3 C++ to consider features specific to BEA Millennium<br />
for C++<br />
- Select the M3 Java to consider features specific to BEA Millennium<br />
for Java<br />
9 From the CORBA version of IDL file drop-down list, select the CORBA<br />
version of the application you are testing. If the application is using a<br />
CORBA version from 2.0 to 2.2 inclusive, select 2.0 from the drop-down<br />
list. If the application is using CORBA 2.3 or CORBA 3.0, select 3.0<br />
from the drop-down list.<br />
10 In the Preprocessor arguments field, enter any number of arguments that<br />
are to be passed to the preprocessor of the .idl file parser. For example,<br />
the arguments may be used to specify the include directory and to<br />
execute some predefined macros.<br />
11 Use the IDL files loaded list to view all the .idl files that are currently<br />
used by the SilkPerformer Recorder to generate high-level load test<br />
scripts. Whenever the corresponding interface is defined in a .idl file, the<br />
Recorder generates type-dependent functions for specifying the<br />
parameters of CORBA operation calls in the load test script.<br />
12 Click OK to exit the dialog and save your changes.<br />
Java options<br />
General options<br />
Procedure To set general Java options:<br />
1 In the Project tab of the tree-view area of the main SilkPerformer<br />
window, expand the Profiles folder.<br />
2 Right-click the icon of the profile that you want to configure.<br />
3 Choose Edit Profile.<br />
The Profile - [Loadtest] - Simulation dialog opens.<br />
Alternately, select Settings/Active Profile from the SilkPerformer menu<br />
bar.<br />
4 In the shortcut list on the left side, click the Java icon.<br />
5 Select the Replay category.<br />
6 Click the General tab.<br />
7 Use the Settings area to set options for the Java Virtual Machine.<br />
8 From the Version drop-down list, select the version number of the Java<br />
Virtual Machine.<br />
108 SilkPerformer User Guide
3 CONFIGURING PROJECTS<br />
Project Profile Settings<br />
Advanced options<br />
9 In the Java home field, enter the installation directory of the Java Virtual<br />
Machine. This option enables the Java Virtual Machine to be loaded for a<br />
different path than specified in the PATH environment, so that it is<br />
possible to switch between various Java Virtual Machines without<br />
changing the system PATH environment. If necessary, use the browse<br />
(...) button to navigate to and select the installation directory.<br />
10 Use the Classpath field to view the class path specified for the Java<br />
Virtual Machine. By default the class path is set to the system class path.<br />
11 Click the File button to navigate to a class file and add it to the class path<br />
of the Java Virtual Machine.<br />
12 Click the Dir button to navigate to a directory and add it to the class path<br />
of the Java Virtual Machine.<br />
13 To reorder the files, click the Up and Dwn buttons to move selected files<br />
up or down in the class path hierarchy.<br />
14 To remove a selected file from the class path, click the Remove button.<br />
15 Use the System classpath field to view the full path of the system class<br />
path.<br />
16 Select the Use system classpath option to ensure that the system class<br />
path is used.<br />
Procedure To set advanced options:<br />
1 In the Project tab of the tree-view area of the main SilkPerformer<br />
window, expand the Profiles folder.<br />
2 Right-click the icon of the profile that you want to configure.<br />
3 Choose Edit Profile.<br />
The Profile - [Loadtest] - Simulation dialog opens.<br />
Alternately, select Settings/Active Profile from the SilkPerformer menu<br />
bar.<br />
4 In the shortcut list on the left side, click the Java icon.<br />
5 Select the Replay category.<br />
6 Click the Advanced tab.<br />
7 Use the Advanced area to set advanced options for the Java Virtual<br />
Machine.<br />
8 In the Command line options field, enter any command line options that<br />
are to be passed to the Java Virtual Machine.<br />
9 Select the Disable JIT compiler option to disable the Just In Time (JIT)<br />
compiler of the Java Virtual Machine.<br />
SilkPerformer User Guide 109
3 CONFIGURING PROJECTS<br />
Project Profile Settings<br />
Logging options<br />
10 In the JVM dll field, enter the name of any Dynamic Link Library (.dll)<br />
that implements the Java Virtual Machine that is to be used.<br />
11 If necessary, use the browse (...) button to the right of the field to<br />
navigate to and select the Dynamic Link Library that is to be used.<br />
12 Click the Check JVM button to verify your Java Virtual Machine<br />
configuration settings.<br />
13 Click OK to exit the dialog and save your changes.<br />
Procedure To set logging options:<br />
1 In the Project tab of the tree-view area of the main SilkPerformer<br />
window, expand the Profiles folder.<br />
2 Right-click the icon of the profile that you want to configure.<br />
3 Choose Edit Profile.<br />
The Profile - [Loadtest] - Simulation dialog opens.<br />
Alternately, select Settings/Active Profile from the SilkPerformer menu<br />
bar.<br />
4 In the shortcut list on the left side, click the Java icon.<br />
5 Select the Record category.<br />
6 Click the Logging tab.<br />
7 Use the Record settings area to specify that additional properties have<br />
their values logged during record.<br />
8 Set the log level for virtual user logging from the Log level drop-down<br />
list. To disable logging, set the log level to None. The following log<br />
levels are available:<br />
- None: No additional logs will be written.<br />
- Error: Only errors that occur during replay will be logged.<br />
- Normal: Java messages will be logged.<br />
- Debug: Additional information will be logged (e.g., events).<br />
Database options<br />
SQLSTATE-specific<br />
error handling<br />
Procedure To set SQLSTATE-specific error-handling options:<br />
1 In the Project tab of the tree-view area of the main SilkPerformer<br />
window, expand the Profiles folder.<br />
2 Right-click the icon of the profile you want to configure.<br />
110 SilkPerformer User Guide
3 CONFIGURING PROJECTS<br />
Project Profile Settings<br />
ODBC-specific error<br />
handling<br />
3 Choose Edit Profile.<br />
The Profile - [Loadtest] - Simulation dialog opens.<br />
Alternately, select Settings/Active Profile from the SilkPerformer menu<br />
bar.<br />
4 In the shortcut list on the left side, select the Replay category and click<br />
the Database icon.<br />
5 Click the SQLSTATE tab.<br />
6 Use the Simulation exceptions list to define exceptions for specific<br />
ODBC error codes to prevent termination of the simulation. If a database<br />
error occurs, SilkPerformer will automatically terminate the entire<br />
simulation. The list includes all the exceptions that SilkPerformer uses<br />
for handling database-specific errors. The Error field lists the native<br />
error code. The Class field ranks the severity of the error. Class 0 errors<br />
can be handled within a SilkPerformer transaction. Class 1 errors end the<br />
transaction but do not cause the simulation to terminate.<br />
7 To add an error to the list of database-specific error exceptions, click the<br />
Add button.<br />
The Edit Error dialog appears.<br />
8 In the Error field, add the error code for an error to be added to the<br />
exceptions list.<br />
9 In the Class field, add the error class.<br />
10 In the Description field, add a description for the error.<br />
11 Click OK.<br />
12 To edit an error, select it from the list, and click Edit.<br />
The Edit Error dialog appears.<br />
13 Edit the error code, class, and description as required.<br />
14 Click OK.<br />
15 To remove an error from the exceptions list, select it and click the<br />
Remove button.<br />
Procedure To set ODBC-specific error-handling options:<br />
1 In the Project tab of the tree-view area of the main SilkPerformer<br />
window, expand the Profiles folder.<br />
2 Right-click the icon of the profile you want to configure.<br />
3 Choose Edit Profile.<br />
The Profile - [Loadtest] - Simulation dialog opens.<br />
Alternately, select Settings/Active Profile from the SilkPerformer menu<br />
bar.<br />
SilkPerformer User Guide 111
3 CONFIGURING PROJECTS<br />
Project Profile Settings<br />
ODBC high-level<br />
options<br />
4 In the shortcut list on the left side, select the Replay category and click<br />
the Database icon.<br />
5 Click the ODBC Database Errors tab.<br />
6 Use the Error definition list to define exceptions for specific database<br />
error codes in order to prevent the termination of the simulation.<br />
7 To add an error to the list of database-specific error exceptions, click the<br />
Add button.<br />
The Edit Error dialog appears.<br />
8 In the Error field, add the error code for an error to be added to the<br />
exceptions list.<br />
9 In the Class field, add the error class.<br />
10 In the Description field, add a description for the error.<br />
11 Click OK.<br />
12 To edit an error, select it from the list, and click Edit.<br />
The Edit Error dialog appears.<br />
13 Edit the error code, class, and description as required.<br />
14 Click OK.<br />
15 To remove an error from the exceptions list, select it and click the<br />
Remove button.<br />
Procedure To set ODBC high-level options:<br />
1 In the Project tab of the tree-view area of the main SilkPerformer<br />
window, expand the Profiles folder.<br />
2 Right-click the icon of the profile you want to configure.<br />
3 Choose Edit Profile.<br />
The Profile - [Loadtest] - Simulation dialog opens.<br />
Alternately, select Settings/Active Profile from the SilkPerformer menu<br />
bar.<br />
4 In the shortcut list on the left side, select the Replay category and click<br />
the Database icon.<br />
5 Click the ODBC High-Level tab.<br />
6 Use the Database area to specify details about the ODBC data source<br />
you will use and how SilkPerformer should interact with the ODBC<br />
driver.<br />
7 From the Data Source Name drop-down list of available ODBC data<br />
sources, select the data source to which you want to connect for load<br />
testing. To set up an additional ODBC data source, use Windows 32-bit<br />
112 SilkPerformer User Guide
3 CONFIGURING PROJECTS<br />
Project Profile Settings<br />
ODBC Administrator (via the Windows Control Panel. The data source<br />
you select will only be used to replay test scripts with high-level ODBC<br />
functions.<br />
Note that the data source you select here is used only if you use highlevel<br />
ODBC functions that perform an implicit connection to the<br />
database. When you use medium-level ODBC functions, this data source<br />
is not used for connecting. Instead, the connection is performed with an<br />
explicit DB_Connect("connection string") function in the script.<br />
8 In the UserID field, enter the user name that is to be used to connect to<br />
the data source. You must specify a valid user for the DBMS to which<br />
you want to connect. If you use a trusted connection to connect to your<br />
DBMS, leave this field blank.<br />
Note that the user ID you enter here will only be used if you use highlevel<br />
ODBC functions.<br />
9 In the Password field, enter the password that is to be used when<br />
connecting to the data source. You must specify a valid password for the<br />
database user you are connecting. If you use a trusted connection, or if<br />
the user has no password, leave this field blank.<br />
Note that the password you enter here, as well as all remaining options<br />
you choose in this area, are used only if you use high-level ODBC<br />
functions.<br />
10 From the Isolation drop-down list, select the level of isolation for the<br />
entire load test. For a detailed description of isolation levels, consult your<br />
DBMS documentation and see the ODBC functions reference.<br />
You can change the isolation level and any other DBMS specific settings<br />
using the ODBC functions SQLSetConnectOption and<br />
SQLSetStmtOption in your script.<br />
11 From the SQL concurrency drop-down list, select a type of cursor<br />
concurrency to use for the scrollable cursors in your load test script. For<br />
a detailed description of concurrency settings, consult your DBMS<br />
documentation.<br />
12 From the SQL cursor type drop-down list, select a cursor type for the<br />
scrollable cursors in your load test script. For a detailed description of<br />
cursor type settings, consult your DBMS documentation.<br />
13 Select the Autocommit option to commit the database automatically after<br />
each SQL command. Otherwise the database will be committed only<br />
after an explicit commit statement. This setting is effective for all<br />
connected cursors.<br />
SilkPerformer User Guide 113
3 CONFIGURING PROJECTS<br />
Project Profile Settings<br />
14 Select the Reprepare SQL commands option to prepare and execute a<br />
SQL statement each time it is called. Otherwise SilkPerformer prepares<br />
SQL statements only when necessary. This setting is effective for all<br />
cursors used in the load test.<br />
Recording options<br />
Procedure To set recording options:<br />
1 In the Project tab of the tree-view area of the main SilkPerformer<br />
window, expand the Profiles folder.<br />
2 Right-click the icon of the profile that you want to configure.<br />
3 Choose Edit Profile.<br />
The Profile - [Loadtest] - Simulation dialog opens.<br />
Alternately, select Settings/Active Profile from the SilkPerformer menu<br />
bar.<br />
4 In the shortcut list on the left side, click the Database icon.<br />
5 Select the Record category.<br />
6 Click the Recording tab.<br />
7 In the Oracle OCI area, select the Generate random input for long<br />
placeholders option to replace large amounts of data exchanged between<br />
the client application and the database server with random data. Since the<br />
original data is rarely required for replay, this option helps to prevent<br />
large data files being carried along with load test scripts.<br />
Select the Generate files for long placeholders option to store large<br />
amounts of data exchanged between the client application and the<br />
database server in a file. During replay, the file is used to send to the<br />
database server exactly the same data as to the client application.<br />
8 Click OK to exit the dialog and save your changes.<br />
COM / ADO options<br />
Note SilkPerformer offers two tutorials that walk you through the<br />
process of load testing ADO and COM-based applications (Load<br />
Testing a COM Application and Load Testing an ADO Application).<br />
These tutorials are available in Miscellaneous Tutorials<br />
(/Documentation/Tutorials/...).<br />
Recording options<br />
Procedure To set COM/ADO recording options:<br />
1 In the Project tab of the tree-view area of the main SilkPerformer<br />
window, expand the Profiles folder.<br />
2 Right-click the icon of the profile you want to configure.<br />
114 SilkPerformer User Guide
3 CONFIGURING PROJECTS<br />
Project Profile Settings<br />
3 Choose Edit Profile.<br />
The Profile - [Loadtest] - Simulation dialog opens.<br />
Alternately, select Settings/Active Profile from the SilkPerformer menu<br />
bar.<br />
4 In the shortcut list on the left side, select the Record category and click<br />
the COM / ADO icon.<br />
5 On the Settings tab, in the Script options area, select the Generate<br />
warnings option for warnings to be included as comments in the test<br />
script which will be generated when you have finished recording.<br />
Warnings may occur at any time while a COM application is running and<br />
indicate that the application might not be working properly. Select this<br />
option to verify that the application you are going to test works properly<br />
before you run an actual load test.<br />
6 Select the Generate OLE32 functions details option to have<br />
SilkPerformer generate test scripts that mimic COM clients with extreme<br />
accuracy. When you select this option, the generated test scripts pass<br />
exactly the same parameters to all OLE32 functions as the COM client<br />
did; this makes test scripts look more complicated. Disable this option to<br />
replace parameters that are not relevant to load testing with default<br />
values; this will make the test scripts look less complicated and they will<br />
be easier to customize.<br />
Note: This option should be used only by testers who have a<br />
comprehensive knowledge of COM.<br />
7 In the Max. number of table elements field, specify the maximum<br />
number of array elements for which SilkPerformer should generate<br />
access functions in the test script. These functions are generated<br />
whenever an array parameter is passed to or received from a COM<br />
object.<br />
8 Select the Enhanced property access option if you want to make use of<br />
the enhanced property access that allows to get/set a property value with<br />
a single ComSet{Type}/ComGet{Type} call.<br />
9 Select the Enhanced function calls option if you want to make use of the<br />
enhanced function call that allows to call a method that takes no<br />
parameters with a single ComCall statement.<br />
10 In the Log options area you can specify details about logging COM<br />
function calls. Select the Show missing type information option to check<br />
if all interfaces of the COM components under test are available to<br />
SilkPerformer. To record interface functions calls, SilkPerformer needs<br />
descriptions of interfaces or COM classes. These descriptions are<br />
contained in type libraries.<br />
SilkPerformer User Guide 115
3 CONFIGURING PROJECTS<br />
Project Profile Settings<br />
ADO recording<br />
options<br />
11 Select the Show type mismatches option for SilkPerformer to inform you<br />
about mismatches between parameter types that an interface function<br />
expects and actual parameter types. Only late binding clients can cause<br />
type mismatches. A type mismatch happens, for example, if a VBScript<br />
client passes an interface to the server, instead of passing a string value.<br />
SilkPerformer tries to resolve type mismatches automatically.<br />
12 In the Filter (record server types) area, select the Remote out-of-process<br />
server option to capture and record the communication of the client<br />
object with any remote out-of-process server (i.e., a server object that<br />
operates on a different computer than the client object).<br />
13 Select the Local out-of-process server option to capture and record the<br />
communication of the client object with any local out-of-process server<br />
(i.e., a server object that operates on the same computer as the client<br />
object, but in a separate process space).<br />
14 Select the In-process server option to capture and record the<br />
communication of the client object with any in-process server (i.e., the<br />
client and server objects are operating in the same process space in the<br />
computer). In-process servers provide the fastest possible service to the<br />
client. They are typically objects in the same program, or objects loaded<br />
into the same process space ahead of time from an external source.<br />
15 Click OK to exit the dialog and save your changes.<br />
Procedure To set ADO recording options:<br />
1 In the Project tab of the tree-view area of the main SilkPerformer<br />
window, expand the Profiles folder.<br />
2 Right-click the icon of the profile you want to configure.<br />
3 Choose Edit Profile.<br />
The Profile - [Loadtest] - Simulation dialog opens.<br />
Alternately, select Settings/Active Profile from the SilkPerformer menu<br />
bar.<br />
4 In the shortcut list on the left side, select the Record category and click<br />
the COM / ADO icon.<br />
5 Click the ADO tab.<br />
6 In the Script options area, select the Extract SQL statements option to<br />
extract SQL statements which are passed to ADO interfaces to the dclsql<br />
section.<br />
116 SilkPerformer User Guide
3 CONFIGURING PROJECTS<br />
Project Profile Settings<br />
COM/ADO result<br />
options<br />
7 Select the Fetch ADO Recordsets option if you want to make use of the<br />
ADO recordset handling support. AdoFetch statements will be scripted<br />
when the client application is browsing through recordset. This feature<br />
reduces the script size significantly and allows ADO customizing with<br />
the TrueLog.<br />
8 Select the Script ADO Parameters option if you want to make use of the<br />
ADO parameter handling support. AdoParam statements will be scripted<br />
when the client application is using ADO parameters with ADO<br />
commands. This feature reduces the script size significantly and allows<br />
ADO customizing with the TrueLog.<br />
9 Click OK to exit the dialog and save your changes.<br />
Procedure To set COM/ADO result options:<br />
1 In the Project tab of the tree-view area of the main SilkPerformer<br />
window, expand the Profiles folder.<br />
2 Right-click the icon of the profile you want to configure.<br />
3 Choose Edit Profile.<br />
The Profile - [Loadtest] - Simulation dialog opens.<br />
Alternately, select Settings/Active Profile from the SilkPerformer menu<br />
bar.<br />
4 In the shortcut list on the left side, select the Replay category and click<br />
the COM / ADO icon.<br />
5 Click the Results tab.<br />
6 In the Measures area, select the Measure for every COM call option to<br />
get a separate measure for every call to a COM interface method.<br />
7 Click OK to exit the dialog and save your changes.<br />
WAP Options<br />
Note SilkPerformer offers a tutorial that walks you through the<br />
process of load testing WAP-based applications. The tutorial is<br />
available in the Load Testing a WAP Application section of<br />
Miscellaneous Tutorials (/<br />
Documentation/Tutorials/...).<br />
WAP options<br />
Procedure To set WAP replay options:<br />
1 In the Project tab of the tree-view area of the main SilkPerformer<br />
window, expand the Profiles folder.<br />
2 Right-click the icon of the profile you want to configure.<br />
SilkPerformer User Guide 117
3 CONFIGURING PROJECTS<br />
Project Profile Settings<br />
3 Choose Edit Profile.<br />
The Profile - [Loadtest] - Simulation dialog opens.<br />
Alternately, select Settings/Active Profile from the SilkPerformer menu<br />
bar.<br />
4 In the shortcut list on the left side, select the Replay category and click<br />
the WAP icon.<br />
5 On the Phone tab, you can specify WAP-browser-specific settings. From<br />
the Phone drop-down list, select the WAP browser you want to use for<br />
your simulation. The selection you make determines the format of the<br />
header information included in your WAP requests used for load tests.<br />
6 In the Max. outstanding requests field, specify the maximum number of<br />
requests the client can send to the server without receiving a response.<br />
Since the server must allocate more system resources for each request,<br />
server performance decreases as the number of requests increases.<br />
7 From the WAP version drop-down list, select the WAP version of the<br />
browser that is to be simulated.<br />
8 In the User agent field, specify user agent information sent to the server.<br />
This is typically the browser name, including platform information. This<br />
string is used for the HTTP request header “User-Agent:” that is sent to<br />
the server.<br />
9 In the Accept field, specify the document types that the server may send<br />
to the client. This string is used in the HTTP request header “Accept:”<br />
that is sent to the server.<br />
10 In the Additional HTTP headers field, you can specify one or more<br />
additional headers, using exact syntax. Use a new line for each header.<br />
These headers will be appended to each request that is sent to the server.<br />
11 Click the Gateway tab to specify gateway-specific options. A gateway<br />
translates requests from the WAP protocol stack to the WWW protocol<br />
stack.<br />
12 In the Host name or IP address field, enter the name or IP address of the<br />
WAP gateway.<br />
13 Select a Connection type for the gateway:<br />
- Select Connectionless to use an unsecured, connectionless<br />
communication channel to send requests to and receive requests<br />
from the server.<br />
- Select Connection-oriented to use an unsecured, connection-oriented<br />
communication channel to send requests to and receive requests<br />
from the server.<br />
118 SilkPerformer User Guide
3 CONFIGURING PROJECTS<br />
Test Scripts<br />
- Select Secure Connectionless to use a secure, connectionless<br />
communication channel to send requests to and receive requests<br />
from the server.<br />
- Select Secure connection-oriented to use a secure, connectionoriented<br />
communication channel to send requests to and receive<br />
requests from the server.<br />
14 Once you’ve identified a connection type, enter the number of the Port to<br />
which the WAP gateway responds for that particular connection type.<br />
15 Click OK to save your settings.<br />
Test Scripts<br />
Adding test scripts<br />
Compiling test scripts<br />
Removing test scripts<br />
Test scripts prescribe the actions of the virtual users that are run during load<br />
tests. Scripts are written in SilkPerformer's proprietary scripting language, the<br />
Benchmark Description Language (BDL). The usual way to create scripts is to<br />
have the SilkPerformer Recorder generate them from real network traffic that<br />
has been captured and recorded. Scripts can also be generated manually, or<br />
sample scripts provided by SilkPerformer can be used or modified for reuse.<br />
As many load test scripts as necessary can be added to a project, and existing<br />
scripts can be removed. Scripts need to be compiled before they can be used,<br />
and individual scripts in the project can be compiled, or all the scripts associated<br />
with a particular project can be recompiled at once.<br />
Procedure To add a test script:<br />
1 In the Project tab of the tree-view area of the main SilkPerformer<br />
window, right-click the icon for the current project in the tree-view list.<br />
2 Select Add Script from the context menu.<br />
Alternately, select Project/Add Script from the SilkPerformer menu bar.<br />
The Select Script(s) dialog appears.<br />
3 Use the dialog to navigate to, and select, the script to add to the project.<br />
Procedure To compile a test script:<br />
1 Right-click the script you want to compile.<br />
2 From the context menu, select Compile.<br />
Alternately, select Script/Compile from the SilkPerformer menu bar.<br />
Procedure To remove a test script:<br />
1 Expand the folder of the current project in the tree-view list.<br />
2 Expand the Scripts folder.<br />
SilkPerformer User Guide 119
3 CONFIGURING PROJECTS<br />
Data Files<br />
3 Right-click the icon of the script you want to remove.<br />
4 Select Remove Script from the context menu.<br />
5 Click Yes on the deletion confirmation dialog.<br />
Data Files<br />
Adding data files<br />
Removing data files<br />
Data files that are required by SilkPerformer scripts are added to projects by<br />
specifying the directory where the user data files (.csv), certificate files (.pem),<br />
random data files (.rnd files), and type library files (.tlb, .dll, .exe, .ocx, .olb,<br />
.pkg) are located. The compiler searches for random data files first in the<br />
directory where the .bdf file is located, then in the directory specified. If a<br />
random data file from a different location needs to be used, a full path for the file<br />
can be specified in the script file.<br />
Note It is important that all the user data files, random data files,<br />
certificate files, .idl files, and type library files (.tlb, .dll, .exe, .ocx,<br />
.olb, .pkg) needed by a test script are added to the project. Otherwise<br />
they will not be available to remote agent computers during a test.<br />
Procedure To add a data file:<br />
1 In the Project tab of the tree-view area of the main SilkPerformer<br />
window, right-click the icon of the current project.<br />
2 Select Add Data File from the context menu.<br />
Alternately, select Project/Add Data File from the SilkPerformer menu<br />
bar.<br />
The Select Data File(s) dialog appears.<br />
3 Use the dialog to navigate to and select the data file that you want to add<br />
to the project.<br />
Note It is important that all the user data files, random data files,<br />
certificate files, .idl files, and type library files needed by a test script<br />
are added to the project. Otherwise they will not be available to<br />
remote agent computers during a test.<br />
Procedure To remove a data file:<br />
1 Expand the folder for the current project in the tree-view list.<br />
2 Expand the Data Files folder.<br />
3 Right-click the data file you want to remove.<br />
4 Select Remove Data File from the context menu.<br />
5 Click Yes on the deletion confirmation dialog.<br />
120 SilkPerformer User Guide
3 CONFIGURING PROJECTS<br />
Workload Definition<br />
Agent Computers<br />
Adding agent<br />
computers<br />
Removing agent<br />
computers<br />
Agent computers host the virtual users that are run during load tests. As many<br />
agent computers as necessary can be added to a project to support the required<br />
number of virtual users.<br />
Agent computers are assigned to particular projects from the pool of agent<br />
computers available to the controller computer. The maximum number of<br />
virtual users who will run on each agent is computed automatically by<br />
SilkPerformer; Alternately, this number can be set manually. New agents can be<br />
added to the agent pool from the local area network or from other Windows<br />
domains; they will then be available to be added to the project. Agents can be<br />
checked for availability, and agents can be removed from the pool.<br />
Procedure To add an agent computer:<br />
1 In the Project tab of the tree-view area of the main SilkPerformer<br />
window, right-click the icon of the current project in the tree-view list.<br />
2 Select Add Agent from the context menu.<br />
Alternately, select Project/Add Agent from the SilkPerformer menu bar.<br />
The Add Agent(s) From Agent Pool To Project dialog appears.<br />
3 Select an agent computer from the list and click OK to add it to the<br />
project.<br />
To add agents that don’t appear on the list, click the Configure Agent<br />
Pool button and proceed as described in “Configuring agent pool<br />
settings”.<br />
Procedure To remove an agent computer:<br />
1 Expand the folder of the current project in the tree-view list.<br />
2 Expand the Agents folder.<br />
3 Right-click the icon of the agent computer you want to remove.<br />
4 Select the Remove Agent option.<br />
5 Click Yes on the deletion confirmation dialog.<br />
Workload Definition<br />
A full range of options for the workloads to be employed in load tests is<br />
provided. You determine the workload type to be used: queuing, increasing,<br />
steady state, or dynamic workload. For each user group, numerous settings can<br />
be set, including the number of virtual users in the group; simulation times,<br />
warm-up times, and measurement times; and the allocation of virtual users to<br />
SilkPerformer User Guide 121
3 CONFIGURING PROJECTS<br />
Workload Definition<br />
Adding workload<br />
definitions<br />
Editing workload<br />
definitions<br />
agent computers. The start time for load tests can be set, either relatively to the<br />
current time (e.g., two hours from now), or absolutely (at a specific time of day).<br />
All the configuration options for workload are available from the editing version<br />
of the workload definition. From the execution version, it is also possible to run<br />
load tests.<br />
To define additional workloads for your load test and save them for future use,<br />
expand the Workloads section in the tree view, right-click an existing workload<br />
and select New Workload or Copy Workload from the context menu. If you<br />
create a new workload model, the baseline will have to be accepted for the<br />
model. You can copy previous accepted baseline results from an existing<br />
workload model by copying and renaming an existing workload.<br />
Procedure To edit the workload definition:<br />
1 In the Project tab of the tree-view area of the main SilkPerformer<br />
window, right-click the current project in the tree-view list.<br />
2 Select Edit Active Workload from the context menu.<br />
Alternately, select Settings/Active Workload from the SilkPerformer<br />
menu bar.<br />
Alternative In the Project tab of the tree-view area of the main<br />
SilkPerformer window, right-click the workload you want to edit<br />
and select Edit Workload, or double-click the workload.<br />
3 The Workload Configuration dialog appears in the version for workload<br />
editing only.<br />
4 Use the Workload area to configure the workload that you will use in<br />
your load test.<br />
5 Choose a workload model: Increasing, Steady State, Dynamic, All Day,<br />
or Queuing options.<br />
- Select the Increasing option to use the increasing workload model.<br />
At the beginning of a load test, SilkPerformer simulates not the total<br />
number of users defined, but only a certain percentage of them. Step<br />
by step, the workload is increased until all the users specified in the<br />
user list are actually running.<br />
This workload model is especially useful when you want to find out<br />
at which load level your system crashes or does not respond within<br />
acceptable response times or error thresholds.<br />
- Select the Steady State option to use the steady-state workload<br />
model in your load test. In this model, the same number of virtual<br />
users is employed throughout the test. Every virtual user executes<br />
the transactions defined in the load testing script. When work is<br />
finished, the virtual user starts again with executing the transactions.<br />
122 SilkPerformer User Guide
3 CONFIGURING PROJECTS<br />
Workload Definition<br />
There is no delay between transactions. The test finishes when the<br />
simulation time that was specified has been reached.<br />
This workload model is especially useful when you want to find out<br />
about the behavior of your tested system at a specific load level.<br />
- Select the Dynamic option to use the dynamic workload model in<br />
your load test. You can manually change the number of virtual users<br />
in the test while it is being run. The maximum number of virtual<br />
users to be run is set; within this limit, the number can be increased<br />
or decreased at any time during the test. No simulation time is<br />
specified, and you must bring the test to an end manually.<br />
This workload model is especially useful when you want to<br />
experiment with different load levels and to have the control over the<br />
load level during a load test.<br />
- Select the All Day option to use the all day workload model in your<br />
load test. This workload model allows you to define the distribution<br />
of your load in the most flexible way. You can assign different<br />
numbers of virtual users to any interval of the load test. Each user<br />
type can use a different load distribution. Therefore, you can design<br />
very complex workload scenarios such as workday workloads or<br />
even weekly workloads. You can adjust the load level during a load<br />
test for intervals that have not yet started executing.<br />
This workload model is especially useful when you want to model<br />
complex, long lasting workload scenarios in the most realistic way<br />
possible.<br />
- Select the Queuing option to use the queuing workload model in<br />
your load test. In this model, transactions are scheduled following a<br />
prescribed arrival rate. This rate is a random value based on an<br />
average interval calculated from the simulation time and the number<br />
of transactions you have specified in your script (dcluser section:<br />
number of transactions per user). The load test will finish when all of<br />
the virtual users have completed their prescribed tasks.<br />
Note that the test may take longer than the simulation time that was<br />
specified, because of the randomized arrival rates. For example, if<br />
you specify a simulation time of 3000 seconds and want to execute<br />
100 transactions, then you will get an average transaction arrival rate<br />
of 30 seconds.<br />
This workload model is especially useful when you want to simulate<br />
workloads that use queuing mechanisms to handle multiple<br />
concurrent requests. Typically, application servers like servlet<br />
engines or transaction servers, which are receiving their requests<br />
from Web servers and not from end users, can be accurately tested<br />
by using the queuing model.<br />
SilkPerformer User Guide 123
3 CONFIGURING PROJECTS<br />
Workload Definition<br />
6 Use the figure at the top of the dialog to see a graphical representation of<br />
the selected workload model. The figure uses the actual data of the user<br />
group selected in the workload list below.<br />
7 Select the Balance load across agents option to automatically distribute<br />
the virtual users on the agent computers. This option is especially useful<br />
in order to not overload the agent computers.<br />
8 Use the workload list to configure the user groups that are to be run in<br />
your load test.<br />
9 In the User Type (Script / Usergroup / Profile) columns, select the user<br />
groups that you want to run in your test. All of the user groups from your<br />
test scripts for the current project are listed here. Also you can choose the<br />
Profile that should be used for this user.<br />
10 In the Max. Vuser column, specify the maximum number of virtual users<br />
to be run in each user group.<br />
11 To specify that your load test begin at a set period after the time given in<br />
the Start Time area, enter a time value (in seconds) in the Start Time<br />
Offset [s] column.<br />
12 In the Simulation Time column, enter the duration (in seconds) for which<br />
each user group will be run in your load test.<br />
13 In the Warm-up Time column, enter the duration (in seconds) for the<br />
period at the start of a load test during which no measurements will be<br />
performed.<br />
14 In the Measurement Time column, enter the duration (in seconds) for<br />
which measurements will be performed during the load test.<br />
15 If you selected the Increasing workload model, you have three additional<br />
columns:<br />
- Start Users: Specify the number of virtual users to be run at the<br />
beginning of the load test.<br />
- Add Users: Specify the number of virtual users to be added to the<br />
current number of virtual users after each interval defined in the<br />
Increase after column (see below).<br />
- Increase after: Enter the duration of the interval after which virtual<br />
users are to be added to the current number of virtual users.<br />
16 In the Auto-assign column, select the assignment option for each user<br />
group for which you want SilkPerformer to automatically compute and<br />
assign virtual users to agent computers. To assign virtual users manually<br />
to agent computers for a particular user group or groups, leave this<br />
option unselected.<br />
124 SilkPerformer User Guide
3 CONFIGURING PROJECTS<br />
Outlining Projects<br />
Running load tests<br />
17 Use the Agents column to check SilkPerformer's automatic assignment of<br />
virtual users to agent computers, or to manually assign them yourself.<br />
In either case, click the browse (...) button to the left of the Agent column<br />
for the relevant user group.<br />
- For a user group using the Auto-assign option, the Automatic Agent<br />
Assignment for Script / Usergroup appears, where you can view<br />
SilkPerformer's assignment of virtual users to agent computers.<br />
- For a user group not using the Auto-assign option, the Manual Agent<br />
Assignment for Script / Usergroup appears.<br />
18 In the Assigned Vusers column of the Agent Assignment for Script /<br />
Usergroup dialog, enter the number of virtual users from the relevant<br />
user group to run on each agent. All of the users from the user group<br />
must be assigned to agents.<br />
19 Click OK to return to the Workload Configuration dialog.<br />
20 In the Start Time area, set the start time for your load test in hours,<br />
minutes, and seconds. Select the Relative option to have your test start<br />
after the time period you have specified has elapsed. Select the Absolute<br />
option to have the test start at that specific time.<br />
21 In the Loadtest Description field, you can optionally enter a description<br />
of the load test. This feature is provided for project management<br />
purposes only.<br />
22 Click the User distribution Overview button to view the assignment of<br />
virtual users to the agent computers that are currently available.<br />
23 Click OK to save your changes.<br />
Procedure To run a load test:<br />
1 Click the Run Test icon on the SilkPerformer Workflow bar, or select<br />
Run/Run Test from the SilkPerformer menu bar.<br />
2 The Workload Configuration dialog appears in the version from which<br />
tests can be run.<br />
3 If you need to edit the workload definition, follow steps outlined in the<br />
preceding section.<br />
4 Click Run to execute the test.<br />
Outlining Projects<br />
The first step in conducting a SilkPerformer load test is to define the basic<br />
settings for the load testing project. The project is given a name, and optionally a<br />
SilkPerformer User Guide 125
3 CONFIGURING PROJECTS<br />
Outlining Projects<br />
Outlining a project<br />
brief description can be added. The type of application to be tested is specified<br />
from a range of choices that includes all the major traffic that is encountered in<br />
e-business today on the Internet, including the most important database and<br />
distributed applications.<br />
Procedure To outline a load testing project:<br />
1 Click the Outline Project button on the Workflow bar.<br />
2 The Workflow - Outline Project dialog opens.<br />
3 In the Project name field, enter a name for the project.<br />
4 In the Project description field, you can optionally enter a description for<br />
the project. This feature is provided for project management purposes<br />
only.<br />
5 From the Application type list, select the type of application on which<br />
you want to run your load test.<br />
6 Click OK.<br />
126 SilkPerformer User Guide
4<br />
Modeling 4Chapter<br />
Test Scripts<br />
Introduction<br />
What you will learn<br />
This chapter explains how to model load testing scripts in SilkPerformer.<br />
This chapter contains the following sections:<br />
Section<br />
Page<br />
Overview 127<br />
Recording Test Scripts 128<br />
Writing Test Scripts Manually 131<br />
Working From Sample Scripts 131<br />
Trying Out Test Scripts 132<br />
Overview<br />
The second step in conducting a SilkPerformer load test is to create the test<br />
script that will prescribe the actions of the simulated users who will be run<br />
during the test. The script is written in SilkPerformer's proprietary scripting<br />
language, the Benchmark Description Language (BDL).<br />
Scripts can be created in two ways. The easiest way is to use the SilkPerformer<br />
Recorder, which can automate much of the process. An alternate way, for<br />
experienced users, is to create test scripts manually.<br />
• “Recording Test Scripts”: The standard method of creating a test script is<br />
to use SilkPerformer's recording engine, the SilkPerformer Recorder, to<br />
first capture and then record a representative amount of real traffic of the<br />
kind that needs to be simulated in the load test. The SilkPerformer<br />
Recorder then automatically generates the BDL test script from the<br />
recorded traffic.<br />
SilkPerformer User Guide 127
4 MODELING TEST SCRIPTS<br />
Recording Test Scripts<br />
• “Writing Test Scripts Manually”: A second method of creating test<br />
scripts is to manually create them from scratch in BDL.<br />
• “Working From Sample Scripts”: A variant on the second method of<br />
creating test scripts is to base a new script on one of the sample BDL<br />
scripts that is provided with SilkPerformer.<br />
Recording Test Scripts<br />
The standard, and easiest, method of creating a load test script is to use the<br />
SilkPerformer Recorder, SilkPerformer's engine for capturing and recording<br />
traffic and generating test scripts.<br />
The SilkPerformer Recorder can record the following types of Internet traffic<br />
(secure and non-secure):<br />
- Hypertext Transfer Protocol (HTTP)<br />
- File Transfer Protocol (FTP)<br />
- Post Office Protocol (POP)<br />
- Simple Mail Transfer Protocol (SMTP)<br />
- Lightweight Directory Access Protocol (LDAP)<br />
- Internet Inter-ORB Protocol (IIOP)<br />
- SOCKS<br />
The Recorder can capture function calls of the following APIs (see “Available<br />
application types” for the complete list):<br />
- Oracle Call Interface (OCI)<br />
- Open Database Connectivity (ODBC)<br />
- TUXEDO<br />
- Jolt<br />
- COM<br />
- WinSock<br />
- Oracle Forms<br />
- Oracle Applications<br />
- Citrix<br />
- .NET<br />
- ADO<br />
- WAP<br />
128 SilkPerformer User Guide
4 MODELING TEST SCRIPTS<br />
Recording Test Scripts<br />
- Java<br />
- SAPGUI<br />
- Remedy<br />
- Flash<br />
First, the SilkPerformer Recorder captures and records a representative amount<br />
of real traffic between a client application and the server to be load tested. When<br />
recording is complete, the SilkPerformer Recorder then automatically generates<br />
the test script from the recorded traffic. The script is written in SilkPerformer's<br />
proprietary scripting language, the Benchmark Description Language (BDL).<br />
During the recording phase, you define transactions. A transaction is a discrete<br />
piece of work that will later be assigned to a virtual user in a load test and for<br />
which separate time measurements will be made. You should create a new<br />
transaction only for a piece of work that has no dependencies on another piece<br />
of work. Individual time measurements can be made for any action or series of<br />
actions that happen during recording.<br />
Advantages<br />
Using the SilkPerformer Recorder has a number of advantages:<br />
- Recorded traffic and function calls include a lot of static<br />
information. Replay of static information ordinarily does not lead to<br />
reliable benchmark results. Because recorded scripts can easily be<br />
customized, you can add random functions to generate dynamic and<br />
realistic workloads.<br />
- Transactions defined during recording modularize the script inTO<br />
clearly laid out sections. It is easy to modify workloads based on<br />
different statistics or requirements using the randomization functions<br />
embedded in SilkPerformer.<br />
- Timers set during recording provide user-defined granularity for<br />
measuring any part of a transaction.<br />
- Development time and costs can be reduced considerably. There is<br />
no need to change the front-end application to simulate new<br />
behaviors. It is sufficient to modify the script and repeat the<br />
simulation until the requirements are met. The front-end application<br />
has to be implemented only once; the script then becomes its<br />
prototype and reproduces its behavior.<br />
Recording test scripts<br />
Procedure To record a test script:<br />
1 Open the project in which you want to work, or start a new project.<br />
2 Click the Model Script button on the SilkPerformer Workflow bar.<br />
The Workflow - Model Script dialog appears.<br />
SilkPerformer User Guide 129
4 MODELING TEST SCRIPTS<br />
Recording Test Scripts<br />
3 In the Script area, select the Record option.<br />
4 From the Select application profile drop-down list, select the profile for<br />
the client application that you plan to test in your load test.<br />
If a profile has not yet been set up for the application you want to use,<br />
click the button to the right of the drop-down list to set one up.<br />
To add a new profile, see “Adding application profiles”.<br />
5 If you are load testing a Web application, enter its URL in the URL field.<br />
6 Click OK.<br />
The SilkPerformer Recorder dialog opens in minimized form, and the<br />
client application starts.<br />
7 To see a report of the actions that happen during recording, maximize the<br />
Recorder dialog by clicking the Change GUI size button.<br />
The maximized Recorder then opens at the Actions tab.<br />
8 Using the client application, conduct the kind of interaction with the<br />
target server that you want to simulate in your load test. The interaction<br />
is captured and recorded by the Recorder. A report of your actions and of<br />
the data downloaded appears in the Actions tab.<br />
9 Insert transactions and timers into the test script during the recording<br />
phase. You can create as many transactions and timers as you want.<br />
10 To insert a transaction, click the New Transaction button. A transaction<br />
represents a piece of work that can be assigned to a virtual user.<br />
11 In the ensuing dialog, enter a name for the transaction and click OK.<br />
The new transaction appears in the Actions log.<br />
12 To insert a timer, click the New Timer Session button. A timer is a userdefined<br />
measurement period in a load test. You should create timers for<br />
each component of a transaction for which you want to analyze<br />
performance.<br />
In the ensuing dialog, enter a name for the timer and click OK.<br />
13 To end recording, click the Stop Recording button. The test script is<br />
generated from the recorded traffic.<br />
14 In the ensuing dialog, name your test script and specify where to save it.<br />
15 In the SilkPerformer Recorder message that appears, confirm that you<br />
want to close the Recorder.<br />
The new script appears in a script editor window.<br />
130 SilkPerformer User Guide
4 MODELING TEST SCRIPTS<br />
Working From Sample Scripts<br />
Writing Test Scripts Manually<br />
Writing a new test<br />
script<br />
For those who do not want to use the standard method of generating load test<br />
scripts (using the SilkPerformer Recorder), an alternate method is to manually<br />
create new scripts from scratch.<br />
SilkPerformer test scripts are written in the program's proprietary scripting<br />
language, the Benchmark Description Language (BDL). To generate scripts<br />
manually, you will need to be familiar with BDL, which is a high-level language<br />
resembling Pascal. You should be able to create prototypes of user requests, and<br />
define the typical components of a load testing script, including modules,<br />
functions, workload definitions, transactions, Web forms, and more.<br />
Procedure To write a new test script:<br />
1 Open the project in which you want to work, or start a new project.<br />
2 Click the Model Script button on the SilkPerformer Workflow bar.<br />
The Workflow - Model Script dialog appears.<br />
3 In the Script area, select the New script option.<br />
A SilkPerformer script template opens in a new script editor window.<br />
4 Use Benchmark Description Language (BDL), SilkPerformer's<br />
proprietary scripting language to write your script. Refer to the BDL<br />
Function Reference for detailed information about the Benchmark<br />
Description Language.<br />
5 Save your new script.<br />
6 Follow the steps in the SilkPerformer Workflow to use the new script in<br />
your load test.<br />
Working From Sample Scripts<br />
Sample script reuse is a timesaving possibility for those who want to generate<br />
SilkPerformer load test scripts manually (and bypass the standard method,<br />
which uses the SilkPerformer Recorder).<br />
SilkPerformer test scripts are written in the program’s proprietary scripting<br />
language, the Benchmark Description Language (BDL). Testers who want to<br />
generate scripts manually will need to be familiar with BDL, which is a highlevel<br />
language resembling Pascal. A number of sample BDL scripts are<br />
provided with SilkPerformer, and testers can base the new script on one of these.<br />
To work from a sample script you need to be familiar with how to create<br />
prototypes of user requests, and how to define the typical components of a load<br />
SilkPerformer User Guide 131
4 MODELING TEST SCRIPTS<br />
Trying Out Test Scripts<br />
testing script, including modules, functions, workload definitions, transactions,<br />
Web forms, and so on.<br />
Using a sample test<br />
script<br />
Procedure To re-use a sample test script:<br />
1 Open the project in which you want to work, or start a new project.<br />
2 Click the Model Script button on the SilkPerformer Workflow bar.<br />
The Workflow - Model Script dialog appears.<br />
3 In the Script area, select the Sample script option.<br />
4 Click OK.<br />
The Open dialog appears<br />
5 Browse to the Samples folder.<br />
6 Browse to the folder of the specific application type you plan to test.<br />
7 Select a sample script and click Open.<br />
8 In the ensuing dialog, confirm that you want to add the script to the<br />
current project.<br />
9 The script is added to the project, and opens in a new script editor<br />
window.<br />
10 Follow the steps in the SilkPerformer Workflow to use the sample script<br />
in your load test.<br />
Trying Out Test Scripts<br />
The third step in conducting a SilkPerformer load test is to perform a trial run of<br />
the Benchmark Description Language test script that was created in the previous<br />
step. The object of a trial run is to ensure that the test script is free from error,<br />
and that it accurately reproduces the required interaction between the client<br />
application and the server. Normally, this will be the traffic that was recorded by<br />
the SilkPerformer Recorder in the previous step.<br />
For this try-out of the test script, options are automatically selected so that you<br />
can see a live display of the actual data downloaded. Log files, TrueLog files,<br />
report files, output files, and error files are created so that you can also check<br />
later that the script is working properly. Only one user is run, and the stress test<br />
option is enabled so that there is no think time and no delay between<br />
transactions. However, at this stage, the measurements typical of a real load test<br />
are not performed.<br />
For Try Script runs, the following options are automatically set to these<br />
specified values:<br />
- The Stress test option is on.<br />
132 SilkPerformer User Guide
4 MODELING TEST SCRIPTS<br />
Trying Out Test Scripts<br />
Trying out test scripts<br />
- The Stop virtual users after simulation time (Queuing Workload)<br />
option is off.<br />
- The Virtual user log files (.log) option is on.<br />
- The Virtual user output files (.wrt) option is on.<br />
- The Virtual user report files (.rpt) option is on.<br />
- The Virtual user report on error files (.rpt) option is on.<br />
- The TrueLog files (.xlg) option is on.<br />
- The TrueLog On Error files (.xlg) option is off.<br />
- The Compute time series data (.tsd) option is off.<br />
- All logging detail options (Results/Logging and Results/Internet<br />
logging tab) are on.<br />
- The Enable all measure groups (TSD measure groups) option is off.<br />
- The Bandwidth option is set to High Speed (unlimited).<br />
- The Downstream option is set to unlimited.<br />
- The Upstream option is set to unlimited.<br />
- The Duplex option is off.<br />
- The Modem compression rate is set to 1.0 x.<br />
Procedure To try out a test script:<br />
1 Click the Try Script button on the SilkPerformer Workflow bar.<br />
The Workflow - Try Script dialog appears.<br />
2 The currently active profile name is displayed in the Profile field. To edit<br />
the script replay settings for this profile, click the button to the right of<br />
the field. Note that appropriate settings for script try-outs are<br />
automatically selected by SilkPerformer.<br />
3 From the Script drop-down list, select the script that is to be tried out.<br />
4 Select the Animated option for a live view of the data downloaded during<br />
the test.<br />
5 To configure project attributes, click the Project Attributes button. See<br />
Project Attributes Overview in the BDL Function Reference for details<br />
on these attributes.<br />
6 Click Run to execute your test script try-out.<br />
7 During the trial run, monitor the test progress in the Monitor window,<br />
and view downloaded data using TrueLog Explorer.<br />
SilkPerformer User Guide 133
4 MODELING TEST SCRIPTS<br />
Trying Out Test Scripts<br />
134 SilkPerformer User Guide
5<br />
Validating 5Chapter<br />
Test Scripts<br />
Introduction<br />
What you will learn<br />
This chapter explains how to validate test scripts.<br />
This chapter contains the following sections:<br />
Section<br />
Page<br />
Overview 135<br />
Visual Analysis with TrueLog Explorer 135<br />
Log Files 136<br />
Report Files 137<br />
Output Files 138<br />
Overview<br />
SilkPerformer offers several means of evaluating test scripts after the execution<br />
of TryScript runs.<br />
Visual Analysis with TrueLog Explorer<br />
TrueLog Explorer guides you through the process of visually analyzing Try<br />
Script runs with its Workflow bar. The steps are as follows:<br />
1 Examine the Virtual User Summary report.<br />
2 Find replay errors.<br />
3 Compare a replay TrueLog with the TrueLog that was produced during<br />
recording of the application.<br />
SilkPerformer User Guide 135
5 VALIDATING TEST SCRIPTS<br />
Log Files<br />
TrueLog Explorer provides an accurate view of the actual data that is<br />
downloaded during load tests. This enables you to verify that the data specified<br />
to be received from the server under test was, in fact, received. In the case of<br />
Web application testing for example, TrueLog Explorer shows the actual Web<br />
pages that are received during tests. Through the use of TrueLog Explorer’s<br />
animated mode, live monitoring of downloaded data is available—data is<br />
displayed as it is received during tests.<br />
TrueLog Explorer provides different views of received data, enabling you to:<br />
- Inspect the rendered HTML code, as a real user would see it.<br />
- Inspect the native HTML code.<br />
- Inspect a difference table that shows the differences between replay<br />
and recorded TrueLogs.<br />
Viewing Web pages<br />
accessed during tests<br />
Procedure To view the Web pages that were accessed during a load test:<br />
1 Checking the Animated checkbox before running a Try script operation<br />
opens TrueLog Explorer automatically.<br />
Alternately, TrueLog Explorer can be accessed by selecting Results/<br />
Explore TrueLog from the SilkPerformer menu bar.<br />
2 A Virtual User Report is shown automatically when the first node of the<br />
tree view at the left side of the window is checked. In the report you will<br />
find detailed information about the Try Script run in tabular form.<br />
3 Use the tree view area on the left of the window to expand and collapse<br />
folders as necessary to locate and view data downloaded during the test.<br />
4 To view a downloaded Web page, select its URL or link description in<br />
the tree view area.<br />
5 To locate replay errors, click the Analyze Test button on the workflow<br />
bar and select Find Errors. A new window appears that helps you<br />
navigate from one error to the next. HTML errors often occur one or two<br />
steps before they are apparent to end users. With TrueLog Explorer you<br />
can easily examine the Web pages that were displayed preceding errors.<br />
Log Files<br />
Any errors that are encountered in load tests are reported in log files (assuming<br />
log file generation has been enabled). Log files contain a record of all the<br />
function calls that are invoked by the transactions of each virtual user in load<br />
tests. These files contain session and error information, including details for<br />
each type of event executed during a simulation, the API calls in a transaction,<br />
and the data exchanged with the server, as well as other information.<br />
136 SilkPerformer User Guide
5 VALIDATING TEST SCRIPTS<br />
Report Files<br />
However, generating log files alters the time measurements of load tests.<br />
Therefore, these files should be used for debugging purposes only, and should<br />
never be generated for full load tests.<br />
Viewing log files<br />
Procedure To view log files:<br />
1 Select File/Open/Virtual User Log File from the SilkPerformer menu<br />
bar.<br />
2 Locate the appropriate file (or right-click a virtual user in the<br />
SilkPerformer Monitor window and select Show Log File). The log file<br />
will then display.<br />
Report Files<br />
Report files contain the same information as baseline reports for one specific<br />
virtual user. This report is based on XML/XSL and includes the most important<br />
test results in tabular format. It comprises the following sections:<br />
- General Information<br />
- Virtual User<br />
- Summary Tables<br />
- Transaction Response Times<br />
- HTML Page Timers<br />
- Web Form Measurements<br />
General information<br />
User types<br />
Summary tables<br />
Transactions<br />
The general information section includes administrative information in a tabular<br />
form.<br />
Administrative information includes the SilkPerformer version info, the project<br />
name, a description of the project, the date and time of the load test, the<br />
workload definition, the workload model and the number of errors that occurred.<br />
For the virtual user, a section is available with details of the measured response<br />
times. The summary line shows the duration of the test, the session time, the<br />
session busy time, the average page time, the number of transactions executed<br />
successfully, cancelled, failed and the number of errors, if any, that occurred.<br />
This section contains summary measurements in a tabular form, that is,<br />
aggregate measurements. The first table provides general information, such as<br />
the number of transactions that were executed and the number of errors, if any,<br />
that occurred. All the following tables provide summary information relevant to<br />
the type of application that was tested.<br />
This section contains summary measurements in a tabular form, that is,<br />
aggregate measurements for all transactions of the specific user. For every<br />
SilkPerformer User Guide 137
5 VALIDATING TEST SCRIPTS<br />
Output Files<br />
Page timers<br />
Web forms<br />
Viewing report files<br />
transaction, the transaction response time and the transaction busy time are<br />
displayed.<br />
The transaction response time is measured from the beginning to the end of the<br />
transaction, including all think times.<br />
The transaction busy time is the transaction response time without any think<br />
time included.<br />
This section contains summary measurements in a tabular form for every<br />
accessed Web page. For every page, the download time of the whole page, the<br />
HTML-document download time, the server busy time, the amount of data<br />
downloaded with this page, and the amount of data downloaded for embedded<br />
objects are displayed.<br />
This section contains summary measurements in tabular form for every used<br />
Web form. For every form, the round trip time, the server busy time, the number<br />
of HTTP hits, the amount of request data sent and the response data received are<br />
displayed.<br />
Procedure To view report files:<br />
1 If TrueLog Explorer opens, the Virtual User Report File will be<br />
displayed automatically.<br />
2 You can access report files by selecting File/Open/Virtual User Report<br />
File from the SilkPerformer menu bar and then locating the appropriate<br />
file, or by right-clicking the line for a virtual user in the SilkPerformer<br />
Monitor window and selecting Show Report File from the context menu.<br />
The report file is then displayed.<br />
Output Files<br />
Viewing output files<br />
Output files contain the output of write statements that are used in test scripts.<br />
An output file is generated for a particular user only if write statements are<br />
executed by that user.<br />
However, generating output files alters the time measurements of load tests.<br />
Therefore, these files should be used for debugging purposes only, and should<br />
not be generated for full load tests.<br />
Procedure To view output files:<br />
1 Select File/Open/Virtual User Output File from the SilkPerformer menu<br />
bar.<br />
2 Locate the appropriate file (or right-click a virtual user in the<br />
SilkPerformer Monitor window and select Show Output File from the<br />
context menu). The output file will then display.<br />
138 SilkPerformer User Guide
6<br />
Customizing 6Chapter<br />
Test Scripts<br />
Introduction<br />
What you will learn<br />
This chapter explains how to customize your test scripts with session handling,<br />
verification functions, and more.<br />
This chapter contains the following sections:<br />
Section<br />
Page<br />
Overview 139<br />
Inserting Function & Transaction Declarations 141<br />
Customizing Workload 142<br />
Customizing Session Handling 149<br />
Inserting Parsing Functions 153<br />
Adding Verifications to Test Scripts 155<br />
Manual Script Editing 159<br />
Using the System Configuration Manager 160<br />
Serializing and Synchronizing Virtual Users 160<br />
Using Custom DLLs in Test Scripts 166<br />
Matrix: Functions, the Recorder, and TrueLog Explorer 174<br />
Overview<br />
The fourth step in conducting a SilkPerformer load test is to customize the test<br />
script. If a test script is used that has not been customized, the load tests will<br />
repeatedly reproduce the behavior recorded on that one particular occasion, and<br />
this will not provide very accurate results. To realistically emulate the varied<br />
traffic of a large number of different users, the transactions in the test script need<br />
to be modified and, where necessary, randomized.<br />
SilkPerformer User Guide 139
6 CUSTOMIZING TEST SCRIPTS<br />
Overview<br />
Web server applications often generate session IDs at runtime that are necessary<br />
for further client requests. If a session ID needs to be customized, TrueLog<br />
Explorer assists you by inserting the right BDL functions into the script.<br />
Virtual users can be furnished with different personal data, such as names,<br />
addresses, credit card numbers, and so on. They can vary in the products they<br />
search for information about, in the products they order, and in many other<br />
ways. SilkPerformer provides extensive facilities for customizing virtual users.<br />
- “Adding Verifications to Test Scripts”: The content of HTML page<br />
titles, HTML text and HTML tables can be verified during the<br />
execution of a load test. In order to add verification functions to the<br />
script, TrueLog Explorer allows you to visually identify and then<br />
mark the text to be verified in the respective HTML page. The BDL<br />
script will be automatically updated to reflect your verifications.<br />
- “Inserting Parsing Functions”: Similar to the verification functions,<br />
the parsing functions can be used to parse content returned from a<br />
Web server and check if the values meet your testing criteria.<br />
- “Defining modem speeds”: Virtual users can be customized to use<br />
the bandwidth associated with any of the major connection types in<br />
wide use among consumers today.<br />
- “Defining browser types”: A wide choice of Web browsers, and of<br />
the functionality they embody, is available to be assigned to virtual<br />
users.<br />
- Parameter Wizard: Realistic and varied personal data can be created<br />
for the virtual users in a test script by means of parameters, which<br />
can be easily generated using this wizard. For details on the<br />
Parameter Wizard, please refer to TrueLog Explorer User Guide.<br />
- “Customizing Workload”: The Customize User Groups dialog<br />
enables you to add new user groups, copy user groups, rename user<br />
groups, and delete user groups.<br />
- “Manual Script Editing”: A common way to customize the behavior<br />
of virtual users is to manually edit the test scripts using BDL, the<br />
Benchmark Description Language.<br />
- “Using the System Configuration Manager”: When the application<br />
being tested uses load balancers, realistic simulation can be provided<br />
by giving virtual users individual IP addresses.<br />
140 SilkPerformer User Guide
6 CUSTOMIZING TEST SCRIPTS<br />
Inserting Function & Transaction Declarations<br />
Inserting Function & Transaction Declarations<br />
Inserting function<br />
declarations<br />
SilkPerformer offers GUI tools that assist you in inserting function and<br />
transaction declarations into test scripts.<br />
Procedure To insert a function declaration into a test script:<br />
1 With the test script into which you want to insert a new function open,<br />
select Script/New Function from the SilkPerformer menu bar.<br />
The New Function dialog appears.<br />
You can also access this dialog by right-clicking within the body of the<br />
script and selecting New Function. A function is used to encapsulate<br />
some tasks that a script requires. Functions can access and change data<br />
declared outside themselves, either through variables or parameters.<br />
Optionally, a function can return a value of a specific type.<br />
2 In the Name field, enter a name for the function you want to insert into<br />
your test script. The name must begin with a character and may consist<br />
of any number of letters of the alphabet, digits, and underscores.<br />
3 From the Return type drop-down list, select the data type of the<br />
function's return value. Choose one of the following:<br />
- none - for the function to return nothing<br />
- boolean - for the function to return either true or false<br />
- float - for the function to return any positive or negative floatingpoint<br />
value or zero<br />
- number - for the function to return any positive or negative whole<br />
number or zero<br />
- string - for the function to return a sequence of characters<br />
4 In the Parameters list, insert the parameters that you want to pass to the<br />
function. For each parameter, enter a name in the Name column and<br />
select the data type from the Type drop-down list:<br />
- boolean - for the parameter to contain either true or false<br />
- float - for the parameter to contain any positive or negative floatingpoint<br />
- value or zero<br />
- number - for the parameter to contain any positive or negative whole<br />
number or zero<br />
- string - for the parameter to contain a sequence of characters<br />
SilkPerformer User Guide 141
6 CUSTOMIZING TEST SCRIPTS<br />
Customizing Workload<br />
Inserting transaction<br />
declarations<br />
5 Use the Preview area to see how the function declaration looks when it is<br />
inserted into your script. The declaration contains the parameters you<br />
insert into the list as well as the return type. Keep in mind that it is up to<br />
you to add the function code after the function declaration has been<br />
inserted into the script.<br />
6 Click OK.<br />
The new function is placed in your script, and appears in the script editor<br />
window.<br />
Procedure To insert a new transaction declaration:<br />
1 With the test script into which you want to insert a new transaction open,<br />
select Script/New Transaction from the SilkPerformer menu bar.<br />
2 The New Transaction dialog appears.<br />
3 You can also access this dialog by right-clicking in the body of the script<br />
and selecting New Transaction.<br />
4 In the Name field, enter the name of the transaction you want to insert.<br />
The name must begin with a character and may consist of any number of<br />
letters of the alphabet, digits, and underscores.<br />
5 Click OK.<br />
The new transaction is placed in your script, and appears in the script<br />
editor window.<br />
Customizing Workload<br />
“User groups” are groups of virtual users who share similar, though not<br />
identical, behavior. The members of user groups perform slightly different<br />
transactions with the goal of simulating real-world client behavior while<br />
maintaining load balance.<br />
User groups are used in conjunction with parameterized user input data and<br />
profiles (browser types, connection speeds, etc) to simulate typical end-user<br />
activity.<br />
User groups are defined by the “transactions” that they call and the frequency at<br />
which they call those transactions. For example, you might have a user group<br />
called “Searcher” that performs a TLogon transaction once, a TSearch<br />
transaction five times, and a TLogoff transaction once. You might also have a<br />
user group called “Updater” that performs the TLogon transaction once, the<br />
TSearch transaction three times, the TUpdate transaction twice, and the TLogoff<br />
transaction once. A third user group called ”Inserter” might perform the TLogon<br />
transaction once, the TSearch transaction once, the TInsert transaction three<br />
times, and the TLogoff transaction once. Collectively, these user groups can be<br />
142 SilkPerformer User Guide
6 CUSTOMIZING TEST SCRIPTS<br />
Customizing Workload<br />
used to simulate real-world client activity while maintaining load balance (i.e.<br />
transactions are distributed in such a way that all users don’t perform the same<br />
transaction at the same moment).<br />
By assigning different profiles to a user group and a script you can define new<br />
“user types,” which are unique combinations of scripts, user groups, and<br />
profiles.<br />
When multiple users have the same workload profile, they can be combined into<br />
a user group. The workload description of a user group contains the name of the<br />
user group, the transactions that are to be invoked by the user group, and the<br />
frequency at which the transactions are to be invoked (TransCount). User group<br />
workload descriptions are included in the workload sections of SilkPerformer<br />
test scripts (UserDcl).<br />
Visual user group<br />
customization<br />
The Customize User Groups dialog enables you to add new user groups, copy<br />
user groups, rename user groups, and delete user groups. The Customize User<br />
Groups dialog also enables you to insert new transactions, copy transactions,<br />
remove transactions, and rename transactions. Transactions can be added and<br />
removed for each user group. The transaction renaming process renames<br />
transactions in all user groups to which they have been assigned.<br />
The Customize User Groups dialog is available via SilkPerformer’s Script menu<br />
(Script/Customize User Groups). This menu option is only available when a<br />
BDF script is open and active. The Customize User Groups dialog works only<br />
on the active BDF script.<br />
Procedure To customize a user group or transaction:<br />
1 Open and activate the BDF script you want to customize.<br />
2 Select Customize User Groups from SilkPerformer’s Script menu.<br />
3 Right-click a user group or transaction node to open a context menu that<br />
lists the available operations:<br />
User Group Operations:<br />
- Add a new user group<br />
- Copy a user group<br />
- Rename a user group<br />
- Delete a user group<br />
Transaction Operations:<br />
- Insert a transaction<br />
- Copy a transaction<br />
- Rename a transaction<br />
- Remove a transaction<br />
SilkPerformer User Guide 143
6 CUSTOMIZING TEST SCRIPTS<br />
Customizing Workload<br />
4 Select the desired action from the context menu and follow the prompts.<br />
5 Begin and End transactions can be defined for each user group by<br />
selecting/deselecting the checkboxes in the Begin/End column.<br />
6 Entries in the Count column, which represent the number of times that<br />
transactions are to be called, can be edited directly by clicking them.<br />
7 When the Choose transactions randomly checkbox is selected and a user<br />
group contains at least two transactions that are neither “begin”<br />
transactions nor “end” transactions, the Random Order column shows<br />
how the transaction distribution will be weighted, by percentage. For<br />
example, if two non-begin and non-end transactions are present, each<br />
transaction will have a random order distribution of 50%. If three nonbegin<br />
and non-end transactions are present, the transactions will have<br />
random order distributions of 33%, 33%, and 34%.<br />
8 Click OK when you’ve completed user group and transaction<br />
customization. The modified data will then be written to the dcluser<br />
section (and dcltrans section if necessary) of your test script.<br />
User Profiles<br />
Defining browser<br />
types<br />
Defining modem<br />
speeds<br />
Virtual users in a load test can be customized to use any of a wide choice of Web<br />
browsers, and of the functionality they embody. The most popular browsers in<br />
use today can be emulated, with a wide range of versions of Microsoft Internet<br />
Explorer and of Netscape Communicator. Lesser-known browsers are also<br />
available, as are browsers serving mobile phone users. Custom browsers can be<br />
defined, using different versions of threading technologies and of HTTP.<br />
Modems are the means that home users typically use to access the Internet.<br />
Since a user’s modem is usually the slowest link in the network communication<br />
chain, modems need to be simulated in load tests.<br />
Virtual users can be customized to use the bandwidth associated with any of the<br />
major connection types in wide use among consumers today—standard voiceline<br />
modems, ISDN, Digital Subscriber Line, and mobile phone. Custom<br />
settings can be defined where connections use different bandwidth settings for<br />
downstream (from the server to the client) and upstream (from the client to the<br />
server) traffic.<br />
User Types<br />
Setting up individual<br />
IP addresses<br />
Procedure To set up individual IP addresses:<br />
1 Click the Customize Test button on the SilkPerformer Workflow bar.<br />
The Workflow - Customize Test dialog appears.<br />
144 SilkPerformer User Guide
6 CUSTOMIZING TEST SCRIPTS<br />
Customizing Workload<br />
2 Click the System Configuration Manager link.<br />
The System Configuration Manager opens.<br />
3 Click the IP Address Manager tab.<br />
You can also access this by selecting Tools/System Configuration<br />
Manager from the SilkPerformer menu bar, and clicking the IP Address<br />
Manager tab.<br />
4 From the Adapter drop-down list, select the network adapter for which<br />
you want to configure IP addresses. The list contains all the network<br />
adapters to which IP is bound on the computer in question.<br />
5 Use the IP addresses area to find out information about the current<br />
configuration of the network adapter, and to set up IP addresses for the<br />
adapter.<br />
6 To add new IP addresses to the network adapter configuration, click the<br />
Add button.<br />
The Add IP Addresses dialog appears.<br />
7 In the From IP address field enter the IP address you want to add to the<br />
network adapter configuration. If you specify that you want to add<br />
multiple addresses, the System Configuration Manager generates<br />
sequential IP addresses, starting with this address.<br />
8 In the Subnet mask field, enter the subnet mask number for the IP<br />
addresses. This number, combined with the IP addresses, identifies<br />
which network the computers are on.<br />
9 To add multiple IP addresses, either select the Number option and enter<br />
the number of addresses you want in the field; or select the To IP address<br />
option.<br />
In the latter case, specify the highest IP address you want to add to the<br />
network adapter configuration. The System Configuration Manager<br />
generates sequential IP addresses, starting with the address you type in<br />
the From IP address field and ending with this address.<br />
10 Select the Do not add conflicting addresses option to only add IP<br />
addresses to the network adapter configuration that do not cause<br />
conflicts.<br />
11 When enabling the Allow CIDR addresses checkbox, the verification of<br />
the IP address and subnet mask pair is disabled. Classless Inter-Domain<br />
Routing (CIDR) has been adopted as a solution to the scaling problem in<br />
the Internet. CIDR is not as restrict as the "normal" IP-Routing.<br />
12 Click OK.<br />
13 To edit a selected IP address, click the Edit button.<br />
The Edit IP Addresses dialog appears.<br />
SilkPerformer User Guide 145
6 CUSTOMIZING TEST SCRIPTS<br />
Customizing Workload<br />
14 Edit the IP address and the subnet mask.<br />
15 Select the Do not add conflicting addresses option to automatically<br />
remove the modified IP address from the network adapter configuration<br />
if it causes any conflicts.<br />
16 Click OK.<br />
17 To save the network adapter configuration to a file, click the Save button.<br />
By default, the file is stored in the System Configuration Manager home<br />
directory.<br />
18 To load a network adapter configuration from a file, click the Load<br />
button and locate the appropriate file.<br />
19 To remove IP addresses, click the Remove button. The Remove IP<br />
Addresses dialog appears.<br />
Note Be cautious about removing multiple IP address at once.<br />
20 In the From IP address field, enter the IP address you want to remove<br />
from the network adapter configuration. If you elect to remove multiple<br />
addresses, the System Configuration Manager deletes all successive IP<br />
addresses, starting with this address.<br />
21 In the Subnet mask field, enter the subnet mask number for the IP<br />
addresses you want to remove.<br />
22 To remove multiple IP addresses, select either the Number or the To IP<br />
address option.<br />
Select the Number option to specify the number of IP addresses you want<br />
to remove from the network adapter configuration, and enter the number<br />
of addresses in the field. The System Configuration Manager deletes that<br />
number of successive IP addresses, starting with the address you type in<br />
the From IP address field.<br />
23 Select the To IP address option to specify the highest IP address you<br />
want to remove from the network adapter configuration. The System<br />
Configuration Manager deletes all successive IP addresses, from the<br />
address you type in the From IP address field to this address.<br />
24 Click OK.<br />
25 If you want to check whether IP routing to a specified computer works<br />
for all configured IP addresses, enter the name or IP address of the<br />
computer in the Host name or IP address field in the Network area.<br />
26 Click Check. A report from this check will be provided at the bottom of<br />
the dialog.<br />
27 Click OK to exit the dialog and save your changes.<br />
146 SilkPerformer User Guide
6 CUSTOMIZING TEST SCRIPTS<br />
Customizing Workload<br />
Working with Web<br />
forms<br />
Web forms are defined in the dclform section of test scripts.<br />
Form declaration syntax<br />
The form declaration is specified by a form name (for example, FORM_<br />
NAME) which can be any valid identifier string and must be followed by a<br />
colon. The left side string specifies the name of the field or parameter. An empty<br />
string is allowed for nameless URL parameters, such as image map coordinates.<br />
The right value specifies the data value of the field or parameter. These can be<br />
global constants, global variables and random variables.<br />
The example below illustrates the required syntax for Web form declarations:<br />
dclform<br />
FORM_NAME:<br />
"field-name" := R-Value;<br />
Web form string encoding<br />
All strings used in the forms declaration will be URL encoded when sent to the<br />
server. This means that unsafe characters will automatically be converted into a<br />
hexadecimal sequence (%xx). Parameters added directly to the URL will not be<br />
encoded (for example, WebUrl("http://host/cgi-bin/doit?MyUnSafeMessage&-<br />
?%?-?", 0.0). This allows applications to use non-standard URL parameters.<br />
Web form script example<br />
The following example shows a portion of a SilkPerformer script for simulating<br />
a form submission. Random variables rsEmail and rsPlatform with two different<br />
random functions (RndFile and RndInd) are defined in the random variables<br />
section. With each subsequent call to WebFormPost and WebFormGet, the<br />
random variables are refreshed and contain new random values. These random<br />
values are used to generate the URL encoded form string automatically sent<br />
within the request to the Web server. WebFormPost adds the form content string<br />
at the end of the HTTP header while WebFormGet adds it at the end of the URL<br />
separated by a “?”.<br />
dclrand<br />
rsEmail : RndFile<br />
("elname.rnd", 20);<br />
rsPlatform : RndInd("Windows NT" = 0.3;<br />
"Windows 2000" = 0.6;<br />
"other" = 0.1);<br />
dcltrans<br />
transaction TWebFormPost<br />
begin<br />
WebFormPost("http://www.comp.com/cgi/FormMail.pl", CGI_<br />
CUST_SUPPORT, nWait);<br />
WebFormGet("http://www.comp.com/cgi/form", CGI_CUST_<br />
SUPPORT, nWait);<br />
end TWebFormPost;<br />
dclform<br />
CGI_CUST_SUPPORT:<br />
"email" := rsEmail,<br />
SilkPerformer User Guide 147
6 CUSTOMIZING TEST SCRIPTS<br />
Customizing Workload<br />
"sitetype" := "business",<br />
"sitelang1" := "english",<br />
"platform" := rsPlatform;<br />
Working with cookies<br />
SilkPerformer supports record and replay for cookies used in Web applications.<br />
Cookies enable Web servers to store and retrieve state information on the client<br />
computer. A server, when submitting an HTTP object, may also send a<br />
“cookie,” a state object that the client will store for a specified amount of time.<br />
The cookie includes a description that defines a range of URLs for which it is<br />
valid. The next time a client reconnects from within this range of URLs, the<br />
contents of the cookie will be submitted to the server in addition to the request.<br />
Cookies may either be persistent or non-persistent. Persistent cookies are stored<br />
in a cookie database on the client computer and are deleted only after a specified<br />
expiration date occurs. Non-persistent cookies are maintained only during a<br />
single Web browser session and are deleted when the client Web application is<br />
closed. To create as realistic a simulation as possible, only persistent cookies are<br />
recorded (and thus replayed) by the Internet Recorder.<br />
Cookie database functions<br />
SilkPerformer creates a non-persistent cookie database for each virtual user.<br />
During a load test, cookies are automatically received into and sent from the<br />
database. To allow you to evaluate or modify cookies during a load test,<br />
WebCookie functions are provided for users to set cookies into, and access them<br />
from, the cookie database.<br />
Function<br />
Description<br />
WebCookieGet Returns cookies for the specified URL and all its<br />
parent URLs.<br />
WebCookieSet<br />
Sets a cookie in SilkPerformer’s cookie database<br />
for the specified URL.<br />
WebCookieListFirst Retrieves the first cookie in the cookie database.<br />
WebCookieListNext Retrieves the next cookie in the cookie database.<br />
WebCookieResetDb Deletes all cookies from the cookie database.<br />
Table 2: Cookie database functions<br />
Before you use these functions, you should be familiar with cookies as outlined<br />
at http://www.netscape.com/newsref/std/cookie_spec.html.<br />
Important notes<br />
Keep in mind the following when you work with cookies with SilkPerformer:<br />
- The SilkPerformer cookie database is non-persistent and therefore<br />
only exists while a load test is running.<br />
148 SilkPerformer User Guide
6 CUSTOMIZING TEST SCRIPTS<br />
Customizing Session Handling<br />
- Each virtual user has a cookie database of its own and therefore the<br />
contents of the cookie database varies from virtual user to virtual<br />
user.<br />
- Although cookies are generally created at server side, you can<br />
simulate already existing cookies using the WebCookieSet function.<br />
Customizing Session Handling<br />
Session handling for<br />
Web applications<br />
Web server applications often generate information at runtime that is necessary<br />
in order to identify further client requests. In the response to the browser, the<br />
server may include a unique string, commonly known as the Session ID. This<br />
string is returned by the browser to the server as a part of each subsequent<br />
request, allowing the server to identify the unique Web session of which the<br />
request is a part. Generally, Session IDs refer to the method the Web server<br />
application uses to identify individual users and to associate this identification<br />
with the state of the user session information that the application has previously<br />
had with those users.<br />
Session IDs can be sent to the client in a number of ways. Most often you will<br />
find them included in cookies, or inside HTML as part of URL's used in hyper<br />
links or embedded objects, or in hidden HTML form fields. Session IDs are sent<br />
back to the server in cookies, URL's, and HTTP post data.<br />
Example<br />
Session information inside cookies:<br />
From the server:<br />
Set-Cookie: SessionID=LGIJALLCGEBMIBIMFKOEJIMM; path=/<br />
To the server:<br />
Cookie: SessionID=LGIJALLCGEBMIBIMFKOEJIMM<br />
Session information in the URL's of HTML links:<br />
From the server:<br />
<br />
...<br />
<br />
Enter Shop<br />
<br />
...<br />
<br />
To the server:<br />
GET /ShopIt/acknowledge.asp? SessionID =<br />
LGIJALLCGEBMIBIMFKOEJIMM HTTP/1.1<br />
SilkPerformer User Guide 149
6 CUSTOMIZING TEST SCRIPTS<br />
Customizing Session Handling<br />
Session information in hidden form fields:<br />
From the server:<br />
<br />
...<br />
<br />
Currently we only accept Credit Cards<br />
<br />
<br />
<br />
<br />
...<br />
<br />
To the server:<br />
POST /ShopIt/kindofpayment.asp HTTP/1.1<br />
...<br />
SessionId=LGIJALLCGEBMIBIMFKOEJIMM&name=Jack&paymentButt<br />
on=Submit<br />
Value of customized<br />
session handling<br />
When to use<br />
customized session<br />
handling<br />
Assuming that a WebPageUrl call in your script uses a URL that contains a<br />
session ID as part of the query string of the URL. When replaying the script, this<br />
hard coded static session ID is sent to the server. Because the session ID does<br />
not correctly identify your replayed session—it still identifies the recording<br />
session—the replay won’t work correctly. By not replacing static session IDs in<br />
your script with dynamic values that had been generated at runtime, your Web<br />
application will usually generate errors such as “We are sorry, your session has<br />
expired. Please return to the login screen and try again”.<br />
The good news is that with SilkPerformer, session customization is not often<br />
necessary and, even if manual session customization is needed, SilkPerformer's<br />
TrueLog Explorer will guide you through the process.<br />
Most often when you record a script, it will work without any modifications<br />
necessary for the customization of session handling. SilkPerformer therefore<br />
uses multiple, highly sophisticated methods that prevent the user from manually<br />
handling hard coded session IDs:<br />
• Cookie Management: When your server uses cookies to exchange<br />
session information, SilkPerformer will automatically handle dynamic<br />
session ID values. Because SilkPerformer exactly emulates the cookie<br />
management of a browser, it will send cookies the same way a browser<br />
sends them to your server. No manual interaction is needed for state<br />
management.<br />
• Page-based browser level API (Page-level API): Using the Page-level<br />
API when recording (which is the default setting) will generate scripts<br />
that mainly generate context-full Web API function calls such as<br />
150 SilkPerformer User Guide
6 CUSTOMIZING TEST SCRIPTS<br />
Customizing Session Handling<br />
WebPageLink and WebPageSubmit. Context-full Web API calls are<br />
working on the HTML level, not the HTTP level, and thus they do not<br />
use URL's as parameters. For all context-full API calls, manual session<br />
customization is not needed. The page-level API is used if you choose<br />
the application type Web business transaction (HTML/HTTP) in the<br />
Outline Project dialog. Therefore it is strongly recommended that you<br />
use SilkPerformer's page-level API instead of the low-level browserlevel<br />
API.<br />
Due to the heavy use of client side Java Script for dynamically generating<br />
HTML, the SilkPerformer recorder sometimes loses the HTML context and<br />
scripts context-less Web API calls. Context-less Web API calls, such as<br />
WebPageUrl and WebPageForm, contain URL's as parameters. In these rare<br />
cases, your script may contain hard coded session IDs. You will find them in the<br />
URL parameters of Web API calls and in the form fields declared in the<br />
DCLFORM section of your script.<br />
Example<br />
Context-full script (there is nothing to customize):<br />
transaction TMain<br />
begin<br />
WebPageUrl("http://lab38/ShopIt/"); // first call is<br />
always context-less<br />
WebPageLink("Join the experience!");<br />
WebPageSubmit("Enter", SHOPIT_MAIN_ASP001);<br />
WebPageLink("Products");<br />
end TMain;<br />
dclform<br />
SHOPIT_MAIN_ASP001:<br />
"SessionID" := "" , // hidden value:<br />
"LGIJALLCGEBMIBIMFKOEJIMM"<br />
// recognized as a hidden form<br />
// field, the value is taken from<br />
// the actual HTML form field.<br />
"name" := "Jack", // changed<br />
"New-Name-Button" := "" ; //unchanged<br />
value: "Enter"<br />
Scripts with context-less functions (static session data that needs to be<br />
customized is included in the DCLFORM section):<br />
transaction TMain<br />
begin<br />
WebPageUrl("http://lab38/ShopIt/"); // first call is<br />
always context-less<br />
SilkPerformer User Guide 151
6 CUSTOMIZING TEST SCRIPTS<br />
Customizing Session Handling<br />
WebPageUrl("http://lab38/ShopIt/main.asp", NULL,<br />
SHOPIT_MAIN_ASP001);<br />
WebPageForm("http://lab38/ShopIt/main.asp", SHOPIT_<br />
MAIN_ASP002);<br />
WebPageUrl("http://lab38/ShopIt/products.asp");<br />
end TMain;<br />
dclform<br />
SHOPIT_MAIN_ASP001:<br />
"from" := "welcome";<br />
Customizing session<br />
handling<br />
Identifying Session<br />
IDs<br />
SHOPIT_MAIN_ASP002:<br />
"SessionID" := "LGIJALLCGEBMIBIMFKOEJIMM",<br />
"name"<br />
:= "Jack",<br />
"New-Name-Button" := "Enter";<br />
The following basic steps can be used to customize session handling. Each of<br />
these steps is detailed in the following sections:<br />
1 Identify the session ID that needs to be customized.<br />
2 Search for the first response (Web API call in the script) in which the<br />
session ID is sent from the server to the client.<br />
3 Parse out the session ID from the found response of the Web API call<br />
into a variable.<br />
4 Replace all occurrences of the hard coded session ID in the script with<br />
this variable.<br />
Without the support of SilkPerformer's TrueLog Explorer functionality, even<br />
the first step of this process, that is, identifying the session relevant data, could<br />
be challenging.<br />
As previously mentioned, session IDs are dynamic values generated by Web<br />
application to maintain the state of a Web application. Because of their dynamic<br />
nature, session IDs differ between each user session. Thus they can also differ<br />
between the recorded session and the replayed session. By comparing record<br />
and replay logs for differences, you can find these dynamic values.<br />
Finding session IDs can be easily done using SilkPerformer's TrueLog Explorer.<br />
Choosing Customize Session Handling from the workflow bar will<br />
automatically open the corresponding record TrueLog file of the opened replay<br />
TrueLog. By going through your record and replay log step by step, you can<br />
look for differences in the HTML responses between the record and replay<br />
scripts. The HTML Source Differences tab shows you an overview of all the<br />
differences between two corresponding HTML documents.<br />
The differences found between the recording session and the replay session<br />
scripts are the first source to consider for locating possible session IDs. Not all<br />
of the differences that you find in the returned data of your recording session and<br />
152 SilkPerformer User Guide
6 CUSTOMIZING TEST SCRIPTS<br />
Inserting Parsing Functions<br />
the returned data of your replay session are relevant for session customization.<br />
Only if you find differences between the record and replay scripts, will you then<br />
have found a possible candidate for session customization.<br />
More precisely:<br />
If the differing phrase in the server response data of the recording session can<br />
also be found in the URLs of Web API calls or in the form fields inside the<br />
DCLFORM section of your script, you have identified a possible session ID that<br />
can be customized.<br />
Parsing and replacing<br />
session IDs<br />
Now that you have identified the session ID and the Web API call in the BDL<br />
script which returns the session ID, you must parse out the session ID from the<br />
response to the Web API call. SilkPerformer offers numerous parsing functions<br />
that enable you to parse out values from server responses and store the result in a<br />
variable in your script (for details see WebParse* functions in the BDL Function<br />
Reference). The next step is to replace all occurrences of the hard coded session<br />
ID in the script with this variable.<br />
SilkPerformer 's TrueLog Explorer also supports this task so that no manual<br />
interaction with your script is needed. TrueLog Explorer will generate the<br />
appropriate parsing and replacement statements automatically without the need<br />
to manually change a single line of code in your BDL script. It automatically<br />
recognizes relevant session data and shows it in the view HTML Source<br />
Difference. There, you simply can select the line that contains the session ID and<br />
customize it by double clicking on the row. A dialog, in which you can check<br />
the parameters of the parsing function, will be shown. Accepting the dialog will<br />
generate the parsing and replacement statements that are needed to customize<br />
the session handling for the selected session ID.<br />
Inserting Parsing Functions<br />
Similar to the verification functions, parsing functions can be used to parse<br />
content returned from a Web server and check if the values meet your testing<br />
criteria. Different from the verification functions, which basically check the<br />
occurrence of a specified input value, the parsing functions parse the content of<br />
a server response and return the parsed value in a BDL variable. Typically, you<br />
will use parsing functions for the following tasks:<br />
- Parse session IDs and replace static session IDs in the script with<br />
parsed, dynamic session IDs to maintain state information in Web<br />
applications. This is one of the main fields of application of parsing<br />
functions.<br />
- Build enhanced verifications into your script with parsing functions,<br />
which cannot be done with verification functions. For example, if<br />
you want to verify that the value of column 2 of row 3 in an HTML<br />
SilkPerformer User Guide 153
6 CUSTOMIZING TEST SCRIPTS<br />
Inserting Parsing Functions<br />
table is equal to the sum of the values of column 2 of row 1 and<br />
column 2 of row 2. By using parsing functions to parse out the three<br />
values and compare them in our script, you can build this enhanced<br />
verification check.<br />
- Conditional execution of parts of your testing script which depends<br />
on the data returned from the server. For example, an HTTP request<br />
returns an HTML page which includes: "Results: items<br />
found". You want to execute different actions depending on the<br />
value of . Let's say you want to exit the transaction if =<br />
0, and you want to go to link "Details" if = 1, and you want to<br />
go to link "Next" if is greater than 0. To accomplish this, you<br />
need to parse the value of from the HTML page and script the<br />
actions, depending on the value you have parsed out.<br />
SilkPerformer offers two means to enhancing your test scripts with parsing<br />
functionality:<br />
- Apply parsing functions visually in TrueLog Explorer without the<br />
need to write a single line of BDL code. TrueLog Explorer will<br />
automatically generate parsing functions in your script.<br />
- Directly enhance your script by coding verification functions<br />
manually.<br />
The following parsing functions are available with SilkPerformer:<br />
HTML content parsing<br />
Response data<br />
parsing<br />
HTML content parsing functions parse out portions of the rendered, visible<br />
HTML content. You can apply HTML content parsing functions in the HTML<br />
view of TrueLog Explorer.<br />
- WebParseHtmlBound<br />
- WebParseHtmlTitle<br />
- WebParseTable<br />
- WebParseResponseTag<br />
- WebParseResponseTagContent<br />
Data parsing functions parse out portions of the response data returned from the<br />
server. In cases in which an HTML document is returned from the server, the<br />
complete source code of the HTML document is parsed. You can apply data<br />
verification functions in the source view of TrueLog Explorer.<br />
- WebParseDataBound (this function replaces the obsolete<br />
WebParseResponseData function)<br />
- WebParseResponseHeader<br />
See “Matrix: Functions, the Recorder, and TrueLog Explorer” for more<br />
details.<br />
154 SilkPerformer User Guide
6 CUSTOMIZING TEST SCRIPTS<br />
Adding Verifications to Test Scripts<br />
Adding Verifications to Test Scripts<br />
Value of verification<br />
checks<br />
Often application errors do not cause erroneous HTTP responses. Instead, the<br />
application responds with incorrect data values or with error messages<br />
incorporated in the HTML content, such as “A Servlet Exception<br />
occurred&ldots;" or "Server Too Busy&ldots;”. A simple check of the HTTP<br />
status code will not uncover this class of errors. Therefore, application errors are<br />
often overseen if you do not build additional checks into your test script.<br />
Verification functions help you to check for application errors that are not<br />
simple, standard HTTP errors. With verification built into your test scripts, your<br />
test evolves from being a simple load test to a becoming a combined load and<br />
functionality test. You can use these scripts without major performance<br />
penalties, even during large load test scenarios. They will, therefore, be able to<br />
detect a new class of application errors—errors which only occur under load,<br />
but which would be overlooked by a simple load test script without additional<br />
verification checks.<br />
SilkPerformer offers three means of enhancing your test scripts with verification<br />
functionality:<br />
• Automatically let the Recorder generate verification functions during the<br />
recording session.<br />
• Apply verifications visually via TrueLog Explorer without the need to<br />
write a single line of BDL code. TrueLog Explorer will automatically<br />
generate verification functions into your script.<br />
• Directly enhance the script by coding verification functions manually.<br />
All three approaches are based on SilkPerformer's verification functions. The<br />
following verification functions are available with SilkPerformer.<br />
HTML content<br />
verification<br />
HTML content verification functions verify the rendered, visible HTML<br />
content. You can apply HTML content verification functions in the HTML view<br />
of TrueLog Explorer.<br />
- WebVerifyHtml<br />
- WebVerifyHtmlBoundEx<br />
- WebVerifyHtmlTitle<br />
- WebVerifyTable<br />
See the BDL Function Reference for details.<br />
Data verification<br />
Data verification functions verify the complete response data returned from the<br />
server. In cases in which an HTML document is returned from the server, it<br />
provides the complete source code of the HTML document. You can apply data<br />
verification functions in the Source view of TrueLog Explorer.<br />
- WebVerifyData<br />
SilkPerformer User Guide 155
6 CUSTOMIZING TEST SCRIPTS<br />
Adding Verifications to Test Scripts<br />
Automatically<br />
generating<br />
verifications during<br />
recording<br />
- WebVerifyDataBoundEx<br />
- WebVerifyDataDigest<br />
See the BDL Function Reference for details.<br />
See “Matrix: Functions, the Recorder, and TrueLog Explorer” for more<br />
details.<br />
HTML title verifications and response data digest verifications can be<br />
automatically generated during a recording session. To enable automatically<br />
generated verifications during recording, go to the Menu Settings/Active Profile/<br />
Record/Web/Verification/Recording and check the Record title verification and<br />
the Record digest verification checkboxes.<br />
Title Verification<br />
Title verification is especially useful if you want a simple and automatic means<br />
of checking if your application returns the correct Web pages. It is not useful if<br />
the title (the content of the HTML tag ) of all of your HTML pages is<br />
not set or they all have the same title.<br />
The recorder can automatically generate a title verification function for each<br />
Web Page-level API call or each browser-level API call when retrieving an<br />
HTML document.<br />
Example script generated by SilkPerformer's Recorder with Record title<br />
verification enabled:<br />
transaction TMain<br />
begin<br />
WebVerifyHtmlTitle("ShopIt - Greetings");<br />
WebPageUrl("http://bi_dell/shopit/", ...);<br />
WebVerifyHtmlTitle("ShopIt - Confirm your name");<br />
WebPageLink("Join the experience!", ...);<br />
end TMain;<br />
Title Verification can also be generated visually for selected Web pages with<br />
TrueLog Explorer.<br />
Digest Verification<br />
Digest verification is useful if you want to verify the complete content of a<br />
rather static HTML page. Digest verification is not useful if your HTML page is<br />
dynamic or contains session information in links, embedded objects, and hidden<br />
form fields and therefore changes with each call.<br />
The function call WebVerifyDataDigest checks if the data that SilkPerformer<br />
receives during replay differs from the data that the Recorder captured during an<br />
earlier recording session. As does the Recorder, SilkPerformer generates a<br />
digest containing information about the occurrence of each character and<br />
compares the results with the digest generated by the Recorder. Using this<br />
function, it is possible to check if SilkPerformer receives the same data as the<br />
client application did during recording. The recorder automatically generates a<br />
digest verification function for each Web Page-level API call or each browser-<br />
156 SilkPerformer User Guide
6 CUSTOMIZING TEST SCRIPTS<br />
Adding Verifications to Test Scripts<br />
level API call retrieving a document with a content type specified for digest<br />
verification (by default: text/html). To enable digest verifications during replay,<br />
go to Settings/Active Profile/Replay/Web/Verification/Data and select check the<br />
Digest verification option.<br />
For details about digest verification, see WebVerifyDataDigest in the BDL<br />
Function Reference.<br />
Example script generated by SilkPerformer's Recorder with Record digest<br />
verification enabled:<br />
const<br />
gsVerDigest_ShopIt_Greetings := "\h014200000B&ldots;"<br />
"\h160005000A&ldots;"<br />
"\h030001000A&ldots;"<br />
"\h0900410020&ldots;";<br />
transaction TMain<br />
begin<br />
...<br />
WebVerifyDataDigest(gsVerDigest_ShopIt_Greetings,<br />
162);<br />
WebPageUrl("http://bi_dell/shopit/", "ShopIt -<br />
Greetings");<br />
...<br />
end TMain;<br />
Visually generating<br />
verifications with<br />
TrueLog Explorer<br />
With SilkPerformer, you can apply verifications visually in TrueLog Explorer<br />
without the need to write a single line of BDL code. You can apply verification<br />
checks in the Rendered HTML view and the HTML Source view of TrueLog<br />
Explorer. Just mark the text you want to verify, and choose the verification<br />
method you want to use. You can choose the verification method from four<br />
different places:<br />
• Script-Menu,<br />
• Add Verifications dialog,<br />
• Context menu of the Rendered HTML view and the HTML Source view,<br />
or<br />
• Tool bar.<br />
TrueLog Explorer automatically generates the appropriate verification function<br />
into your script.<br />
HTML verification<br />
HTML verifications check rendered, visible HTML content. They verify the<br />
textual content that you see in your browser. Verifications that you apply in the<br />
Rendered HTML view will generate the following HTML verification<br />
functions:<br />
SilkPerformer User Guide 157
6 CUSTOMIZING TEST SCRIPTS<br />
Adding Verifications to Test Scripts<br />
• WebVerifyHtmlTitle: Checks the title (the content of the HTML tag<br />
) of the selected HTML page (no selection of text is needed to<br />
apply a title verification). This function is generated when you select<br />
Verify Page Title from the menu or when you select Verify the page title<br />
from the Add Verifications dialog.<br />
• WebVerifyHtml: Checks the text you have marked in the Rendered<br />
HTML view of the selected HTML document. TrueLog Explorer will<br />
automatically detect the number of occurrences of the marked text in the<br />
selected HTML document. Selecting Verify Selected Text from the menu<br />
or the Add Verifications dialog will open up the Insert Content<br />
Verification dialog that generates the function.<br />
• WebVerifyHtmlBoundEx: Checks the text you have marked in the<br />
Rendered HTML view. TrueLog Explorer will automatically detect<br />
unique boundaries that identify the position of the marked text. Selecting<br />
Verify Selected Text from the menu or the Add Verifications dialog will<br />
open up the Insert Content Verification dialog. The function is generated<br />
when checking the Require boundary strings checkbox.<br />
• WebVerifyTable: Checks the text you have marked within a cell of an<br />
HTML table in Rendered HTML view. TrueLog Explorer automatically<br />
identifies the HTML table, as well as the row and the column of the cell<br />
you have marked. Selecting Verify Selected Text in an HTML Table from<br />
the menu or the Add Verifications dialog will open the Insert Table<br />
Verification dialog that generates the function.<br />
Note If the HTML document is contained within a set of frames, the<br />
text will only be verified against the frame that contains the selected<br />
text, not the whole page.<br />
Response data<br />
verification<br />
Response data verification functions can be applied to the complete response<br />
data returned from the server. Using TrueLog Explorer, you can visually apply<br />
them by marking the text in the HTML Source view. Depending on the selection<br />
you choose, TrueLog Explorer generates the following data verification<br />
functions:<br />
• WebVerifyData: Checks the text you have marked in the HTML Source<br />
view of the selected HTML document. TrueLog Explorer will<br />
automatically detect the number of occurrences of the marked text in the<br />
HTML source. Selecting Verify Selected Text from the menu or the Add<br />
Verifications dialog will open the Insert Content Verification dialog that<br />
generates the function.<br />
• WebVerifyDataBoundEx: Checks the text you have marked in the HTML<br />
Source view. TrueLog Explorer will automatically detect unique<br />
boundaries that identify the position of the marked text. Selecting Verify<br />
158 SilkPerformer User Guide
6 CUSTOMIZING TEST SCRIPTS<br />
Manual Script Editing<br />
Selected Text from the menu or the Add Verifications dialog will open up<br />
the Insert Content Verification dialog. This function is generated by<br />
checking the Require boundary strings checkbox.<br />
Enabling verification<br />
checks during replay<br />
Verification functions can be enabled/disabled in the profile settings dialog<br />
Profile/Replay/Web/Verification:<br />
- HTML/Title verification: Enables/disables the function<br />
WebVerifyHtmlTitle.<br />
- HTML/HTML verification: Enables/disables the functions<br />
WebVerifyHtml and WebVerifyHtmlBoundEx.<br />
- HTML/Table verification: Enables/disables the function<br />
WebVerifyTable.<br />
- HTML/Link checking: Enables/disables link checks for all Web<br />
Page-level API calls. You can select this option to check the validity<br />
of links in HTML documents received during a load test. For each<br />
link included in an HTML document, additional requests are sent to<br />
check that the link is valid.<br />
- Data/Data verification: enables/disables the functions<br />
WebVerifyData and WebVerifyDataBoundEx.<br />
- Data/Digest verification: enables/disables the function<br />
WebVerifyDataDigest.<br />
You can overrule the profile settings in your script with the BDL function<br />
WebSetOption.<br />
Specifying verification<br />
and parsing functions<br />
All parsing and verification functions must be specified before the Web API<br />
calls that will offer the response data that is to be parsed/verified. You can<br />
specify multiple parse/verification functions before a Web API call. The order<br />
of the parse/verification functions is not relevant (Exception:<br />
WebParseDataBound and WebVerifyDataBound using the flag WEB_FLAG_<br />
SYNCHRON).<br />
Example BDL:<br />
WebVerifyHtml("Proper equipment leads to a successful<br />
trip", 1, ...);<br />
WebPageLink("ShopIt");<br />
Manual Script Editing<br />
An effective means of customizing the behavior of virtual users is to manually<br />
edit the test scripts. SilkPerformer scripts are written in the program's<br />
proprietary scripting language, the Benchmark Description Language (BDL).<br />
SilkPerformer User Guide 159
6 CUSTOMIZING TEST SCRIPTS<br />
Using the System Configuration Manager<br />
To edit scripts manually you need to be familiar with BDL, which is a high-level<br />
language resembling Pascal.<br />
You must be familiar with how to create prototypes of user requests, and how to<br />
define the typical components of a load testing script, including modules,<br />
functions, workload definitions, transactions, Web forms, and more. Extensive<br />
help on those topics is available in the BDL Function Reference.<br />
Using the System Configuration Manager<br />
The System Configuration Manager enables a wide range of options to be set for<br />
any agent computer from the controller computer. The agent software and the<br />
launcher service can be configured, started, stopped, locked, and unlocked from<br />
here.<br />
For load testing, some of the most important functions of the System<br />
Configuration Manager are those that allow agents to be easily optimized for<br />
large load tests. The number of current TCP/IP connections that can be<br />
established from the computer to the server being tested can be increased; this is<br />
affected by a simple slider control. Also, if the application under test uses a load<br />
balancer, individual IP addresses can be allotted to the virtual users.<br />
The System Configuration Manager also enables information about the<br />
hardware, operating system, and memory being used by a selected agent to be<br />
viewed; reports can be written, settings can be changed, and the agent computer<br />
can be started to make the changes effective.<br />
Serializing and Synchronizing Virtual Users<br />
There are several SilkPerformer functions that allow you to either serialize or<br />
synchronize transactions in your test scripts in to better control the timing of<br />
loads in your simulation.<br />
Both serialization and synchronization are implemented using high-level<br />
functions that call pre-existing Windows NT functions.<br />
Serialization enables you to test the effects of transactions executed one at a<br />
time. This is useful, for instance in connecting to a server that is not able to<br />
handle a large number of concurrent logins. Serialization uses a function called<br />
CreateMutex, which creates a token (semaphore) that only one user can possess<br />
at a time. When the user completes the transaction, the token is released and<br />
made available to another user.<br />
Synchronization is useful in testing the effects of a large number of<br />
simultaneously called transactions. It allows you to create stress on your system<br />
to test specific concurrency issues. Synchronization works by employing an<br />
160 SilkPerformer User Guide
6 CUSTOMIZING TEST SCRIPTS<br />
Serializing and Synchronizing Virtual Users<br />
Function overview<br />
additional user called an Event Starter, which functions like the starting gun at<br />
the beginning of a race. Using the CreateEvent function, you can use the Event<br />
Starter user to send an Event object after a specified period of time. You can set<br />
up the users in the simulation to wait for this event and thus perform a specified<br />
transaction simultaneously when the event is released.<br />
The following functions are used in serializing and synchronizing transactions<br />
and users in SilkPerformer scripts.<br />
Function<br />
Description<br />
CloseHandle<br />
Closes an open object handle<br />
previously opened with CreateEvent,<br />
CreateEventEx, CreateMutex, or<br />
CreateMutexEx.<br />
CreateEvent<br />
Uses the Win32 CreateEventEx<br />
function to create a named event<br />
object.<br />
CreateEventEx<br />
Creates a named or unnamed event<br />
object.<br />
CreateMutex<br />
Uses the Win32 CreateMutexEx<br />
function to create a named mutex<br />
object. Mutex objects are used to<br />
serialize access to critical sections<br />
inside transactions for multiple<br />
concurrent users.<br />
PulseEvent<br />
Provides a single operation that sets<br />
the state of a specified event object<br />
to signaled and then resets it to<br />
nonsignaled after releasing the<br />
appropriate number of waiting<br />
threads.<br />
ReleaseMutex<br />
Releases ownership of the specified<br />
mutex object.<br />
WaitFor<br />
Waits for a number of users to call<br />
this function.<br />
WaitForSingleObject<br />
Returns when a specified object is in<br />
the signaled state or when the<br />
timeout interval elapses.<br />
Table 3: Functions for serializing and synchronizing virtual users<br />
SilkPerformer User Guide 161
6 CUSTOMIZING TEST SCRIPTS<br />
Serializing and Synchronizing Virtual Users<br />
Note Refer to the SilkPerformer Benchmark Description Language<br />
Reference manual and online Help for complete details and<br />
examples of all SilkPerformer functions.<br />
Serialization<br />
Serialization functions<br />
Serializing users and transactions requires the use of a token or mutex object.<br />
Named mutex objects are created by calling the CreateMutex function. The<br />
users to be synchronized have to wait until they receive the mutex object. This<br />
guarantees that only one user executes a transaction at a time.<br />
After a user has completed the transaction, the user must release the token by<br />
calling the ReleaseMutex function. This makes the mutex object available for<br />
other users.<br />
The following functions are used in serializing transactions and users:<br />
- CreateMutex<br />
- CreateMutexEx<br />
- ReleaseMutex<br />
- WaitForSingleObject<br />
For details on these functions, refer to the BDL Function Reference<br />
Serialization sample<br />
script<br />
The following example is excerpted from a sample script called Mutexlogin.bdf,<br />
located in the Samples\Database folder in the SilkPerformer installation<br />
directory. The script consists of three transactions. TMain waits until the user<br />
possesses the token, and then connects to the DBMS; Selling executes the<br />
database transaction; and CleanUp closes the connection to the database and<br />
releases all the resources.<br />
Initially, a mutex object called MyConnectMutex is created to serialize access to<br />
critical sections inside transactions for multiple concurrent users. Calling the<br />
WaitForSingleObject function effects a delay until the mutex object is in the<br />
signaled state. This means that from that point forward, only the current<br />
transaction is executed, and this condition remains until the token is released.<br />
During execution time a connection to a database system is established. After<br />
successfully connecting, the ownership of the mutex object is released. After<br />
these steps have been completed successfully, the transaction is committed. In<br />
this example, only connecting to the database system is serialized.<br />
benchmark MutexLogin<br />
use "dbapi.bdh"<br />
var<br />
gHdbc1 : number; // handle for database connection<br />
gHMutex : number; // mutex handle<br />
dcluser<br />
user<br />
Seller<br />
transactions<br />
TMain : begin;<br />
Selling : 50;<br />
162 SilkPerformer User Guide
6 CUSTOMIZING TEST SCRIPTS<br />
Serializing and Synchronizing Virtual Users<br />
CleanUp : end;<br />
dcltrans<br />
transaction TMain<br />
var<br />
str: string;<br />
begin<br />
// SYNC: serialize connect transaction with mutex object<br />
// (enter critical section)<br />
gHMutex := CreateMutex("MyConnectMutex");<br />
WaitForSingleObject(gHMutex, INFINITE);<br />
gHdbc1 := DB_Connect("dsn=sqs_purple;uid=u1;pwd=u1");<br />
Print("Connected!", 1, 1);<br />
// SYNC: leave critical section and pass control to<br />
other user<br />
ReleaseMutex(gHMutex);<br />
end TMain;<br />
// process database transaction<br />
transaction Selling<br />
begin<br />
...<br />
end Selling;<br />
transaction CleanUp<br />
begin<br />
DB_Disconnect(gHdbc1);<br />
end CleanUp;<br />
Synchronization<br />
Synchronization<br />
functions<br />
Synchronizing users and transactions requires at least one event object and an<br />
additional user to start the events. The event starter user has to be defined in the<br />
user declaration section of the script. This user functions to control the sequence<br />
of events by setting the state of corresponding event objectS to signaled and by<br />
resetting them to nonsignaled after releasing the appropriate number of waiting<br />
users. SilkPerformer provides the PulseEvent function for this purpose.<br />
The other users call the WaitForSingleObject function to wait until the specified<br />
event is in the signaled state. Using the WaitFor function, users are able to<br />
synchronize themselves without the use of event objects.<br />
The following functions are used in synchronizing users and transactions:<br />
- CreateEvent<br />
- PulseEvent<br />
- WaitFor<br />
- WaitForSingleObject<br />
For details on these functions, refer to BDL Function Reference.<br />
Synchronization<br />
sample script<br />
In the following example, the users create an event object called StarterEvent<br />
and establish a connection to an FTP server. The Starter user sets the state of the<br />
event object StarterEvent to signaled every ten seconds and resets it after the<br />
SilkPerformer User Guide 163
6 CUSTOMIZING TEST SCRIPTS<br />
Serializing and Synchronizing Virtual Users<br />
appropriate number of waiting users process the transaction. In this way, all the<br />
Uploader users are forced to execute the TUpload transaction at the same time.<br />
The Uploader's wait until the event object is in the signaled state, and then<br />
execute their Upload transaction.<br />
dcluser<br />
user<br />
Starter<br />
transactions<br />
TInit : begin;<br />
TStartEvent : 20;<br />
user<br />
Uploader<br />
transactions<br />
TInit : begin;<br />
TUpload : 20;<br />
var<br />
hEventGo : number; // handle for starting event<br />
hFTP : number;<br />
dcltrans<br />
transaction TInit<br />
begin<br />
hEventGo := CreateEvent("StarterEvent");<br />
WebFtpConnect(hFTP, "standardhost", WEB_PORT_FTP,<br />
"username", "password");<br />
end TInit;<br />
transaction TStartEvent<br />
begin<br />
wait 10.0;<br />
// every 10 seconds the starter event forces all<br />
// seller users to execute the selling transaction<br />
// at the same time<br />
PulseEvent(hEventGo);<br />
end TStartEvent;<br />
transaction TUpload<br />
begin<br />
WaitForSingleObject(hEventGo, INFINITE);<br />
WebFtpPut(hFTP, 4096, "test.dat", true);<br />
end TUpload;<br />
Rendezvous<br />
functionality<br />
SilkPerformer includes the following rendezvous function:<br />
- WaitFor<br />
This function is used to create a delay until the specified virtual users reach a<br />
certain state, and then to proceed with all the users simultaneously. This tests the<br />
ability of the system to handle a number of concurrent transactions by making it<br />
possible to generate very specific stress on the system. For example, in a<br />
transaction that stores a number of files on an FTP server, you may want your<br />
164 SilkPerformer User Guide
6 CUSTOMIZING TEST SCRIPTS<br />
Serializing and Synchronizing Virtual Users<br />
script to wait until all the users are logged on, and then to store all the files at the<br />
same time.<br />
Script example<br />
Multiple agents<br />
const<br />
USERS := 5;<br />
dcluser<br />
user<br />
Buyer<br />
transactions<br />
TBuy : 10;<br />
dcltrans<br />
transaction TBuy<br />
const<br />
TIMEOUT := 60;<br />
begin<br />
// wait for users rendezvousing at this point<br />
if not WaitFor("Rendezvous", USERS, TIMEOUT) then<br />
write("timeout"); halt;<br />
end;<br />
// proceed with transaction<br />
print("rendezvous", 1, TEXT_RED);<br />
end TBuy;<br />
In this example, the script waits until five virtual users (Buyer) are at the line in<br />
the script containing the WaitFor function, and it then proceeds with the<br />
transaction.<br />
The functionality described above is available only on a single agent computer.<br />
SilkPerformer provides an additional number of functions that extend the use of<br />
serialization and synchronization across multiple agents.<br />
Serialization across multiple agents is made possible by the<br />
GlobalResourceEnter and GlobalResourceRelease functions.<br />
GlobalResourceEnter defines a resource that can be occupied by only a limited<br />
number of users. The caller has to wait until the number of users who occupy the<br />
resource is less than the maximum number of users who are allowed to occupy<br />
the resource. The GlobalResourceRelease function releases a resource that was<br />
occupied with the GlobalResourceEnter function. If there are users still waiting<br />
for the resource, the next user in the queue resumes the simulation.<br />
Synchronization across multiple agents is made possible by the GlobalWaitFor<br />
function. This function defines a checkpoint (rendezvous point) and blocks the<br />
calling user. The caller waits until a specified number of users (including the<br />
caller) have reached or passed the checkpoint, or until a specified timeout<br />
occurs. The checkpoint is identified by name and is visible to all the users,<br />
including those running on various remote agents. A waiting user continues<br />
when the specified timeout is reached or the given number of users have called<br />
the function for a checkpoint. A user who has timed out is also regarded as<br />
having passed the checkpoint.<br />
SilkPerformer User Guide 165
6 CUSTOMIZING TEST SCRIPTS<br />
Using Custom DLLs in Test Scripts<br />
The functions GlobalVarGet, GlobalVarInc, and GlobalVarSet are used,<br />
respectively, to get, increment, and set the values of global integer variables that<br />
are accessible for all the users on all the agents.<br />
Using Custom DLLs in Test Scripts<br />
In SilkPerformer scripts, it’s possible to call functions that are provided in<br />
Dynamic Link Libraries (DLLs). This feature allows you to implement<br />
functions in any programming language that can generate DLLs and then utilize<br />
such external functions in SilkPerformer load test scripts.<br />
Declaring and calling<br />
external functions<br />
Two files are typically required to create a DLL:<br />
• A source file that contains the implementation of one or more functions<br />
• A definition file that specifies which functions are to be exported<br />
When developing a DLL using a common C/C++ compiler, the source file (.c,<br />
.cpp) and the definition file (.def) must be included in the project.<br />
In BDL, all external functions called from a script must be declared before they<br />
can be used. This must be done in the external functions section of<br />
SilkPerformer scripts.<br />
Note When a DLL file isn’t located in the SilkPerformer installation<br />
directory or a directory included in the path specification, it’s<br />
necessary to add the DLL file to the project’s data files.<br />
Please see the External functions sections of the BDL Function Reference for<br />
more information and an exact syntax description.<br />
Function prototypes<br />
In the external functions section of scripts, after the name of a DLL has been<br />
declared, any number of prototypes of DLL functions can be defined. Each<br />
function that is to be used in a SilkPerformer script must be declared; these<br />
declarations are case-sensitive. Additionally, identifiers that specify the names<br />
of all functions that are to be used in BDL scripts must be defined.<br />
When parameters are passed to external functions, it’s necessary to indicate<br />
whether they are passed into functions by reference or by value (default).<br />
Parameters can be declared with BDL data types or basic C data types (long,<br />
short, char, float, double, or pointer).<br />
The following table shows the data-type mapping between formal parameters of<br />
native functions exported by DLLs, formal parameters of external functions<br />
166 SilkPerformer User Guide
6 CUSTOMIZING TEST SCRIPTS<br />
Using Custom DLLs in Test Scripts<br />
declared in the DLL sections of BDH files, and actual parameters (BDL data<br />
types).<br />
C Data Type DLL Section (BDH) BDL Data Type<br />
char char Number<br />
unsigned char unsigned char Number<br />
short short Number<br />
unsigned short unsigned short Number<br />
long long, number, boolean Number, Boolean<br />
unsigned long long, number Number<br />
char* string String<br />
*(Pointer) long, number Number<br />
float float Float<br />
double double Float<br />
Ptr (C data type<br />
representing a pointer to<br />
any data type)<br />
string<br />
String<br />
Table 4: Data-type mapping<br />
Script example<br />
In the following example, the external functions DemoSum and DemoDiff are<br />
declared and then called in the TMain transaction.<br />
dll "DemoFunctions.dll"<br />
// function without parameters and return value<br />
"DemoOutput"<br />
function Output;<br />
// function declared using C data types<br />
"DemoSum"<br />
function Sum(in long, in long): long;<br />
// function declared using BDL data types<br />
"DemoDiff"<br />
function Diff(in number, in number): number;<br />
// DLL is not located in the SilkPerformer directory<br />
dll "C:\\Debug\\Functions.dll"<br />
dcltrans<br />
transaction TMain<br />
SilkPerformer User Guide 167
6 CUSTOMIZING TEST SCRIPTS<br />
Using Custom DLLs in Test Scripts<br />
var<br />
x, y, nSum, nDiff: number;<br />
begin<br />
x := 4; y := 5;<br />
nSum := Sum(x, y); // external function calls<br />
nDiff := Diff(x, y);<br />
Output();<br />
end TransMain;<br />
Passing parameters<br />
Simple types<br />
Any type of parameter can be passed to external functions. While using simple<br />
data types is easy, handling arrays and structured data types requires knowledge<br />
about the alignment and size of the specific data types in use.<br />
Simple data types allowed as input and output parameters are<br />
C Data Type<br />
BDL Data Type<br />
Char, unsigned char Number<br />
Short, unsigned short Number<br />
Long<br />
Number<br />
Double<br />
Float<br />
Float<br />
Float<br />
Char*<br />
String<br />
Table 5: Simple data types<br />
C source code<br />
Note The unsigned long data type is converted to long when used in<br />
SilkPerformer scripts.<br />
When a parameter is passed to a function by value, it’s declared simply by<br />
specifying its type. If a parameter is passed by reference (for example, if it’s<br />
used as an output parameter), a pointer to the data type must be defined.<br />
The example below illustrates how function parameters are declared in C and<br />
how corresponding external functions must be declared in BDL. In addition, an<br />
example of an external function call is provided.<br />
In the example below, the external function T_PARAM receives the following<br />
input parameters: inChar, inShort, inLong, inDouble, inFloat, inUShort, and<br />
inUChar. A corresponding output parameter belongs to each: outChar, outShort,<br />
outLong, outDouble, outFloat, outUShort, and outUChar. These parameters<br />
must be declared as pointers because during function calls references to the<br />
variables are passed to the functions. Additionally, a string called inoutString is<br />
declared as an input and output parameter.<br />
168 SilkPerformer User Guide
6 CUSTOMIZING TEST SCRIPTS<br />
Using Custom DLLs in Test Scripts<br />
BDL external function<br />
declarations<br />
BDL external function<br />
calls<br />
char* T_PARAM( char inChar, // in<br />
short<br />
inShort,<br />
long<br />
inLong,<br />
double<br />
inDouble,<br />
float<br />
inFloat,<br />
unsigned short inUShort,<br />
unsigned char inUChar,<br />
char*<br />
inoutString, // in/out<br />
char* outChar, // out<br />
short*<br />
outShort,<br />
long*<br />
outLong,<br />
double*<br />
outDouble,<br />
float*<br />
outFloat,<br />
unsigned short* outUShort,<br />
unsigned char* outUChar )<br />
{<br />
char sBuffer[1000];<br />
// copy the values of the input parameters to the<br />
// output parameters and the return value<br />
return sBuffer;<br />
}<br />
To use the above-defined T_PARAM function in BDL, the function must be<br />
declared in the external functions section of a SilkPerformer script. This is<br />
illustrated in the below example. In this case, the parameters are defined as<br />
formal data types. The comments attached to each parameter indicate the<br />
corresponding BDL data type.<br />
"T_PARAM" function t_param(<br />
in char,<br />
// in number<br />
in short,<br />
// in number<br />
in long,<br />
// in number<br />
in double,<br />
// in float<br />
in float,<br />
// in float<br />
in unsigned short,<br />
// in number<br />
in unsigned char,<br />
// in number<br />
inout string,<br />
// inout string<br />
out char,<br />
// out number<br />
out short,<br />
// out number<br />
out long,<br />
// out number<br />
out double,<br />
// out float<br />
out float,<br />
// out float<br />
out unsigned short,<br />
// out number<br />
out unsigned char): string(100); // out number<br />
The following example illustrates how to call the T_PARAM function. In this<br />
example, random values are assigned to the variables and passed to the function<br />
as input parameters.<br />
dcltrans<br />
transaction TMain<br />
SilkPerformer User Guide 169
6 CUSTOMIZING TEST SCRIPTS<br />
Using Custom DLLs in Test Scripts<br />
var<br />
n1, n2, n3, n4, n5, n6, n7, n8, n9, n10 : number;<br />
f1, f2, f3, f4 : float;<br />
s1, sRet : string;<br />
begin<br />
n1 := 127; n2 := 32000; n3 := 2000000;<br />
n4 := 64000; n5 := 255;<br />
f1 := 12345.12345; f2 := 12.99;<br />
s1 := "Teststring";<br />
sRet := t_param(n1, n2, n3, f1, f2, n4, n5, s1,<br />
n6, n7, n8, f3, f4, n9, n10);<br />
end TMain;<br />
Arrays<br />
C source code<br />
examples<br />
Fixed boundaries<br />
Variable upper bounds<br />
An array is an ordered list of variables of the same type. Arrays of the Boolean,<br />
number, float, and string data types are available in BDL. Passing array<br />
parameters to external functions is more complex than handling simple data<br />
types.<br />
It’s possible to pass arrays with either fixed boundaries or variable upper<br />
bounds. When an upper bound is variable, it must be specified by an additional<br />
parameter.<br />
Note Lower bounds are always zero (0) in C and one (1) in BDL.<br />
The two examples below show a function that manipulates the contents of a<br />
string and a number array.<br />
In the first example, an array with fixed boundaries (1 - 20 in BDL) must be<br />
passed to the function.<br />
#define ARRAYSIZE 20<br />
void T_ARRAY( char as1[ARRAYSIZE][101],<br />
long an1[ARRAYSIZE],<br />
char as2[ARRAYSIZE][101],<br />
long an2[ARRAYSIZE] )<br />
{<br />
// copy the values of the input arrays to<br />
// the output arrays for demonstration purpose<br />
for (i=0; i
6 CUSTOMIZING TEST SCRIPTS<br />
Using Custom DLLs in Test Scripts<br />
void T_ARRAY( char as1[][101],<br />
long an1[],<br />
char as2[][101],<br />
long an2[],<br />
long array_upper_bound )<br />
{<br />
// copy the values of the input arrays to<br />
// the output arrays for demonstration purpose<br />
for (i=0; i
6 CUSTOMIZING TEST SCRIPTS<br />
Using Custom DLLs in Test Scripts<br />
Structured Data Types<br />
When using structured data types, it’s important to pay attention to the<br />
alignment and size of structure elements. The table below shows the size of all<br />
conventional data types that can be used within function declarations in<br />
SilkPerformer scripts.<br />
Data Type<br />
Size<br />
Char, unsigned char 1<br />
Short, unsigned short 2<br />
Long 4<br />
Double 8<br />
Float 4<br />
Char[x]<br />
x<br />
Table 6: Conventional data type sizes<br />
C source code<br />
For more information, refer to the Introduction to data structure functions<br />
sections of the BDL Function Reference.<br />
The example below clarifies structure composition by showing a data structure<br />
that contains all the simple data types.<br />
// declare a demo data structure<br />
#pragma pack(1) // alignment to 1-byte boundaries<br />
typedef struct {<br />
char myChar; // size: 1 byte pos: 1<br />
short myShort; // size: 2 bytes pos: 2<br />
long myLong; // size: 4 bytes pos: 4<br />
double myDouble; // size: 8 bytes pos: 8<br />
float myFloat; // size: 4 bytes pos: 16<br />
unsigned short myUShort; // size: 2 bytes pos: 20<br />
char myString[10]; // size: 10 bytes pos: 22<br />
unsigned char myUChar; // size: 1 byte pos: 32<br />
} TESTSTRUCT;<br />
#pragma pack()<br />
char* T_STRUCT(TESTSTRUCT * s)<br />
{<br />
char sBuf[10000];<br />
// manipulate values of data structure and generate a<br />
// return value for demonstration purpose<br />
...<br />
return sBuf;<br />
}<br />
172 SilkPerformer User Guide
6 CUSTOMIZING TEST SCRIPTS<br />
Using Custom DLLs in Test Scripts<br />
BDL external function<br />
declarations<br />
BDL external function<br />
calls<br />
To handle structured data types, BDL uses strings of appropriate length and<br />
number of type-dependent Get and Set functions. For each structured data type<br />
passed to a function, an inout string parameter must be defined. These strings<br />
must be exactly as long as the data structures defined in the DLLs.<br />
The first position in a BDL string that can hold a structured data type is one (1).<br />
When variables are aligned to one-byte boundaries, the starting position of the<br />
next element is derived by adding the current position to the size of the current<br />
element. For the data structure declared in the example above, a 32-byte string is<br />
required.<br />
"T_STRUCT"<br />
function t_struct(inout string(32)): string(1000);<br />
In the following example, arbitrary values are assigned to all the elements of the<br />
data structure using the corresponding Set functions. Next, the external function<br />
t_struct is called to manipulate the data structure.<br />
dcltrans<br />
transaction TMain<br />
var<br />
n1, n2, n3, n4, n5 : number;<br />
n6, n7, n8, n9, n10 : number;<br />
f1, f2, f3, f4 : float;<br />
sStruct<br />
: string(100);<br />
sRet<br />
: string(1000);<br />
begin<br />
/* one-byte alignment */<br />
SetChar (sStruct, 1, 127);<br />
SetShort (sStruct, 2, 32000);<br />
SetLong (sStruct, 4, 2000000);<br />
SetDouble(sStruct, 8, 12345.12345);<br />
SetFloat (sStruct, 16, 12.99);<br />
SetUShort(sStruct, 20, 64000);<br />
SetString(sStruct, 22, "123456789", 10);<br />
SetUChar (sStruct, 32, 255);<br />
sRet := t_struct(sStruct);<br />
end TMain;<br />
SilkPerformer User Guide 173
6 CUSTOMIZING TEST SCRIPTS<br />
Matrix: Functions, the Recorder, and TrueLog Explorer<br />
Matrix: Functions, the Recorder, and TrueLog Explorer<br />
HTML content<br />
Response data<br />
Verification/<br />
Parsing Usage Description<br />
WebVerifyHtml WebVerifyData Verification TrueLog Explorer's<br />
Visual verification,<br />
scripting<br />
WebVerifyHtmlBound WebVerifyDataBound Verification TrueLog Explorer's<br />
Visual verification,<br />
scripting<br />
WebVerifyHtmlTitle - Verification TrueLog Explorer's<br />
Visual verification,<br />
automatically<br />
generated by the<br />
Recorder, scripting<br />
WebVerifyTable - Verification TrueLog Explorer's<br />
Visual verification,<br />
scripting<br />
- WebVerifyDataDigest Verification Automatically<br />
generated by the<br />
Recorder<br />
WebParseHtmlBound WebParseDataBound Parsing TrueLog Explorer's<br />
Visual parsing,<br />
scripting<br />
Checks if a<br />
specified string<br />
occurs in the<br />
HTML content/<br />
response data.<br />
Checks if a<br />
specified string<br />
occurs in the<br />
HTML content/<br />
response data<br />
within given<br />
boundaries.<br />
Checks if a<br />
specified string<br />
occurs in the title of<br />
the HTML<br />
document.<br />
Checks if a<br />
specified string<br />
occurs in an HTML<br />
table.<br />
Checks if the<br />
response data<br />
differs from the<br />
response data that<br />
the Recorder<br />
captured during an<br />
earlier recording<br />
session.<br />
Parses the HTML<br />
content/response<br />
data within given<br />
boundaries.<br />
WebParseHtmlTitle - Parsing Scripting Parses the title of an<br />
HTML document.<br />
Table 7: Functions, the Recorder, and TrueLog Explorer<br />
174 SilkPerformer User Guide
6 CUSTOMIZING TEST SCRIPTS<br />
Matrix: Functions, the Recorder, and TrueLog Explorer<br />
HTML content<br />
Response data<br />
Verification/<br />
Parsing Usage Description<br />
WebParseTable - Parsing Scripting Parses the content<br />
of a cell in an<br />
HTML table.<br />
- WebParseResponseTag Parsing Scripting Parses the value of<br />
the specified<br />
HTML attribute.<br />
Also applicable for<br />
XML response<br />
data.<br />
- WebParseResponseTagContent Parsing Scripting Parses the content<br />
of the specified<br />
HTML attribute.<br />
Also applicable for<br />
XML response<br />
data.<br />
- WebParseResponseheader Parsing Scripting Parses HTTP<br />
response headers.<br />
- WebParseResponseRedirect Parsing Scripting Parses the URL of a<br />
redirection<br />
response for URL<br />
encoded<br />
parameters.<br />
Table 7: Functions, the Recorder, and TrueLog Explorer<br />
HTML Content<br />
Response Data<br />
HTML content verification functions and HTML content parsing functions can<br />
be applied to the rendered, visible HTML content. You can apply HTML<br />
content verification and parsing functions in the HTML view of TrueLog<br />
Explorer. The HTML content verification and parsing functions allow you to<br />
verify and/or parse the textual content that you see in your browser.<br />
Data verification and data parsing functions can be applied to all of the response<br />
data returned from the server. In cases in which an HTML document is returned<br />
from the server, this includes the complete source code of the HTML document.<br />
You can apply data verification and parsing functions in the source view of<br />
TrueLog Explorer.<br />
SilkPerformer User Guide 175
6 CUSTOMIZING TEST SCRIPTS<br />
Matrix: Functions, the Recorder, and TrueLog Explorer<br />
176 SilkPerformer User Guide
7<br />
Establishing 7Chapter<br />
Baseline<br />
Performance<br />
Introduction<br />
What you will learn<br />
This chapter explains how to establish baseline performance with<br />
SilkPerformer.<br />
This chapter contains the following sections:<br />
Section<br />
Page<br />
Overview 177<br />
Identifying Baseline Performance 179<br />
Confirming Test Baselines 179<br />
Setting Response Time Thresholds 182<br />
Setting Up Server Monitoring 183<br />
Overview<br />
The fifth step in conducting a SilkPerformer load test is to ascertain the baseline<br />
performance (i.e., to determine the ideal performance of the application under<br />
test). The now customized test is run with just one user per user type, and the<br />
results from this unstressed performance of the application form the basis for<br />
calculating the number of concurrent users per user type and for setting the<br />
appropriate boundaries for the HTML page response times and transaction<br />
response times. Additionally, the required bandwidth for running the load test<br />
will be calculated from the baseline results. The measurements typical of a real<br />
load test are used, and report and output files are generated.<br />
If you have set the option Random thinking time for your load test, it will be<br />
ignored for the baseline test. The think times do not influence the transaction<br />
SilkPerformer User Guide 177
7 ESTABLISHING BASELINE PERFORMANCE<br />
Overview<br />
response times and you receive accurate results when comparing different<br />
baseline tests.<br />
A secondary function of the baseline-finding test is to serve as a trial run of the<br />
customized test that was created in the fifth step. Here the objective is to ensure<br />
that the customization has not introduced new errors into the script, and that the<br />
script will accurately and fully reproduce the interaction that is intended<br />
between the client application and the server.<br />
For baseline runs the following options are automatically set to these specified<br />
value:<br />
- A Baseline report file will automatically be created.<br />
- The Stop virtual users after simulation time (Queuing Workload)<br />
option is on.<br />
- The Random thinking time option is set off.<br />
- The Loadtest description field is set to "BaseLine Test".<br />
- The Display All Errors Of All Users option in the Monitor window is<br />
on.<br />
- The Virtual user output files (.wrt) option is on.<br />
- The Virtual user report files (.rpt) option is on.<br />
Specifying user types<br />
Output files<br />
By adding different profiles to your load test project, you can define different<br />
user types, which provide a unique combination from which to create a load<br />
testing script with a user group contained in the script and a load testing profile.<br />
With this combination, it is very easy to assign different behaviors to one user<br />
group contained in the script.<br />
Before you can define user types, you must add the profiles to your load test<br />
project. If you want to emulate 3 different modem speeds during your load test,<br />
you must add a profile for each modem speed first.<br />
The Find Baseline dialog allows you to define many user types (i.e., a<br />
combination of a script, a user group, and a profile).<br />
You can run a baseline test to establish the baseline performance of your load<br />
test for the selected user types. The different user types can be run at the same<br />
time. For the baseline test, only one virtual user per user type is executed; the<br />
think times contained in the script will not be randomized for comparison<br />
reasons.<br />
Output files contain the output of write statements used in test scripts. An output<br />
file is generated for a particular user only if write statements are executed by that<br />
user.<br />
However, generating output files alters the time measurements of a load test.<br />
Therefore, these files should be used for debugging purposes only, and should<br />
not be generated for full load tests.<br />
178 SilkPerformer User Guide
7 ESTABLISHING BASELINE PERFORMANCE<br />
Confirming Test Baselines<br />
Identifying Baseline Performance<br />
Finding the test<br />
baseline<br />
Procedure To find the test baseline:<br />
1 Click the Find Baseline button on the SilkPerformer Workflow bar.<br />
The Workflow - Find Baseline dialog appears.<br />
2 Add different user types (unique combinations of a script, a user group,<br />
and a profile).<br />
3 Select the user types that you want to execute simultaneously.<br />
4 Click Run to execute your test.<br />
5 During the baseline test, monitor the test progress in the Monitor<br />
window.<br />
Confirming Test Baselines<br />
The sixth step in conducting a SilkPerformer load test is to confirm that the test<br />
baseline established by the test in the previous step actually reflects the desired<br />
performance of the application under test. These measurements are taken into<br />
account in calculating the number of concurrent virtual users, setting acceptable<br />
thresholds for the load test, and for calculating the required bandwidth.<br />
This can be achieved by inspecting the results from the test in the baseline<br />
report. If the results are satisfactory, they can be stored for further processing.<br />
• “Viewing Baseline Reports”: A detailed XML/XSL based report that<br />
provides you with a summary table, transaction response-time details,<br />
timers for all accessed HTML pages, Web forms and errors that<br />
occurred. This information is available for all user types involved in the<br />
baseline test.<br />
• “Viewing Accepted Baseline Reports”: All accepted baseline reports for<br />
this project so far. All accepted results for every user type are stored and<br />
can be inspected with this report.<br />
• “Setting Response Time Thresholds”: Thresholds for response times can<br />
be set by using the accepted results from previous baseline tests. With<br />
these thresholds, the analysis of future load tests will be very easy,<br />
because the boundaries are set separately for every user type for every<br />
Web page, form, and transaction response time.<br />
• “Setting Up Server Monitoring”: A server-monitoring template can now<br />
be set up. The template will then be used for live monitoring during the<br />
load test, so that server-side results information can be generated for<br />
exploration and correlation after the test.<br />
SilkPerformer User Guide 179
7 ESTABLISHING BASELINE PERFORMANCE<br />
Confirming Test Baselines<br />
Baseline Reports<br />
Once a baseline test is complete, a baseline report can be displayed. The<br />
baseline report can be displayed for any load test you want to use as a baseline.<br />
If, for example, you run a load test with 100 users and you want to use the<br />
results of this test as your baseline, treat this test as you would a baseline test.<br />
The baseline report is based on XML/XSL and includes the most important test<br />
results in a tabular form. It comprises the following sections:<br />
• General information<br />
• User Types<br />
- Summary tables<br />
- Transaction response times<br />
- HTML Page Timers<br />
- Web form measurements<br />
• Accept Results Button<br />
General Information<br />
The general information section includes administrative information in a tabular<br />
form.<br />
Administrative information includes the SilkPerformer Version information, the<br />
project name, a description of the project, the date and time of the baseline test,<br />
the workload definition, the workload model, and the number of errors that<br />
occurred.<br />
User Types<br />
For each user type involved in the baseline test run, a separate section is<br />
available with details on the measured response times. In the summary line, the<br />
number of virtual users (1 for a baseline test), the duration of the test, the session<br />
time, the session busy time and, the average page time, the number of<br />
transaction executed OK, cancelled, failed and the number of errors that<br />
occurred.<br />
The session time consists of the execution time of all transactions defined in the<br />
dcluser section of a virtual user, without the initial and end transactions. The<br />
session busy time is calculated as the session time minus think times.<br />
For example:<br />
dcluser<br />
user<br />
Vuser1<br />
transactions<br />
TInit : begin;<br />
T1 : 1;<br />
T2 : 3;<br />
Tend : end;<br />
180 SilkPerformer User Guide
7 ESTABLISHING BASELINE PERFORMANCE<br />
Confirming Test Baselines<br />
The session time is the average response time of T1 + 3 * average response time<br />
of T2; the session busy time is the same without any think time.<br />
If you are satisfied with these results, you can accept them as baseline results<br />
and save them for further processing, such as the calculation of the number of<br />
concurrent virtual users and the network bandwidth needed for the load test.<br />
For each user type, the following detailed results are available:<br />
• Summary Tables<br />
This section contains summary measurements in a tabular form, that is,<br />
the aggregate measurements of all virtual users. The first table provides<br />
general information, such as the number of transactions that were<br />
executed and the number of errors that occurred. All the following tables<br />
provide summary information relevant to the type of application that was<br />
tested.<br />
• Transactions<br />
This section contains summary measurements in a tabular form, that is,<br />
aggregate measurements for all transactions of a specific user type. For<br />
every transaction, the transaction response time and the transaction busy<br />
time are displayed.<br />
The transaction response time is measured from the beginning to the end<br />
of the transaction, including all think times.<br />
The transaction busy time is the transaction response time without any<br />
think time.<br />
• Page Timers<br />
This section contains summary measurements in a tabular form for every<br />
accessed Web page. For every page, the download time of the whole<br />
page, the HTML-document download time, the server busy time, the<br />
amount of data downloaded with this page, and the amount of data<br />
downloaded for embedded objects are displayed.<br />
• Web Forms<br />
This section contains summary measurements in a tabular form for every<br />
used Web form. For every form, the roundtrip time, the server busy time,<br />
the number of HTTP hits, the amount of request data sent and the<br />
response data received are displayed.<br />
• Accept results button<br />
If the results of the inspected load test are acceptable for use as a<br />
baseline, you can store these results for further calculations and<br />
processing by clicking on the Accept Results button. The results of tests<br />
with all user types involved in the test are stored in the file<br />
\BaselineResults\baselineReport_.brp. If<br />
SilkPerformer User Guide 181
7 ESTABLISHING BASELINE PERFORMANCE<br />
Setting Response Time Thresholds<br />
you define different workloads in your load test project, every workload<br />
must have a separately defined baseline. If you create a copy of a<br />
workload, the accepted baseline results will also be copied.<br />
Viewing Baseline<br />
Reports<br />
Viewing Accepted<br />
Baseline Reports<br />
Procedure To view a baseline report:<br />
1 Click the Confirm Baseline button on the SilkPerformer Workflow bar.<br />
2 In the ensuing dialog, click the Baseline Report link or button.<br />
The Baseline Report appears, showing the results of the previous test<br />
run.<br />
3 Click the Accept Baseline button to store the displayed results of all user<br />
types for further processing.<br />
An Accepted Baseline Report contains the same information as a baseline report<br />
for all accepted user types within the actual load test project.<br />
The results stored in this report are used for the generation of thresholds for the<br />
accessed Web pages and for thresholds for transaction response times and<br />
custom timers. These thresholds are displayed in the overview report at the end<br />
of a load test. With this information you can easily check if the response times of<br />
a load test are acceptable.<br />
The accepted baseline report will also be used to calculate the number of<br />
concurrent virtual users and to show the network bandwidth needed for a test.<br />
The accepted baseline reports are stored in the file:<br />
\BaselineResults\baselineReport_.brp<br />
If you define different workloads in your load test project, each workload must<br />
have a separate baseline defined. If you create a copy of a workload, the<br />
accepted baseline results will also be copied.<br />
Viewing these reports can be useful for verifying the accepted results.<br />
Procedure To view an accepted baseline report:<br />
1 Click the Confirm Baseline button on the SilkPerformer Workflow bar.<br />
2 On the Workflow - Confirm Baseline dialog, click the Accepted Baseline<br />
Report link or button.<br />
A report showing all accepted baseline results appears.<br />
Setting Response Time Thresholds<br />
With the accepted results from the previous baseline tests, thresholds for<br />
response times can be set for subsequent load tests. These thresholds will be<br />
used in the general overview report of a load test to separate good, acceptable<br />
and unacceptable Web response times.<br />
182 SilkPerformer User Guide
7 ESTABLISHING BASELINE PERFORMANCE<br />
Setting Up Server Monitoring<br />
Therefore, two boundaries must be specified:<br />
- Good response times are below boundary 1.<br />
- Unacceptable response times are above boundary 2.<br />
- Acceptable response times are between these boundary values.<br />
Thresholds can be set for:<br />
- Transaction response times<br />
- Custom timers<br />
- HTML page timers<br />
For the calculation of the boundaries from the baseline results, you must specify<br />
a multiplier. The average response times of the timers will be multiplied with<br />
these factors and the boundaries are set accordingly.<br />
For example: A multiplier of 3 means that you set a boundary 3 times higher<br />
than the average response time of the timer in the baseline test.<br />
If the measured value in the baseline test was 0, you can specify a minimum<br />
value for the boundaries.<br />
The load testing scripts connected with the user types will be updated to set the<br />
thresholds accordingly.<br />
Setting response time<br />
thresholds<br />
Procedure To set response time threshold:<br />
1 Click the Confirm Baseline button on the SilkPerformer Workflow bar.<br />
2 On the Workflow - Confirm Baseline dialog, click the set response time<br />
thresholds link or button.<br />
The Automatic Threshold Generation dialog appears.<br />
3 Select the timers you want to set thresholds for.<br />
4 Specify the appropriate multipliers for your load tests (Lower bound and<br />
Upper bound).<br />
5 Specify minimum values, if the corresponding timers from the baseline<br />
test are 0.<br />
Setting Up Server Monitoring<br />
One of the most important facilities provided by SilkPerformer during a load<br />
test is server monitoring—where you can watch a live graphical display of the<br />
performance of your server while a test is running.<br />
Monitoring servers is also important in that it enables server-side results<br />
information to be generated. This can then be viewed and correlated with other<br />
test measurements at the results exploration stage.<br />
SilkPerformer User Guide 183
7 ESTABLISHING BASELINE PERFORMANCE<br />
Setting Up Server Monitoring<br />
Monitoring a server helps you find out whether there are bottlenecks on the<br />
server, and, if so, where exactly they are. In this way, you examine the<br />
performance of both the operating system and the server application.<br />
A template for server monitoring can be set up to monitor performance data or<br />
you can use a default template that is already generally configured for the type<br />
of application you are testing.<br />
Procedure To set up a template for server monitoring:<br />
1 Click the Confirm Baseline button on the SilkPerformer Workflow bar.<br />
2 On the Workflow - Confirm Baseline dialog, click the Monitoring<br />
template link or button.<br />
The Profile Settings dialog opens, showing the Monitoring tab of the<br />
Results category.<br />
3 In the Monitoring options area, select the Automatically start monitoring<br />
option to automatically launch the monitoring facility of Performance<br />
Explorer when you start a load test. Performance Explorer will then<br />
display the server performance data that is relevant to the type of server<br />
you are testing.<br />
- Select the Use default monitoring template option to activate the<br />
default monitor template.<br />
- Select the Use custom monitoring template option to use a custom<br />
monitor template. Enter the name of the custom template file (.pew)<br />
that you want to use to monitor your server. Click the browse (...)<br />
button next to the field to locate the file.<br />
4 Click the Create Custom Monitor Template button to create the template.<br />
- To subsequently edit the template, click the Edit Custom Monitor<br />
Template button; Performance Explorer will open and you will have<br />
the choice of adding or removing any monitoring performance data.<br />
Finally, save the workspace to apply your changes to the template<br />
and close Performance Explorer.<br />
5 Click OK.<br />
6 Once you start a load test, server monitoring for the load test will start<br />
and stop automatically. To save monitoring results for future exploration,<br />
have the results of server monitoring written to a monitoring report file<br />
(see “Monitoring server performance during tests” for details).<br />
184 SilkPerformer User Guide
8<br />
Defining 8Chapter<br />
Workload<br />
Introduction<br />
What you will learn<br />
This chapter explains how to define workload for SilkPerformer load tests.<br />
This chapter contains the following sections:<br />
Section<br />
Page<br />
Overview 185<br />
Setting Up Workload 187<br />
Adjusting Session Times 191<br />
Maintaining Transaction Rates 191<br />
Overview<br />
The seventh step in conducting a SilkPerformer load test is to configure<br />
workload. SilkPerformer offers different workload models to be used as a basis<br />
for your load test. Before configuring workload you must select the model that<br />
best fits your needs.<br />
The following workload models are offered:<br />
• Increasing workload model:<br />
At the beginning of a load test, SilkPerformer simulates not the total<br />
number of users defined, but only a specified part of them. Step by step,<br />
the workload is increased until all the users specified in the user list are<br />
actually running.<br />
This workload model is especially useful when you want to find out at<br />
which load level your system crashes or does not respond within<br />
acceptable response times or error thresholds.<br />
SilkPerformer User Guide 185
8 DEFINING WORKLOAD<br />
Overview<br />
• Steady state workload model:<br />
In this model, the same number of virtual users is employed throughout<br />
the test. Every virtual user executes the transactions defined in the load<br />
testing script. When work is finished, the virtual user starts again with<br />
executing the transactions. There is no delay between transactions. The<br />
test finishes when the simulation time that was specified has been<br />
reached.<br />
This workload model is especially useful when you want to find out<br />
about the behavior of your tested system at a specific load level.<br />
• Dynamic workload model:<br />
You can manually change the number of virtual users in the test while it<br />
is being run. The maximum number of virtual users to be run is set;<br />
within this limit, the number can be increased or decreased at any time<br />
during the test. No simulation time is specified, and you must bring the<br />
test to an end manually.<br />
This workload model is especially useful when you want to experiment<br />
with different load levels and to have the control over the load level<br />
during a load test.<br />
• All day workload model:<br />
This workload model allows you to define the distribution of your load in<br />
the most flexible way. You can assign different numbers of virtual users<br />
to any interval of the load test. Each user type can use a different load<br />
distribution. Therefore, you can design very complex workload scenarios<br />
such as workday workloads or even weekly workloads. You can adjust<br />
the load level during a load test for intervals that have not yet started<br />
executing.<br />
This workload model is especially useful when you want to model<br />
complex, long lasting workload scenarios in the most realistic way<br />
possible.<br />
• Queuing workload model:<br />
In this model, transactions are scheduled following a prescribed arrival<br />
rate. This rate is a random value based on an average interval calculated<br />
from the simulation time and the number of transactions you have<br />
specified in your script (dcluser section: number of transactions per<br />
user). The load test will finish when all of the virtual users have<br />
completed their prescribed tasks.<br />
Note that the test may take longer than the simulation time that was<br />
specified, because of the randomized arrival rates. For example, if you<br />
specify a simulation time of 3000 seconds and want to execute 100<br />
transactions, then you will get an average transaction arrival rate of 30<br />
seconds.<br />
This workload model is especially useful when you want to simulate<br />
186 SilkPerformer User Guide
8 DEFINING WORKLOAD<br />
Setting Up Workload<br />
workloads that use queuing mechanisms to handle multiple concurrent<br />
requests. Typically, application servers like servlet engines or transaction<br />
servers, which are receiving their requests from Web servers and not<br />
from end users, can be accurately tested by using the queuing model.<br />
• Verification workload model:<br />
A verification test run is especially useful when combined with<br />
SilkPerformer's extended verification functionality. This combination<br />
can then be used for regression tests of Web-based applications. A<br />
verification test run always runs a single user of a specific user type on a<br />
specified agent computer.<br />
This workload is especially useful when you want to automate the<br />
verification of Web applications and when you want to start the<br />
verification test from the command line interface.<br />
Additionally the required network bandwidth per user type is displayed. This<br />
helps you to check the network infrastructure used for the load test, if any<br />
bottlenecks exist. The required bandwidth is calculated from the accepted<br />
baseline results.<br />
You can define more than one workload model in your load test project and save<br />
them for further usage, but only one workload model can be active at a time. The<br />
accepted baseline results are associated with a workload model, if you copy or<br />
rename a workload model, the accepted baseline results are copied or renamed<br />
accordingly.<br />
Setting Up Workload<br />
Procedure To set up the workload:<br />
1 Click the Adjust Workload button on the SilkPerformer Workflow bar.<br />
The Workflow - Select Workload Model dialog appears.<br />
2 Select the workload model that you want for your load test. Choose from<br />
either the Increasing, Steady State, Dynamic, All Day, Queuing, or<br />
Verification option.<br />
3 For the Increasing, Steady State and All Day workload models a<br />
Workload Wizard is available to help you calculate the number of<br />
concurrent virtual users and the required network bandwidth. If you have<br />
selected on of these workload models, we recommend using the wizard<br />
by clicking on the Workload Wizard button.<br />
4 Enter the amount of time you want your load test to run and click Next.<br />
SilkPerformer User Guide 187
8 DEFINING WORKLOAD<br />
Setting Up Workload<br />
Note Depending on the workload model you’ve selected, you can<br />
adjust the duration of each phase of your load test on this dialog.<br />
During the Increasing phase, workload increases in increments to<br />
the specified maximum number of virtual users. In the Steady phase,<br />
all specified virtual users are running. In the Decreasing phase<br />
workload decreases in increments.<br />
The Warm-Up phase specifies the time at the beginning of the load<br />
test in which measurements are not factored into results calculations.<br />
The Measurement phase, which begins at the completion of the<br />
warm-up phase (or immediately in cases in which no warm-up time<br />
is specified) restricts the time measurements that are taken for results<br />
calculation.<br />
5 The Calculate the Virtual Users dialog appears. If you know the number<br />
of sessions per-hour per-virtual-user type, you can enter the value, and<br />
the number of concurrent virtual users will be calculated automatically.<br />
If you enter the number of virtual users, the number of expected sessions<br />
per hour will be calculated. The required network bandwidth per user<br />
type is also displayed.<br />
Note This task is very important to achieve accurate results by<br />
emulating real user behavior. If you know the number of expected<br />
real user sessions per hour for your application under test, the<br />
number of concurrent virtual users will be calculated based on the<br />
results from the accepted baseline tests.<br />
6 To adapt think times so as to modify session times or to guarantee<br />
particular transaction rates, enable static or dynamic pacing of<br />
transaction think times. When the Goal Session Time column is enabled<br />
you can enter a desired session time for each user type. The wizard then<br />
automatically calculates the think time factors and stores them in the<br />
workload.<br />
Note The think time adjustment mode can be set on a global basis<br />
using this dialog. When think time adjustment is required on the<br />
user-type level, the SetThinkTimeAdjustment() API function should<br />
be applied.<br />
7 Click Finish to close the wizard.<br />
8 Back on the Workload Configuration screen, if you have chosen the All<br />
Day workload model, some intervals proposed by SilkPerformer will be<br />
displayed. You can change every value by editing the table, adding or<br />
deleting rows, changing the number of virtual users or the duration of the<br />
intervals.<br />
188 SilkPerformer User Guide
8 DEFINING WORKLOAD<br />
Setting Up Workload<br />
Note Once a load test begins, you can change the number of virtual<br />
users for intervals that have not yet started, but you cannot exceed<br />
the maximum number of virtual users specified for the load test.<br />
9 The diagram at the top of the Workload Configuration screen serves as a<br />
graphical representation of the workload model you’ve selected. The<br />
diagram uses the actual data of the user group selected in the workload<br />
list at the bottom of the dialog.<br />
10 Use the workload list to configure the user groups that are to be run in<br />
your test scripts. In the User Type area, select the user types that you<br />
want to run in your test. All of the user types selected prior to the<br />
baseline test are listed here.<br />
11 In the Max. Vusers column, specify the number of virtual users that are to<br />
be run in each user type.<br />
12 To specify that your load test for a specific user type will begin at a set<br />
period after the time given in the Start Time field, enter a time value (in<br />
seconds) in the Start Time Offset column.<br />
13 In the Simulation Time column, enter the duration (in seconds) for which<br />
each user type is to be run in your load test.<br />
14 In the Warm-up Time column, enter the duration (in seconds) for the<br />
period at the start of a load test during which no measurements are to be<br />
performed. When you enter zero, there won't be a warm-up time and the<br />
measuring will start immediately.<br />
15 In the Measurement Time column, enter the duration (in seconds) for<br />
which measurements will be performed during the load test. When a<br />
value of zero is entered, then the measurement time is equal to the<br />
simulation time.<br />
16 In the Profile column, you can change the settings of the profile to be<br />
used for each user type from the drop-down list(s).<br />
17 In the Auto-assign column, select the assignment option for each user<br />
type for which you want SilkPerformer to automatically compute and<br />
assign virtual users to agent computers. To assign virtual users manually<br />
to agent computers for a particular user type or types, leave this option<br />
unselected.<br />
18 Use the Agents column to check SilkPerformer's automatic assignment of<br />
virtual users to agent computers, or to manually assign them. Click the<br />
Browse (...) button to the left of the Agents column.<br />
- For user types using the Auto-assign option, the Automatic Agent<br />
Assignment for Script/Usertype dialog appears, where you can view<br />
SilkPerformer's assignment of virtual users to agent computers.<br />
SilkPerformer User Guide 189
8 DEFINING WORKLOAD<br />
Setting Up Workload<br />
- For user types not using the Auto-assign option, the Manual Agent<br />
Assignment for Script/Usertype dialog appears.<br />
19 In the Assigned Vusers column, enter the number of virtual users from<br />
the relevant user type to run on each agent. All of the users from the user<br />
type must be assigned to agents.<br />
20 Click OK.<br />
21 In the Start Time field in the Start time portion of the dialog, set the start<br />
time for your load test in hours, minutes, and seconds.<br />
- Select the Relative option to start your test after the time period you<br />
have specified has elapsed.<br />
- Select the Absolute option to have the test start at that specific time.<br />
22 Check the Automatically start monitoring option, when you have<br />
established a monitoring template and want Performance Explorer to<br />
start and stop automatically with the load test.<br />
23 Check the TrueLog On Error option to have SilkPerformer generate<br />
TrueLog files for any transactions that generate errors.<br />
24 Optionally, in the Load Test Description area, enter a description for the<br />
load test. This feature is provided only for your project management<br />
purposes.<br />
25 Click the User distribution overview button to view the assignment of<br />
virtual users to the agent computers that are currently available.<br />
26 Click Close to close this dialog.<br />
27 Back on the Workload Configuration dialog, click OK to save your<br />
changes. Or, if enabled, click the Run button to execute the test. Or click<br />
Connect to initialize the agent connection and then start the test manually<br />
from the monitor view by clicking the Start all button.<br />
Note To define additional workloads for your load test and save<br />
them for future use, expand the Workloads section in the tree view,<br />
right-click an existing workload and select New Workload or Copy<br />
Workload from the context menu. If you create a new workload<br />
model, the baseline will have to be accepted for the model. You can<br />
copy previous accepted baseline results from an existing workload<br />
model by copying and renaming an existing workload.<br />
190 SilkPerformer User Guide
8 DEFINING WORKLOAD<br />
Maintaining Transaction Rates<br />
Adjusting Session Times<br />
In some cases it’s desirable to adjust the session time of user types to a specific<br />
duration. By adjusting a user type’s session time, throughput can be influenced<br />
on a per-virtual-user basis to meet particular load test requirements.<br />
Session time manipulation can be achieved by adjusting think times within a<br />
session’s transactions. Think time adjustment is achieved on the user type level<br />
by implicitly defining a think time factor, which is considered during think time<br />
calculation.<br />
SilkPerformer supports two different methods of adjusting think times: static<br />
and dynamic.<br />
Whereas static think time adaptation simply multiplies think times by a static<br />
factor to adjust session time, dynamic think time adaptation factors in time slowdown<br />
to keep throughput rates constant. See the following section for more<br />
details on dynamic think time adaptation.<br />
Maintaining Transaction Rates<br />
A commonly used load test model is to keep transaction rates constant<br />
regardless of the amount of load on the server. With dynamic think time<br />
adaptation, you can specify workloads based on transaction rates that<br />
SilkPerformer will meet even when server response times slow due to load<br />
increases. This means that when server response time slows, SilkPerformer will<br />
automatically reduce think times to avoid an increase in session times, which<br />
would directly result in a decrease of throughput and ultimately result in server<br />
busy times increasing as load on the server increases.<br />
SilkPerformer offers dynamic think time adaptation for the following workload<br />
models:<br />
- Increasing<br />
- Steady State<br />
- All-Day<br />
- Dynamic<br />
SilkPerformer User Guide 191
8 DEFINING WORKLOAD<br />
Maintaining Transaction Rates<br />
192 SilkPerformer User Guide
9<br />
Executing 9Chapter<br />
Load Tests<br />
Introduction<br />
What you will learn<br />
This chapter explains how to execute load tests.<br />
This chapter contains the following sections:<br />
Section<br />
Page<br />
Overview 193<br />
Starting Load Tests 194<br />
Monitoring Load Tests 194<br />
Launching Load Tests Via the Command Line 205<br />
Overview<br />
The eighth step in conducting a SilkPerformer load test is to run the full load<br />
test. Multiple virtual users are run, by means of the test script(s), to test the target<br />
server. A large load test requires that an appropriate testing environment be set<br />
up on the local area network, including a full complement of agent computers to<br />
host the virtual users.<br />
It is essential that you carefully set options for the appropriate type of test that is<br />
to be used, accurately define the necessary workloads, and enable generation of<br />
the kinds of test results you will need to assess the performance of the server.<br />
The logging option, however, should be disabled to prevent interference with<br />
load test results.<br />
Comprehensive information is provided to testers while load tests are run. This<br />
includes real-time information about agent computers, virtual users, and<br />
transactions as they are conducted. In addition, real-time monitoring of the<br />
target server is available in graphical form.<br />
If a test is configured as a verification run, the following options will be<br />
automatically set to the specified values:<br />
SilkPerformer User Guide 193
9 EXECUTING LOAD TESTS<br />
Starting Load Tests<br />
- A Baseline report file will automatically be created.<br />
- The Stop virtual users after simulation time (Queuing Workload)<br />
option is off.<br />
- The Virtual user log files (.log) option is set off.<br />
- The Virtual user report files (.rpt) option is on.<br />
- The Virtual user report on error files (.rpt) option is on.<br />
- The Compute time series data (.tsd) option is off.<br />
Starting Load Tests<br />
Procedure To start a load test:<br />
1 Click the Run Test button on the SilkPerformer Workflow bar.<br />
The Workload Configuration dialog appears.<br />
You can also access this dialog by right-clicking the project name in the<br />
tree-view area of the main SilkPerformer window, and selecting Run<br />
Test; or by selecting Run/Run Test from the SilkPerformer menu bar.<br />
2 Configure the workload that you will use in your load test.<br />
3 Click Run to start the load test, or click Connect to initialize the agent<br />
connection and then start the test manually from the monitor view by<br />
clicking the Start all button.<br />
Monitoring Load Tests<br />
Detailed real-time information is available to testers while SilkPerformer load<br />
tests are run. Graphic displays and full textual reporting of activity on both the<br />
client side and the server side offer intuitive monitoring of the progress of tests<br />
as they are happening.<br />
Directly from the workbench where the test is conducted, the tester can see<br />
comprehensive overview information about the agent computers and virtual<br />
users in the test. There is full control of the level of detail of the information<br />
presented, from a global view of the progress of all the agent computers in the<br />
test down to exhaustive detail of the transactions conducted by each virtual user.<br />
Progress information for each agent and each user is available in multiple<br />
categories. Run-time details for each user include customizable, color-coded<br />
readouts on transactions, timers, functions, and errors as they happen.<br />
In addition, real-time monitoring of the performance of the target server is<br />
available in graphical form. Charts display the most relevant performance<br />
information from a comprehensive collection of the Web servers, application<br />
194 SilkPerformer User Guide
9 EXECUTING LOAD TESTS<br />
Monitoring Load Tests<br />
Monitoring all agent<br />
computers<br />
Monitoring a specific<br />
agent computer<br />
Monitoring a specific<br />
virtual user<br />
Monitoring server<br />
performance during<br />
tests<br />
servers, and database servers running on all of the operating systems most<br />
widely used today. Multiple charts can be open at the same time, and these can<br />
be juxtaposed to provide the most relevant comparisons and contrasts for the<br />
tester. A tree-view editor allows elements from any data source to be combined<br />
in the charts. Performance information from the client application—for<br />
example, response times—can easily be placed in the same chart as performance<br />
data from the server. This enables a direct visual comparison to be made, so that<br />
you can see how shortcomings on the server influence client behavior.<br />
Procedure To monitor all agent computers:<br />
1 While a load test is running, view progress in the Monitor window.<br />
2 View information about the progress of agent computers and user groups<br />
in the top part of the window. Among the comprehensive number of<br />
information options presented, you can see the status of a particular<br />
agent, what percentage of the test is complete on the agent, and the<br />
number of transactions executed.<br />
Procedure To monitor a specific agent computer:<br />
1 In the top part of the Monitor window, select the specific agent to<br />
monitor.<br />
Information on all of the virtual users running on that agent appears in<br />
the bottom of the Monitor window.<br />
2 Among the many information options presented for each user, you can<br />
check its status, the name of the current transaction, what percentage of<br />
its work is complete, and the number of transactions executed.<br />
Procedure To monitor a specific virtual user:<br />
1 In the bottom part of the Monitor window, right-click the virtual user you<br />
want to monitor.<br />
2 Select Show Output of Vuser.<br />
SilkPerformer displays detailed run-time information about the selected<br />
user in the Virtual User window, for example, the transactions and<br />
functions the user executes, and the data the user sends to and receives<br />
from the server.<br />
To view the columns that are to be shown, right click the virtual user<br />
area, and click Select Columns. Then select all the columns you want to<br />
view.<br />
Procedure To monitor server performance in a graph:<br />
1 Click the Confirm Baseline button on the SilkPerformer Workflow bar.<br />
The Workflow - Confirm Baseline dialog appears.<br />
SilkPerformer User Guide 195
9 EXECUTING LOAD TESTS<br />
Monitoring Load Tests<br />
2 Click the Monitoring Template button or link to specify the settings for<br />
receiving online performance data. In the Profile Results dialog choose<br />
to automatically start monitoring while running a load test and then<br />
choose either the default-monitoring template or to create a customized<br />
monitoring template.<br />
3 Click Create/Edit Custom Monitor Template.<br />
Performance Explorer appears.<br />
4 Close all monitor windows that you are not currently using.<br />
5 Click the Monitor Server button on the Performance Explorer Workflow<br />
bar.<br />
The Data Source Wizard appears at the System Selection dialog.<br />
You can also access the wizard by selecting Results/Monitor Server from<br />
the SilkPerformer menu bar.<br />
6 Select from predefined data sources if you are sure which data sources<br />
the server provides, otherwise let Performance Explorer scan the server<br />
for available data sources.<br />
7 In the tree view, expand the folder that corresponds to the operating<br />
system on which the server and the application you are testing is running.<br />
8 Select the server application you want to monitor from the list that<br />
appears. To monitor the operating system, select System.<br />
9 Click Next.<br />
The Connection Parameters dialog appears.<br />
10 In the Hostname field, enter connection parameters such as the host<br />
name or IP address of the computer that hosts the application, the<br />
connection port, the user name, and the password. The data you enter<br />
here depends on the operating system running on the computer you are<br />
monitoring.<br />
11 Click Next.<br />
The Select Displayed Measures dialog appears.<br />
12 Expand the tree view and select the factors you want to monitor.<br />
13 Click Finish.<br />
A Monitor Graph appears, with the elements you specified being shown<br />
in a live, color-coded display of the server performance. Beneath the<br />
graph is a list of the elements included, with the key to the color-coding,<br />
and performance information about each element.<br />
Vendors of hardware and software systems provide information about the nature<br />
of their systems via MIBs (Management Information Base). This information<br />
can be retrieved with the help of the SNMP protocol by specifying the<br />
196 SilkPerformer User Guide
9 EXECUTING LOAD TESTS<br />
Monitoring Load Tests<br />
Monitoring server<br />
performance in a<br />
graph via a SNMP<br />
appropriate OID (Object Identifier). MIB browsers assist you in selecting the<br />
right OID stored in the MIB.<br />
Performance Explorer offers you the possibility of selecting OIDs of MIBs from<br />
several sources for use as data sources for server monitoring. For example,<br />
database systems, such as Oracle, offer extensive performance data to be<br />
collected via a SNMP protocol.<br />
Procedure To monitor server performance in a graph via a SNMP:<br />
1 Click the Monitor Server button on the Performance Explorer Workflow<br />
bar.<br />
The Data Source Wizard appears in the System Selection dialog.<br />
2 Select from the predefined data sources.<br />
3 In the tree view, expand the Custom Data folder.<br />
4 Select the SNMP Data option.<br />
5 Click Next.<br />
The Connection Parameters dialog appears.<br />
6 In the Host name field, enter connection parameters, such as the host<br />
name or IP address of the server system you want to monitor, the port<br />
number and other data required to connect to the data source. You must<br />
have access to the specified server, access rights, and the SNMP service<br />
must be configured properly on the server system.<br />
7 Click Next.<br />
The Add SNMP Measures dialog appears.<br />
To use the contents of an MIB with Performance Explorer, the MIB must<br />
be compiled first. A number of common MIBs are delivered in a<br />
precompiled format.<br />
8 Select one of the precompiled MIBs delivered with Performance<br />
Explorer, or select Compile New MIB for an MIB that has been shipped<br />
with the server system. See the procedure below for compiling new<br />
MIBs.<br />
Once you have selected a compiled MIB, its contents will be shown in a<br />
tree view.<br />
9 Select the OID you are interested in and click Get Value(s).<br />
Connection to the server will then be established and the actual data item<br />
shown.<br />
10 Select the corresponding data item and click Add.<br />
11 Repeat step 8 and 9 until you have selected all the OIDs you want.<br />
12 Click Close.<br />
The Select Displayed Measures dialog appears.<br />
SilkPerformer User Guide 197
9 EXECUTING LOAD TESTS<br />
Monitoring Load Tests<br />
13 Select the factors to be monitored and click Finish.<br />
A monitor graph appears with the elements you specified shown in a<br />
live, color-coded server performance display.<br />
To use the contents of an MIB with Performance Explorer, the MIB must<br />
first be compiled. A number of common MIBs are delivered in a<br />
precompiled format.<br />
Compiling a new MIB<br />
Monitoring server<br />
performance in a<br />
report<br />
Monitoring multiple<br />
servers<br />
Procedure To compile a new MIB:<br />
1 In the Add SNMP Measure dialog, select Compile New MIB for an MIB<br />
that has been shipped with the server system.<br />
The Compile New MIB dialog appears.<br />
2 Browse for the MIB file you want to compile and click Open.<br />
3 Click Compile.<br />
If the compilation succeeds, a new name will be added to the list of<br />
compiled MIBs.<br />
If the error message "Could not IMPORT from -MIB" is<br />
returned, compile the MIB referred to in the error message.<br />
4 Click Close.<br />
Now the new MIB can be used as outlined in the above procedure.<br />
Procedure To monitor server performance in a report:<br />
1 Follow the steps for monitoring server performance in a graph, as<br />
explained above.<br />
2 Click Finish.<br />
3 Select Monitor/Clone Monitor Report from the Performance Explorer<br />
menu bar.<br />
A monitor report appears containing the same performance factors as<br />
selected in the graph.<br />
Monitoring information now appears in tabular form in the report.<br />
Note To save the monitoring report to be used for results<br />
exploration together with the load test results, select Monitor/Write<br />
Monitor Data from the Performance Explorer menu bar.<br />
Procedure To monitor multiple servers:<br />
1 For each server you want to monitor, follow the procedure given at the<br />
top of this topic for monitoring server performance in a graph.<br />
2 Separate graphs will appear for each server.<br />
3 Reposition and resize the graphs to facilitate viewing and comparison.<br />
4 To monitor factors from more than one server in a single graph, use the<br />
tree-view area to locate the factors you want to view.<br />
198 SilkPerformer User Guide
9 EXECUTING LOAD TESTS<br />
Monitoring Load Tests<br />
5 Drag and drop them onto your selected graph.<br />
Storing server<br />
monitoring data<br />
Procedure To store server-monitoring data:<br />
1 Create a monitor report that monitors server performance, as outlined in<br />
the above procedures. You can store server-monitoring data only from a<br />
monitor report, not from a monitor graph.<br />
2 Once you have populated the monitor report by dragging and dropping<br />
the relevant performance factors, select Monitor/Write Monitor Data<br />
from the Performance Explorer menu bar. The monitor data will be<br />
stored in a time series data (.tsd) file.<br />
3 The file name appears in the File section of the Monitor information area<br />
in the report dialog.<br />
4 To view the data in a graph, select File/New/Monitor Graph from the<br />
Performance Explorer menu bar.<br />
A new monitor graph appears.<br />
5 Drag and drop the performance factors of your choice from the report<br />
onto the graph.<br />
The data appears in graphical form.<br />
Requirements for server monitoring<br />
This section gives information about the installation and configuration<br />
requirements for the servers for which real-time monitoring is available in<br />
SilkPerformer.<br />
Server<br />
Active Server Pages<br />
Anny Way Wap Server<br />
1.0<br />
ColdFusion 4.0, 4.5, 5.0<br />
Installation and configuration requirements<br />
SilkPerformer can monitor Active Server Pages without custom<br />
configuration. Varying counters may be displayed depending on which<br />
Internet Information Server version is installed.<br />
Anny Way Wap Servers are monitored by the Performance Monitor.<br />
No special configuration is required.<br />
To monitor ColdFusion, select the Enable Monitoring option in the<br />
Debug dialog box of the ColdFusion administration site. This is the default<br />
value for Windows NT. For UNIX, you need to perform this same action<br />
after you have installed SilkPerformer.<br />
To monitor ColdFusion on UNIX systems, SNMP is used.<br />
SilkPerformer User Guide 199
9 EXECUTING LOAD TESTS<br />
Monitoring Load Tests<br />
Server<br />
BEA WebLogic 8.x and<br />
9.x<br />
<strong>Borland</strong> Application<br />
Server 6.6<br />
IBM WebSphere<br />
Application Servers 3.5 /<br />
4.0<br />
IBM WebSphere 6.0, 6.1<br />
Internet Information<br />
Server 3.0 / 4.0 / 5.0/5.1/<br />
6.0<br />
Installation and configuration requirements<br />
SilkPerformer can monitor WebLogic 8.x and 9.x servers without custom<br />
configuration of the application server. The JNDI protocol is used to<br />
connect via the Management EJB (MEJB) to the MBean Server. Default<br />
connection parameters are preconfigured in SilkPerformer.<br />
SilkPerformer needs to know the appserver installation directory or a copy<br />
of it to build the correct classpath.<br />
A JMX browser allows the selection of the MBean attributes to monitor.<br />
An Easy JMX profile can be used to pre-select interesting MBeans.<br />
SilkPerformer can monitor <strong>Borland</strong> Application Server 6.6 via JSR-160<br />
standard using the Corbaloc protocol over IIOP. The application server<br />
must be configured to allow access to the MBean Server via IIOP.<br />
SilkPerformer needs to know the appserver installation directory or a copy<br />
of it to build the correct classpath.<br />
A JMX browser allows the selection of the MBean attributes to monitor.<br />
An Easy JMX profile can be used to pre-select interesting MBeans.<br />
Certain MBeans will not work properly without applying patch 7697 to<br />
<strong>Borland</strong> Application Server.<br />
A browser is provided for selecting WebSphere performance counters.<br />
Requirements: WebSphere AdminService must be running on the<br />
WebSphere host. It runs by default unless IBM WebSphere Application<br />
Server Standard Edition is used.<br />
SilkPerformer can monitor WebSphere 6.0 and 6.1 Server without custom<br />
configuration of the application server.<br />
JNDI protocol is used to connect via the Management EJB (MEJB) to the<br />
MBean Server. Default connection parameters are preconfigured in<br />
SilkPerformer.<br />
SilkPerformer needs to know the appserver installation directory or a copy<br />
of it to build the correct classpath. SilkPerformer needs to use the same<br />
IBM JVM version for monitoring.<br />
A JMX browser allows the selection of the MBean attributes to monitor.<br />
SilkPerformer can monitor IIS Web servers without custom configuration.<br />
SNMP is supported only with a custom monitoring configuration.<br />
Windows NT SNMP Service must be installed before the IIS Web server is<br />
installed.<br />
200 SilkPerformer User Guide
9 EXECUTING LOAD TESTS<br />
Monitoring Load Tests<br />
Server<br />
JBoss 4.0<br />
Netdynamics 5<br />
Netscape Enterprise<br />
Server 3.0<br />
Installation and configuration requirements<br />
SilkPerformer can monitor JBoss 4.0 Server without custom configuration<br />
of the application server.<br />
JNDI protocol is used to connect via the Management EJB (MEJB) to the<br />
MBean Server. Default connection parameters are preconfigured in<br />
SilkPerformer.<br />
SilkPerformer needs to know the appserver installation directory or a copy<br />
of it to build the correct classpath.<br />
A JMX browser allows the selection of the MBean attributes to monitor.<br />
Two Easy JMX profiles may be used to pre-select interesting MBeans.<br />
Netdynamics, is supported using SNMP.<br />
For standard SNMP, Netdynamics uses a custom port (default 14600)<br />
instead of port 161.<br />
If the SNMP agent still needs to be configured, you may run the ndConfig<br />
utility.<br />
Note Access to MIB data is restricted to a select list of<br />
communities and computers. You must add the machine on<br />
which SilkPerformer is running to this list. The file containing this<br />
list is called jaw.acl. It is located in the directory<br />
\[Netdynamics?Home]\program \properties\[partitionname]\.<br />
Without this file, any user from any machine would be able to<br />
access the data.<br />
See the NetDynamics Administration Guide, Chapter 7, for the MIB<br />
Scheme of the NetDynamics MIB.<br />
Netscape Enterprise 3.0 server is monitored using the Performance<br />
Monitor. No custom configuration is required.<br />
SNMP is supported only with custom monitoring configuration. Use the<br />
Custom Data Source dialog to create custom measurements.<br />
To support SNMP, a subagent must be deployed for each instance of<br />
Netscape's server manager.<br />
On Solaris, a master agent must be deployed to collect and coordinate<br />
subagent data.<br />
SilkPerformer User Guide 201
9 EXECUTING LOAD TESTS<br />
Monitoring Load Tests<br />
Server<br />
Netscape Enterprise<br />
Server 4.x<br />
Netscape Enterprise<br />
Server 5.x<br />
Oracle Application<br />
Server 10.1.3<br />
Installation and configuration requirements<br />
Netscape Enterprise Server 4.x can only be monitored with a custom<br />
configuration. You can use either NT Performance Monitor Data or SNMP<br />
Data. Run the Custom Data Source dialog to create the custom measures.<br />
Netscape Enterprise 4.0 Setup automatically installs and configures<br />
SilkPerformer counters.<br />
Netscape Server 4.1 has been known to have problems automatically<br />
registering SilkPerformer counters. In such instances, an error message is<br />
generated in the event log. You may have to manually rectify this problem.<br />
To support SNMP, a subagent must be deployed for each instance of<br />
Netscape's server manager.<br />
On Solaris, a master agent must be deployed to collect and coordinate all<br />
subagent data.<br />
Netscape Enterprise Server 5.x can only be monitored using a custom<br />
configuration. You can use either NT Performance Monitor Data or SNMP<br />
Data. Run the Custom Data Source dialog to create the custom measures.<br />
Netscape Enterprise 5.0 Setup automatically installs and configures<br />
SilkPerformer counters.<br />
To support SNMP, a subagent must be deployed for each instance of<br />
Netscape's server manager.<br />
On Solaris, a master agent must be deployed to collect and coordinate all<br />
subagent data.<br />
SilkPerformer can monitor Oracle Application Server 10.1.3 without<br />
custom configuration of the application server.<br />
JNDI protocol is used to connect via the Management EJB (MEJB) to the<br />
MBean Server. Default connection parameters are preconfigured in<br />
SilkPerformer.<br />
SilkPerformer needs to know the appserver installation directory or a copy<br />
of it to build the correct classpath.<br />
A JMX browser allows the selection of the MBean attributes to monitor.<br />
An Easy JMX profile can be used to pre-select interesting MBeans.<br />
202 SilkPerformer User Guide
9 EXECUTING LOAD TESTS<br />
Monitoring Load Tests<br />
Server<br />
Installation and configuration requirements<br />
Oracle 7.3<br />
SilkPerformer can monitor Oracle 7.3 servers without custom<br />
configuration. All counters specified in the opctrnm.ini file can be<br />
monitored. However, only the most important ones are automatically<br />
displayed in SilkPerformer.<br />
If registration of performance counters fails during installation of Oracle<br />
server, you can manually register the opctrnm.ini file by running the lodctr<br />
command.<br />
For SNMP support (custom configuration monitoring only), the Oracle<br />
Intelligent Agent must be installed and running.<br />
Oracle 8<br />
Same as Oracle 7.3, however the .ini file for the counters is called<br />
opctrn8.ini.<br />
No custom configuration is required.<br />
For SNMP support (custom configuration monitoring only), the Oracle<br />
Intelligent Agent must be installed and running.<br />
Oracle 9 Same as Oracle 8.<br />
No special configuration is required.<br />
Silverstream 3.0, 3.7 This application server can be monitored on Windows NT using SNMP.<br />
SUN JVM 1.5 and 1.6<br />
Procedure To enable SNMP support:<br />
1 Run SilverStream designer.<br />
2 Select SilverMaster3 database/Objects.<br />
3 Open AgSNMPGetStats in design mode.<br />
4 Double-click the trigger symbol to open the Properties page.<br />
5 Set the Enabled option to true.<br />
6 Close and save the changes.<br />
SilkPerformer can monitor SUN JVM 1.5 and 1.6 via JSR-160 standard<br />
using the RMI protocol. Any application or application server using the<br />
platform MBean Server may be monitored this way. No custom<br />
configuration is necessary.<br />
A JMX browser allows the selection of the MBean attributes to monitor.<br />
An Easy JMX profile can be used to pre-select interesting MBeans.<br />
SilkPerformer User Guide 203
9 EXECUTING LOAD TESTS<br />
Monitoring Load Tests<br />
Server<br />
Apache<br />
Installation and configuration requirements<br />
The monitoring of Apache Web Servers is supported for the following<br />
operating systems:<br />
HP-UX, Linux, Solaris, OSF1<br />
Requirements: With Apache Web servers, you have the option of using the<br />
built-in status report functionality. This requires that the "mod_status"<br />
module be built in, which is done by default. To get more detailed<br />
information it’s useful to select the compile option "ExtendedStatus On".<br />
To enable status reports only for browsers from the foo.com domain, add<br />
code to your "access.conf" configuration file. The Apache configuration is<br />
maintained in a set of files, usually located in /usr/local/apache/etc or /usr/<br />
local/apache/conf (Solaris) or /etc/httpd/conf (Linux). By default the code<br />
below should be “commented out” in one of the configuration files. If it’s<br />
not, add it to the main Apache config file, httpd.conf. Ensure that the<br />
"Allow" statements are correct, otherwise monitoring won’t work.<br />
SetHandler server-status<br />
order deny, allow deny from all allow from .foo.com<br />
<br />
Restart your server. To verify the server's performance module, type the<br />
following url into your browser:<br />
http://hostname/server-status?auto<br />
Monitoring will work if you get a response such as that below:<br />
Total Accesses: 210<br />
Total kBytes: 94<br />
CPULoad: .000278279<br />
Uptime: 366539<br />
ReqPerSec: .000572927<br />
BytesPerSec: .262608<br />
BytesPerReq: 458.362<br />
BusyServers: 1<br />
IdleServers: 6<br />
Scoreboard: ______W.................................................................................<br />
Note: The default Apache monitor only works if Telnet is enabled. If you want to<br />
monitor an Apache server with Telnet disabled, you need to use the WGet<br />
command instead of the default Rexec commands, for example:<br />
wget -q -O - http://hostname/server-status | grep "requests/sec" |<br />
cut -c5- | cut -d\ -f1<br />
204 SilkPerformer User Guide
9 EXECUTING LOAD TESTS<br />
Launching Load Tests Via the Command Line<br />
Server<br />
Stronghold<br />
iPlanet Directory Server<br />
5.0<br />
Netscape Directory<br />
Server 4.0/4.1<br />
Operating System Data<br />
Microsoft Proxy Server<br />
2.0<br />
SQL Server 6.5, 7, 2000<br />
Installation and configuration requirements<br />
Stronghold Web Servers running on Linux can be monitored using the<br />
SilkPerformer. Setting up monitoring for Stronghold Web Servers is<br />
analogous to setting up monitoring for Apache Web Servers.<br />
To verify whether Stronghold's performance module is active, type the<br />
following url into your browser:<br />
http://hostname/stronghold-status?auto<br />
iPlanet Directory Servers are monitored by the Performance Monitor.<br />
No special configuration is required.<br />
Netscape Directory Servers are monitored by the Performance Monitor.<br />
No special configuration is required.<br />
Operating System Data can be monitored for the following platforms:<br />
• NT<br />
• Windows 2000<br />
• Windows XP<br />
• Linux<br />
• Solaris<br />
• HP-UX<br />
• AIX<br />
• OSF1<br />
If available on the host, information such as processor utilization, disc<br />
usage, swapfile utilization, and network packets can be monitored.<br />
On Microsoft systems, operating system data is monitored by the<br />
Performance Monitor. For UNIX systems, a ‘Remote Execution Daemon’<br />
must be running. Such daemons run on UNIX systems by default.<br />
Microsoft Proxy Servers are monitored by the Performance Monitor.<br />
No special configuration is required.<br />
The most significant versions of SQL Server can be monitored with the<br />
Performance Monitor.<br />
No special configuration is required.<br />
Launching Load Tests Via the Command Line<br />
SilkPerformer enables load tests to be started directly from a command prompt<br />
window. This is useful when, for example, you want to perform a number of<br />
load tests consecutively by creating and executing a batch file.<br />
SilkPerformer User Guide 205
9 EXECUTING LOAD TESTS<br />
Launching Load Tests Via the Command Line<br />
To start SilkPerformer from a command line, observe the following syntax:<br />
performer [project file [/Automation [refresh rate] [/<br />
WL:workloadname] [/StartMonitor]] [/PatrolReport] [/<br />
Dev]]<br />
Parameter<br />
project file<br />
/Automation<br />
refresh rate<br />
/WL:workloadname<br />
/StartMonitor<br />
/PatrolReport<br />
/Dev<br />
/SOA<br />
Description<br />
Name of the project file; that defines<br />
the load test to be executed.<br />
Automatically start the load test that<br />
is defined by the specified project<br />
file. If you omit this parameter,<br />
SilkPerformer opens the specified<br />
project.<br />
Refresh rate, in seconds, at which<br />
the Monitor window is to be<br />
refreshed. If you omit this<br />
parameter, then no refresh will<br />
occur.<br />
Name of the workload in the<br />
specified project file. If you specify<br />
a workload, it will be set as the<br />
Active Workload in the project file.<br />
Start Performance Explorer’s<br />
monitoring facility when running<br />
the test.<br />
Create a result file, named<br />
LoadTestReport.xml, at the end of<br />
the load test where all agent<br />
summary measurements are stored.<br />
Note: You must be licensed for Silk<br />
Performer KM to use this switch.<br />
Specifies that SilkPerformer<br />
Developer Workbench be launched.<br />
Specifies that SilkPerformer SOA<br />
Workbench be launched.<br />
/? or -? Displays help about the<br />
SilkPerformer command line<br />
interface.<br />
Table 8: Command line parameters<br />
206 SilkPerformer User Guide
9 EXECUTING LOAD TESTS<br />
Launching Load Tests Via the Command Line<br />
Example<br />
performer<br />
"\Working\Projects\AllDayWorkload\AllDayWorkl<br />
oad.ltp"<br />
/Automation 5 /WL:AllDayWorkload10 /PatrolReport<br />
Note The parentheses (") around the project path are needed when<br />
files or folders in the project path contain spaces.<br />
Note SilkPerformer will close immediately if an error (e.g., a<br />
misspelled project path, script error, workload not in the specified<br />
project file) occurs during the execution of the command line<br />
instruction. Errors can be found in the Event Viewer of the operating<br />
system.<br />
SilkPerformer User Guide 207
9 EXECUTING LOAD TESTS<br />
Launching Load Tests Via the Command Line<br />
208 SilkPerformer User Guide
10<br />
Exploring 10 Chapter<br />
Test Results<br />
Introduction<br />
What you will learn<br />
This chapter explains how to analyze the test results that are generated by<br />
SilkPerformer.<br />
This chapter contains the following sections:<br />
Section<br />
Page<br />
Overview 209<br />
Performance Explorer 212<br />
Reports 229<br />
Measurements 230<br />
Overview<br />
The ninth and final step in conducting a SilkPerformer load test is to display and<br />
analyze the results of the test to assess the performance of the application and<br />
the server under test.<br />
Results overview<br />
SilkPerformer’s Results tab in the top left area of the GUI offers full control over<br />
your test results. Selecting the Results tab displays a tree view containing all test<br />
results of the currently active project, including TryScript runs, load test results,<br />
and Test Manager results (if your SilkPerformer project is linked to a Test<br />
Manager test definition).<br />
Depending on the logging options that you have set for test runs (see “Result<br />
options”), the following items are displayed in the results tree:<br />
• Baseline Report<br />
• Time Series<br />
• TrueLog Files (contains TrueLog files for each virtual user)<br />
SilkPerformer User Guide 209
10 EXPLORING TEST RESULTS<br />
Overview<br />
• User Results (contains user profiles, which list all result files per virtual<br />
user)<br />
• Test Manager (displays results from Test Manager, if the project is<br />
linked to a Test Manager test definition)<br />
To view results, double-click a file in the results tree, or use the context menu by<br />
right-clicking a result file and selecting Open or Explore. Opening a results file<br />
invokes the respective viewing facility (see “Results viewing facilities”).<br />
To delete locally stored results (this does not affect results that are stored in Test<br />
Manager), right-click a top-level results node and select Delete Results.<br />
To refresh displayed results (the results that are displayed in the tree view do not<br />
update if they are changed outside of SilkPerformer), right-click a top-level<br />
results node and select Update Results.<br />
If the icon of a parent node in the results tree is marked with a red X symbol, an<br />
error has occurred during the test execution. If an icon (parent node or result file)<br />
is marked with a blue exclamation mark (!), an error log file contains an<br />
informational message, a warning, or an error.<br />
Test Manager<br />
integration<br />
Results viewing<br />
facilities<br />
SilkPerformer is tightly integrated with SilkCentral Test Manager. If your<br />
SilkPerformer project is linked to Test Manager, you can store your test<br />
results centrally in Test Manager where they can be accessed from both Test<br />
Manager and SilkPerformer.<br />
To view Test Manager results, your project must be linked to a Test Manager<br />
test definition (see “SilkCentral Test Manager Integration” for detailed<br />
information on linking SilkPerformer projects to Test Manager). Once your<br />
project is linked to Test Manager, you can view the centrally stored results by<br />
clicking the Click here to add Test Manager results node in the results tree<br />
(see “Downloading Test Results from Test Manager” for information on<br />
downloading Test Manager results).<br />
Additionally, you can upload results to Test Manager by right-clicking a toplevel<br />
results node and selecting Upload Results to Test Manager (see<br />
“Uploading Test Results to Test Manager” for detailed information).<br />
Comprehensive facilities are available in SilkPerformer for displaying,<br />
reporting, and analyzing test results. Defined measurements take place during<br />
tests and can be displayed in a variety of graphical and tabular forms.<br />
• “Performance Explorer”: This is the primary area for viewing test<br />
results. A fully comprehensive array of graphic features displays the<br />
results—primarily in user-defined graphs—with as many elements as are<br />
required. The results of different tests can be compared, and there are<br />
extensive features for server monitoring. A comprehensive HTML based<br />
overview report that combines usergroup data from the baseline report<br />
file (baselineReport.brp) with time series test result information, is<br />
available.<br />
210 SilkPerformer User Guide
10 EXPLORING TEST RESULTS<br />
Overview<br />
Verification under load<br />
• “TrueLog On Error”: SilkPerformer provides full visual verification<br />
under load capabilities for Web applications. It allows you to combine<br />
extensive content verification checks with full error drill-down analysis<br />
during load tests.<br />
• “Virtual User Report files”: These files contain the simulation results for<br />
each user, if their generation is enabled. Details of the measurements for<br />
each individual user are presented in tabular form.<br />
• “Virtual User Output files”: These files contain the output of write<br />
statements used in test scripts, if their generation is enabled.<br />
• “Viewing Baseline Reports”: A detailed XML/XSL-based report that<br />
provides you with a summary table, transaction response-time details,<br />
timers for all accessed HTML pages, Web forms, and errors that<br />
occurred. This information is available for all user types involved in<br />
baseline tests.<br />
• SilkCentral Test Manager Reports: SilkPerformer projects can be<br />
integrated into SilkCentral Test Manager (Test Manager) test plans and<br />
directly executed via Test Manager. This allows for powerful test-result<br />
analysis and reporting. For detailed information on Test Manager<br />
reporting, please refer to the SilkCentral Test Manager User Guide.<br />
SilkPerformer provides full visual verification under load capabilities for Web<br />
applications. It allows you to combine extensive content verification checks<br />
with full error drill down analysis during a load test. SilkPerformer verification<br />
checks can be done from all virtual users without major performance loss.<br />
Thanks to SilkPerformer's innovative TrueLog technology, it is possible to<br />
collect details regarding the errors of all virtual users that take part in a load test.<br />
Traditional probing clients, separated from the load testing tool, are only able to<br />
detect content verification errors that occur for users that actually perform<br />
verifications. Since a functional testing tool is only able to drive a very limited<br />
number of concurrent users, the functional test covers only a very small subset<br />
of all users that visit your Web application. Such a probing client cannot detect<br />
verification errors that occur to users that are not contained within this small<br />
subset. Hence, SilkPerformer redefines the type of testing that can be done with<br />
a load testing tool.<br />
With the TrueLog technology, you are able to find a new class of errors and<br />
their root causes—including errors that usually occur to only a subset of users<br />
when your application is under a heavy load. For most applications, this is the<br />
type of load that will most likely be experienced once the application is<br />
deployed in the real world. Typical errors include incorrect text on a Web page,<br />
incorrectly computed and displayed values, or application-related messages,<br />
such as "Servlet Error" or "Server Too Busy" errors. These are not system-level<br />
errors and are displayed on Web pages with HTTP 200 status codes.<br />
SilkPerformer User Guide 211
10 EXPLORING TEST RESULTS<br />
Performance Explorer<br />
Additionally, SilkPerformer provides a visual view of its new verification under<br />
load capability to simplify its use:<br />
- Visual content verification allows you to visually define the content<br />
that needs to be verified.<br />
- TrueLog On Error generation and TrueLog On Error analysis allow<br />
you to visually analyze errors to find their root cause.<br />
TrueLog On Error<br />
As a foundation for full visual root cause analysis, SilkPerformer can save the<br />
complete history of errors within a TrueLog. TrueLog On Error can even be<br />
generated in large-scale load tests. TrueLog On Error helps you uncover the true<br />
source of your application's error output under all possible load conditions.<br />
Generated log files can be displayed by means of TrueLog Explorer to verify the<br />
cause of errors raised by application servers.<br />
1 Before you begin a load test, select the TrueLog On Error checkbox on<br />
the Workload Configuration dialog.<br />
2 If errors occur during load tests, you can view the visual content of the<br />
TrueLog by clicking the Explore Results button on SilkPerformer's<br />
workflow bar.<br />
3 TrueLog Explorer opens and displays the content of the TrueLogs.<br />
4 If TrueLog On Error files are not displayed automatically, click Analyze<br />
TrueLog On Error and navigate to the directory of the actual load test.<br />
Select the TrueLog files to be displayed and click OK.<br />
5 You can navigate from one occurrence of an error to the next.<br />
6 To display the history of an error, click the API nodes in the tree view on<br />
the left.<br />
Performance Explorer<br />
Performance Explorer is the primary tool used for viewing load test results. A<br />
vast array of graphic facilities allows both real-time monitoring of the target<br />
server while tests are being run and exhaustive analysis of the results after tests<br />
have completed. Exploring test results is made easy by a workflow bar with a<br />
click-through user interface, enhanced by drag-and-drop functionality.<br />
In real-time monitoring, live charts provide a customizable display of the most<br />
relevant performance information from the target server. Monitoring is available<br />
for a comprehensive collection of the Web servers, application servers, and<br />
database servers running on all of the operating systems most widely used<br />
today. Multiple charts can be open at the same time, so that, for example, the<br />
tester can watch a graphic display of Web server performance and operating<br />
212 SilkPerformer User Guide
10 EXPLORING TEST RESULTS<br />
Performance Explorer<br />
Performance Data<br />
Collection Engine<br />
(PDCE)<br />
Viewing Overview<br />
Summary Reports<br />
system performance simultaneously. A tree-view editor with drag-and-drop<br />
functionality allows elements from any data source to be combined in the charts.<br />
After a test, the performance of the target server can be charted from both the<br />
client side and the server side. Response time measurements display the client<br />
perspective, while throughput data gives the perspective from the server side.<br />
Charts and graphs are fully customizable, and they can contain as many or as<br />
few of the measurements taken during the test as the tester needs. Multiple<br />
charts, using information from one or from different tests, can be opened at once<br />
to facilitate contrast/compare operations. Templates for the most typical test<br />
scenarios (Web, Database, IIOP) are provided, and these default charts can be<br />
populated easily and quickly with the data the tester requires. Here also, dragand-drop<br />
functionality enables chart elements to be combined from any data<br />
source. Information on client response times and server performance can be<br />
placed in a single chart, so that testers can see directly how server performance<br />
affects client behavior.<br />
A comprehensive XML/XSL based overview report, which combines usergroup<br />
data from the baseline report file (baseline.brp) with time series test result<br />
information, is available. You can customize the overview report to your needs<br />
by changing the provided texts and by inserting charts of your interest. Saving<br />
your changes as a template allows the reuse of your individual settings.<br />
The PDCE (Performance Data Collection Engine) is a Performance Explorer<br />
engine that is used for online monitoring. Its interface can alternately be<br />
accessed via Benchmark Description Language (BDL), which is used by<br />
SilkPerformer to monitor data sources, such as PerfMon, SNMP and<br />
WebSphere 4.0. The BDL interface for the PDCE is described in the pdce.bdh<br />
include file.<br />
Each of the measurements that Performance Explorer monitors can<br />
alternately be monitored via SilkPerformer using BDL scripts. After<br />
registering measurements of interest, a monitoring data set can be retrieved<br />
from the PDCE via the provided polling functions (PDCE API). These<br />
functions provide data, status information, and descriptions of the<br />
measurements (if available). Further information regarding the PDCE API<br />
can be found in the BDL Function Reference.<br />
Procedure To view an overview summary report:<br />
1 Click the Explore Results button on the SilkPerformer Workflow bar.<br />
The Workflow - Explore Results dialog appears.<br />
2 Click the Performance Explorer button or link.<br />
Performance Explorer opens and displays an overview summary report<br />
for the most recent load test, if you have selected the Generate overview<br />
report automatically option in the Settings/Options/Reporting dialog.<br />
Additionally, you can choose to use a previously stored template for the<br />
SilkPerformer User Guide 213
10 EXPLORING TEST RESULTS<br />
Performance Explorer<br />
Customizing Overview<br />
Summary Reports<br />
Adding a default chart<br />
Adding a custom chart<br />
generation of an overview report in this dialog. This setting is a global<br />
setting and will be used with Performance Explorer, regardless of the<br />
workload project you are using.<br />
3 If the overview report does not appear automatically, click the Overview<br />
Report button on the Workflow bar.<br />
4 Navigate to the directory of the load test you are working with and select<br />
the corresponding .tsd file.<br />
5 In the next step you are asked to select the template you want to use for<br />
the generation of the overview report.<br />
6 Click Finish and the overview report will appear.<br />
Performance Explorer enables to you add customized charts and reports to<br />
overview reports. You can remove charts and reports from the overview report<br />
at any time and you can save your changes as a template to be used for the<br />
generation of overview reports in the future.<br />
Procedure To add a default chart to the overview report:<br />
1 Select the overview report to which you want to add the chart.<br />
2 In the Workflow toolbar, click the Customize Report button.<br />
Alternately, navigate to the custom charts section of the overview report<br />
and click the Click here to customize this section link.<br />
The Custom Overview Report Wizard dialog then appears.<br />
3 Select all sections that you want displayed in the overview report. By<br />
default, all available sections are displayed. Click Next.<br />
4 Select Add new view and click Next.<br />
5 Expand the Graphs folder and select the type of graph you want to insert<br />
into the overview report.<br />
6 Click Finish.<br />
Performance Explorer opens a new view with the type of chart you have<br />
selected. In addition, Performance Explorer inserts the chart into the<br />
custom charts section of the overview report.<br />
Note When you add new measurements to the view that contains the<br />
graph, or when you remove measurements from the view, the<br />
corresponding graph in the overview report is automatically<br />
updated.<br />
Procedure To add a custom chart to the overview report:<br />
1 Generate the graph you want to add to the overview report.<br />
2 Select the overview report to which you want to add the chart.<br />
214 SilkPerformer User Guide
10 EXPLORING TEST RESULTS<br />
Performance Explorer<br />
Adding a default<br />
report<br />
3 In the Workflow toolbar, click the Customize Report button.<br />
Alternately, navigate to the custom charts section of the overview report<br />
and click the Click here to customize this section link.<br />
The Custom Overview Report Wizard dialog opens.<br />
4 Select all sections that you want to have displayed in the overview<br />
report. By default, all available sections are displayed. Click Next.<br />
5 Expand the Charts folder and select the chart you have just created. If<br />
you want to add a new chart to the overview report, select the Add new<br />
view option and click Next.<br />
6 Click Finish.<br />
Performance Explorer inserts the chart you have selected into the custom<br />
charts section of the overview report.<br />
Note To change the name and the description of a chart, right click<br />
the bottom area of the graph in Performance Explorer and select<br />
properties. There you can specify a name and a description, which<br />
also appears in the overview report.<br />
Note When you add new measurements to the view that contains the<br />
graph, or when you remove measurements from the view, the<br />
corresponding graph in the overview report is automatically<br />
updated.<br />
Procedure To add a default report to an overview report:<br />
1 Select the overview report to which you want to add the report.<br />
2 In the Workflow toolbar, click the Customize Report button.<br />
Alternately, navigate to the custom tables section of the overview report<br />
and click the Click here to customize this section link.<br />
The Custom Overview Report Wizard dialog opens.<br />
3 Expand the Reports folder and select the type of graph you want to insert<br />
into the overview report.<br />
4 Click Finish.<br />
Performance Explorer opens a new view with the type of report you have<br />
selected. In addition, Performance Explorer inserts this report into the<br />
custom tables section of the overview report.<br />
Note When you add new measurements to the view that contains the<br />
report, or when you remove measurements from the view, the<br />
corresponding report in the overview report is automatically<br />
updated.<br />
SilkPerformer User Guide 215
10 EXPLORING TEST RESULTS<br />
Performance Explorer<br />
Adding a custom<br />
report<br />
Removing a chart<br />
Removing a report<br />
Procedure To add a custom report to the overview report:<br />
1 Generate the report you want to add to the overview report.<br />
2 Select the overview report to which you want to add the report.<br />
3 In the Workflow toolbar, click the Customize Report button.<br />
Alternately, navigate to the custom reports section of the overview report<br />
and click the Click here to customize this section link.<br />
The Custom Overview Report Wizard dialog opens.<br />
4 Expand the Reports folder and select the report you have just created.<br />
5 Click Finish.<br />
6 Performance Explorer inserts the report you have selected into the<br />
custom tables section of the overview report.<br />
Note To change the name and the description of a report, right click<br />
the report in Performance Explorer and select properties. There you<br />
can specify a name and a description, which will also appear in the<br />
overview report.<br />
Note When you add new measurements to the view that contains the<br />
report, or when you remove measurements from the view, the<br />
corresponding report in the overview report is automatically<br />
updated.<br />
Procedure To remove a chart from the overview report:<br />
1 Select the overview report from which you want to remove a chart.<br />
2 In the Workflow toolbar, click the Customize Report button.<br />
Alternately, navigate to the custom charts section of the overview report<br />
and click the Click here to customize this section link.<br />
The Custom Overview Report Wizard dialog opens.<br />
3 Expand the Charts folder and disable the chart you want to remove from<br />
the overview report. If you want to add a new chart to the overview<br />
report, select the Add new view option and click Next.<br />
4 Click Finish.<br />
Performance Explorer removes the chart you have selected from the<br />
custom charts section of the overview report.<br />
Procedure To remove a report from the overview report:<br />
1 Select the overview report from which you want to remove a report.<br />
2 In the Workflow toolbar, click the Customize Report button.<br />
Alternately, navigate to the custom tables section of the overview report<br />
and click the Click here to customize this section link.<br />
The Custom Overview Report Wizard dialog opens.<br />
216 SilkPerformer User Guide
10 EXPLORING TEST RESULTS<br />
Performance Explorer<br />
Changing text areas<br />
Saving report layouts<br />
Specifying a default<br />
template<br />
Viewing results<br />
3 Expand the Reports folder and disable the report you want to remove<br />
from the overview report.<br />
4 Click Finish.<br />
Performance Explorer removes the report you have selected from the<br />
custom tables section of the overview report.<br />
Procedure To change text areas in the overview report:<br />
1 In an overview report, many text areas are predefined, but you can<br />
change them according to your needs. When you see click here to edit<br />
you can change the corresponding text and save the report as a template<br />
to be used for further reports.<br />
Procedure To save the layout of a report as a template:<br />
1 Customize the overview report based on your needs.<br />
2 Select File - Save as template from the menu bar and provide a name for<br />
the new template.<br />
The template will be stored in the \working\include folder, to be used for<br />
all projects. Have a look at Settings / Options / Reporting, in which you<br />
can specify this template to be used when creating a new overview<br />
report.<br />
Procedure To set a template as the default template:<br />
1 From the menu bar, select Settings / Options and then the Reporting tab.<br />
2 Check Use template when generating a new overview report and select a<br />
previously stored template.<br />
The selected template will be used to create a new overview report for all<br />
projects.<br />
Performance Explorer offers numerous options for viewing results.<br />
Default results<br />
Viewing default<br />
results in a graph<br />
Procedure To view the default set of results in a graph:<br />
1 Click the Explore Results button on the SilkPerformer Workflow bar.<br />
The Workflow - Explore Results dialog appears.<br />
2 Click the Performance Explorer button.<br />
Performance Explorer opens.<br />
3 Click the View Graph button on the Performance Explorer Workflow<br />
bar.<br />
The default graph for the current project appears.<br />
SilkPerformer User Guide 217
10 EXPLORING TEST RESULTS<br />
Performance Explorer<br />
Viewing default<br />
results in a report<br />
Procedure To view the default set of results in a report:<br />
1 Click the Explore Results button on the SilkPerformer Workflow bar.<br />
The Workflow - Explore Results dialog appears.<br />
2 Click the Performance Explorer button.<br />
Performance Explorer opens.<br />
3 Click the View Report button on the Performance Explorer Workflow<br />
bar.<br />
The default report for the current project appears.<br />
Specific results<br />
Viewing specific<br />
results in a graph<br />
Viewing specific<br />
results in a report<br />
Procedure To view a specific set of results in a graph:<br />
1 Click the Explore Results button on the SilkPerformer Workflow bar.<br />
The Workflow - Explore Results dialog appears.<br />
2 Click the Performance Explorer button.<br />
Performance Explorer opens.<br />
3 Click the Select Graph button on the Performance Explorer Workflow<br />
bar.<br />
The Template dialog appears.<br />
4 In the Templates area, expand the folder for the measurement type you<br />
want to view, either Response Time or Throughput. To view the default<br />
graph, select General.<br />
5 Select the measure you want to view.<br />
6 Click Finish.<br />
A graph displaying the measure you selected appears.<br />
Procedure To view a specific set of results in a report:<br />
1 Click the Explore Results button on the SilkPerformer Workflow bar.<br />
The Workflow - Explore Results dialog appears.<br />
2 Click the Performance Explorer button.<br />
Performance Explorer opens.<br />
3 Click the Select Report button on the Performance Explorer Workflow<br />
bar.<br />
The Template dialog appears.<br />
4 In the Templates area, expand the folder for the measurement type you<br />
want to view, either Response Time or Throughput. To view the default<br />
report, select General.<br />
5 Select the measure you want to view.<br />
218 SilkPerformer User Guide
10 EXPLORING TEST RESULTS<br />
Performance Explorer<br />
6 Click Finish.<br />
A report giving information on the measure you selected appears.<br />
Custom results<br />
Viewing custom<br />
results in a graph<br />
Viewing custom<br />
results in a report<br />
Procedure To view a custom set of results in a graph:<br />
1 Click the Explore Results button on the SilkPerformer Workflow bar.<br />
The Workflow - Explore Results dialog appears.<br />
2 Click the Performance Explorer button.<br />
Performance Explorer opens.<br />
3 Select File/New/Graph from the Performance Explorer menu bar.<br />
The Select Result File dialog appears.<br />
4 Locate the time series data (.tsd) file for which you want to see a graph<br />
and click Open.<br />
Performance Explorer displays a tree view with all the measurements<br />
that the selected file contains.<br />
5 In the tree-view area, expand the folder containing the measure types you<br />
want to add to the graph.<br />
6 Drag and drop the measure you want onto the graph.<br />
7 Repeat the drag-and-drop procedure as often as is necessary to add<br />
elements to the graph.<br />
Procedure To view a custom set of results in a report:<br />
1 Click the Explore Results button on the SilkPerformer Workflow bar.<br />
The Workflow - Explore Results dialog appears.<br />
2 Click the Performance Explorer button.<br />
Performance Explorer opens.<br />
3 Select File/New/Report from the Performance Explorer menu bar.<br />
The Select Result File dialog appears.<br />
4 Locate the time series data (.tsd) file for which you want to see a report<br />
and click Open.<br />
5 In the tree-view area, expand the folder that contains the measure types<br />
you want to add to the report.<br />
6 Drag and drop the measure you want onto the report.<br />
7 Repeat the drag-and-drop procedure as often as is necessary to add<br />
elements to the report.<br />
SilkPerformer User Guide 219
10 EXPLORING TEST RESULTS<br />
Performance Explorer<br />
Multiple tests<br />
Viewing multiple test<br />
results in a graph<br />
Viewing multiple test<br />
results in a report<br />
Procedure To view the results of multiple load tests in a graph:<br />
1 Click the Explore Results button on the SilkPerformer Workflow bar.<br />
The Workflow - Explore Results dialog appears.<br />
2 Click the Performance Explorer button.<br />
Performance Explorer opens.<br />
3 Select File/New/Graph from the Performance Explorer menu bar.<br />
A new, empty graph appears.<br />
4 From the Performance Explorer menu bar, select Explore/Add Results;<br />
or right-click the project name in the tree-view area and choose Add<br />
Results.<br />
The Select Result File dialog appears.<br />
5 Use this dialog to specify results information from any load test to be<br />
made available for the graph.<br />
The data is added to the resources available in the tree-view area.<br />
6 Continue adding results information from as many load tests as is<br />
required.<br />
7 In the tree-view area, expand the folders for the load tests and measure<br />
types you want to see in your graph.<br />
8 Drag and drop the measures you require onto the graph.<br />
Procedure To view the results of multiple load tests in a report:<br />
1 Click the Explore Results button on the SilkPerformer Workflow bar.<br />
The Workflow - Explore Results dialog appears.<br />
2 Click the Performance Explorer button.<br />
Performance Explorer opens.<br />
3 Select File/New/Report in the Performance Explorer menu bar.<br />
A new, empty report appears.<br />
4 From the Performance Explorer menu bar, select Explore/Add Results;<br />
or right-click the project name in the tree-view area and choose Add<br />
Results.<br />
The Select Result File dialog appears.<br />
5 Use this dialog to specify results information from any load test to be<br />
made available for the report.<br />
The data is added to the resources available in the tree-view area.<br />
6 Continue adding results information from as many load tests as is<br />
required.<br />
220 SilkPerformer User Guide
10 EXPLORING TEST RESULTS<br />
Performance Explorer<br />
7 In the tree-view area, expand the folders for the load tests and measure<br />
types you want to see in your report.<br />
8 Drag and drop the measures you require onto the report.<br />
Monitoring data<br />
Viewing results and<br />
monitoring data in a<br />
graph<br />
Viewing results and<br />
monitoring data in a<br />
report<br />
Procedure To view test results and monitoring data in a graph:<br />
1 Click the Explore Results button on the SilkPerformer Workflow bar.<br />
The Workflow - Explore Results dialog appears.<br />
2 Click the Performance Explorer button.<br />
Performance Explorer opens.<br />
3 Select File/New/Graph from the Performance Explorer menu bar.<br />
A new, empty graph appears.<br />
4 From the Performance Explorer menu bar, select Explore/Add Results;<br />
or right-click the project name in the tree-view area and choose Add<br />
Results.<br />
The Select Result File dialog appears.<br />
5 Use this dialog to specify results information from the load test you want<br />
to be made available for the graph.<br />
These tsd files contain the following data: m@... contains merged times<br />
series data of the load test, i@... contains information from the agent,<br />
u@... contains user specific data, r@... contains server monitor data<br />
The data is added to the resources available in the tree-view area.<br />
6 Use the Select Result File dialog again, this time to locate monitoring<br />
information generated during server monitoring.<br />
7 In the tree-view area, expand the folders for the load test and monitoring<br />
data you want to see in your graph.<br />
8 Drag and drop the measures you require onto the graph.<br />
To view test results and monitoring data in a report:<br />
1 Click the Explore Results button on the SilkPerformer Workflow bar.<br />
The Workflow - Explore Results dialog appears.<br />
2 Click the Performance Explorer button.<br />
Performance Explorer opens.<br />
3 Select File/New/Report from the Performance Explorer menu bar.<br />
A new, empty report appears.<br />
SilkPerformer User Guide 221
10 EXPLORING TEST RESULTS<br />
Performance Explorer<br />
Customizing graphs<br />
4 From the Performance Explorer menu bar, select Explore/Add Results;<br />
or right-click the project name in the tree-view area and choose Add<br />
Results.<br />
The Select Result File dialog appears.<br />
5 Use this dialog to specify results information from the load test you<br />
require to be made available for the report.<br />
The data is added to the resources available in the tree-view window.<br />
6 Use the Select Result File dialog again, this time to locate monitoring<br />
information generated during server monitoring. Files beginning with<br />
r@... contain server monitoring data.<br />
7 In the tree-view area, expand the folders for the load test and monitoring<br />
data you want to see in your report.<br />
8 Drag and drop the measures you require onto the report.<br />
Procedure To customize the graph you are viewing:<br />
1 To view and edit properties for your graph, click the View Properties<br />
button on the Performance Explorer toolbar.<br />
The Properties dialog appears at the General tab.<br />
2 Use the View Description area to see information about the current<br />
graph.<br />
3 Click the Chart tab to edit display options for the current graph.<br />
4 Use the View Options area to specify chart settings. You can specify<br />
whether to display the currently selected series as a thicker line and<br />
whether to assume that all time series start at the same time.<br />
5 Select the Highlight Selected Series option to display the currently<br />
selected series as a thicker line. While this option may be useful as long<br />
as you are working with your charts, you should disable the option<br />
before you export or print your charts.<br />
6 Select the Overlay series option to assume that all time series that are<br />
displayed in a chart start at the same time. You should use this option<br />
when you are viewing a chart that contains time series from load tests<br />
with different starting times.<br />
7 From the Background Color drop-down lists, select two colors that you<br />
want to use to enhance your charts. Performance Explorer displays a<br />
vertical color transition from the first to the second color as the<br />
background image. To use custom colors, click the buttons to the right of<br />
the drop-down lists.<br />
222 SilkPerformer User Guide
10 EXPLORING TEST RESULTS<br />
Performance Explorer<br />
8 From the Text and grid color drop-down list, select the color that you<br />
want to use for the axis information and the grid in your charts. To use a<br />
custom color, click the button to the right of the drop-down list.<br />
9 Use the Scaling Options area to determine whether you want to display<br />
real time series data values or to scale values between 0 and 100.<br />
10 Select the Scale displayed values between 0 and 100 option to display<br />
scaled values rather than real time series data values.<br />
Select the Display real values option to display real time series data<br />
values rather than scaled ones.<br />
11 Click OK exit the dialog and implement your changes in the graph.<br />
12 To change the appearance of a selected time series element in your<br />
graph, use the Series Color, Line Width, and Line Style drop-down lists<br />
in the Performance Explorer toolbar.<br />
13 To expand an area in your graph, click the left edge of the area you want<br />
to expand and drag to the right edge of the area.<br />
The area is highlighted as you drag, and is expanded when you release<br />
the mouse button.<br />
14 To undo the area expansion, drag in the opposite direction on the graph,<br />
or click the Zoom out button on the toolbar.<br />
15 Use the Source Type drop-down list to choose the way in which<br />
measurement information for the time period in question is presented.<br />
Choose to have Performance Explorer calculate and use in the graph a<br />
sum of the values, their average, a count, the minimum or maximum<br />
value, or the standard deviation from the average.<br />
16 Use the Series scaling button to alter the multiple by which selected<br />
elements in a graph are scaled.<br />
17 Use the Series Type button to display graph elements as a simple line (the<br />
default), as a candle graph, as a candle graph with sticks or as an area<br />
series type. In a candle graph, each measurement is displayed with a<br />
vertical marker with a central button. The central button represents the<br />
average value for the time period involved, and the top and bottom of the<br />
marker represent the highest and lowest values of the standard deviation<br />
from the average. In a candle graph with sticks, two further values are<br />
displayed as lines on top of and below the marker; these are the<br />
maximum and minimum values for the period in question. In an area<br />
series type graph the data area is completely colored in.<br />
18 Use the Show Series Markers button to alternate between displaying<br />
actual measurement values on the graph itself or not.<br />
SilkPerformer User Guide 223
10 EXPLORING TEST RESULTS<br />
Performance Explorer<br />
Comparing graphs<br />
Viewing a results<br />
graph in a Web<br />
browser<br />
19 Use the Show Null Values button to show values where no measurements<br />
were made during the interval.<br />
20 Use the Toggle Highlight button to alternate between showing a selected<br />
graph element (or elements) highlighted with a bold line or not.<br />
21 To choose between seeing the lower part of the graph window in which<br />
the measure type legends appear or not, use the Toggle legends button.<br />
22 To choose between having a frame with title bar or not on your graph,<br />
use the Toggle Frames button.<br />
23 Use the Toggle Scaling button to alternate between showing real values<br />
and showing values scaled between 0 and 100 in the vertical axis in your<br />
graph. Note that Performance Explorer initially chooses a scale for the<br />
graph that will provide a clear display.<br />
24 To use logarithmic scaling for the vertical axis of your graph, use the<br />
Logarithmic Y-axis button.<br />
25 Use the Toggle Overlay button to have the start points of all measures<br />
displayed in your graph coordinated at the zero point on the horizontal<br />
axis. This is useful where comparisons need to be made between<br />
measurements from load tests that started at different times.<br />
Procedure To use similar graphs for comparing different sets of results:<br />
1 With the initial graph that you want to use for comparison purposes<br />
open, click the Compare Graph button on the Performance Explorer<br />
Workflow bar.<br />
The Compare TSD File dialog opens.<br />
2 Locate and open the time series data (.tsd) file from the load test whose<br />
results you want to see in a graph similar to your initial one.<br />
A new graph appears, populated with the same elements as the initial<br />
graph, if available.<br />
3 Resize and relocate the graphs as necessary to facilitate comparisons.<br />
Procedure To view a results graph in a Web browser:<br />
1 In Performance Explorer, create or open the graph that you want to view<br />
in a Web browser.<br />
2 Click the View as HTML button on the Performance Explorer Workflow<br />
bar.<br />
The View as HTML dialog appears.<br />
3 Click OK.<br />
Your Web browser opens and displays your graph, now ready for<br />
publication on the Web, if you want.<br />
224 SilkPerformer User Guide
10 EXPLORING TEST RESULTS<br />
Performance Explorer<br />
Viewing a results<br />
report in a Web<br />
browser<br />
Setting chart options<br />
Procedure To view a results report in a Web browser:<br />
1 In Performance Explorer, create or open the report that you want to view<br />
in a Web browser.<br />
2 Click the View as HTML button on the Performance Explorer Workflow<br />
bar.<br />
The View as HTML dialog appears.<br />
3 Click OK.<br />
Your Web browser opens and displays your report.<br />
Procedure To set default charting options:<br />
1 Click the Explore Results button on the SilkPerformer Workflow bar.<br />
The Workflow - Explore Results dialog appears.<br />
2 Click the Performance Explorer button.<br />
Performance Explorer opens.<br />
You can also access Performance Explorer by selecting Results/Explore<br />
Time Series from the SilkPerformer menu bar.<br />
3 Select Settings/Options from the Performance Explorer menu bar.<br />
The Performance Explorer Options dialog opens at the Chart tab.<br />
4 Use the View Options area to specify chart settings. You can specify<br />
whether to display the currently selected series with an emphasized,<br />
thicker line and whether to assume that all time series start at the same<br />
time.<br />
5 Select the Highlight Selected Series option to display the currently<br />
selected series with an emphasized, thicker line. While this option may<br />
be useful as long as you are working with your charts, you should disable<br />
the option before you export or print your charts.<br />
6 Select the Overlay series option to assume that all time series that are<br />
displayed in a chart start at the same time. You should use this option<br />
when you are viewing a chart that contains time series from load tests<br />
with different starting times.<br />
7 From the Background Color drop-down lists, select two colors that you<br />
want to use to enhance your charts. Performance Explorer displays a<br />
vertical color transition from the first to the second color as the<br />
background image. To use custom colors, click the buttons to the right of<br />
the drop-down lists.<br />
8 From the Text and grid color drop-down list, select the color that you<br />
want to use for the axis information and the grid in your charts. To use a<br />
custom color, click the button to the right of the drop-down list.<br />
SilkPerformer User Guide 225
10 EXPLORING TEST RESULTS<br />
Performance Explorer<br />
Setting time series<br />
data options<br />
Setting options for<br />
exporting result<br />
graphs<br />
9 Use the Scaling Options area to determine whether you want to display<br />
real time series data values or to scale values between 0 and 100.<br />
10 Select the Scale displayed values between 0 and 100 option to display<br />
scaled values rather than real time series data values.<br />
Select Display real values option to display real time series data values<br />
rather than scaled ones.<br />
11 Click OK.<br />
Procedure To set default options that are specific to time series data:<br />
1 From the Performance Explorer menu bar, select Settings/Options.<br />
The Performance Explorer Options dialog opens at the Chart tab.<br />
2 Click the Series tab.<br />
3 In the Default settings area, select the Ignore NULL values option if you<br />
want to hide null values by default. You can use the Show Null Values<br />
button on the Performance Explorer toolbar to specify whether to display<br />
null values separately for each series.<br />
4 From the Show summary and counter values per drop-down list, select<br />
the time unit for which you want time series data to be displayed. Select<br />
the Interval at which you want to have data displayed for the<br />
computation interval contained in the tsd, or select Second to have data<br />
displayed scaled to one-second intervals. To change the default<br />
computation interval, use the Time Series tab of the Profile Settings –<br />
Results dialog.<br />
5 From the Default line width drop-down list, select a line width that will<br />
be used whenever you add a new time series to a chart.<br />
6 Use the Markers area to specify whether to display chart markers<br />
indicating exact measurement values for each series.<br />
7 Select the Show chart markers option to display a chart marker for each<br />
measure value of each series, indicating the exact measure value.<br />
8 In the Decimal digits field, enter the number of digits to be displayed in<br />
the chart markers. Chart markers can be used to display exact<br />
measurement values for each series within a chart.<br />
9 Click OK.<br />
Procedure To set default options for exporting results graphs:<br />
1 From the Performance Explorer menu bar, select Settings/Options.<br />
The Performance Explorer Options dialog opens at the Chart tab.<br />
2 Click the HTML View tab.<br />
226 SilkPerformer User Guide
10 EXPLORING TEST RESULTS<br />
Performance Explorer<br />
Setting options for<br />
candle graphs<br />
Setting monitoring<br />
options<br />
3 Select an option in the Chart picture resolution area to determine the<br />
resolution of the image that is generated when you export a chart as an<br />
HTML document. Keep in mind that the higher the resolution, the larger<br />
the generated image file will be and the longer it will take to transfer the<br />
HTML document over the Web.<br />
Select the User-defined option to use a custom resolution, and add<br />
appropriate values in the fields.<br />
4 Use the Picture type area to select the picture format of your chart in an<br />
HTML document.<br />
Select the JPEG option to include the chart in an HTML document as a<br />
JPEG file (Joint Photographic Experts Group).<br />
Select the BMP (only with Internet Explorer) option to include the chart<br />
in an HTML document as a BMP file (Microsoft Bitmap).<br />
5 Click OK.<br />
Procedure To set default options for candle graphs:<br />
1 From the Performance Explorer menu bar, select Settings/Options.<br />
The Performance Explorer Options dialog opens at the Chart tab.<br />
2 Click the Candles tab.<br />
3 Use the Candle style area to define the width and the border color for the<br />
candles in your current graph.<br />
4 From the Border color drop-down list, select the color you want to use<br />
for the candle borders in your current graph. Click the button to the right<br />
of the drop-down list to define a custom color.<br />
5 In the Candle width field, enter the width for the candles in your current<br />
graph. Click the buttons to the right of the field to raise and lower the<br />
width.<br />
6 Use the Marker style area to define the height and color for the markers<br />
that indicate the mean values of the series in your current chart.<br />
7 From the Marker color drop-down list, select the color you want to use<br />
for the markers. Click the Browse (...) button to the right of the dropdown<br />
list to define a custom color.<br />
8 In the Marker height field, enter the height for the markers. Click the<br />
buttons to the right of the field to raise and lower the height.<br />
9 Click OK.<br />
Procedure To set default monitoring options:<br />
1 From the Performance Explorer menu bar, select Settings/Options.<br />
The Performance Explorer Options dialog opens at the Chart tab.<br />
SilkPerformer User Guide 227
10 EXPLORING TEST RESULTS<br />
Performance Explorer<br />
Setting time series<br />
data writer options<br />
Setting report options<br />
2 Click the Monitor tab.<br />
3 In the Interval fields in the Monitor options area, set the length of the<br />
intervals at which the graph is updated. Click the buttons to the right of<br />
the field to raise and lower the interval and to set the interval time unit.<br />
4 In the Page size field, set the number of measure points currently<br />
displayed per graph on the horizontal axis.<br />
5 In the History size field, set the number of measure points stored for the<br />
entire graph on the horizontal axis.<br />
6 Use the View options area to set display options for your real-time charts.<br />
You can change the color settings in your charts, in the axis information,<br />
and in your chart grid.<br />
7 From the Background colors drop-down lists, select two colors that you<br />
want to use to enhance your charts. Performance Explorer displays a<br />
vertical color transition from the first to the second color as the<br />
background image. Click the buttons to the right of the drop-down lists<br />
to select custom colors.<br />
8 From the Text and grid color drop-down list, select the color that you<br />
want to use for the axis information and the grid in your charts. Click the<br />
Browse (...) button to the right of the drop-down lists to select a custom<br />
color.<br />
9 Click OK.<br />
Procedure To set default options for the time series data writer:<br />
1 From the Performance Explorer menu bar, select Settings/Options.<br />
The Performance Explorer Options dialog opens at the Chart tab.<br />
2 Click the TSD-Writer tab.<br />
3 Use the TSD-Writer area to set options for the facility that creates time<br />
series date (.tsd) files from monitoring data.<br />
4 In the Interval fields in the TSD-Writer area, select a time interval value<br />
and a time unit for which time series data will be written.<br />
5 Click OK.<br />
Procedure To set default options for reporting:<br />
1 From the Performance Explorer menu bar, select Settings/Options.<br />
The Performance Explorer Options dialog opens at the Chart tab.<br />
2 Click the Reporting tab.<br />
3 Select the Generate overview reports automatically option for<br />
Performance Explorer to automatically display a summary overview<br />
report when you start exploring the results of a load test. An overview<br />
228 SilkPerformer User Guide
10 EXPLORING TEST RESULTS<br />
Reports<br />
report contains the most important results of a load test, for example, the<br />
number of virtual users that were active, the number of transactions that<br />
were executed, and the number of errors that occurred.<br />
4 Select the Show NULL values in charts option if you want null values to<br />
be displayed in the charts. If you disable this option, Performance<br />
Explorer replaces each null value with a direct line from the preceding to<br />
the following value.<br />
5 Select Use template when creating a new overview report if you want to<br />
use a previously stored template for the creation of overview reports.<br />
Select an appropriate template with the browse button.<br />
6 Click OK.<br />
Reports<br />
Virtual User Report<br />
files<br />
Virtual User Output<br />
files<br />
Overview Report<br />
Report files contain the simulation results for each virtual user. Details of the<br />
measurements for each individual user are presented in tabular form. The many<br />
sections in these files include reports on transactions, timers, Web page timers,<br />
and counters, and also sections on IIOP, Web form, TUXEDO, and SQL results.<br />
Output files contain the output of write statements used in the test script. An<br />
output file is generated for a particular user only if write statements are executed<br />
by that user.<br />
However, generating output files alters the time measurements of a load test.<br />
Therefore, these files should be used for debugging purposes only, and should<br />
never be generated for a full load test.<br />
After a load test has completed, Performance Explorer provides an overview<br />
report for the load test. This report includes the most important test results in<br />
tabular and graphical form. It comprises the following sections:<br />
• General information<br />
• Summary tables<br />
• User types<br />
• Custom charts<br />
• Custom tables<br />
• Detailed charts<br />
General information<br />
The general information section includes administrative information in tabular<br />
form as well as important load test results in a graphical form.<br />
Administrative information includes the project name, a description of the<br />
project, the load test number, a description of the load test, the date of the load<br />
SilkPerformer User Guide 229
10 EXPLORING TEST RESULTS<br />
Measurements<br />
test, the duration of the load test, the number of used agent computers, and the<br />
number of virtual users that were running.<br />
The charts display the number of active virtual users, response time<br />
measurements for transactions, and the number of errors that occur over time.<br />
Transaction response times are provided for successfully executed transactions,<br />
for failed transactions, and for cancelled transactions.<br />
Additional charts display summary measurements related to the type of load<br />
testing project. For example, in the case of Web application testing, response<br />
time measurements for Web pages are presented in a graph.<br />
Summary tables<br />
This section contains summary measurements in tabular form, that is, aggregate<br />
measurements for all virtual users. The first table provides general information,<br />
such as the number of transactions that were executed and the number of errors<br />
that occurred. All the following tables provide summary information relevant to<br />
the type of application that was tested.<br />
User types<br />
For each user group, this section provides detailed measurements in tabular<br />
form. The measurements include transaction response times, individual timers,<br />
counters, and response time and throughput measurements related to the type of<br />
application that was tested (Web, database, CORBA, COM, or TUXEDO). In<br />
addition, errors and warnings for all user groups are listed.<br />
Custom charts<br />
This section contains graphs that you have added manually. You can add charts<br />
to and remove charts from this section at any time. You can save your changes<br />
as a template to be displayed for every summary report.<br />
Custom tables<br />
This section contains tables that you have added manually. You can add tables<br />
to and remove tables from this section at any time. You can save your changes<br />
as a template to be displayed for every summary report.<br />
Detailed charts<br />
This section provides enlarged versions of the charts included in the report.<br />
Click a reduced version of a chart to jump to the enlarged version, and vice<br />
versa.<br />
Measurements<br />
A measure (also named a “measure type”) is a generic term for a measurement<br />
of performance taken during a load test. Measures can be either timers or<br />
counters. Timers collect data related to response times, and counters collect data<br />
on throughput and load test events.<br />
SilkPerformer provides the following types of measurements:<br />
230 SilkPerformer User Guide
10 EXPLORING TEST RESULTS<br />
Measurements<br />
Summary<br />
measurements<br />
• “Summary measurements”<br />
• “Individual measurements”<br />
• “Web page measurements”<br />
• “Web form measurements”<br />
• “WAP-specific measurements”<br />
• “CORBA-specific measurements”<br />
• “Database-specific measurements”<br />
• “Middleware-specific measurements”<br />
• “Citrix-specific measurements function”<br />
• “Custom measurements”<br />
The Summary measurement group contains summarized measurements on a<br />
global level. It contains measurement types that aggregate individual<br />
measurements from other measurement groups as well as measurement types<br />
that represent information on a global level that is not included in other<br />
measurement groups. The summary measurement group contains only counters;<br />
it does not contain timers. It represents a fixed set of global measurements that<br />
are collected only during the measurement period, thus excluding the warm-up<br />
and shutdown period of the load test. The Summary group contains the<br />
following measurement types, which are available as real-time data and time<br />
series data (tsd):<br />
General measurement types<br />
Measurement<br />
Description<br />
Active users The number of active virtual users. A virtual user is<br />
regarded as active if it has been started and is<br />
currently in one of the following states: executing,<br />
warm up, wait database, loading documents, wait<br />
resource, rendezvous, thinktime, and shutdown.<br />
Transactions The number of SilkPerformer transactions that<br />
have completed.<br />
Errors<br />
The number of API errors, including Internet,<br />
WAP, database, and middle ware APIs. An API<br />
error is counted if the severity is "error" or higher<br />
("transaction exit" or "process exit"). An error is<br />
ignored if the severity is "informational" or<br />
"warning."<br />
Table 9: General measurement types<br />
SilkPerformer User Guide 231
10 EXPLORING TEST RESULTS<br />
Measurements<br />
Agent health control measurements<br />
Measurement<br />
Internet-related measurement types<br />
Description<br />
CPU utilization The percentage of time that a processor is busy<br />
executing tasks. If the processor utilization is<br />
equal to or near 100%, the computer has run<br />
out of available processing capacity.<br />
Memory<br />
The percentage amount of memory allocated<br />
by the driver machine in relation to the<br />
available amount of RAM. High memory<br />
utilization indicates that the driver machine is<br />
low on available memory, and this can cause<br />
disk swapping, which degrades the overall<br />
performance of the computer.<br />
Responsiveness The ratio of the defined execution time for a<br />
task to its measured execution time, expressed<br />
as a percentage. It indicates how quickly the<br />
computer becomes available for a specific task.<br />
In the case of a lightly loaded driver machine,<br />
the ratio will be equal to or very close to 100%.<br />
Table 10: Agent health control measurements<br />
Measurement<br />
Description<br />
Concurrent connections The number of currently open TCP/IP<br />
connections.<br />
Requests sent<br />
The number of HTTP requests sent by<br />
browser-level or WAP functions, the<br />
number of data packets sent by TCP/IPlevel<br />
functions, or the number of<br />
commands sent by POP3, SMTP, FTP, or<br />
LDAP function calls. SilkPerformer also<br />
includes LDAP traffic in this measurement;<br />
it reports the number of LDAP requests<br />
sent. Note that IIOP uses other counters.<br />
Requests failed<br />
The number of the requests listed above<br />
that are not sent or executed successfully.<br />
Note that IIOP uses other counters.<br />
Table 11: Internet-related measurement types<br />
232 SilkPerformer User Guide
10 EXPLORING TEST RESULTS<br />
Measurements<br />
Measurement<br />
Description<br />
Request data sent[KB] The amount of data (in KB) sent to the<br />
server, including header and body content<br />
information as well as all TCP/IP-related<br />
traffic (HTTP, native TCP/IP, IIOP, POP3,<br />
SMTP, FTP, LDAP), secure traffic over<br />
SSL/TLS, and WAP. It does not include<br />
data overhead caused by encryption using<br />
SSL/TLS or other API-related traffic like<br />
TUXEDO ATMI, ODBC, and Oracle OCI.<br />
Responses received The number of HTTP responses received<br />
by browser-level and WAP functions, the<br />
number of data packets received by TCP/<br />
IP-level functions, and the number of<br />
responses received by POP3, SMTP, FTP,<br />
and LDAP functions. Note that IIOP uses<br />
other counters.<br />
Responses failed<br />
The number of the expected responses that<br />
are not received successfully. Note that<br />
IIOP uses other counters.<br />
Response data received[KB] The amount of data (in KB) received from<br />
the server, including header and body<br />
content information as well as TCP/IPrelated<br />
traffic (HTTP, native TCP/IP, IIOP,<br />
POP3, SMTP, FTP, and LDAP), secure<br />
traffic over SSL/TLS, and WAP. It does<br />
not include API-related traffic like<br />
TUXEDO ATMI, ODBC, and Oracle OCI.<br />
Connects successful The number of successful TCP/IP connects<br />
to the remote hosts established by browserlevel,<br />
TCP/IP-level, IIOP, SMTP, POP3,<br />
FTP, or LDAP functions; this include also<br />
the number of successful connects by WAP<br />
functions.<br />
Table 11: Internet-related measurement types<br />
SilkPerformer User Guide 233
10 EXPLORING TEST RESULTS<br />
Measurements<br />
Measurement<br />
Connects failed<br />
The number of TCP/IP connection failures<br />
caused by invalid host names, invalid IP<br />
addresses, invalid ports, unavailable remote<br />
hosts, network-related problems, or<br />
authentication failures. This counter is used<br />
by browser-level, TCP/IP-level, IIOP,<br />
SMTP, POP3, FTP, and LDAP functions.<br />
Note that by default browser-level<br />
functions perform up to three connect<br />
attempts (up to two retries).<br />
Note: By default browser-level functions<br />
perform up to three connection attempts<br />
(up to two retries). Only if all attempts fail,<br />
a failure is recorded.<br />
This measurement includes also the<br />
number of connections that could not be<br />
established by WAP functions.<br />
Connects retries<br />
The number of attempts to connect to the<br />
server if the initial connection fails.<br />
Table 11: Internet-related measurement types<br />
Web-specific measurements<br />
Measurement<br />
Description<br />
Description<br />
HTTP request retries The number of times a client is forced to retry a<br />
request. This may happen when the server<br />
closes a persistent connection (available with<br />
Keep-Alive or HTTP/1.1) because of a timeout<br />
occurring while the client tries to send a<br />
request. This counter is used only by browserlevel<br />
functions.<br />
HTTP redirections The number of HTTP redirections performed<br />
due to a Web server response with status code<br />
3xx. This measurement is incremented only by<br />
Web and WAP functions.<br />
Table 12: Web-specific measurements<br />
234 SilkPerformer User Guide
10 EXPLORING TEST RESULTS<br />
Measurements<br />
Measurement<br />
HTTP re-authentications<br />
HTTP hits<br />
Hits failed<br />
HTTP 1xx responses<br />
HTTP 2xx responses<br />
HTTP 3xx responses<br />
HTTP 4xx responses<br />
HTTP 5xx responses<br />
HTTP cache conditional<br />
reloads<br />
HTTP cache hits<br />
Description<br />
Table 12: Web-specific measurements<br />
The number of re-authentications necessary<br />
because of a status code 401 or 407 returned by<br />
the Web server. This counter is used only by<br />
Web and WAP functions that perform basic<br />
authentication.<br />
The number of HTTP requests that arrive at the<br />
Web server. This measurement is incremented<br />
only by Web and WAP functions.<br />
The number of failed HTTP requests. This<br />
measurement is incremented only by Web and<br />
WAP functions.<br />
The number of HTTP responses containing<br />
status codes indicating that their content has the<br />
status "informational". This measurement is<br />
incremented by Web and WAP functions.<br />
The number of HTTP responses containing<br />
status codes indicating successful requests.<br />
This measurement is incremented by Web and<br />
WAP functions.<br />
The number of HTTP responses containing<br />
status codes indicating redirected requests. This<br />
measurement is incremented by Web and WAP<br />
functions.<br />
The number of HTTP responses containing<br />
status codes indicating client errors. This<br />
measurement is incremented by Web and WAP<br />
functions.<br />
The number of HTTP responses containing<br />
status codes indicating server errors. This<br />
measurement is incremented by Web and WAP<br />
functions.<br />
The number of requests sent to the server to<br />
download an item if its content has changed<br />
since it was last placed in the cache.<br />
The number of times requests are fulfilled from<br />
the cache.<br />
SilkPerformer User Guide 235
10 EXPLORING TEST RESULTS<br />
Measurements<br />
Measurement<br />
HTTP cookies sent The number of cookies sent by browser-level<br />
functions. Note that the header line of an HTTP<br />
cookie request may contain multiple cookies;<br />
each cookie in the header is counted.<br />
HTTP cookies received The number of cookies received by browserlevel<br />
functions. Note that an HTTP response<br />
may include multiple cookie header lines; each<br />
cookie of these header lines is counted.<br />
HTTP pages<br />
The number of HTML pages requested by the<br />
page-level API or by the browser-level API<br />
when Java script simulation is enabled.<br />
Table 12: Web-specific measurements<br />
IIOP-related measurement types<br />
Measurement<br />
Description<br />
Description<br />
IIOP messages<br />
The number of IIOP messages sent by<br />
SilkPerformer.<br />
IIOP requests<br />
The number of IIOP request messages sent by<br />
SilkPerformer.<br />
IIOP loc requests The number of IIOP locate request messages<br />
sent by SilkPerformer.<br />
IIOP fragments sent The number of fragmented IIOP messages<br />
sent by SilkPerformer.<br />
IIOP replies OK<br />
The number of IIOP reply messages with<br />
status OK received by SilkPerformer.<br />
IIOP replies exception The number of IIOP reply messages with the<br />
status "exception raised" received by<br />
SilkPerformer. This count includes system<br />
exceptions as well as user exceptions.<br />
IIOP replies obj moved The number of IIOP reply messages with the<br />
status "object has moved." This status<br />
message causes SilkPerformer to reissue the<br />
request to the new location.<br />
Table 13: IIOP-related measurement types<br />
236 SilkPerformer User Guide
10 EXPLORING TEST RESULTS<br />
Measurements<br />
Measurement<br />
IIOP request timed out<br />
IIOP loc replies obj here<br />
IIOP loc replies obj<br />
unknown<br />
IIOP loc replies obj moved<br />
IIOP message errors<br />
Database-specific measurements<br />
The number of times the time limit for<br />
receiving data (specified in the load testing<br />
script) was exceeded while waiting for a<br />
pending reply. Whenever the time limit is<br />
exceeded, no reply is received and<br />
SilkPerformer sends an IIOP "Cancel<br />
Request" message to inform the server about<br />
the aborted operation.<br />
The number of IIOP "Locate Reply" messages<br />
with status "object here" received by<br />
SilkPerformer.<br />
The number of IIOP "Locate Reply" messages<br />
with status "object unknown" received by<br />
SilkPerformer.<br />
The number of IIOP "Locate Reply" messages<br />
with status "object moved" received by<br />
SilkPerformer.<br />
The number of IIOP error messages received<br />
by SilkPerformer.<br />
IIOP fragments received The number of fragmented IIOP messages<br />
received by SilkPerformer.<br />
IIOP loc request timed out The number of times that the time limit for<br />
receiving data (specified in the load testing<br />
script) was exceeded while waiting for a<br />
pending locate reply. Whenever the time limit<br />
is exceeded, no locate reply is received and<br />
SilkPerformer sends an IIOP "Cancel<br />
Request" message to inform the server about<br />
the aborted operation.<br />
Table 13: IIOP-related measurement types<br />
Measurement<br />
Description<br />
Description<br />
SQL commands The number of SQL commands sent to the<br />
DBMS for execution.<br />
Table 14: Database-specific measurements<br />
SilkPerformer User Guide 237
10 EXPLORING TEST RESULTS<br />
Measurements<br />
Measurement<br />
Open database logins<br />
Open database cursors<br />
Description<br />
Table 14: Database-specific measurements<br />
Counts the currently open database sessions.<br />
This is relevant for the OCI, ODBC, and<br />
ODBC high level interfaces (This measurement<br />
is not available in report files).<br />
Counts the currently opened database cursors<br />
(handles). This is relevant for the OCI, ODBC,<br />
and ODBC high level interfaces. For ODBC,<br />
only OdbcClose calls with the SQL_DROP<br />
option will decrease this measure value. (This<br />
measurement is not available in report files).<br />
Individual<br />
measurements<br />
Transactions<br />
measurement group<br />
The SilkPerformer controller computer collects a subset of the summary<br />
measurements at regular time intervals for all of the virtual users and agents<br />
participating in a load test. It generates a time series data file (.tsd). After a load<br />
test is complete, the data from the controller computer can be analyzed using<br />
Performance Explorer.<br />
The transactions measurement group contains response time data on the<br />
transaction level. For each transaction defined in your load test script, a<br />
measurement of this group type is automatically created, using the name of the<br />
transaction as the key for the measurements. The measurement group contains<br />
the following measurement types:<br />
Measurement<br />
Description<br />
Trans. ok[s]<br />
The response time for successful transactions,<br />
in seconds. A transaction time is reported in<br />
this measure type if no API function call<br />
performed within the transaction returns an<br />
error message.<br />
Trans.(busy) ok[s] The busy time for successful transactions, in<br />
seconds. A transaction busy time is the<br />
transaction response time without any think<br />
time. A transaction time is reported in this<br />
measure type if no API function call performed<br />
within the transaction returns an error message.<br />
Trans. failed[s] The response time for failed transactions. A<br />
transaction time is reported in this measure type<br />
if at least one error of severity "error" or higher<br />
occurs within the transaction.<br />
Table 15: Transaction measurement types<br />
238 SilkPerformer User Guide
10 EXPLORING TEST RESULTS<br />
Measurements<br />
Measurement<br />
Description<br />
Trans.(busy) failed[s] The busy time for failed transactions. A<br />
transaction busy time is the transaction<br />
response time without any think time. A<br />
transaction time is reported in this measure type<br />
if at least one error of severity “error” or higher<br />
occurs within the transaction.<br />
Trans. canceled[s] The response time for canceled transactions. A<br />
transaction time is reported in this measure type<br />
if a return statement in the script is issued with<br />
a return value of 1.<br />
Table 15: Transaction measurement types<br />
Web page<br />
measurements<br />
The Web page measurement group contains the measurement types related to<br />
Web pages. For each Web page that is downloaded during a load test, a<br />
measurement group will be created automatically with the name of the Web<br />
page as the key. This measurement group contains the following types of<br />
measurements.<br />
Measurement<br />
Page time[s]<br />
Document download<br />
time[s]<br />
Server busy time[s]<br />
Page data[kB]<br />
Embedded objects<br />
data[kB]<br />
Description<br />
Table 16: Web page measurement types<br />
The time it takes to retrieve an entire Web page<br />
from the server, that is, for retrieving all HTML<br />
documents and all embedded documents, such<br />
as images, videos, and audio files.<br />
The time it takes to retrieve all HTML<br />
documents of a Web page.<br />
The time the server takes to process a Web page<br />
request. This measurement starts after a virtual<br />
user has sent the last byte of the request and<br />
ends when the user retrieves the first byte of the<br />
response.<br />
The sum of data for all requests and responses<br />
related to the request and retrieval of an entire<br />
Web page including all embedded objects.<br />
The sum of data for all requests and responses<br />
related to the request and retrieval of objects<br />
embedded on a Web page.<br />
Web form<br />
measurements<br />
The Web form measurement group contains the measure types related to forms<br />
declared in the dclform section of a load test script. The Web form measurement<br />
SilkPerformer User Guide 239
10 EXPLORING TEST RESULTS<br />
Measurements<br />
group provides response time and throughput rates for form submissions with<br />
the POST, GET, and HEAD command sent by scripting function calls. For each<br />
form declared in the dclform section, a measurement group will be created<br />
automatically with the name of the form as the key. The Web form<br />
measurement group contains the following measurement types:<br />
Measurement<br />
Server busy time[s]<br />
Round trip time[s]<br />
Hits<br />
Request data sent[KB]<br />
Response data<br />
received[KB]<br />
Description<br />
Table 17: Web form measurement types<br />
Measurement starts after the user has sent the<br />
complete request, and ends when the user<br />
receives the first part of the response.<br />
The time it takes to send a request and receive<br />
the appropriate response. It also includes the<br />
connect and shutdown time when the<br />
connection is not persistent (the connection may<br />
persist if the Keep-Alive option is enabled or<br />
HTTP/1.1 is used).<br />
The number of successful form submissions.<br />
The amount of data (in KB) sent to the Web<br />
server during submission of a form. This also<br />
includes HTTP header and body content<br />
information. The count specifies the number of<br />
Web server requests sent.<br />
The amount of data (in KB) received from the<br />
Web server in response to the submission of a<br />
form. This also includes HTTP response header<br />
and body content information. The count<br />
specifies the number of Web server responses<br />
received.<br />
WAP-specific<br />
measurements<br />
The WAP measurement group contains the measure types related to WAP<br />
requests and WAP pushes. It contains the following measurement types:<br />
Measurement<br />
Description<br />
WAP request<br />
Measures the time from sending a URL request<br />
to receiving the reply.<br />
WAP send retries Counts the number of protocol-specific retries<br />
to send a WAP package; when a request packet<br />
is sent successfully, the virtual user will receive<br />
a reply package from the gateway.<br />
Table 18: WAP-specific measurement types<br />
240 SilkPerformer User Guide
10 EXPLORING TEST RESULTS<br />
Measurements<br />
Measurement<br />
Description<br />
WAP pushes CL Counts the number of incoming connectionless<br />
pushes.<br />
WAP pushes CO Counts the number of incoming connectionoriented<br />
pushes.<br />
WAP pushes<br />
Counts the number of incoming pushes<br />
(connection-less and connection-oriented).<br />
Table 18: WAP-specific measurement types<br />
CORBA-specific<br />
measurements<br />
The IIOP measurement group contains the measurement types related to IIOP<br />
operations that are called within a load testing script. It provides response time<br />
and throughput ratings for the IIOP operation calls issued by the API function<br />
IiopRequest. With the IiopObjectSetMeasure and the IiopObjectBind function<br />
you can specify a prefix to the name of the measurement groups associated with<br />
the operations of a certain CORBA object. If you decide not to do so, the name<br />
of the operation is used as the name of the corresponding measurement group.<br />
The IIOP group contains the following measurement types:<br />
Measurement<br />
Description<br />
Round trip time[s] The time measured from when the processing<br />
of the IiopRequest function call begins to when<br />
the processing of the reply of the CORBA<br />
object ends.<br />
Server busy time[s] Measurement starts after a user has sent the last<br />
byte of the CORBA operation call, and ends<br />
when the user retrieves the first byte of the<br />
response of the operation call from the CORBA<br />
object.<br />
Table 19: CORBA-specific measurement types<br />
For non-blocking IIOP requests, these measurements are performed in the same<br />
way. Note that this can lead to a situation where the sum of all your measured<br />
times exceeds the total time of your load test.<br />
If a CORBA object decides to redirect a request, the IiopRequest function has to<br />
reissue this request to a different location. The result is two request/reply<br />
message pairs, where both are measured separately. As in the case of the<br />
measurement times for the IiopRequest function, the sum of both (separately<br />
measured) request/reply pairs is supplied.<br />
SilkPerformer User Guide 241
10 EXPLORING TEST RESULTS<br />
Measurements<br />
Database-specific<br />
measurements<br />
Middleware-specific<br />
measurements<br />
The SQL measurement group contains the following measurement types:<br />
Measurement<br />
Description<br />
Parse[s]<br />
The time it takes to prepare (Oracle<br />
terminology: parse) a SQL command. Preparing<br />
a SQL command usually includes a server round<br />
trip during which the SQL command is sent to<br />
the server. There the SQL command is parsed<br />
and transformed into an internal format that can<br />
be reused on subsequent calls of that SQL<br />
command.<br />
Note: If you use the OraParse function with the<br />
ORA_DEFERRED option, the parsing of the<br />
SQL command is deferred to the execute step,<br />
and therefore the server round-trip time is<br />
produced for the parse step. In this case, this<br />
measurement type is meaningless.<br />
Exec[s]<br />
The time in which a SQL command is executed.<br />
Executing a SQL command includes at least one<br />
server round trip for sending the command and<br />
returning the result to enable the SQL command<br />
to be executed. Because of the considerable<br />
amount of data processing required on the server<br />
for a SQL command, executing SQL commands<br />
usually generates a major part of the load on the<br />
database server. There is a separate<br />
measurement type in the SQL measurement<br />
group for fetching data. Fetching data can either<br />
be included as part of the execute step or in a<br />
separate step. In the latter case, results are not<br />
included in the SQL measurement group.<br />
ExecDirect[s]<br />
The time in which a SQL command is prepared<br />
and executed.<br />
Table 20: Database-specific measurement types<br />
The TUXEDO measurement group contains the measurement types related to<br />
TUXEDO service calls performed in a load testing script. It provides response<br />
time and throughput ratings for the TUXEDO service calls issued by the Tux_<br />
tpcall, Tux_tpacall, Tux_tpsend, Tux_tprecv, Tux_tpgetrply, Tux_tpenqueue,<br />
and Tux_tpdequeue functions. For each TUXEDO service used in these<br />
TUXEDO functions, a measurement group is created automatically with the<br />
242 SilkPerformer User Guide
10 EXPLORING TEST RESULTS<br />
Measurements<br />
name of the service as the key. The TUXEDO group contains the following<br />
measurement types:<br />
Measurement<br />
Response time[s]<br />
Request data sent[KB]<br />
Response data<br />
received[KB]<br />
Description<br />
The response time for a TUXEDO service call.<br />
For synchronous service calls, the response<br />
time includes the time the server needs to<br />
process the call. For asynchronous service<br />
calls, SilkPerformer reports the time that<br />
elapses between sending the request and<br />
receiving the reply, plus the time spent waiting<br />
for the request. Asynchronous service calls do<br />
not measure the time a server needs to execute<br />
the service. For send/request calls,<br />
SilkPerformer measures the time for sending<br />
data across an open connection as well as the<br />
time for receiving data from an open<br />
connection. For queuing communication, both<br />
the time required for sending the service call to<br />
the queue and the time for retrieving the results<br />
of a service call are measured.<br />
The amount of data (in KB) sent to the<br />
TUXEDO server for submission of a given<br />
service. SilkPerformer measures the<br />
application data buffer size used by the service<br />
calls rather than the transferred bytes on the<br />
network.<br />
The amount of data (in KB) received from the<br />
TUXEDO server by a given service.<br />
SilkPerformer measures the application data<br />
buffer size used by the service calls rather than<br />
the transferred bytes on the network.<br />
Table 21: Middleware-specific measurement types<br />
Citrix-specific<br />
measurements<br />
function<br />
There is currently only one Citrix-specific measurement available. The Citrix<br />
synchronization points measurement states how many synchronization<br />
functions already have been executed. The main purpose of this measurement is<br />
to visualize the progress of a transaction.<br />
Measurement<br />
Citrix Synchronization<br />
points<br />
Description<br />
Table 22: Citrix-specific measurement types<br />
The number of executed Citrix synchronization<br />
functions (CitrixWaitForXXX).<br />
SilkPerformer User Guide 243
10 EXPLORING TEST RESULTS<br />
Measurements<br />
Custom<br />
measurements<br />
Custom timer measurement group<br />
The Custom Timer measurement group contains the timers that are defined in<br />
the load testing script with the MeasureStart and the MeasureStop functions:<br />
Measurement<br />
Description<br />
Response time[s] The time measured between MeasureStart and<br />
MeasureStop function calls.<br />
Table 23: Custom timer measurement types<br />
Note: You can pause and resume timers with the MeasurePause and the<br />
MeasureResume function.<br />
Custom counter measurement group<br />
The Custom Counter measurement group contains the counters that are defined<br />
in the load testing script with the MeasureInc function:<br />
Measurement<br />
Description<br />
Custom counter Counts values that are set with the MeasureInc<br />
function.<br />
Table 24: Custom counter measurement types<br />
244 SilkPerformer User Guide
11<br />
Additional 1Chapter<br />
Workbench<br />
Features<br />
Introduction<br />
What you will learn<br />
This chapter explains some unique SilkPerformer Workbench features.<br />
This chapter contains the following sections:<br />
Section<br />
Page<br />
Overview 245<br />
Teamwork Features 246<br />
Code Completion 249<br />
Parameter Wizard 252<br />
Java Integration 256<br />
Converting CSV Data for Use With Silk Performance Explorer 259<br />
Overview<br />
This section details the following Workbench features:<br />
• “Teamwork Features”<br />
• “Code Completion”<br />
• “Parameter Wizard”<br />
• “Java Integration”<br />
• “Converting CSV Data for Use With Silk Performance Explorer”<br />
SilkPerformer User Guide 245
11 ADDITIONAL WORKBENCH FEATURES<br />
Teamwork Features<br />
Teamwork Features<br />
Importing/exporting<br />
projects<br />
Exporting projects<br />
Importing projects<br />
SilkPerformer Workbench enables you to export, import, email and upload<br />
SilkPerformer projects.<br />
SilkPerformer offers the option of exporting entire test projects to a separate<br />
directory or an archive file. Such exported project files can subsequently be<br />
imported into SilkPerformer.<br />
Procedure To export a project:<br />
1 From the SilkPerformer menu bar, select File/Export Project.<br />
The Export Project dialog appears.<br />
2 In the Export location area, specify the location to which you want to<br />
export your current load testing project. If you want to export all the<br />
project files to a directory, specify the directory name. If you want to<br />
export all the files to a ZIP archive, specify the archive name.<br />
Click the Browse (...) button to the right of the field to locate the<br />
directory or file to which you want to export your load testing project.<br />
3 Select the ZIP to single archive file option to export all files belonging to<br />
your current load testing project to a ZIP archive. This is useful when<br />
you want to backup your project or when you want to send a copy of<br />
your project to someone.<br />
4 In the Options area, select the Include results files of all tests option to<br />
export the results of all tests belonging to this project (i.e., the results of<br />
all try-script tests, find-baseline tests, and actual load tests). If you<br />
disable this option, only the results of the recent try-script test will be<br />
exported.<br />
5 Select the Protect ZIP file with password option to protect the export file<br />
(.ltz) with a password. This is useful when your project contains<br />
confidential data (e.g., user names and passwords for the application you<br />
are testing).<br />
If you select this option, enter a password and confirm it.<br />
6 Click OK.<br />
SilkPerformer then exports the project and displays the progress of<br />
packing all relevant files into a ZIP archive in a status bar.<br />
Procedure To import a project:<br />
1 From the SilkPerformer menu bar, select File/Import Project.<br />
A standard Open dialog appears, enabling you to select the archive file<br />
that you want to import.<br />
2 After selecting the archive file, click OK.<br />
246 SilkPerformer User Guide
11 ADDITIONAL WORKBENCH FEATURES<br />
Teamwork Features<br />
Uploading projects<br />
Emailing projects<br />
3 The Import Project dialog appears.<br />
4 In the Import target directory area, specify the location to which you<br />
want to extract your load testing project.<br />
If you configured password protection you will be prompted to enter<br />
your password. Enter your password and confirm it.<br />
5 Click OK.<br />
SilkPerformer then extracts the archive file to the specified target<br />
directory and opens the load testing project.<br />
Procedure To upload a project to SilkCentral Test Manager:<br />
1 From the SilkPerformer menu bar, select File/Upload Project.<br />
The Upload Project dialog appears.<br />
2 In the Upload project name area, enter the name of the file in which the<br />
load testing project should be uploaded.<br />
3 In the Upload URL field, enter the URL to which you want to upload the<br />
load testing project.<br />
4 In the Upload area, select the Use secure connection option to use a<br />
secure connection to upload your current load testing project. This is<br />
useful when your project contains confidential data (e.g., user names and<br />
passwords for the application under test.<br />
5 Select the Remember login information option to have SilkPerformer<br />
remember the user name and password that you enter when you upload a<br />
load testing project for the first time. This is useful when you plan to<br />
upload multiple projects.<br />
6 Click the Internet Options button to define the Internet-related settings<br />
for your computer and, most importantly, to determine how to connect<br />
your computer to the Internet. In the ensuing Internet Properties dialog,<br />
click the Connections tab and select the options that correspond to your<br />
environment.<br />
When you are done specifying Internet options, close the Internet<br />
Options dialog.<br />
7 In the Project Upload dialog, click OK.<br />
SilkPerformer then uploads the project to the SilkCentral installation<br />
URL specified in the Upload URL field, and displays the progress of<br />
packing all relevant files into a ZIP archive in a status bar.<br />
Procedure To email a project:<br />
1 From the SilkPerformer menu bar, select File/Email Project.<br />
The Email Project dialog appears.<br />
SilkPerformer User Guide 247
11 ADDITIONAL WORKBENCH FEATURES<br />
Teamwork Features<br />
Enabling file locking<br />
2 In the Email address area, enter the email address to which you want to<br />
send your current load testing project.<br />
3 In the Options area, select the Include results files of all tests option to<br />
send the results of all tests belonging to this project along with the email,<br />
that is, the results of all try-script tests, all find-baseline tests, and all<br />
actual load tests. If you disable this option, only the results of the recent<br />
try-script test will be sent.<br />
4 Select the Protect ZIP file with password option to protect the contents of<br />
the email with a password. This is useful when your project contains<br />
confidential data (e.g., user names and passwords for the application you<br />
are testing).<br />
If you select this option, enter a password and confirm it. Also, do not<br />
forget to tell the recipient of the email the password in a separate email or<br />
phone call.<br />
5 Select the Include a system diagnostic report option to send, along with<br />
the email, a system diagnostic report. This information will list the<br />
processors in the computer, the name and version of the operating<br />
system, and give information regarding the drives, memory, services,<br />
and drivers. In addition, relevant information from the Windows registry<br />
will be included.<br />
6 Click OK.<br />
SilkPerformer then emails the project and displays the progress of<br />
packing all relevant files into a ZIP archive in a status bar.<br />
SilkPerformer’s document file locking mechanism allows multiple users (on<br />
SilkPerformer Controller machines) to work simultaneously on the same<br />
document files (bdf script files, bdh include files, data files) without overwriting<br />
each other’s work. Documents that are locked (i.e., “checked out”) by another<br />
user can be viewed in read-only format, but cannot be edited.<br />
Procedure To the enable the document file locking mechanism:<br />
1 From the SilkPerformer menu bar, select Settings/System.<br />
2 The System Settings configuration dialog appears.<br />
3 Click the Workspace tab.<br />
4 In the Document file options area select the Enable document file locking<br />
option.<br />
5 Click OK.<br />
248 SilkPerformer User Guide
11 ADDITIONAL WORKBENCH FEATURES<br />
Code Completion<br />
Code Completion<br />
Code completion makes it easier to work with BDL. It significantly reduces<br />
scripting errors and decreases the need to type text into your BDL files by<br />
automatically completing functions, variables and constants. There are four<br />
Code Completion options:<br />
• Code List: Shows a list box with all currently matching function names.<br />
• Code completion: Completes the current function, variable, or constant<br />
name.<br />
• Parameter info: Shows a tool tip with types and additional information<br />
for function parameters.<br />
• Quick info: Shows information about functions in a tool tip.<br />
• Smart indention: Positions the cursor based on current logical context.<br />
Code Completion works with both SilkPerformer-defined and user-defined<br />
BDL files.<br />
To enable Code Completion you must name and save new BDL files as either<br />
.bdf or .bdh files. Once a BDL file has been saved, Code Completion recognizes<br />
changes you make to it using the BDL Editor and includes all files you reference<br />
via BDL use statements.<br />
Note At all times, with all features of Code Completion, you are<br />
only able to receive information regarding functions, variables and<br />
constants that are defined in your local .bdf files, or in the included<br />
.bdh files of those files.<br />
Code list<br />
One of the key features of Code Completion is its Code List mechanism, which<br />
is used to offer you a list of functions, variables, and constants. The Code List<br />
includes either:<br />
- The entire list of available functions, variables, and constants<br />
- Or, a list of functions, variables, and constants that match the<br />
characters of the word currently selected in the script<br />
The Code List can be manually invoked using Ctrl+Space. The Code List is<br />
invoked automatically when you type one of the following API prefixes:<br />
Attribute Com DB_ Dotnet Get Iiop<br />
Java Jolt Measure Odbc Ora Pdce<br />
Set Str Tux Wap Web Xml<br />
Table 25: API prefixes for code list<br />
SilkPerformer User Guide 249
11 ADDITIONAL WORKBENCH FEATURES<br />
Code Completion<br />
When the Code List is invoked, a list control with the following behavior<br />
displays:<br />
- If the cursor isn’t within a word or at the border of a word, the list<br />
control is scrolled to the top, and the first item receives focus, but it<br />
is not selected.<br />
- If the cursor is within a word or at the border of a word, the list<br />
control is scrolled to the first (selected) item that matches the word,<br />
and the item is selected.<br />
- By pressing the Tab, Space, or Enter key, the currently selected<br />
string is inserted into the view. If a string is not selected, the string<br />
with the focus is selected.<br />
- Double-clicking an item in the list inserts the name into the view.<br />
Code completion<br />
Parameter info<br />
Quick info<br />
If a word that should be used with the Code List feature is unique, the Code List<br />
won’t open when you invoke it via Ctrl+Space, however the full word will be<br />
inserted.<br />
Uniqueness in this context means that only one word in the list control matches<br />
the partial word in question.<br />
Parameter info is displayed when you place an opening bracket after a function<br />
name in a script. Parameter info can also be invoked manually by pressing<br />
Ctrl+I when the cursor is placed between the opening and closing brackets of a<br />
function call. Parameter info is displayed as a tool tip that remains visible until<br />
(1) the Esc key is hit, (2) a closing bracket is inserted, (3) the arrow keys are<br />
used to move outside the brackets, or (4) input focus is set to another control.<br />
Parameter info includes the following for functions:<br />
- Function name<br />
- Function parameters with names, types and modifiers (e.g., in, out,<br />
and allownull)<br />
- The current parameter is displayed with bold letters and, if available,<br />
an additional description<br />
- Return value type and, if available, a description<br />
Quick info is similar to parameter info with the difference that it shows<br />
information not only for functions, but also for variables and constants.<br />
Quick info is presented in a form similar to a tool tip when you hold your cursor<br />
over a function, variable or constant name. Quick info tool tips disappear when<br />
you move your cursor away.<br />
For functions, available information is the same as with parameter info, with the<br />
exception that all parameters are shown with their descriptions rather than only<br />
the current parameter.<br />
250 SilkPerformer User Guide
11 ADDITIONAL WORKBENCH FEATURES<br />
Code Completion<br />
Smart indention<br />
Enabling Code<br />
Completion<br />
User-defined<br />
functions, variables,<br />
and constants<br />
For variables and constants, only name, data type and optional descriptions are<br />
displayed.<br />
Smart indention is enabled when the Enter key is pressed within a BDL related<br />
view and a new line is to be inserted. Upon invocation, it places the cursor at a<br />
position that is calculated with respect to the current context (e.g., indenting<br />
after inserting an initial keyword).<br />
Procedure To enable Code Completion:<br />
1 From the SilkPerformer menu bar, select Settings/System.<br />
The System Settings configuration dialog appears.<br />
2 Click the Layout tab.<br />
3 In the Editor area, select the Enable Code Completion option.<br />
4 Click OK.<br />
To receive Code Completion features for user-defined functions, variables, and<br />
constants, you must create a new file with the same name—in the same<br />
directory as your .bdf or .bdh file that defines the function, variable or constant<br />
you want to enhance—though with the extension .bdd.<br />
A .bdd file has the following structure:<br />
<br />
<br />
FuncDesc<br />
<br />
<br />
ParamName<br />
ParamDesc<br />
<br />
<br />
<br />
RetValTyp<br />
RetValDesc<br />
<br />
<br />
<br />
GlobalDesc<br />
<br />
<br />
SilkPerformer User Guide 251
11 ADDITIONAL WORKBENCH FEATURES<br />
Parameter Wizard<br />
This means that for each function you want to instrument with Code Completion<br />
information, you must insert a function node. For all others (variables and<br />
constants) you must insert a global node.<br />
FuncID<br />
Name of the function in your .bdf or<br />
.bdh file, for which Code<br />
Completion information should be<br />
provided.<br />
FuncDesc<br />
Textual description of the function.<br />
ParamName<br />
Parameter name<br />
ParamDesc<br />
Textual description of the<br />
parameter.<br />
RetValTyp<br />
Data type of the return value.<br />
RetValDesc<br />
Textual description of the return<br />
value.<br />
GlobalId<br />
Name of the global variable or<br />
constant.<br />
GlobalDesc<br />
Textual description of the variable<br />
or constant.<br />
Table 26: Code completion nodes<br />
Parameter Wizard<br />
The Parameter Wizard enables realistic functionality to be created for virtual<br />
users during load tests by replacing recorded or scripted values with constant<br />
values, random values or values pulled from multi-column data files. Each of<br />
these value types can be generated using the wizard. This means that you can<br />
furnish virtual users with varied personal data for all the information commonly<br />
required by Web forms (name, address, zip code, credit card number, etc.).<br />
The Parameter Wizard guides you through the process of creating variables and<br />
then places the variables in test scripts. A wide range of variable types are<br />
provided. Each variable type can generate different value types (strings<br />
containing text and/or numbers, serial numbers, whole numbers, and floatingpoint<br />
numbers).<br />
Values can be randomized using different distribution patterns. Comprehensive<br />
sets of preset data (names, addresses, passwords, etc.) are also provided.<br />
252 SilkPerformer User Guide
11 ADDITIONAL WORKBENCH FEATURES<br />
Parameter Wizard<br />
Constant values<br />
Random variables<br />
Procedure To insert a constant value into your script:<br />
1 Click the Customize Test button in the SilkPerformer Workflow Bar.<br />
The Workflow - Customize Test dialog appears.<br />
2 Click the Create New Parameter Wizard button or link.<br />
The Parameter Wizard launches.<br />
OPTION 1: You can also access the wizard by selecting Script/Create<br />
New Parameter in the SilkPerformer menu bar.<br />
OPTION 2: The Parameter Wizard can also be accessed by moving your<br />
cursor to a customizable value (e.g., a string), right-clicking, and<br />
selecting Customize Value from the context menu<br />
3 Select Constant value and click Next.<br />
4 In the Name field, type a name for the new constant value or accept the<br />
default name.<br />
5 In the Value field, type the value of the new constant value.<br />
6 Click Finish.<br />
The new constant is added to the parameter section in you script.<br />
If you opened the wizard via the context menu in your script, the value<br />
you selected is automatically replaced with the newly created variable.<br />
7 Launch the wizard as often as is required to create more constant values.<br />
If you launched the wizard via another method, replace the constant<br />
values in your script with the variables you created using<br />
SilkPerformer’s BDL scripting language.<br />
For help using Benchmark Description Language, refer to the BDL<br />
Function Reference.<br />
Procedure To insert a random value into a script:<br />
1 Click the Customize Test button on the SilkPerformer Workflow bar.<br />
The Workflow - Customize Test dialog appears.<br />
2 Click the Create New Parameter Wizard button or link.<br />
The Parameter Wizard appears.<br />
OPTION 1: You can also access the wizard by selecting Script/Create<br />
New Parameter from the SilkPerformer menu bar.<br />
OPTION 2: The Parameter Wizard can also be accessed by moving your<br />
cursor to a customizable value (e.g., a string), right-clicking, and<br />
selecting Customize Value from the context menu.<br />
3 Select Parameter from Random Variable and click Next.<br />
SilkPerformer User Guide 253
11 ADDITIONAL WORKBENCH FEATURES<br />
Parameter Wizard<br />
Multi-column data files<br />
4 In the wizard’s Choose the type of random variable window, choose a<br />
random variable type from the Random type drop-down list<br />
Use the type description and variable declaration preview provided for<br />
each random variable type to choose the required variable and specify its<br />
attributes.<br />
5 Click Next.<br />
The Name the variable and specify its attributes window appears<br />
6 In the Name field, type a name for the new variable or accept the default<br />
name<br />
7 Specify the attributes of the variable. These will vary depending on the<br />
type of variable selected. Use the Back button to review the type<br />
description of the variable if necessary.<br />
8 Click Finish.<br />
The new random variable is then added to the random variables section<br />
of your script.<br />
If you opened the wizard via the context menu in your script, the value<br />
you selected is automatically replaced with the newly created variable.<br />
9 Launch the wizard as often as is required to create more constant values.<br />
If you launched the wizard via another method, replace the constant<br />
values in your script with the variables you created using<br />
SilkPerformer’s BDL scripting language.<br />
For help using Benchmark Description Language, refer to the BDL<br />
Function Reference.<br />
Procedure To insert a parameter with values from a multi-column data file:<br />
1 Click the Customize Test button on the SilkPerformer Workflow bar.<br />
The Workflow - Customize Test dialog appears.<br />
2 Click the Create New Parameter Wizard button or link.<br />
The Parameter Wizard appears.<br />
OPTION 1: You can also access the wizard by selecting Script/Create<br />
New Parameter from the SilkPerformer menu bar.<br />
OPTION 2: The Parameter Wizard can also be accessed by moving your<br />
cursor to a customizable value (e.g., a string), right-clicking, and<br />
selecting Customize Value from the context menu.<br />
3 Select Parameter from multi-column data file and click Next.<br />
4 In the wizard’s Parameter from multi-column data file window, choose a<br />
multi-column data file from the File Name drop-down list. Then select<br />
an appropriate separator from the Separator drop-down list, or type a<br />
custom separator.<br />
In the Handle name field, type a name for the file handle of the multi-<br />
254 SilkPerformer User Guide
11 ADDITIONAL WORKBENCH FEATURES<br />
Parameter Wizard<br />
column data file variable or accept the default name.<br />
In the Parameter name field, type a name for the new parameter or<br />
accept the default name.<br />
5 Click Next.<br />
The Name the variable and specify its attributes window appears.<br />
6 In the Name field, type a name for the new variable or accept the default<br />
name.<br />
7 Specify the attributes of the variable. These will vary depending on the<br />
type of variable selected. If necessary, use the Back button to review the<br />
type description of the variable.<br />
8 Click Finish.<br />
The new parameter from a multi-column data file is then added to the<br />
parameter section of your script.<br />
The multi-column data file you selected is also added to the data files of<br />
your SilkPerformer project.<br />
If you opened the wizard via the context menu in your script, the value<br />
you selected is automatically replaced with the newly created variable.<br />
9 Launch the wizard as often as is required to create more constant values.<br />
If you launched the wizard via another method, replace the constant<br />
values in your script with the variables you created using<br />
SilkPerformer’s BDL scripting language.<br />
For help with Benchmark Description Language, refer to the BDL<br />
Function Reference.<br />
Editing Multi-Column Data Files<br />
Editing multi-column<br />
data files<br />
Procedure To edit a multi-column data file:<br />
1 Open the Data Files sub-tree of SilkPerformer’s Project tab.<br />
2 Double-click the multi-column data file you want to edit.<br />
The Edit CSV File window appears.<br />
3 Choose an appropriate separator for the multi-column data file from the<br />
Separator drop down list or type a custom separator.<br />
4 Modify, add, or delete values from the multi-column data files.<br />
5 Click the Save As button to save the multi-column data file with a<br />
different name.<br />
6 Click OK to save the changes of the multi-column data file and close the<br />
window.<br />
7 Click Cancel to ignore all changes and close the window.<br />
SilkPerformer User Guide 255
11 ADDITIONAL WORKBENCH FEATURES<br />
Java Integration<br />
Existing parameters<br />
Procedure To use an existing parameter for your script:<br />
1 Move your cursor to a customizable value (e.g., a string) in your script.<br />
2 Right-click and select Customize Value from the context menu.<br />
The Parameter Wizard appears.<br />
Note: The Customize Value menu item will be disabled if the value in<br />
your script is not customizable.<br />
3 In the wizard’s Customize Value window, select Use existing parameter.<br />
4 Click Next.<br />
The wizard’s Use Existing Parameter window appears.<br />
5 Select a variable from the list and click Finish.<br />
You can choose the data type of the shown parameters from the Show all<br />
Parameters of type drop-down list.<br />
Note: SilkPerformer automatically shows the window with a selected<br />
data type that is compatible with the data type of the customized value.<br />
6 The value you selected is then automatically replaced with the existing<br />
parameter.<br />
Java Integration<br />
As a powerful extension to SilkPerformer’s Benchmark Description Language,<br />
the Java Framework enables you to implement user behavior in Java. When<br />
testing an existing Java application you don’t need to spend much time creating<br />
test scripts—the only effort required is embedding existing Java source code<br />
into the framework.<br />
To generate a benchmark executable and run a load test with the help of the Java<br />
framework, two source files are typically required:<br />
- A Java class that implements the behavior of a virtual user<br />
- A SilkPerformer test script that invokes Java method calls<br />
Note Both source files need to have the same name, with extensions<br />
indicating the file types (.bdf for the SilkPerformer test script and<br />
.java for the Java source file).<br />
With SilkPerformer it’s possible to call Java functions on any Java object from a<br />
BDL context with any number and type of parameter and return parameter.<br />
When a Java function returns a complex object, a handle for the Java object is<br />
returned in its place. The handle can be passed to other function calls as an input<br />
parameter, or public methods may be invoked on the object. There is also<br />
support for static methods, cast operations, and exception handling.<br />
256 SilkPerformer User Guide
11 ADDITIONAL WORKBENCH FEATURES<br />
Java Integration<br />
Creating Java projects<br />
Adding Java files to<br />
projects<br />
Procedure To create a Java project:<br />
1 Click the Start here button on the SilkPerformer Workflow bar or select<br />
File/New Project from the main menu bar.<br />
The Workflow - Outline Project dialog appears.<br />
2 Enter a name for your project in the Project name field.<br />
3 Enter a description for your project in the Project description field.<br />
Note that this description is for your own project management purposes<br />
only.<br />
4 From the Application type tree list, choose Java/Java Framework.<br />
5 Click OK.<br />
An icon for the new project appears in the tree-view area of the main<br />
SilkPerformer window.<br />
6 If you need to add additional resources to the project, right-click the<br />
project icon in the tree list. It is particularly important that all the user<br />
data files (.csv), random data files (.rnd), and .idl files needed by<br />
SilkPerformer are set up for the project.<br />
Procedure To generate Java Framework files:<br />
1 Click the Model Script button on the SilkPerformer Workflow bar.<br />
The Workflow – Model Script dialog appears.<br />
2 Select New script and click OK.<br />
The New Java Framework Script dialog appears.<br />
(Alternately you can select File/New.../Java Framework Scripts (.bdf/<br />
.java) from the main menu bar to reach this step)<br />
Enter a name for your Java class.<br />
3 Click OK.<br />
A Java file containing a class with the given name is generated and<br />
opened along with a BDL file, which is used to load test the Java class.<br />
4 If you save your files, you will be asked if you want to add them to your<br />
project.<br />
Procedure To generate Java files without a BDL file:<br />
1 Select File/New.../Java Scripts (.java) from the main menu bar.<br />
The New Java Framework Script dialog appears.<br />
2 Enter a name for your Java class.<br />
3 Click OK.<br />
A Java file containing a class with the given name is generated and<br />
opened.<br />
SilkPerformer User Guide 257
11 ADDITIONAL WORKBENCH FEATURES<br />
Java Integration<br />
4 If you save your files, you will be asked if you want to add them to your<br />
project.<br />
You have the following options for adding a Java file to a project:<br />
• When saving a new Java file for the first time, you are asked if you want<br />
to add the file to the current project.<br />
• Right-click the Scripts subnode of the project and select Add Script... to<br />
open the Select Script(s) dialog. Change the File of type drop down list to<br />
Java files (*.java). Select your file, which will be added to the project<br />
when you click Open.<br />
• Right-click in the view of a Java file to open the context menu. Click Add<br />
to Project to add the file to the project.<br />
See “JUnit Integration” for details regarding JUnit testing with SilkPerformer.<br />
Compiling Java files<br />
Before a Java file can be compiled it’s necessary to ensure that a valid path to a<br />
Java SDK and a valid classpath are specified.<br />
Procedure To specify Java settings:<br />
1 Select Settings/Active Profile.<br />
2 Scroll down to and select the Java icon in the left-hand scroll window.<br />
3 The General tab appears. Select the Java version you are using from the<br />
Version drop-down list.<br />
4 Use the Browse (...) button to select the directory where the Java SDK is<br />
installed.<br />
5 Add any required entries to the classpath<br />
Note Alternately, you can use the JavaSetOption API function with<br />
the appropriate option number to set the Java version, Java home<br />
directory, and classpath.<br />
Manual compilation can be achieved in one of the following ways:<br />
• Open a Java file and press F7.<br />
• Open a Java file and right-click in the view to open a context menu.<br />
Select the Compile command.<br />
• Right-click a Java file in the Project tab to open a context menu. Select<br />
the Compile command.<br />
Initiating Try Scripts, finding baselines, and running tests will also<br />
automatically launch compilation for all Java and BDL files.<br />
258 SilkPerformer User Guide
11 ADDITIONAL WORKBENCH FEATURES<br />
Converting CSV Data for Use With Silk Performance Explorer<br />
During compilation, all output from the Java Compiler is redirected to<br />
SilkPerformer’s Compiler tab. Resulting class files are generated in the<br />
directory of the current project.<br />
Note See the BDL Function Reference for details regarding Javaspecific<br />
functions.<br />
Converting CSV Data for Use With Silk Performance Explorer<br />
Generating a CSV file<br />
on a remote server<br />
SilkPerformer offers a command line tool (csv2tsd.exe) that enables you to<br />
convert CSV (Comma Separated Values) files into TSD (Time Series Data)<br />
files.<br />
This is useful when you are monitoring external Windows data that, for security<br />
reasons, can not be monitored by SilkPerformer. By converting CSV data to<br />
TSD format, external data can be analyzed alongside internal SilkPerformer<br />
monitoring data via Silk Performance Explorer.<br />
For example, if a performance counter is used to measure the behavior of a<br />
remote server and the results of that monitor are saved in CSV format, those<br />
results can be imported into Performance Explorer for analysis alongside the<br />
results of a SilkPerformer load test involving the same server. With<br />
Performance Explorer you then have the opportunity to look for correlations<br />
between the two data sets.<br />
Any CSV log file you specify in the command line tool must follow the format<br />
generated by the Windows Performance Monitor tool (Adminstrative Tools/<br />
Performance). So, before using csv2tsd.exe you must create a performance<br />
counter with settings that will allow you to import its data.<br />
Procedure To generate an eligible performance counter log prior to<br />
conversion:<br />
1 Open the Windows Performance Monitor tool (Adminstrative Tools/<br />
Performance).<br />
2 Expand the Performance Logs and Alerts tree node.<br />
3 Right-click the Counter Logs node and select New Log Settings from the<br />
context menu.<br />
4 Enter a name for the new log settings file on the New Log Settings dialog<br />
and click OK.<br />
5 The properties dialog for the new log settings file is displayed. Click the<br />
Add Counters button to open the Add Counters dialog.<br />
6 Specify the computer, performance object, counter and counter instances<br />
for which you want to track results.<br />
SilkPerformer User Guide 259
11 ADDITIONAL WORKBENCH FEATURES<br />
Converting CSV Data for Use With Silk Performance Explorer<br />
7 Close the Add Counters dialog.<br />
8 Select the Log Files tab on the Properties dialog.<br />
9 From the Log file type list box, select Text File (Comma delimited).<br />
10 Click OK to close the properties dialog.<br />
11 Close the Performance Monitor.<br />
Once you have configured a performance counter so that its log results can be<br />
converted to TSD format using csv2tsd.exe, you can start capturing behavioral<br />
data using the performance counter.<br />
Procedure To begin capturing performance counter log data:<br />
1 Open the Windows Performance Monitor tool (Adminstrative Tools/<br />
Performance).<br />
2 Expand the Performance Logs and Alerts tree node.<br />
3 Double-click the Counter Logs node.<br />
4 Right-click a counter log in the right-hand window and select Start from<br />
the context menu.<br />
Active counters are shown in green. Inactive counters are shown in red.<br />
Generated CSV counter log files have the following format:<br />
"(PDH-CSV 4.0) (W. Europe Standard Time)(-<br />
60)","\\JONES\Processor(_Total)\% Interrupt<br />
Time","\\JONES\Processor(_Total)\% Privileged<br />
Time","\\JONES\Processor(_Total)\% Processor Time"<br />
"02/25/2008 23:24:23.826"," "," "," "<br />
"02/25/2008<br />
23:24:38.841","0","0.10406093659265107","0.1015008710549<br />
7141"<br />
"02/25/2008<br />
23:24:53.841","0.052084666700800877","1.8229633345280307<br />
","2.4454192693999621"<br />
"02/25/2008<br />
23:25:08.840","0.052084666700800877","3.0729953353472514<br />
","5.4663299380464103"<br />
"02/25/2008<br />
23:25:23.840","0.052084666700800877","0.5729313337088095<br />
5","1.0391332684783428"<br />
Procedure To convert a properly formatted CSV file to TSD format using<br />
csv2tsd.exe:<br />
1 Launch csv2tsd.exe (All Programs/<strong>Borland</strong>//Analysis<br />
Tools/TSD File Export Tool)<br />
260 SilkPerformer User Guide
11 ADDITIONAL WORKBENCH FEATURES<br />
Converting CSV Data for Use With Silk Performance Explorer<br />
2 Enter file import and export settings using the following format:<br />
Csv2Tsd [[+/-]]<br />
is the full path of the CSV File to import<br />
is the full path of the TSD File to be generated<br />
is the time difference in seconds. (default: 0)<br />
3 Hit Enter to execute the conversion.<br />
The example CSV counter log file above (which includes 20 rows) can be<br />
converted to TSD format using the following command at the prompt in<br />
csv2tsd.exe:<br />
Csv2Tsd.exe C:\perflogs\Test1.csv c:\perflogs\Test1.tsd<br />
SilkPerformer User Guide 261
11 ADDITIONAL WORKBENCH FEATURES<br />
Converting CSV Data for Use With Silk Performance Explorer<br />
262 SilkPerformer User Guide
12<br />
SilkPerformer 12 Chapter<br />
Plug-Ins<br />
Introduction<br />
What you will learn<br />
This chapter explains SilkPerformer’s plug-in interface.<br />
This chapter contains the following sections:<br />
Section<br />
Page<br />
Overview 263<br />
Checking and Initializing Plug-Ins 264<br />
Message Output 264<br />
<strong>Borland</strong> Optimizeit ServerTrace Plug-In 265<br />
dynaTrace Diagnostics Plug-In 267<br />
Overview<br />
SilkPerformer offers a plug-in interface for SilkPerformer Workbench. The<br />
plug-in interface extends SilkPerformer’s compatibility to third-party<br />
technologies, enabling coordination and control of third-party technologies from<br />
within the SilkPerformer environment.<br />
Generic plug-in<br />
interface controls<br />
SilkPerformer's plug-in interface extends SilkPerformer’s compatibility with<br />
third-party technologies, enabling coordination and control of third-party<br />
technologies from within SilkPerformer.<br />
The controls that are available for plug-ins vary based on the functionality<br />
offered by each plug-in. By default, each plug-in offers the following attributes<br />
via the SilkPerformer System Settings dialog:<br />
On the General tab:<br />
- Plug-in name, version, and description details<br />
- Enabling/disabling of the plug-in<br />
SilkPerformer User Guide 263
12 SILKPERFORMER PLUG-INS<br />
Checking and Initializing Plug-Ins<br />
- A list of features supported by the plug-in<br />
On the Attributes tab:<br />
- Name, description, datatype, and value for each available attribute<br />
Depending on available plug-in functionality, other tabs and configurable<br />
attributes may also be available.<br />
Available plug-ins • “<strong>Borland</strong> Optimizeit ServerTrace Plug-In”<br />
• “dynaTrace Diagnostics Plug-In”<br />
Checking and Initializing Plug-Ins<br />
All available plug-ins are installed to the following directory during<br />
SilkPerformer setup: \Working\Plugins\...>.<br />
When SilkPerformer Workbench is launched, it checks for installed plug-ins.<br />
All installed plug-ins are then loaded, verified, and initialized.<br />
Plug-ins can be enabled, disabled, or configured by users via SilkPerformer’s<br />
System Settings dialog. The System Settings dialog adds a new icon in the lefthand<br />
pane for each available plug-in. On the General tab, basic information<br />
(including description, version, and supported features) and the ability to enable/<br />
disable the plug-in is provided for each installed plug-in. Each plug-in is also<br />
provided an Attributes tab that lists all attributes associated with the plug-in.<br />
Some plug-ins may include additional tabs related to available functionality.<br />
Plug-ins are disabled by default and must be enabled before use.<br />
Message Output<br />
A new tab is inserted into SilkPerformer’s Output window for each installed and<br />
enabled plug-in.<br />
SilkPerformer outputs all messages from plug-ins into these tabs. Output tabs<br />
are removed when plug-ins are disabled.<br />
Output tabs display the following information:<br />
- Timestamp (HH:MM:SS)<br />
- Severity (“Error,” “Warning,” or “Info”).<br />
- Numerical message Code<br />
- The text of the Message. Messages are displayed in the color that<br />
corresponds to their severity (Error = red; Warning = orange; Info =<br />
magenta).<br />
264 SilkPerformer User Guide
12 SILKPERFORMER PLUG-INS<br />
<strong>Borland</strong> Optimizeit ServerTrace Plug-In<br />
<strong>Borland</strong> Optimizeit ServerTrace Plug-In<br />
ServerTrace controls<br />
System settings<br />
The <strong>Borland</strong> ServerTrace Plug-In for Optimizeit ServerTrace makes use of<br />
SilkPerformer’s plug-in interface. The <strong>Borland</strong> ServerTrace plug-in enables<br />
SilkPerformer to initiate <strong>Borland</strong> ServerTrace snapshots within SilkPerformer<br />
load test environments. Future versions of the plug-in may offer capturing and<br />
analysis of ServerTrace results.<br />
To install the Optimizeit ServerTrace Plug-In, download and execute the setup<br />
package, which is available from http://sso.borland.com/download/. After<br />
logging in, download the installer that corresponds to the latest version of<br />
SilkPerformer you have purchased.<br />
The <strong>Borland</strong> Optimizeit ServerTrace plug-in enables SilkPerformer to initiate<br />
ServerTrace snapshots from within a SilkPerformer load test environment.<br />
A ServerTrace snapshot offers a glimpse of the status of a server application. It<br />
provides key performance metrics and statistics for standard J2EE components,<br />
such as JDBC, JNDI, Servlet and JSP, EJB, JMS, and RMI.<br />
During SilkPerformer load tests, the Optimizeit ServerTrace plug-in is in<br />
contact with each configured ServerTrace agent and instructs it to start or stop<br />
profiling or generate a snapshot.<br />
For details regarding use of <strong>Borland</strong> Optimizeit ServerTrace, please see <strong>Borland</strong><br />
Optimizeit documentation.<br />
Procedure To view and configure available system settings:<br />
1 Open the System Settings dialog (Settings / System).<br />
2 Select the ServerTrace icon in the left-hand pane.<br />
3 The General tab appears. This tab displays read-only information about<br />
the plug-in (name, version, and description). A read-only listbox displays<br />
the features that are supported by the plug-in.<br />
The General tab also enables you to enable/disable the plug-in (via the<br />
Enable plug-in checkbox).<br />
Note: By enabling/disabling the plug-in, you also enable/disable the<br />
ServerTrace toolbar button and the ability to configure plug-in attributes<br />
on the System Settings / Attributes tab.<br />
4 Click OK to accept your settings, or select another tab to configure<br />
additional plug-in settings.<br />
Attributes Tab<br />
Available plug-in attributes can be configured on the System Settings/Attributes<br />
tab. Available attributes are listed in a grid control that includes Name, Type and<br />
attribute Value. A read-only description of each attribute is also available in the<br />
text field at the bottom of the tab.<br />
SilkPerformer User Guide 265
12 SILKPERFORMER PLUG-INS<br />
<strong>Borland</strong> Optimizeit ServerTrace Plug-In<br />
Attribute values can be configured based on attribute datatype and available<br />
values. These values are configurable only when the plug-in is enabled.<br />
Click OK to accept your settings, or select another tab to configure additional<br />
plug-in settings.<br />
Agents Tab<br />
On the Agents tab you can configure the available <strong>Borland</strong> ServerTrace agents<br />
so that SilkPerformer can execute snapshots during load tests. Available agents<br />
are listed in a grid control with Host name and Port text fields.<br />
Agent Host and Port information must be entered manually.<br />
Click OK to accept ServerTrace agent settings.<br />
Using SilkPerformer to<br />
control ServerTrace<br />
ServerTrace Toolbar<br />
The ServerTrace toolbar gives you the option of manually:<br />
- Starting ServerTrace<br />
- Hibernating ServerTrace<br />
- Resetting ServerTrace<br />
- Generating ServerTrace snapshots<br />
Each action is executed on all configured ServerTrace agents.<br />
ServerTrace snapshots<br />
SilkPerformer serves as an interface for ServerTrace so that you can schedule<br />
and execute ServerTrace snapshots from within SilkPerformer.<br />
When a SilkPerformer load test is launched, stopped, or killed, the<br />
SilkPerformer controller communicates its status to the ServerTrace Plug-In.<br />
Depending on the plug-in settings, SilkPerformer triggers ServerTrace agents to<br />
gather J2EE performance metrics and statistics.<br />
For details regarding use of <strong>Borland</strong> Optimizeit ServerTrace, please see <strong>Borland</strong><br />
ServerTrace documentation.<br />
Message output<br />
A new tab is inserted into SilkPerformer’s Output window when the <strong>Borland</strong><br />
ServerTrace Plug-In is enabled.<br />
The ServerTrace Output Window tab indicates such status information as when<br />
contact is established with ServerTrace agents and when snapshots are initiated,<br />
started, or failed.<br />
266 SilkPerformer User Guide
12 SILKPERFORMER PLUG-INS<br />
dynaTrace Diagnostics Plug-In<br />
The ServerTrace Output Window tab displays the following ServerTrace<br />
snapshot details:<br />
• Timestamp (HH:MM:SS)<br />
• Severity (“Error,” “Warning,” or “Info”).<br />
• Numerical message Code<br />
• The text of the Message. Messages are displayed in the color that<br />
corresponds to their severity (Error = red; Warning = orange; Info =<br />
magenta).<br />
dynaTrace Diagnostics Plug-In<br />
SilkPerformer offers a plug-in framework for dynaTrace Diagnostics and other<br />
third-party diagnostics tools. The framework enables third-party tool vendors to<br />
integrate into one or more of the following three <strong>Borland</strong> tools:<br />
• SilkPerformer Workbench<br />
For details on integration, see “dynaTrace Plug-In”.<br />
• Silk TrueLog Explorer<br />
The SilkPerformer Workbench plug-in can be used to modify profile<br />
settings so that the runtime sends an additional HTTP header tag with<br />
each page request. The same functionality is available via the<br />
WebSetHttpTag BDL function.<br />
When a user selects an API node, TrueLog Explorer passes the plug-in<br />
header and body, including the additional HTTP tag. TrueLog Explorer’s<br />
lower-right window includes an additional tab for each enabled plug-in.<br />
The plug-in tabs are Internet Explorer controls, so plug-ins can present<br />
anything that can be expressed via HTML.<br />
Plug-ins can use the HTTP tag to identify traces and present complete<br />
component break-downs for each Web page call.<br />
• Silk Performance Explorer<br />
Plug-ins that implement the PerfExp plug-in interface can be called from<br />
the (OVR) Overview Report/Ranking section. Overview reports show plugin<br />
related icons for each ranking measurement for which the plug-in can<br />
provide in-depth information.<br />
dynaTrace Plug-In<br />
The dynaTrace Plug-In is installed along with the SilkPerformer setup. It is<br />
disabled by default.<br />
Note dynaTrace information is only produced when running a load<br />
test. When running a TryScript test run, no dynaTrace information is<br />
produced.<br />
SilkPerformer User Guide 267
12 SILKPERFORMER PLUG-INS<br />
dynaTrace Diagnostics Plug-In<br />
Procedure To configure dynaTrace plug-in settings:<br />
1 From SilkPerformer, select Settings/System Settings.<br />
2 Select the the dynaTrace Diagnostics Plug-In group icon.<br />
3 On the General tab, select the Enable plug-in check box.<br />
4 Configure Name/Value pairs on the Attributes tab as required.<br />
5 Click OK to save your settings.<br />
268 SilkPerformer User Guide
13<br />
Component 13 Chapter<br />
Testing (Java &<br />
.NET)<br />
Introduction<br />
What you will learn<br />
This chapter explains now to manage component testing with SilkPerformer.<br />
This chapter contains the following sections:<br />
Section<br />
Page<br />
Overview 269<br />
.NET Support 269<br />
Java Support 271<br />
Overview<br />
With SilkPerformer .NET Explorer and Java Explorer, you can test Web<br />
Services, .NET Remoting objects, Enterprise JavaBeans (EJB), RMI objects,<br />
and other GUI-less .NET/Java objects.<br />
.NET Support<br />
SilkPerformer .NET Explorer, which was developed using .NET, and the<br />
SilkPerformer .NET Framework allow you to test Web Services, .NET<br />
Remoting objects, and other GUI-less .NET objects. .NET Explorer allows you<br />
to define and execute complete test scenarios with different test cases without<br />
requiring manual programming—everything is done visually via point and click<br />
operations. Test scripts are visual and easy to understand—even for staff<br />
members who aren't familiar with .NET programming languages.<br />
SilkPerformer User Guide 269
13 COMPONENT TESTING (JAVA & .NET)<br />
.NET Support<br />
Launching .NET<br />
Explorer<br />
Test scenarios created with SilkPerformer .NET Explorer can be exported to<br />
SilkPerformer Workbench for immediate reuse in concurrency and load testing;<br />
and to Microsoft Visual Studio .NET for further customization.<br />
Procedure To launch SilkPerformer .NET Explorer:<br />
1 Go to .../Development Tools/SilkPerformer .NET<br />
Explorer.<br />
Alternately you can launch SilkPerformer Workbench. Go to<br />
.../SilkPerformer Workbench.<br />
Then create a new project with the application type .NET/.NET Explorer<br />
or Web Services/.NET Explorer.<br />
SilkEssential for .NET<br />
Explorer<br />
Add-In for Microsoft<br />
Visual Studio .NET<br />
SilkPerformer ships with a SilkEssential that allows you to hook .NET Explorer<br />
to get a BDL script with tested WebServices.<br />
Procedure To make use of the SilkEssential:<br />
1 Create a new project based on the SilkEssential (Project Type:<br />
WebServices/.NET Explorer).<br />
2 Model the script.<br />
3 While the recorder is running, start .NET Explorer from the Start menu.<br />
4 Load a test scenario that you have defined in a previous .NET Explorer<br />
session.<br />
5 Execute an animated run of the scenario.<br />
6 Close .NET Explorer and the recorder.<br />
7 Perform a Try Script run of the recorded BDL script.<br />
8 Perform XML customization/verification in the TrueLog as required.<br />
See the BDL Function Reference for a description of DotNET framework.<br />
The SilkPerformer Add-In for Microsoft Visual Studio .NET allows you to<br />
implement test drivers in Visual Studio .NET that are compatible with<br />
SilkPerformer Workbench. Such test drivers can be augmented with<br />
SilkPerformer features that facilitate test organization, verification, performance<br />
measurement, test data generation, and reporting.<br />
Tests created with the Add-In can either be run within Visual Studio (with full<br />
access to SilkPerformer's functionality) or within SilkPerformer Workbench (for<br />
concurrency and load testing scenarios).<br />
270 SilkPerformer User Guide
13 COMPONENT TESTING (JAVA & .NET)<br />
Java Support<br />
Procedure To launch SilkPerformer Add-In for Microsoft Visual Studio<br />
.NET:<br />
1 Go to: Start/Programs/Visual Studio .NET/Visual Studio .NET and create<br />
a new SilkPerformer Visual Studio project.<br />
Alternately you can launch SilkPerformer Workbench. Go to<br />
.../SilkPerformer Workbench.<br />
.NET Resources<br />
Documentation<br />
Create a new project using the .NET/.NET Framework using the Visual<br />
Studio .Net Add-In application type.<br />
Note The Add-In requires an installed version of either Visual<br />
Studio .NET or Visual Studio .NET 2003/2005.<br />
Visit the following links for information about .NET:<br />
http://msdn.microsoft.com/net<br />
http://www.gotdotnet.com<br />
For full details regarding testing of .NET with SilkPerformer, please see the<br />
.NET Explorer User Guide and the .NET Framework Developer Guide.<br />
Java Support<br />
Launching Java<br />
Explorer<br />
SilkPerformer Java Explorer, which was developed using Java, and the<br />
SilkPerformer Java Framework allow you to test Web Services, Enterprise<br />
JavaBeans (EJB), RMI objects, and other GUI-less Java objects. Java Explorer<br />
allows you to define and execute complete test scenarios with multiple test cases<br />
without requiring manual programming—everything can be done visually via<br />
point and click operations. Test scripts are visual and easy to understand—even<br />
for personnel who are not familiar with the Java programming language.<br />
Test scenarios created with SilkPerformer Java Explorer can be exported to<br />
SilkPerformer Workbench for immediate reuse in concurrency and load testing.<br />
Note Java Explorer is compatible only with JDK versions 1.2 and<br />
higher (v1.4 or higher recommended).<br />
Procedure To launch SilkPerformer Java Explorer:<br />
1 Go to: .../Development Tools/SilkPerformer Java<br />
Explorer.<br />
Alternately you can launch SilkPerformer Workbench. Go to:<br />
.../SilkPerformer Workbench.<br />
SilkPerformer User Guide 271
13 COMPONENT TESTING (JAVA & .NET)<br />
Java Support<br />
Create a new project using either the Java/Java Explorer or Web<br />
Services/Java Explorer application type.<br />
Java resources<br />
Documentation<br />
Visit the following links for information about Java:<br />
http://java.sun.com<br />
http://www.javaworld.com<br />
http://www-106.ibm.com/developerworks/java/<br />
For full details regarding testing of Java with SilkPerformer, please see the Java<br />
Explorer User Guide and the Java Framework Developer Guide.<br />
272 SilkPerformer User Guide
14<br />
Unit 14 Chapter<br />
Test Integration (JUnit<br />
& NUnit)<br />
Introduction<br />
What you will learn<br />
This chapter explains how to manage unit testing with SilkPerformer.<br />
This chapter contains the following sections:<br />
Section<br />
Page<br />
Overview 273<br />
JUnit Integration 273<br />
NUnit Integration 281<br />
Overview<br />
SilkPerformer enables you to integrate existing JUnit and NUnit test scripts into<br />
SilkPerformer for the support of remote-component testing.<br />
JUnit Integration<br />
SilkPerformer facilitates smooth integration of existing JUnit test scripts<br />
(version 3.8.x and 4.x) into SilkPerformer for the support of remote-component<br />
testing under realistic concurrent-access server conditions.<br />
SilkPerformer provides an import tool that enables you to import existing JUnit<br />
test classes and other Java classes. Tested Java methods may have parameters<br />
and return values; code for setting the in-parameters of these functions is<br />
generated automatically. By definition, JUnit test methods can’t have<br />
parameters.<br />
SilkPerformer User Guide 273
14 UNIT TEST INTEGRATION (JUNIT & NUNIT)<br />
JUnit Integration<br />
Prerequisites<br />
Setting up new JUnit<br />
projects<br />
Importing JUnit test<br />
classes<br />
Importing Java test<br />
classes<br />
Modeling Scripts<br />
SilkPerformer’s Unit Test Import tool offers you the option of selecting specific<br />
test methods. It automatically generates BDL stub code (a benchmark<br />
description file) that calls those selected test methods. Existing JUnit test classes<br />
can be called from SilkPerformer without requiring modification of the test<br />
classes.<br />
JUnit 4.x testing requires Java version 1.5 or higher.<br />
The respective JUnit librarires must be available in the classpath of the Java<br />
settings of the active profile.<br />
Procedure To set up a JUnit SilkPerformer project:<br />
1 Click the Outline Project button.<br />
2 Enter a Project name and Project description for the project.<br />
3 Select Unit Testing/JUnit from the Application type tree control on the<br />
Outline Project dialog.<br />
4 Click OK to create the project.<br />
Procedure To Import a JUnit test class:<br />
1 Select Project/Import Unit Test/JUnit Test Class to open the Import<br />
JUnit Test Class dialog.<br />
2 Follow the instructions outlined below in “Modeling Scripts”.<br />
Note For JUnit4 module tests, JDK 1.5 or higher is required.<br />
Modify your Java profile settings accordingly before importing<br />
JUnit4 module tests.<br />
Procedure To import a Java test class:<br />
1 From the menu bar, select Project/Import Unit Test/Java Test Class to<br />
open the Import Java Test Class dialog.<br />
2 Follow the instructions outlined in the following section, Modeling<br />
Scripts.<br />
On the Import JUnit Test Class dialog, select an archive that is to be tested using<br />
the File field; click the Browse (...) button to browse for the file. The archive is<br />
automatically added to the profile classpath. The available classes are then<br />
retrieved and displayed, sorted alphabetically in the Class field. Select one of the<br />
available classes from the drop-down box for testing.<br />
When you don’t specify a specific archive for testing, the Model Script dialog<br />
enables you to specify a class that is available in the profile classpath. Simply<br />
type the fully qualified class name into the Class field (e.g., “java.lang.String”).<br />
Select the appropriate Constructor for instantiating the imported class. If a<br />
constructor is not selected (entry “”), only static methods will be displayed in the method list.<br />
274 SilkPerformer User Guide
14 UNIT TEST INTEGRATION (JUNIT & NUNIT)<br />
JUnit Integration<br />
Java profile settings<br />
Select the Methods that are to be called. Note that when you enter a class name<br />
in the Class field, the available constructors and methods are automatically<br />
retrieved and displayed.<br />
The JUnit or Java test class you want to import and all third-party libraries<br />
needed by the test class must be available in the profile classpath. SilkPerformer<br />
automatically adds all archives entered in the File field to the profile classpath.<br />
Also, all test classes compiled in SilkPerformer Workbench are compiled to the<br />
project directory, which is also automatically included in the profile classpath.<br />
Click the Active Profile button (the checklist icon above the Methods field) to<br />
display the Profile Settings dialog, open to the Java/General page for Java<br />
projects (JUnit project type).<br />
Note Changes made to these settings (e.g., Java Classpath) may lead<br />
to different results. Selections made in the Class, Constructor, and<br />
Methods fields will be updated with the new results.<br />
Note For JUnit4 module tests, JDK 1.5 or higher is required.<br />
Modify your Java profile settings accordingly before importing<br />
JUnit4 module tests.<br />
If you change the Java version, Java home directory, or JVM DLL, you must<br />
restart SilkPerformer for the changes to take effect.<br />
Click the Advanced Settings button (the funnel icon above the Methods field) to<br />
filter the methods that are shown in the Methods field.<br />
Parameterless Functions Only<br />
Unit Test Functions Only<br />
(selected by default for JUnit<br />
import)<br />
Member Functions Only<br />
Public Functions (selected by<br />
default)<br />
Ignore all functions that expect<br />
parameters<br />
Ignore all functions that are not JUnit<br />
conform<br />
Ignore all non-member functions<br />
Include public functions<br />
Protected Functions<br />
Include protected functions<br />
Private Functions<br />
Include functions with private access<br />
Package Functions<br />
Include functions with package access<br />
Declared Functions Only Ignore functions from the base classes<br />
Table 27: Filter options for JUnit methods<br />
SilkPerformer User Guide 275
14 UNIT TEST INTEGRATION (JUNIT & NUNIT)<br />
JUnit Integration<br />
Complex Functions (selected by<br />
default)<br />
Autodetect Unit Test Functions<br />
(selected by default)<br />
Table 27: Filter options for JUnit methods<br />
Show functions that take complex<br />
parameters. In Java, complex<br />
parameters are scripted by<br />
JavaSetObject with NULL as the<br />
default value.<br />
Automatically detect and script JUnit<br />
functions according to the following<br />
rules:<br />
• JUnit 3.8.x scripts are derived from<br />
junit.framework.TestCase class.<br />
• JUnit 3.8.x functions must not have<br />
parameters or return values.<br />
• setUp() and tearDown() are<br />
invoked prior to and following each<br />
JUnit 3.8.x method.<br />
• JUnit 4.x scripts no longer require<br />
to be derived from<br />
junit.framework.TestCase class.<br />
• JUnit 4.x functions are recognized<br />
by the @Test annotation and added<br />
to the script, unless the @Ignore<br />
annotation is used.<br />
• Methods having @BeforeClass and<br />
@AfterClass annotation are<br />
invoked once per test class.<br />
• Methods having @Before and<br />
@After annotation are invoked<br />
prior to and following each JUnit<br />
4.x method.<br />
Generating a BDL<br />
script for JUnit 3.8.x<br />
Once you have customized filter settings, click OK to update the Methods field.<br />
The following script is generated by importing a sample JUnit 3.8.x test case<br />
and selecting the three methods testRound, testSqrt, and testMax:<br />
transaction TInit<br />
var<br />
hPerf : number;<br />
begin<br />
JavaCreateJavaVM();<br />
JavaSetString(JAVA_STATIC_METHOD, "TestCaseName");<br />
ghTestObj := JavaLoadObject("JUTestClass",<br />
"JUTestClass.");<br />
end TInit;<br />
276 SilkPerformer User Guide
14 UNIT TEST INTEGRATION (JUNIT & NUNIT)<br />
JUnit Integration<br />
transaction TMain<br />
begin<br />
JUnitCallMethod(ghTestObj, "testRound",<br />
"testRound");<br />
JUnitCallMethod(ghTestObj, "testSqrt", "testSqrt");<br />
JUnitCallMethod(ghTestObj, "testMax", "testMax");<br />
end TMain;<br />
Generating a BDL<br />
script for JUnit 4.x<br />
transaction TEnd<br />
begin<br />
JavaFreeObject(ghTestObj);<br />
end TEnd;<br />
JavaLoadObject in the TInit transaction instantiates the JUnit test class<br />
“JUTestClass”.<br />
JUnitCallMethod in the TMain transaction calls one of the three test methods in<br />
the same way that a JUnit test runner would. First the setUp() method is<br />
invoked, then the test method itself (e.g., “testSqrt()”), finally the tearDown()<br />
method is invoked.<br />
Timers:<br />
When an optional timer parameter is specified for a Java method call, the<br />
execution time of the constructor, test method, setup method, and tear-down<br />
method are measured. For the example above you would receive the following<br />
measures:<br />
For the constructor: JUTestClass.<br />
For the methods: testRound, testSqrt, testMax<br />
For the set up methods: testRound_setup, testSqrt_setup, testMax_setup<br />
For the tear down methods: testRound_tearDown, testSqrt_tearDown, testMax_<br />
tearDown<br />
The following script is generated by importing a sample JUnit 4.x test case and<br />
selecting the methods doFoo and doFoo2. The sample JUnit test script contains<br />
several annotations for test setup and tear-down.<br />
var<br />
ghTestObj :number;<br />
dcluser<br />
user<br />
JavaUser<br />
transactions<br />
TInit :begin;<br />
TMain :1;<br />
TEnd :end;<br />
SilkPerformer User Guide 277
14 UNIT TEST INTEGRATION (JUNIT & NUNIT)<br />
JUnit Integration<br />
dclfunc<br />
function JUnit4Before<br />
begin<br />
// @Before<br />
JavaCallMethod(ghTestObj, "myBefore", "myBefore");<br />
end JUnit4Before;<br />
function JUnit4After<br />
begin<br />
// @After<br />
JavaCallMethod(ghTestObj, "myAfter", "myAfter");<br />
end JUnit4After;<br />
function JUnit4CallFunc(hJavaObj :number; sName<br />
:string; sTimerName :string optional; sExceptionBuffer<br />
:string optional) : boolean<br />
begin<br />
JUnit4Before();<br />
// @Test<br />
JUnit4CallFunc := JavaCallMethod(hJavaObj, sName,<br />
sTimerName);<br />
if not StrIsNull(sExceptionBuffer) then<br />
JavaGetLastException(hJavaObj, sExceptionBuffer);<br />
end;<br />
JUnit4After();<br />
end JUnit4CallFunc;<br />
dcltrans<br />
transaction TInit<br />
var<br />
hPerf : number;<br />
begin<br />
JavaCreateJavaVM();<br />
ghTestObj := JavaLoadObject("JU4ImporterTest",<br />
"JU4ImporterTest.");<br />
// @BeforeClass<br />
JavaCallMethod(JAVA_STATIC_METHOD,<br />
"JU4ImporterTest.myBeforeClass", "myBeforeClass");<br />
end TInit;<br />
transaction TMain<br />
var<br />
sBuffer :string;<br />
begin<br />
JUnit4CallFunc(ghTestObj, "doFoo", "doFoo");<br />
JUnit4CallFunc(ghTestObj, "doFoo2", "doFoo2");<br />
278 SilkPerformer User Guide
14 UNIT TEST INTEGRATION (JUNIT & NUNIT)<br />
JUnit Integration<br />
end TMain;<br />
transaction TEnd<br />
var<br />
sBuffer :string;<br />
begin<br />
// @AfterClass<br />
JavaCallMethod(JAVA_STATIC_METHOD,<br />
"JU4ImporterTest.myAfterClass", "myAfterClass");<br />
JUnit 4.x exception<br />
handling<br />
JavaFreeObject(ghTestObj);<br />
end TEnd;<br />
In the dclfunc section, the helper functions for test setup, tear-down, and<br />
exception handling are defined. These functions will be used in the transactions.<br />
JavaLoadObject in the TInit transaction instantiates the JUnit test class<br />
“JU4ImporterTest”. All JUnit methods using the @BeforeClass annotation are<br />
called in the TInit transaction.<br />
JUnit4CallFunc in the TMain transaction calls all the test methods that were<br />
selected for the JUnit test import. First the methods using the @Before<br />
annotation are invoked, then the test method itself (e.g., “doFoo()”), finally the<br />
methods using the @After annotation are invoked.<br />
Timers:<br />
When an optional timer parameter is specified for a Java method call, the<br />
execution time of the constructor, test method, test setup, and test tear-down are<br />
measured. For the example above you would receive the following measures:<br />
For the constructor: JU4ImporterTest.<br />
For the methods: doFoo, doFoo2<br />
For the test set up: myBeforeClass, myBefore<br />
For the test tear-down: myAfterClass, myAfter<br />
JUnit 4.x allows the definition of methods that throw exceptions. Throwing such<br />
exceptions is validated by JUnit. SilkPerformer imports JUnit methods that<br />
throw exceptions including the validation of the thrown message.<br />
//@Test(expected=java.lang.IllegalArgumentException)<br />
JavaRegisterException(500,<br />
"java.lang.IllegalArgumentException", JAVA_OPTION_MATCH_<br />
SUBSTRING);<br />
ErrorAdd(FACILITY_NATIVE_JAVA, 500, SEVERITY_<br />
INFORMATIONAL);<br />
JUnit4CallFunc(ghTestObj, "doFoo", "doFoo",<br />
sBuffer);<br />
ErrorRemove(FACILITY_NATIVE_JAVA, 500);<br />
SilkPerformer User Guide 279
14 UNIT TEST INTEGRATION (JUNIT & NUNIT)<br />
JUnit Integration<br />
Importing JUnit test<br />
suites<br />
Executing JUnit test<br />
suites<br />
if (StrSearch(sBuffer,<br />
"java.lang.IllegalArgumentException", STR_SEARCH_FIRST)<br />
= 0) then<br />
RepMessage("method did not throw:<br />
java.lang.IllegalArgumentException", SEVERITY_ERROR);<br />
end;<br />
The sample above tests a JUnit method that is expected to throw a<br />
java.lang.IllegalArgumentException. The function JavaRegisterException<br />
assigns the BDL error code 500 to the exception. The function ErrorAdd sets the<br />
error severity to informational, because the error is expected. After that, the<br />
JUnit method doFoo is invoked, where the parameter sBuffer retrieves the error<br />
message. The ErrorRemove function sets the error handling back to its original<br />
state. It also verifies that the expected exception occurred, and throws a BDL<br />
error if this is not the case.<br />
Note When modifying the BDL script manually, make sure that you<br />
do not map a Java exception to different BDL error numbers, or vice<br />
versa.<br />
Procedure To import a JUnit test suite:<br />
Note For JUnit4 module tests, JDK 1.5 or higher is required.<br />
Modify your Java profile settings accordingly before importing<br />
JUnit4 module tests.<br />
1 Proceed as described in “Importing JUnit test classes”<br />
2 On the Import Unit Test - JUnit Test Class dialog, click the Advanced<br />
Settings button (the funnel icon above the Methods field).<br />
3 On the Advanced Settings dialog, make sure to apply the following<br />
selections:<br />
- "Unit Test Functions Only": Not selected<br />
- "Declared Functions Only": Selected<br />
- "Member Functions Only": Not selected<br />
4 Load the JUnit test class as usual (via browsing for an archive or by<br />
typing the class name).<br />
5 Select the suite() method, then click OK.<br />
If the JUnit Import Tool (Project -> Import Unit Test -> JUnit Test Class) scripts<br />
code for invoking a method that has a return value, the code needed for<br />
retrieving the return value is scripted but commented out.<br />
If a Java method returns a junit.framework.Test method, additional commentedout<br />
code is scripted, which allows to use the FRunTestSuite function from<br />
junit.bdh to execute the test suite. junit.bdh is automatically added to the include<br />
280 SilkPerformer User Guide
14 UNIT TEST INTEGRATION (JUNIT & NUNIT)<br />
NUnit Integration<br />
section of the BDL script. To execute the test suite, you need to un-comment the<br />
respective calls.<br />
transaction TMain<br />
begin<br />
// junit.framework.Test suite()<br />
JavaCallMethod(JAVA_STATIC_METHOD,<br />
"JU4ImporterTestSimple.suite", "suite");<br />
// hObj := JavaGetObject(JAVA_STATIC_METHOD);<br />
// use the following function to execute JUnit<br />
testsuites<br />
// FRunTestSuite(hObj);<br />
// JavaFreeObject(hObj);<br />
end TMain;<br />
NUnit Integration<br />
Setting up new<br />
projects<br />
SilkPerformer facilitates smooth integration of existing NUnit and Microsoft<br />
Unit test scripts into SilkPerformer for the support of remote-component testing<br />
under realistic concurrent-access server conditions.<br />
SilkPerformer provides an import tool that enables you to import existing NUnit<br />
assemblies and other .NET assemblies. Methods may have parameters and<br />
return values; code for setting the in-parameters of these functions is generated<br />
automatically.<br />
SilkPerformer’s Unit Import Tool offers you the option of selecting specific test<br />
case methods. It automatically generates BDL stub code (a benchmark<br />
description file) that calls those selected test case methods. Existing NUnit test<br />
classes can be called from SilkPerformer without requiring modification of the<br />
test classes.<br />
Note SilkPerformer’s NUnit import utility supports NUnit versions<br />
2.1.4 and higher.<br />
Procedure To set up an NUnit or .NET Testing SilkPerformer project:<br />
1 Click the Outline Project button.<br />
2 Enter a Project name and Project description for the project.<br />
3 Select Unit Testing/NUnit or .NET Testing from the Application type tree<br />
control on the Outline Project dialog.<br />
4 Click OK to create the project.<br />
SilkPerformer User Guide 281
14 UNIT TEST INTEGRATION (JUNIT & NUNIT)<br />
NUnit Integration<br />
5 Click the Model Script workflow button to customize the script (See the<br />
following section, Importing NUnit/.Net Assemblies for details on<br />
modeling NUnit test scripts).<br />
Importing NUnit/.NET<br />
assemblies<br />
Modeling scripts<br />
Procedure To Import an NUnit assembly:<br />
1 Select Project/Import Unit Test/NUnit Test Class to open the Import<br />
NUnit Test Class dialog.<br />
2 Follow the instructions outlined below.<br />
On the Import NUnit Test Class dialog, select a file that is to be tested using the<br />
File field; click the Browse (...) button to browse for the file. The available<br />
classes are then retrieved and displayed in the Class field.<br />
When you don’t specify a specific file for testing, the Model Script dialog<br />
enables you to specify a Class name from the available system classes (or<br />
another file), select the Methods that are to be called, and define the appropriate<br />
Constructor for instantiating the imported class. Note that when you enter a class<br />
name in the Class field, the available constructors and methods are<br />
automatically retrieved and displayed.<br />
Click the Active Profile button (the checklist icon above the Methods field) to<br />
display the Profile Settings dialog, open to the .NET/General page for .NET<br />
projects (NUnit & .NET Testing project types). Changes made to these settings<br />
may lead to different results. Selections made in the Class, Constructor, and<br />
Methods fields are updated with the new results.<br />
Click the Advanced Settings button (the checklist icon above the Methods field)<br />
to filter the methods that are shown in the Methods field.<br />
Parameterless Functions Only<br />
Unit Test Functions Only (selected<br />
by default)<br />
Member Functions Only<br />
Public Functions (selected by<br />
default)<br />
Ignore all functions that expect<br />
parameters<br />
Ignore all functions that are not<br />
NUnit<br />
Ignore all non-member functions<br />
Include public functions<br />
Protected Functions<br />
Include protected functions<br />
Private Functions<br />
Include functions with private<br />
access<br />
Package Functions<br />
Include functions with package<br />
access<br />
Table 28: Filter options for NUnit methods<br />
282 SilkPerformer User Guide
14 UNIT TEST INTEGRATION (JUNIT & NUNIT)<br />
NUnit Integration<br />
Declared Functions Only<br />
Complex Functions (selected by<br />
default)<br />
Autodetect Unit Test Functions<br />
(selected by default)<br />
Table 28: Filter options for NUnit methods<br />
Ignore functions from the base<br />
classes<br />
Show functions that take complex<br />
parameters. In Java, complex<br />
parameters are scripted by<br />
DotNetSetObject with NULL as the<br />
default value.<br />
Automatically detect and script<br />
functions. Functions must not have<br />
parameters or return values.<br />
Methods marked with [SetUp] and<br />
[TearDown] (for NUnit)<br />
respectively [TestInitialize] and<br />
[TestCleanup] (for Microsoft Unit<br />
Tests) are invoked prior to and<br />
following each method.<br />
Generating NUnit BDL<br />
scripts<br />
Once you have customized filter settings, click OK to update the Methods field.<br />
The following script is generated by importing NUnit Money and selecting the<br />
three methods BagMultiply, BagNegate, and BagSimpleAhdd.<br />
transaction TInit<br />
var<br />
sFileName : string;<br />
begin<br />
DotNetSetOption(DOTNET_OPT_REDIRECT_CONSOLE, 1);<br />
// ==============================================<br />
// Unit Test TestClass Information:<br />
// Used Framework: NUnit Test Framework<br />
// Initialize method: SetUp<br />
// Class contains 21 test methods!<br />
// ==============================================<br />
GetDataFilePath("nunitmoneysample.dll", sFileName);<br />
ghTestObj := DotNetUnitTestLoadObject(sFileName,<br />
"NUnit.Samples.Money.MoneyTest",<br />
"NUnit.Samples.Money.MoneyTest");<br />
end TInit;<br />
transaction TMain<br />
begin<br />
// BagMultiply<br />
DotNetUnitTestCallMethod(ghTestObj, "BagMultiply",<br />
"BagMultiply");<br />
// BagNegate<br />
SilkPerformer User Guide 283
14 UNIT TEST INTEGRATION (JUNIT & NUNIT)<br />
NUnit Integration<br />
DotNetUnitTestCallMethod(ghTestObj, "BagNegate",<br />
"BagNegate");<br />
// BagSimpleAdd<br />
DotNetUnitTestCallMethod(ghTestObj, "BagSimpleAdd",<br />
"BagSimpleAdd");<br />
end TMain;<br />
Timers<br />
transaction TEnd<br />
begin<br />
DotNetUnitTestFreeObject(ghTestObj,<br />
"NUnit.Samples.Money.MoneyTest");<br />
end TEnd;<br />
DotNetUnitTestLoadObject loads the NUnit assembly and creates an instance<br />
of the test class. If the test class has a global initialize function implemented<br />
(marked with TestFixtureSetup - ClassInitialize), this function will be called<br />
right after the object is created.<br />
DotNetUnitTestFreeObject in the TEnd transaction frees the reference to the test<br />
object. If the test class has a global uninitialize function implemented (marked<br />
with TestFixtureTearDown - ClassCleanup), this function will be called prior to<br />
release of the object.<br />
DotNetUnitTestCallMethod calls the TestMethod in the same way that the<br />
NUnit Microsoft Unit Test Engine does. If there is a SetUp - TestInitialize<br />
method implemented, it will be called before the test method is called.<br />
If there is a TearDown - TestCleanup method implemented, it will be called<br />
after the test method is called.<br />
Test methods that expect an exception to be thrown (those marked with<br />
ExpectedException) are only considered successful when an exception is<br />
actually thrown.<br />
When a test method writes information to the error or out console, the<br />
information can be viewed in the TrueLog. A separate element is logged as child<br />
node of the DotNetUnitTestCallMethod.<br />
The same applies for unexpected exceptions. Stack trace and exception<br />
messages are logged to the TrueLog.<br />
A new optional timer parameter has been introduced for the original DotNet<br />
API calls and the new DotNetUnitTest API calls. When this parameter is<br />
specified, the execution times of the constructor, test method, set up method,<br />
and tear down method are measured. For the example above you would receive<br />
the following measures:<br />
For the constructor: NUnit.Sample.Money.MoneyTest<br />
For the methods: BagMultiply, BagNegate, BagSimpleAdd<br />
284 SilkPerformer User Guide
14 UNIT TEST INTEGRATION (JUNIT & NUNIT)<br />
NUnit Integration<br />
For the setup methods: BagMultiply_Setup, BagNegate_Setup, BagSimpleAdd_<br />
Setup<br />
SilkPerformer User Guide 285
14 UNIT TEST INTEGRATION (JUNIT & NUNIT)<br />
NUnit Integration<br />
286 SilkPerformer User Guide
15<br />
SilkCentral 15 Chapter<br />
Test Manager<br />
Integration<br />
Introduction<br />
What you will learn<br />
This chapter explains SilkPerformer’s integration with SilkCentral Test<br />
Manager.<br />
This chapter contains the following sections:<br />
Section<br />
Page<br />
Overview 287<br />
Configuring Test Manager Integration 288<br />
Opening SilkPerformer Projects from Test Manager 289<br />
Importing SilkPerformer Projects from Test Manager 291<br />
Uploading SilkPerformer Projects to Test Manager 292<br />
Uploading Test Results to Test Manager 293<br />
Downloading Test Results from Test Manager 294<br />
Overview<br />
SilkPerformer is fully integrated with SilkCentral Test Manager’s test planning<br />
and test execution functionality. SilkPerformer projects can be integrated into<br />
Test Manager test plans and directly executed via Test Manager. This allows for<br />
powerful test-result analysis and reporting. It also enables “unattended” testing<br />
(tests that are run automatically by Test Manager based on pre-configured<br />
schedules).<br />
SilkPerformer User Guide 287
15 SILKCENTRAL TEST MANAGER INTEGRATION<br />
Configuring Test Manager Integration<br />
Test Manager projects can be downloaded to SilkPerformer where scripts and<br />
settings can be edited. Edited projects can subsequently be uploaded to Test<br />
Manager to make them available for future test executions.<br />
Note The term ‘Project’ is used differently in SilkPerformer than it<br />
is in Test Manager. A SilkPerformer ‘project’, when uploaded to<br />
Test Manager, becomes the core element of a Test Manager ‘test<br />
definition’. Test Manager ‘projects’ are higher-level entities that<br />
may include multiple test definitions, executions definitions, and<br />
requirements.<br />
Silk Performance Explorer can be used for in-depth analysis of test runs.<br />
Performance Explorer can be launched directly from Test Manager’s<br />
Executions unit via execution runs on the Runs tab (see the SilkCentral Test<br />
Manager User Guide for details), from SilkPerformer, or from Performance<br />
Explorer itself (see the Performance Explorer User Guide for details regarding<br />
Performance Explorer’s integration with Test Manager).<br />
The results of SilkPerformer load test runs can be uploaded to Test Manager and<br />
associated with test definitions. To achieve this, SilkPerformer searches its<br />
results directories; the files in the results directories are then uploaded to Test<br />
Manager. See “Uploading Test Results to Test Manager” for details.<br />
For additional information about Test Manager’s integration with<br />
SilkPerformer, please consult the SilkCentral Test Manager User Guide and the<br />
Silk Performance Explorer User Guide.<br />
Configuring Test Manager Integration<br />
Procedure To configure Test Manager access:<br />
1 From the SilkPerformer menu bar, select Settings/System. The System<br />
Settings - Workbench dialog appears open at the Agent Pool tab of the<br />
Workbench group.<br />
2 Select the Test Manager tab to access Test Manager configuration.<br />
3 In the Hostname field, specify the host name or IP address of the host<br />
where SilkCentral Test Manager’s front-end server is running.<br />
4 In the Port field, specify the port number on which SilkCentral Test<br />
Manager is listening. This is usually port 80 (if you are using an ISAPI<br />
Web server) or port 19120 (if you are using Test Manager’s standalone<br />
Web server). If you leave this field empty, SilkPerformer automatically<br />
uses the default port number (80, 443 for secure connection).<br />
5 Select the Secure checkbox to connect to Test Manager via SSL (Secure<br />
Sockets Layer). The default SSL port is 443.<br />
288 SilkPerformer User Guide
15 SILKCENTRAL TEST MANAGER INTEGRATION<br />
Opening SilkPerformer Projects from Test Manager<br />
6 Enter valid user credentials in the Username and Password fields.<br />
7 Click the Test Connection button to test the connection to SilkCentral<br />
Test Manager.<br />
8 Click the Internet Options button to define the Internet-related settings<br />
for your computer and, most importantly, to determine how to connect<br />
your computer to the Internet. In the ensuing Internet Properties dialog,<br />
click the Connections tab and select the options that correspond to your<br />
environment.<br />
Opening SilkPerformer Projects from Test Manager<br />
Procedure To open a SilkPerformer project from Test Manager:<br />
1 From the File menu, select the Open Project from Test Manager<br />
command. You will then be presented with the connection settings you<br />
entered on the System Settings - Workbench - Test Manager tab.<br />
2 (Optional) If you don't want to use the default connection settings<br />
specify:<br />
- Hostname of your Test Manager installation and the Port where Test<br />
Manager is listening (values of ‘0’ or ‘omitted’ indicate the default<br />
port).<br />
- Secure connection option to connect to Test Manager via SSL<br />
(Secure Sockets Layer, HTTPS).<br />
- Valid Username and Password to connect to Test Manager.<br />
3 (Optional) Click the Set as Default button to define the connection<br />
settings you have entered as the default settings for future connections.<br />
4 (Optional) Click the Internet Options button to define Internet<br />
connection properties (e.g., proxy settings, security settings, browser<br />
connection settings). Click OK on the Internet Properties dialog to save<br />
the settings.<br />
5 Click Next on the Open Project from Test Manager dialog to see a list of<br />
the Test Manager projects to which the active user has read access (this is<br />
the same list that is available in Test Manager’s Projects unit).<br />
6 Select the Test Manager project you want to open and click Next (or<br />
simply double-click the project you want to open).<br />
7 In the project tree, open test containers and/or test folders as required and<br />
select the SilkPerformer test definition that you want to open in<br />
SilkPerformer.<br />
SilkPerformer User Guide 289
15 SILKCENTRAL TEST MANAGER INTEGRATION<br />
Opening SilkPerformer Projects from Test Manager<br />
Editing SilkPerformer<br />
projects from Test<br />
Manager<br />
8 If the SilkPerformer test definition is located on an UNC path, click<br />
Finish. Otherwise click Next. This brings up the Target Directory<br />
Selection dialog where you can specify the location where the project is<br />
to be copied. If you are using source-control integration for Test<br />
Manager (e.g., Visual SourceSafe) you will be presented with a login<br />
screen for your source-control client. Enter valid user connection settings<br />
and click OK to continue.<br />
Note SilkPerformer projects can also be opened directly from Test<br />
Manager via the Open Project icon on the Test Manager Properties<br />
tab in the Test Plan unit. See the SilkCentral Test Manager User<br />
Guide for details.<br />
Note See the Settings chapter of the SilkCentral Test Manager User<br />
Guide for information regarding the configuration of source-control<br />
integration with Test Manager.<br />
Procedure To edit a SilkPerformer project from Test Manager:<br />
1 Once you have downloaded a Test Manager project, the project appears<br />
in SilkPerformer, where you can edit the project before saving it back to<br />
Test Manager.<br />
Note If you have configured source-control integration for your<br />
Test Manager installation, SilkPerformer will have automatically<br />
checked the SilkPerformer project file out of the source-control<br />
database (SilkPerformer projects that have been checked out via Test<br />
Manager source-control integration are indicated with red<br />
checkmark symbols in the SilkPerformer tree view). This integration<br />
is facilitated by SilkPerformer using Web Services to connect to Test<br />
Manager and request the source control link information (connection<br />
string, username, and .ltp project file name).<br />
2 Once you have completed and saved all required changes to the<br />
SilkPerformer project file, select the Close Project command from the<br />
File menu and, on the subsequent dialog, confirm that you want to check<br />
the edited file back into the source-control database by clicking Yes<br />
(alternately, you can select the Check In (and Close Project) command<br />
from the project tree context menu).<br />
All subsequent executions of this project via Test Manager will use this updated<br />
project file.<br />
290 SilkPerformer User Guide
15 SILKCENTRAL TEST MANAGER INTEGRATION<br />
Importing SilkPerformer Projects from Test Manager<br />
Importing SilkPerformer Projects from Test Manager<br />
Whereas opening a Test Manager project (as described in “Opening<br />
SilkPerformer Projects from Test Manager”) involves “checking out” a Test<br />
Manager project from a source-control tool (or retrieving a project from a UNC<br />
path), editing the project, and checking the project back in, importing a project<br />
involves only downloading a copy of the project and working with it<br />
independent of Test Manager. Any changes you make to an imported project<br />
will have no effect on Test Manager. All you need to import a Test Manager<br />
project is a normal Web connection (no source-control tool connection or<br />
credentials are required).<br />
Importing a file into SilkPerformer enables you to perform “attended” test runs<br />
independently of Test Manager. This allows you to execute test runs manually in<br />
SilkPerformer. This differs from tests that are run automatically based on<br />
predefined schedules in Test Manager. Test results can subsequently be<br />
uploaded back to Test Manager and associated with a test definition.<br />
Even if you have configured source code control integration with Test Manager,<br />
imported project files will not be checked out of your source control tool<br />
because ‘imported’ project files are saved locally to your hard disk as<br />
compressed (WinZip) archives. Attended tests can also be initiated from the Test<br />
Manager side (see the SilkCentral Test Manager User Guide for details).<br />
Procedure To import a SilkPerformer project from Test Manager:<br />
1 From the File menu, select the Import Project from Test Manager<br />
command. You will then be presented with the connection settings you<br />
entered on the System Settings - Workbench - Test Manager tab.<br />
2 (Optional) If you don't want to use the default connection settings<br />
specify:<br />
- Host name or IP address of your Test Manager installation and the<br />
Port where Test Manager is listening (values of ‘0’ or ‘omitted’<br />
indicate the default port).<br />
- Secure connection option to connect to Test Manager via SSL<br />
(Secure Sockets Layer, HTTPS).<br />
- Username and Password of your connection.<br />
3 (Optional) Click the Set as Default button to define the connection<br />
settings you have entered as the default settings for future connections.<br />
4 (Optional) Click the Internet Options button to define Internet<br />
connection properties (e.g., proxy settings, security settings, browser<br />
connection settings). Click OK on the Internet Properties dialog to save<br />
the settings.<br />
SilkPerformer User Guide 291
15 SILKCENTRAL TEST MANAGER INTEGRATION<br />
Uploading SilkPerformer Projects to Test Manager<br />
5 Click Next on the Import Project from Test Manager dialog to see a list<br />
of the Test Manager projects to which the active user has read access<br />
(this is the same list that is available in Test Manager’s Projects unit).<br />
6 Select the Test Manager project you want to import and click Next (or<br />
simply double-click the project you want to import).<br />
7 In the project tree, open test containers and/or test folders as required and<br />
select the SilkPerformer test definition that you want to import to<br />
SilkPerformer.<br />
8 If you don't want to use the default target directory, enter a directory of<br />
your choice into the Target Directory field.<br />
9 Click Finish.<br />
Uploading SilkPerformer Projects to Test Manager<br />
Uploading<br />
SilkPerformer projects<br />
to Test Manager<br />
Before uploading a project to Test Manager, ensure that you have properly<br />
configured the project’s workload via SilkPerformer. Workload settings are<br />
subsequently specified along with uploaded projects in the SilkPerformer Test<br />
Properties portion of the Properties tab in Test Manager’s Test Plan unit.<br />
Procedure To upload a SilkPerformer project to Test Manager:<br />
1 With the project that you want to upload opened in SilkPerformer, select<br />
Upload Project to Test Manager from the File menu to open the Upload<br />
Project to Test Manager wizard.<br />
2 If the project has never been uploaded to Test Manager before, the Test<br />
Manager connection settings that you configured will be displayed (see<br />
“Configuring Test Manager Integration” for details on configuring these<br />
settings). Click Next. Please proceed with step 3.<br />
If the project has been uploaded to Test Manager before, the association<br />
with Test Manager’s test definition is already known and pre-selected.<br />
Please proceed with step 4.<br />
3 From the project list, select the SilkCentral Test Manager project to<br />
which you want to upload the SilkPerformer project. Click Next.<br />
4 You can select an existing test definition that is to be overwritten or you<br />
can create a new test definition by right-clicking the folder or container<br />
where the test definition is to reside and selecting New Child Test<br />
Definition from the context menu.<br />
You can also create a new folder within an existing test container by<br />
right-clicking a container and selecting New Child Test Folder from the<br />
context menu.<br />
292 SilkPerformer User Guide
15 SILKCENTRAL TEST MANAGER INTEGRATION<br />
Uploading Test Results to Test Manager<br />
Note Newly created test definitions and folders are displayed with<br />
bold text to indicate that they have not yet been written to the Test<br />
Manager database. If you click Cancel the items you have created<br />
will not be saved.<br />
5 If you do not want to upload test run results now, do not enable the<br />
Enable Results Upload checkbox and proceed with step 8.<br />
Enable the Enable Results Upload checkbox to select specific test run<br />
results that you want to upload with the project. Click Next.<br />
6 Check the appropriate checkboxes in the Results list to select the results<br />
that you want to upload along with the project. Click Next.<br />
7 Specify Version and Build number for the assigned product to which the<br />
uploaded results belong.<br />
8 Click Finish to upload the project to Test Manager. The newly uploaded<br />
items now appear in Test Manager’s test plan/project tree.<br />
Uploading Test Results to Test Manager<br />
Procedure To upload test results to Test Manager:<br />
1 Select the Upload Results to Test Manager command from the Results<br />
menu.<br />
Alternative Right-click a results node in the Results list of<br />
SilkPerformer and select Upload Results to Test Manager from the<br />
context menu.<br />
2 If the project has never been uploaded to Test Manager before, the Test<br />
Manager connection settings that you configured will be displayed (see<br />
“Configuring Test Manager Integration” for details on configuring these<br />
settings). Click Next. Please proceed with step 3.<br />
If the project has been uploaded to Test Manager before, the association<br />
with Test Manager’s test definition is already known and pre-selected.<br />
Please proceed with step 5.<br />
3 From the project list, select the SilkCentral Test Manager project to<br />
which you want to upload the SilkPerformer results. Click Next.<br />
4 From the tree list, select the test definition to which you want to upload<br />
the results. Click Next.<br />
SilkPerformer User Guide 293
15 SILKCENTRAL TEST MANAGER INTEGRATION<br />
Downloading Test Results from Test Manager<br />
Note Alternately you can right-click in the tree and use the<br />
commands on the context menu to create a new test definition, child<br />
test definition, test folder, and/or child test folder to which the results<br />
are to be saved.<br />
5 On the following dialog you can specify Version and Build number for<br />
the assigned product to which the uploaded results belong. Also specify<br />
the SilkPerformer Test result status (Passed, Failed).<br />
6 Click Finish to upload the results.<br />
Downloading Test Results from Test Manager<br />
Procedure To download test results from Test Manager:<br />
1 Select SilkPerformer’s Results tab in the top left area of the GUI.<br />
2 Click the Click here to add Test Manager results node in the results tree.<br />
3 The Open Results from Test Manager wizard opens. The corresponding<br />
Test Manager’s test definition is pre-selected. You can select multiple<br />
executions and download the results of multiple test executions.<br />
Note To download results from another test defintion, another<br />
project, or another Test Manager server, click the Back button to<br />
navigate back though Test Manager’s tree view.<br />
4 Click Finish to download the results.<br />
294 SilkPerformer User Guide
16<br />
Source 16 Chapter<br />
Control Integration<br />
Introduction<br />
What you will learn<br />
This chapter explains SilkPerformer’s integration with source control systems.<br />
This chapter contains the following sections:<br />
Section<br />
Page<br />
Overview 295<br />
Configuring Source Control Integration 296<br />
Placing Projects and Files Under Source Control 298<br />
Checking Files In 300<br />
Checking Files Out 301<br />
Getting the Latest File Versions 302<br />
Checking In/Out Project Files 302<br />
Removing Source Control Linkage 303<br />
Synchronizing Source Control Status 303<br />
Known Issues and Workarounds 304<br />
Overview<br />
SilkPerformer's source control integration (SCC integration, also referred to as<br />
source code control integration) enables you and other members of your<br />
organization to manage and share your SilkPerformer project files, test scripts,<br />
custom include files, and data files in a common repository (i.e., source control<br />
system)—enabling file check-in, check-out, get-latest-version, and other<br />
functions typical of source control systems.<br />
SilkPerformer’s source control integration is facilitated by commands on the<br />
SilkPerformer File menu (File/Source Control) and context menus in<br />
SilkPerformer User Guide 295
16 SOURCE CONTROL INTEGRATION<br />
Configuring Source Control Integration<br />
SilkPerformer’s project tree. All project nodes, script nodes, custom include file<br />
nodes, and data file nodes in the project tree offer SCC commands.<br />
In addition to offering commands that select all the files of complete projects<br />
(i.e., project file, custom include files, data files, and scripts), a sub-set of SCC<br />
commands that select only the project file are also available (i.e., you can easily<br />
check-in/check-out project files without overwriting associated script and data<br />
files). See “Checking In/Out Project Files” for details.<br />
Status icons in SilkPerformer’s project tree indicate the status of files under<br />
source control:<br />
- Files that have been placed under source control and are currently<br />
checked out (i.e., the source control version of the file is writable)<br />
are indicated with red checkmark icons.<br />
- Files that have been placed under source control, but are currently<br />
NOT checked out (i.e., the source control version of the file is readonly)<br />
are indicated with blue padlock icons.<br />
Note SilkPerformer supports StarTeam, Microsoft Visual<br />
SourceSafe, and PVCS. Source control integration must be enabled<br />
in SilkPerformer Workbench system settings (Settings/System/<br />
Source Control). You must have StarTeam, PVCS, or Visual<br />
SourceSafe installed on your system before source control<br />
integration can be enabled.<br />
Configuring Source Control Integration<br />
For configuring MS VSS or PVCS SCC integration with SilkPerformer,<br />
proceed with “General SCC integration configuration”.<br />
For configuring StarTeam SCC integration with SilkPerformer, proceed with<br />
“Integrating StarTeam SCC with SilkPerformer”.<br />
Integrating StarTeam<br />
SCC with<br />
SilkPerformer<br />
The integration consists of downloading the integration module and running the<br />
installation wizard. The following subtasks detail this workflow:<br />
• “To download the StarTeam SCC Integration Module:”<br />
• “To run the StarTeam Microsoft SCC Integration Setup wizard:”<br />
Procedure To download the StarTeam SCC Integration Module:<br />
1 Navigate to the StarTeam download area at http://www.borland.com/<br />
downloads/download_starteam.html and select StarTeam 2005 & 2005<br />
Rel 2. Integrations. You may need to login or verify your email address.<br />
296 SilkPerformer User Guide
16 SOURCE CONTROL INTEGRATION<br />
Configuring Source Control Integration<br />
2 Scroll to the Others table at the bottom of the page. In the SCC row,<br />
choose HTTP or FTP to download the integration module.<br />
3 Click Save to save the integration module to the default location.<br />
4 The <strong>Borland</strong> Download Manager downloads the file to your local<br />
computer.<br />
General SCC<br />
integration<br />
configuration<br />
Procedure To run the StarTeam Microsoft SCC Integration Setup wizard:<br />
1 Click Launch on the Download Manager to save files and launch the<br />
installation wizard.<br />
2 Enter the name of the folder to save the temporary installation file to and<br />
click Next.<br />
3 The StarTeam Microsoft SCC Integration Setup wizard is displayed.<br />
4 Click Next and then click Yes to accept the license agreement. Enter your<br />
user name and company and click Next.<br />
5 The StarTeam SDK runtime is installed if needed.<br />
6 On the Choose Destination Location page of the wizard, choose the<br />
folder to install the StarTeam SCC Integration Module to and click Next.<br />
7 On the Select Components page of the wizard, choose SCC API<br />
Integration and click Next.<br />
8 Click Yes to make StarTeam the default SCC Provider.<br />
9 Click Next to accept the default program icon setup.<br />
10 Click Finish on the Setup Complete page of the wizard.<br />
11 Click Exit to close the Download Manager.<br />
Important: It is critical that you set up and manage your projects using the<br />
StarTeam client. This includes creating projects, adding files to a project, and<br />
removing files from a project.<br />
Procedure To configure source code control integration in SilkPerformer:<br />
1 With StarTeam, MS VSS, or PVCS installed on your local system, select<br />
System from the Settings menu.<br />
2 Select the Workbench group icon.<br />
3 Select the Source Control tab (this tab is farthest to the right of the tab<br />
list; use the small right-pointing arrow to access this tab).<br />
4 Select the Enable Source Control Integration checkbox. All SCC<br />
providers that are installed on your local machine and supported by<br />
SilkPerformer (i.e., StarTeam, VSS, or PVCS) are listed in the SCC<br />
Provider list box.<br />
SilkPerformer User Guide 297
16 SOURCE CONTROL INTEGRATION<br />
Placing Projects and Files Under Source Control<br />
5 Enter a username in the Username field. The username you enter here<br />
will be suggested automatically as the default username value in future<br />
operations, such as login dialogs.<br />
Note Custom include and user data files are configured<br />
independently from project and system files for the SCC because<br />
SilkPerformer may require that these files be stored separately in the<br />
SCC (e.g., an organization might have a common repository for<br />
include files that are shared amongst a group of developers. These<br />
developers might also be required to check in files from their<br />
individual projects).<br />
6 In the Custom user data files SCC path field, click the Browse (…) button<br />
and select the location in the SCC database where the custom user data<br />
files are to be saved.<br />
Note At this point you will be required to log into your SCC system<br />
(see StarTeam, MS VSS, and PVCS documentation for full details<br />
regarding the use of your source control system). The username that<br />
you entered above will be entered into the login dialog<br />
automatically. Your SCC system will also likely require that you<br />
enter the password that corresponds to the submitted username. If<br />
not already selected, you may need to select the target SCC database.<br />
Following that, browse the file structure of your SCC system and<br />
select the directory to which your custom user data files are to be<br />
saved (you may also create a new directory for this purpose).<br />
7 In the Custom include files SCC path field, click the browse (…) button<br />
and select the location in the SCC database where the custom include<br />
files are to be saved (see the note above for assistance with this step).<br />
Note The SCC database path field is automatically populated with<br />
the database-path root of the source control system you specify in<br />
the two above fields.<br />
8 Click OK to exit the System Settings dialog. Source control integration is<br />
now complete. SilkPerformer’s source control functions are now<br />
available from the File menu (File/Source Control).<br />
Placing Projects and Files Under Source Control<br />
Note System include files can not be placed under source control.<br />
Only custom include files can be placed under source control.<br />
298 SilkPerformer User Guide
16 SOURCE CONTROL INTEGRATION<br />
Placing Projects and Files Under Source Control<br />
Placing individual files<br />
under source control<br />
Procedure To place a complete project under source control:<br />
1 With a project loaded into SilkPerformer, select the project node in the<br />
project tree.<br />
2 Select the Add to Source Control command from the File menu<br />
(alternately you can right-click the project node and select Add to Source<br />
Control from the context menu).<br />
3 In the subsequent SCC dialog, all scripts, include files, and data files<br />
associated with the project are automatically selected for placement<br />
under source code control. Uncheck any file type selections for file types<br />
that should not be placed under source control.<br />
Note Ensure that source control paths have been configured for each<br />
project file type. As you have already configured source control<br />
paths for custom include files and data files in SilkPerformer’s<br />
system settings, you should now only have to specify source control<br />
paths for project files and script files (e.g., For VSS, a ‘Click here to<br />
specify link’ appears in the Source Control Project column of the<br />
Add to Source Control dialog for any project file type for which a<br />
source control path has not been specified). If required, log into your<br />
SCC and specify directories for your project and script files.<br />
4 Click OK to place the project’s files under source control<br />
Procedure To place individual files under source control:<br />
Note Project files (.ltp), script files (.bdh), custom include files, and<br />
data files can be independently placed under source code control.<br />
See above for information on placing complete project files (.ltp)<br />
under source code control.<br />
1 To place a file that is currently only available on your local disk under<br />
source control in the specified SCC file location (thereby configuring a<br />
connection between your local disk and the SCC), right-click a file in<br />
SilkPerformer’s project tree and select Add to Source Control from the<br />
context menu.<br />
Note Alternately you can select the Scripts, Data Files, or Include<br />
Files nodes to select all files of those types for placement under<br />
source control.<br />
2 The Add to Source Control dialog appears, showing the files upon which<br />
the operation is to be performed.<br />
Note The remainder of this process is handled via dialogs provided<br />
by your SCC provider (StarTeam, PVCS, or VSS). Please see your<br />
SCC documentation for full details.<br />
SilkPerformer User Guide 299
16 SOURCE CONTROL INTEGRATION<br />
Checking Files In<br />
3 Using the checkboxes on the Add to Source Control dialog, select/<br />
deselect files for placement into source control.<br />
Note If not already defined, a source control project path must be<br />
defined for each file that is to be placed under source control. If a file<br />
marked for placement under source control does not yet have a<br />
source control project path configured for it, you will be prompted to<br />
configure a path (the source control project of the SilkPerformer<br />
project file (*.ltp) is suggested by default).<br />
Note Files added to source control are written to the corresponding<br />
*.ltp file. Therefore, to add files to source control, the corresponding<br />
*.ltp file must be checked out.<br />
4 Click Add to place the file under source control.<br />
Note A blue padlock appears next to files in the project tree that are<br />
under source control and are currently checked in (read-only). This<br />
is the default status of files that are newly placed under source<br />
control.<br />
Checking Files In<br />
These instructions apply to the checking in of individual scripts, include files,<br />
data files, and entire projects.<br />
Procedure To check a file into source control:<br />
1 In the project tree, right-click a file that is currently checked out<br />
(indicated by a red checkmark icon) and select Check In from the context<br />
menu.<br />
2 The Check In dialog appears, showing the local path where the file is<br />
currently saved. Click the Check In button to check in the file. The status<br />
icon of the file now appears as a blue padlock, indicating that the source<br />
control version of the file is now read-only.<br />
Note To check in an entire project, right click the project node and<br />
select Check In from the context menu.<br />
Note Right-click the Scripts, Data Files, or Include Files nodes to<br />
select all files of those types for check-in. If required, on the<br />
subsequent Check In dialog, individual files of that type can be<br />
deselected.<br />
300 SilkPerformer User Guide
16 SOURCE CONTROL INTEGRATION<br />
Checking Files Out<br />
Checking Files Out<br />
These instructions apply to the checking out of individual scripts, custom<br />
include files, data files, and entire projects.<br />
Procedure To check a file out of source control:<br />
1 Right-click a file in the project tree that is currently checked in (indicated<br />
by a blue padlock icon) and select Check Out from the context menu.<br />
2 The Check Out dialog appears, showing the local path to where the file<br />
will be copied.<br />
Note If a single checked-in file is selected for check out, then only<br />
that file will be listed on the Check Out dialog. If no file or a<br />
checked-out file is selected for check out, then all currently checkedin<br />
files of the project will be listed on the Check Out dialog.<br />
Undoing file check out<br />
Click the Check Out button to check out the file. The status icon of<br />
the file now appears as a red checkmark, indicating that the source<br />
control version of the file is available and writable.<br />
Note To check out an entire project, right click the project node and<br />
select Check Out from the context menu.<br />
Note Right-click the Scripts, Data Files, or Include Files nodes to<br />
select all files of those types for check out. If required, on the<br />
subsequent Check Out dialog, individual files of that type can be<br />
deselected.<br />
Procedure To undo file check out:<br />
Note ‘Undoing’ a file check-out replaces the file on your local disk<br />
(regardless of whether or not it includes recent changes) with the<br />
most recently checked-in version of the file in the SCC. The local<br />
version of the file is then read-only.<br />
1 In the project tree, right-click a file that is checked out (indicated by a red<br />
checkmark icon) and select Undo Checkout from the context menu.<br />
2 The Undo Checkout dialog appears, showing the local path to where the<br />
file is located. Click the Undo Checkout button to undo the check out.<br />
The status icon of the file now appears as a blue padlock, indicating that<br />
the source control version of the file is read-only.<br />
Note To undo checkout of an entire project, right click the project<br />
node and select Undo Checkout from the context menu.<br />
SilkPerformer User Guide 301
16 SOURCE CONTROL INTEGRATION<br />
Getting the Latest File Versions<br />
Note Right-click the Scripts, Data Files, or Include Files nodes to<br />
select all files of those types at once. If required, on the subsequent<br />
Undo Checkout dialog, individual files of that type can be<br />
deselected.<br />
Getting the Latest File Versions<br />
A source control system ‘Get Latest Version’ function downloads the latest<br />
version of a file to your local disk (by default, in read-only format) without<br />
actually checking the file out.<br />
Note See StarTeam, MS VSS, or PVCS documentation for full<br />
details regarding use of your SCC’s ‘Get Latest Version’ function.<br />
These instructions apply to the Get Latest Version function for individual<br />
scripts, include files, data files, and entire projects.<br />
Procedure To get the latest version of a file from your source control<br />
system:<br />
1 Right-click a file in the project tree and select Get Latest Version from<br />
the context menu.<br />
2 The Get Latest Version dialog appears, showing the local path where the<br />
file will be copied. Click the Get Latest Version button.<br />
Note ‘Get Latest Version’ operations do not change the checked-in/<br />
checked-out status of files. For example, if the ‘Get Latest Version’<br />
operation is performed on a file that is currently checked out, the file<br />
remains checked out (if the file is open, you will be prompted as to<br />
whether or not you want to have the file reloaded with the new<br />
version).<br />
Note To get the latest version of an entire project, right click the<br />
project node and select Get Latest Version from the context menu.<br />
Note Right-click the Scripts, Data Files, or Include Files nodes to<br />
select all files of those types for a ‘Get Latest Version’ operation. If<br />
required, on the subsequent Get Latest Version dialog, individual<br />
files of that type can be deselected.<br />
Checking In/Out Project Files<br />
In addition to offering source control commands that operate on all the files of a<br />
complete project (project file, custom include files, data files, and scripts), a sub-<br />
302 SilkPerformer User Guide
16 SOURCE CONTROL INTEGRATION<br />
Synchronizing Source Control Status<br />
set of SCC commands that select out only the project file itself are available<br />
from the File menu (File/Source Control/Project File Only) and the project<br />
node of the project tree. These commands operate the same as their counterparts<br />
for associated files do; the only difference is that they do not affect the<br />
associated files (scripts, custom include files, and data files). Such functionality<br />
is useful if, for example, you want to check in a project file without overwriting<br />
the associated script, custom include, and data files that are currently stored in<br />
the SCC.<br />
The project-file only commands that are available from the File menu (File/<br />
Source Control/Project File Only) and the project node of the project tree are:<br />
- Get Latest Version<br />
- Check Out<br />
- Check In<br />
- Undo Checkout<br />
- Add to Source Control<br />
Removing Source Control Linkage<br />
The Remove Source Control Linkage command is the reverse of the Add to<br />
Source Control command. This command clears all linkage information from<br />
the project file that connects the version of a file on your local disk with the<br />
version of the file in source control. This command is useful when working with<br />
files (possibly received from a customer or support staff) for which the<br />
associated source control system is not available.<br />
Note Source control linkage can be removed for complete projects<br />
only, not individual files.<br />
Procedure To remove source control linkage from a project:<br />
1 In the project tree, right-click the project node of a project that is under<br />
source control and select Remove Source Control Linkage (or select<br />
Source Control/Remove Source Control Linkage from the File menu).<br />
2 Click OK on the subsequent dialog, confirming your understanding that<br />
all source control connection data for the project will be lost.<br />
Synchronizing Source Control Status<br />
Under certain conditions, SilkPerformer may fall out of sync with source control<br />
systems due to the corruption of linkage information. For example, if one were<br />
to close SilkPerformer while SilkPerformer is loaded with a checked out file and<br />
SilkPerformer User Guide 303
16 SOURCE CONTROL INTEGRATION<br />
Known Issues and Workarounds<br />
then check in that same file via the SCC, SilkPerformer would not be aware that<br />
the file had been checked in. SilkPerformer’s Synchronize command looks at<br />
the check-in/check-out status of files in the source control system and updates<br />
the status of those files in SilkPerformer.<br />
Note This function can be applied to complete projects only, not<br />
individual files.<br />
Procedure To synchronize the source control status of a project:<br />
1 In the project tree, right-click the project node of a project that is under<br />
source control and select Synchronize (or select Source Control/<br />
Synchronize from the File menu).<br />
2 Click OK on the subsequent dialog, confirming your understanding that<br />
all source control connection data for the file will be lost.<br />
Known Issues and Workarounds<br />
SCC client's reconnect functionality is not supported<br />
Issue: When SilkPerformer projects and/or files are linked to a defined SCC<br />
directory, and the directory is changed via the SCC client, SilkPerformer does<br />
not reconnect to the new directory.<br />
Workaround: Remove the existing source control linkage (as explained in<br />
“Removing Source Control Linkage”) then add the affected projects/files to the<br />
new directory (as explained in “Placing Projects and Files Under Source<br />
Control”).<br />
Note It is generally not recommended to use SCC client<br />
functionality for maintaining linked SilkPerformer projects.<br />
MS VSS 8.0 requests username/password for each file check-in/check-out<br />
operation<br />
Issue: MS VSS 8.0 introduced a security setting that, when activated, requests<br />
the user to enter their username and password each time they check in or check<br />
out a file from VSS. This request also appears in SilkPerformer when<br />
performing file operations with VSS.<br />
Workaround: To disable MS VSS manual login:<br />
1 Open SourceSafe Administrator.<br />
2 Open the database where your SilkPerformer projects are saved.<br />
3 Select the Options command from the Tools menu (Tools/Options).<br />
4 Select the General tab.<br />
5 Check the Use network name for automatic user login checkbox.<br />
304 SilkPerformer User Guide
16 SOURCE CONTROL INTEGRATION<br />
Known Issues and Workarounds<br />
Note This procedure only works if the username in VSS is identical<br />
to the network username.<br />
SilkPerformer User Guide 305
16 SOURCE CONTROL INTEGRATION<br />
Known Issues and Workarounds<br />
306 SilkPerformer User Guide
17<br />
Other 17 Chapter<br />
Supported<br />
Environments<br />
Introduction<br />
What you will learn<br />
This chapter explains SilkPerformer’s support of other computing<br />
environments.<br />
This chapter contains the following sections:<br />
Section<br />
Page<br />
Overview 307<br />
Windows Vista 308<br />
Multibyte Support 308<br />
AJAX Support for Web Application Testing 311<br />
SAP eCATT Support 312<br />
Terminal Emulation Support 314<br />
GUI-Level Testing Support 317<br />
SilkPerformer Plug-In for Eclipse 325<br />
Remedy Support 333<br />
Adobe Flex AMF3 Support 337<br />
Customizing Oracle Applications 12i Scripts for Replay 349<br />
Overview<br />
SilkPerformer supports testing within a variety of computing environments.<br />
This chapter explains SilkPerformer’s support of Windows Vista, multibyte<br />
character sets, SAP eCATT, and terminal emulation, and more.<br />
SilkPerformer User Guide 307
17 OTHER SUPPORTED ENVIRONMENTS<br />
Windows Vista<br />
Windows Vista<br />
With Windows Vista, Microsoft encourages users to use standard user accounts<br />
for their daily work instead of administrator accounts. Several changes in<br />
privilege management have been made to make this possible. Microsoft is also<br />
educating users to follow the new paradigm by introducing User Account<br />
Control (UAC). It is the UAC’s task to inform users when an application leaves<br />
the standard user account privileges path and requires higher-level privileges,<br />
even when the user account already has the required privilege. For this reason,<br />
even administrators are prompted while performing tasks that require<br />
administrator privileges.<br />
More than ever before, software producers are encouraged to write Windows<br />
applications that require as few privileges as possible for normal operation.<br />
Although SilkPerformer does not require administrator privileges for most tasks<br />
during normal operation, there are some tasks that do need them:<br />
- Recording: SilkPerformer’s recording architecture requires that qaphooks.dll<br />
be copied into the Windows\system32 directory in order so that it will be in<br />
every application's .dll search path.<br />
- Working Directories: The Project, Custom Include, and Custom Data<br />
directories are located in the Program Files\<strong>Borland</strong>\... hierarchy. However,<br />
these directories can be configured from within SilkPerformer.<br />
- Automatic Agent launch via the launcher service.<br />
To provide a smooth workflow, SilkPerformer has integrated an application<br />
manifest that informs the system that it requires administrator privileges for<br />
normal operation.<br />
When SilkPerformer is launched on Windows Vista with the UAC enabled,<br />
users are informed that applications require administrator privileges. Once users<br />
opt to continue, they will no longer be interrupted by any OS-generated<br />
privilege-related SilkPerformer message.<br />
Without UAC enabled, SilkPerformer runs as usual without any interruptions<br />
from the system.<br />
Note With UAC enabled, Windows Vista can not be used as a<br />
SilkPerformer Agent machine.<br />
Multibyte Support<br />
Overview<br />
Unicode is a list off all known characters. It includes all alphabets of all spoken<br />
and unspoken languages. Each character has its own unique index in the<br />
Unicode list. The first 128 characters are known as ASCII characters.<br />
308 SilkPerformer User Guide
17 OTHER SUPPORTED ENVIRONMENTS<br />
Multibyte Support<br />
When data is stored or computed, the Unicode list is not used to represent the<br />
characters. Instead, so-called character encodings (or character sets) define how<br />
characters are represented on computers and within files. Numerous character<br />
sets are used throughout the world.<br />
Two of the more frequently-used character encodings that cover all Unicode<br />
characters are:<br />
• UTF-8: Requires 1-4 Bytes per character; this character set is widely<br />
used for international Web sites and international text representation.<br />
Strings in the Linux kernel and Java are encoded in UTF-8.<br />
• UTF-16: Requires 2 or 4 Bytes per character; this encoding is mainly<br />
used for string representation in the Windows NT kernel (Win NT and<br />
newer).<br />
Most character sets do not define a representation for all characters in the<br />
Unicode list. Rahter, they define a subset of characters that are used in a specific<br />
regional area of the world. These are commonly referred to as code pages (cp):<br />
• ASCII: Single Byte encoding: 1 Byte per character<br />
• Latin-1 (Windows Codepage 1252): Single Byte encoding: 1 Byte per<br />
character<br />
• Shift-JIS (Windows Codepage 932): Double Byte encoding: 1 or 2 Bytes<br />
per character<br />
• EUC-JP (Windows Codepage ): Includes 3 Japanese char sets: 1, 2, or 3<br />
Bytes per character<br />
When developing applications for Windows, programmers can choose between<br />
Unicode (UTF-16) string representation or Multi-Byte-Character-Set (MBCS)<br />
string representation. MBCS representation refers to a geographic regiondependent<br />
code page encoding (for example, Shift-JIS for Japan; LAtin-1 for the<br />
Americas and most European countries). This affects all GUI elements, as all<br />
data needs to be displayed in the same string representation that has been<br />
selected for the application.<br />
Mutlibyte support in<br />
SilkPerformer<br />
SilkPerformer is a MBCS-based application, meaning that to be displayed<br />
correctly, every string must be encoded in MBCS format. Because<br />
SilkPerformer, and particularly TrueLog Explorer, visualize and customize data<br />
that originates from Web servers with different encodings (UTF-8, EUC-JP,<br />
SilkPerformer User Guide 309
17 OTHER SUPPORTED ENVIRONMENTS<br />
Multibyte Support<br />
Example<br />
Codepage check<br />
Replaying the correct<br />
encoding<br />
ISO-8859-1, etc.), many string conversion operations may be involved before<br />
data can be displayed.<br />
Sometimes when testing UTF-8 encoded Web sites, data containing characters<br />
cannot be converted to the active Windows system codepage. In such cases,<br />
SilkPerformer’s Web Recorder scripts all non-convertible strings into hex<br />
format. If the data is only displayed, TrueLog Explorer will replace the nonconvertible<br />
characters with a configurable replacement character (usually '?').<br />
On an English Windows system with Japanese local settings (system codepage<br />
is Shift-JIS) a UTF-8 application is recorded. For some reason a link name on a<br />
particular Web page contains a Korean character. SilkPerformer’s Web Recorder<br />
attempts to convert the string from UTF-8 to Shift-JIS to make it readable in the<br />
script. The conversion fails because of the Korean character, which does not<br />
occur in the Shift-JIS code page. The Web Recorder then uses hex notation for<br />
the link name in the script.<br />
One of the most important things to know about SilkPerformer's multibyte<br />
support is that the system codepage of the recording machine must match the<br />
system codepage of the replay machine for the replay engine to correctly<br />
interpret the byte sequences in the script as characters and strings. Therefore<br />
SilkPerformer’s Web Recorder scripts the @codepage annotation into the script<br />
along with the currently active system codepage. Whenever this annotation is<br />
present in a script the SilkPerformer runtime system checks to see if the system<br />
codepage of the machine matches the one specified in the script. If they do not<br />
match the runtime stops and an appropriate error message is displayed.<br />
No matter which character encoding a Web site uses, SilkPerformer can only<br />
visualize MBCS strings. However, there are several API functions which<br />
require some string parameters to be encoded in the encoding that the server<br />
expects. So that replay engines can know the requried encoding, SilkPerformer’s<br />
Web Recorder scripts SetEncoding(), ToEncoding() and FromEncoding()<br />
functions at appropriate locations. Typically, those parameters that refer to data<br />
that needs to be interpreted by the server, require an appropriate encoding (for<br />
example, link names). Those parameters that are not a part of client/server<br />
communication do not require conversion (for example, timer names).<br />
The SetEncoding() function sets an encoding for all subsequent ToEncoding()<br />
and FromEncoding() functions. The encoding itself is passed as the name of the<br />
encoding as it appears in the charset specification of the Web page, for example<br />
"UTF-8", "SHIFT_JIS", "WINDOWS-1252", "WINDOWS-1255", or "EUC-<br />
JP".<br />
ToEncoding() converts the string that is passed as a parameter, which is encoded<br />
in the system codepage (MBCS), to the encoding specified by the last<br />
SetEncoding() function.<br />
FromEncoding() converts the string that is passed as a parameter, which is<br />
encoded in the encoding specified by the last SetEncoding() call, to the system<br />
codepage (MBCS).<br />
310 SilkPerformer User Guide
17 OTHER SUPPORTED ENVIRONMENTS<br />
AJAX Support for Web Application Testing<br />
Copying & pasting<br />
When copying strings into SilkPerformer, the paste operation checks if the data:<br />
• Needs to be converted<br />
• Can be converted to the MBCS (system codepage)<br />
• Can not be converted and so needs to be opened with SilkPerformer’s<br />
Unicode Text/Hex Editor<br />
If copied data is, for example, UTF-8 encoded and the paste operation fails to<br />
convert it to the system codepage, SilkPerformer launches its Unicode Text/Hex<br />
Editor. The tool is a Unicode application and is therefore able to display any<br />
string, regardless if the characters exist in the system codepage. The editor can<br />
also display the hex notation of strings in order to paste them into a BDL script.<br />
AJAX Support for Web Application Testing<br />
The SilkPerformer Recorder can record and replay Web applications that utilize<br />
AJAX (Asynchronous JavaScript and XML) requests. This is possible because<br />
SilkPerformer can recognize asynchronous AJAX requests and responses that<br />
arrive in the form of either XML or JSON within HTML responses.<br />
SilkPerformer scripts AJAX requests that it encounters as WebPageUrl calls.<br />
Understanding AJAX<br />
AJAX and script<br />
customization<br />
Pretty-formatted JSON<br />
and XML data<br />
According to Wikipedia (see www.wikipedia.com), AJAX is “...a group of<br />
inter-related web development techniques used for creating interactive web<br />
applications. A primary characteristic is the increased responsiveness and<br />
interactivity of web pages achieved by exchanging small amounts of data with<br />
the server "behind the scenes" so that entire web pages do not have to be<br />
reloaded each time there is a need to fetch data from the server. This is intended<br />
to increase the web page's interactivity, speed, functionality, and usability.<br />
AJAX is asynchronous; in that extra data is requested from the server and<br />
loaded in the background without interfering with the display and behavior of<br />
the existing page. JavaScript is the scripting language in which AJAX function<br />
calls are usually made. Data is retrieved using the XMLHttpRequest object that<br />
is available to scripting languages run in modern browsers, or alternatively<br />
Remote Scripting in browsers that do not support XMLHttpRequest. There is,<br />
however, no requirement that the asynchronous content be formatted in XML.”<br />
SilkPerformer and TrueLog Explorer support access to values values within<br />
AJAX requests. This enables script customizations such as input data<br />
parameterization, verification, parsing, and session-information customization<br />
within AJAX responses.<br />
JSON and XML are data-structure formats commonly used in AJAX<br />
applications, REST techniques, and other environments. SilkPerformer supports<br />
pretty-formatted viewing of XML and JSON-formatted byte streams in .bdf<br />
scripts. Enhanced rendering of JSON formatted data enables easier<br />
SilkPerformer User Guide 311
17 OTHER SUPPORTED ENVIRONMENTS<br />
SAP eCATT Support<br />
Understanding JSON<br />
Enabling prettyformatted<br />
JSON and<br />
XML viewing<br />
Formatted JSON and<br />
XML data in Truelog<br />
Explorer<br />
customization of string values via TrueLog Explorer’s string customization<br />
functions.<br />
When JSON-formatted data is recorded or inserted into a .bdf script,<br />
SilkPerformer displays the raw JSON byte stream. Once displayed in JSON<br />
format, XML can easily be customized using SilkPerformer’s Parameter<br />
Wizard.<br />
Note SilkPerformer offers the option of viewing JSON data in either<br />
pretty-formatted JSON-renderng view or as raw JSON byte stream.<br />
According to JSON.org (see www.json.org), “JSON (JavaScript Object<br />
Notation) is a lightweight data-interchange format. It is easy for humans to read<br />
and write. It is easy for machines to parse and generate. It is based on a subset of<br />
the JavaScript Programming Language...” “JSON is a text format that is<br />
completely language independent but uses conventions that are familiar to<br />
programmers of the C-family of languages, including C, C++, C#, Java,<br />
JavaScript, Perl, Python, and many others. These properties make JSON an<br />
ideal data-interchange language.”<br />
Procedure To pretty-format JSON and XML data:<br />
1 Within a .bdf script that includes JSON- or XML-formatted data, rightclick<br />
within the screen data that you want to have rendered for enhanced<br />
viewing.<br />
2 Select Format As / JSON or Render As / XML from the context menu to<br />
pretty-format the data.<br />
You can then right-click formatted data strings to access SilkPerformer’s<br />
standard string customization commands.<br />
Alternative Select Auto Format from the context menu to have<br />
SilkPerformer determine the best formatting option for screen data<br />
types. By default, JSON and XML data is pretty-formatted in your<br />
.bdf scripts.<br />
Note Because formatted JSON data is integrated into the<br />
SilkPerformer code editor, JSON-formatting can be undone/redone<br />
using the Undo/Redo buttons on the toolbar.<br />
Pretty-formatted JSON and XML data viewing is also available in Silk TrueLog<br />
Explorer. See Silk TrueLog Explorer help for full details.<br />
SAP eCATT Support<br />
SAP eCATT has been integrated with SilkPerformer. SAP’s eCATT facility<br />
allows you to create test scripts in SAP using the scripting language of your<br />
312 SilkPerformer User Guide
17 OTHER SUPPORTED ENVIRONMENTS<br />
SAP eCATT Support<br />
Configuring a SAP<br />
eCATT Connection<br />
choice. eCATT allows you to use external test tools (i.e., SilkPerformer) while<br />
utilizing eCATT as a repository for your test scripts. eCATT also serves as a<br />
basic test management solution for triggering script executions. Not only can<br />
both internal and external scripts be executed individually, they can also be<br />
combined and executed in sequence.<br />
eCATT offers import arguments, a mechanism for calling scripts with special<br />
input values. Scripts can not only receive input values, scripts can also set output<br />
values when they are executed—scripts can be executed in sequence, using<br />
input values derived from the output values of earlier script executions.<br />
For full details regarding SilkPerformer’s integration with SAP eCATT, please<br />
refer to the SAPGUI Tutorial. For more information regarding eCATT, please<br />
consult SAP documentation.<br />
Connection details for SilkPerformer’s communication with SAP eCATT must<br />
be specified in SilkPerformer system settings. There are two options for<br />
connecting to SAP: you can either specify a ‘SAPLOGONID’ or you can<br />
specify ‘AS Host’, ‘RFC Type’, and ‘SystemNr’ settings. With either option you<br />
must specify client, language, username, and password details. Note that when<br />
you select a SAPLOGONID the AS Host, RFC Type, and SystemNr fields are<br />
grayed out.<br />
Procedure To specify SAP eCATT connection data:<br />
1 Select the System command from SilkPerformer’s Settings menu.<br />
2 On the System Settings - Workbench dialog, select the SAPGUI group<br />
icon.<br />
3 The eCATT Connection tab is selected by default. From the SAPLogon<br />
drop box, select your SAP login ID. This box is preconfigured with all<br />
available SAP login IDs.<br />
4 In the AS Host field, enter the combined router/application-server string<br />
(e.g., H/195.61.176.22/H/194.117.106.130/S/3297/H/cpce801).<br />
5 In the RFC Type field, enter either ‘3’ (for R/3) or ‘2’ (for R/2).<br />
6 In the System NR field, enter the SAP system number.<br />
7 In the Client field, enter the internal client ID number from the SAP<br />
server (i.e., the value that must be entered on the SAP login screen).<br />
8 From the Language drop box, select your language preference. The<br />
values ‘EN’ (English) and ‘DE’ (German) are preconfigured, though you<br />
can specify any other language abbreviation string if that language is<br />
installed on the SAP system.<br />
9 In the Username field, enter your SAP eCATT username.<br />
10 In the Password field, enter your SAP eCATT password.<br />
SilkPerformer User Guide 313
17 OTHER SUPPORTED ENVIRONMENTS<br />
Terminal Emulation Support<br />
Configuring eCATT<br />
extended results<br />
11 Once you have completed this dialog, click Test Connection to confirm<br />
that you have specified accurate connection details. If your connection<br />
attempt is unsuccessful, please confirm your settings.<br />
12 Click the OK button once you have completed configuring SAP eCATT<br />
connection settings.<br />
To enable the viewing of SilkPerformer result files from within SAPGUI, you<br />
can specify a UNC path to a public file share in which extended SilkPerformer<br />
test results can be stored and accessed by users (e.g., \\fileserver\ecattresults).<br />
SilkPerformer will use the specified directory to store the results of<br />
SilkPerformer test executions initiated via SAP eCATT. Users can easily access<br />
test results by clicking a link in the SAP eCATT GUI.<br />
Procedure To configure eCATT extended results:<br />
1 Select the System command from SilkPerformer’s Settings menu.<br />
2 On the System Settings – Workbench dialog, select the SAPGUI group<br />
icon.<br />
3 Select the eCATT Results tab.<br />
4 Select the Use SAP extended results checkbox.<br />
5 In the SAP extended results directory field, browse to and select the<br />
directory that is to be used for SAP extended results.<br />
6 Click OK to save your settings.<br />
Terminal Emulation Support<br />
Testing IBM<br />
mainframe protocols<br />
SilkPerformer’s support for terminal emulation applications enables the<br />
recording of terminal-emulator traffic based on the Telnet protocol (aka “green<br />
screen” applications). Supported terminal types include VT100, VT200 etc.<br />
(UNIX, IBM AS400) and IBM mainframes accessed via TN3270(E) &<br />
TN5250.<br />
A prerequisite for recording terminal-emulator traffic is an installed terminalemulator<br />
for accessing host applications, while the recorder records the telnet<br />
traffic which results. Many such emulators are available on the market (e.g.,<br />
Rumba).<br />
The Host Screen Info tab of terminal emulation TrueLogs offers controls for all<br />
fields and statuses that appear in recorded and replayed screens. These controls<br />
offer easy access to field-value and value-status parsing/verification functions.<br />
See TrueLog Explorer User Guide for details on available parsing and<br />
verification script-customization functions.<br />
314 SilkPerformer User Guide
17 OTHER SUPPORTED ENVIRONMENTS<br />
Terminal Emulation Support<br />
IBM terminals rely on EBCDIC code pages that vary based on locality.<br />
SilkPerformer chooses an EBCDIC code page among the code pages installed<br />
on the system. If national language characters are not displayed correctly it is<br />
possible to change the code page during project configuration. See Creating a<br />
SilkPerformer Project for details.<br />
IBM code pages control translation of human-readable ASCII input data (e.g.,<br />
search parameters) into and out of binary hexadecimal representation. This<br />
translation process facilitates script customization.<br />
Creating a terminal<br />
emulation project<br />
Configuring profile<br />
settings<br />
Procedure To create a terminal emulation load testing project:<br />
1 Click the Start Here button on SilkPerformer’s Workflow bar.<br />
2 On the Workflow – Outline Project dialog, define a name and optional<br />
description for your project.<br />
3 Expand the Terminal Emulation application type node.<br />
4 Select the appropriate terminal type subnode.<br />
5 Click OK.<br />
Before beginning recording, you must configure profile settings for the<br />
recording of terminal emulation applications via terminal emulators.<br />
1 Select the Active Profile command from SilkPerformer’s Settings menu<br />
to open the Profile dialog.<br />
2 From the Record group tab (as these settings are only relevant to<br />
application recording) select the Terminal Client icon to open the Telnet<br />
tab.<br />
3 In the Telnet Settings portion of the dialog, ensure that the Auto-detect<br />
Telnet-mode radio button is selected (the other two options are for<br />
trouble-shooting purposes).<br />
4 In the Terminal Properties area, ensure that the specific terminal type<br />
you are testing is displayed in the Terminal type drop-list box (this<br />
setting was configured automatically when you selected the application<br />
type for the project).<br />
Note If you select a new terminal type on this dialog, you might be<br />
presented with a dialog telling you that the default host code page<br />
has been changed, and with a dialog telling you that the default<br />
terminal configuration string has changed. Click Yes on these<br />
dialogs.<br />
5 Although the default dimensions (Rows and Columns) and Colors of the<br />
terminal type are detected automatically for recording, if required you<br />
can define these settings manually in the Default dimensions portion of<br />
the dialog.<br />
SilkPerformer User Guide 315
17 OTHER SUPPORTED ENVIRONMENTS<br />
Terminal Emulation Support<br />
Setting up an<br />
application profile<br />
Recording terminal<br />
emulation applications<br />
6 Ensure that the required host code page is displayed in the Host code<br />
page drop-list box, if the preselected value default isn’t suitable (this<br />
setting was configured automatically when you selected the application<br />
type for the project).<br />
Note The Host code page drop-list box includes all code pages that<br />
are both installed and enabled. To review all installed code pages, or<br />
to enable a specific code page, go to Start/Control Panel/Regional<br />
and Language Options/Advanced. Only those host code pages that<br />
are listed and enabled with a checkmark are available.<br />
Procedure To set up an application profile to record a terminal emulator:<br />
1 Select System from SilkPerformer’s Settings menu.<br />
2 Click the Recorder icon.<br />
3 Click the Add button.<br />
4 On the Application Profile dialog, give the profile a name in the<br />
Application profile field.<br />
5 For the Application path field, browse to and select the .exe file of the<br />
terminal emulator on your local system.<br />
Note All other settings on this dialog are standard for all TCP/IP<br />
based applications.<br />
6 Select Custom Application as the Application type.<br />
7 Select the TCP/IP protocol checkbox (note that SilkPerformer’s TCP/IPlevel<br />
API has been enhanced to facilitate terminal emulation application<br />
support).<br />
8 Click OK. The new profile now appears in the Application Profiles tab.<br />
Procedure To record a terminal emulation application:<br />
1 Click the Model Script button on SilkPerformer’s Workflow bar to open<br />
the Model Script dialog.<br />
2 From the Select application profile drop-list box, select your newly<br />
created application profile (as explained in “Setting up an application<br />
profile”).<br />
3 Click OK to begin recording the session.<br />
4 Perform required interactions with the application under test. When<br />
recording is complete, close the application and then close the recorder<br />
and save the test script.<br />
316 SilkPerformer User Guide
17 OTHER SUPPORTED ENVIRONMENTS<br />
GUI-Level Testing Support<br />
5 To confirm that your test script runs as expected, execute a TryScript run<br />
in animated mode; you will then be able to view the results of the test run<br />
in TrueLog Explorer. Please see TrueLog Explorer User Guide for details<br />
about working with terminal emulation application TrueLogs.<br />
Session customization of terminal emulation application test scripts is normally<br />
not required. If session customizations are required, they must be partly<br />
performed manually. However, TrueLog Explorer can be used to insert parsing<br />
functions into test scripts.<br />
In some cases the synchronization between replay and host application may not<br />
work well, for example if the requested screen is not complete but the cursor<br />
position already assumes a completed screen. A recorded cursor<br />
synchronization function in the script will be satisfied with the first portion of<br />
the screen and continues executing the script out of synchronization, which may<br />
lead to replay errors. In this case you would have to replace the recorded<br />
synchronization function(s) manually with a more suitable synchronization<br />
function in the script (e.g., WebTcpipRecvPacketsUntilDataor<br />
WebTelnetRecvRecordsUntilData). See the BDL Function Reference for<br />
function descriptions.<br />
GUI-Level Testing Support<br />
SilkPerformer supports GUI-level load testing (load testing of fat-client<br />
applications). To load test these applications, SilkPerformer uses Windows<br />
Terminal Services to connect to and open client sessions on agent computers.<br />
Via its own session manager, SilkPerformer uses SilkTest, <strong>Borland</strong>’s functional<br />
testing tool, to communicate with and control sessions (SilkTest likewise<br />
communicates with SilkPerformer via the session manager). SilkTest launches<br />
clients, runs GUI-level tests, and communicates results back to SilkPerformer<br />
via the session manager (see “Exploring SilkTest Results”). SilkPerformer<br />
ultimately collects the results and makes them available to end-users.<br />
A GUI-level testing session is opened through the Remote Desktop protocol.<br />
This connection is established without a GUI. See “Configuring Windows” for<br />
pre-requisite information. Virtual users rely on OrbServer/Client to connect to<br />
remote sessions. SilkPerformer’s session manager is used as a proxy between<br />
virtual users and SilkTest. The session manager includes an Orb client that<br />
receives and sends Data to SilkPerformer virtual users and an Orb Server that<br />
forwards requests to SilkTest, and reverses the reply data to the Orb Clients.<br />
SilkTest can be started in local host mode. With this approach, virtual users use a<br />
console session rather than a separate Windows session. See “GUI-Level<br />
Testing options” for details.<br />
SilkPerformer User Guide 317
17 OTHER SUPPORTED ENVIRONMENTS<br />
GUI-Level Testing Support<br />
Note GUI-level testing only works on Windows server edition<br />
platforms. Windows Home or Professional editions can only be used<br />
as agents for a single GUI-level testing VUser (see also “GUI-Level<br />
Testing options” for information on agent configuration).<br />
Functions provided by<br />
SilkPerformer<br />
SilkPerformer provides the following functions for SilkTest GUI-level testing<br />
replay (see also BDL Functions Reference):<br />
StInitSession<br />
StInitSession(in sUser : string optional,<br />
in sPassword : string optional) : boolean;<br />
Initializes a connection to a session or starts the Session Manager on the<br />
localhost. It also launches SilkTest. If sUser or sPassword are null in the<br />
StInitSession, the VUser will look up the profile setting. If username and<br />
password values have been set in the profile settings, they will be used.<br />
Refer to “Specifying user credentials” for detailed information.<br />
StSetExecutionTimeOut<br />
StSetExecutionTimeOut(in nTimeOut : number);<br />
Sets a timeout for SilkPerformer to wait for the end of each testcase<br />
execution. The default timeout is 300 seconds. To define an unlimited<br />
timeout, set the timeout value to ’0’.<br />
StSetConnectionTimeOut<br />
StSetConnectionTimeOut(in nTimeOut : number);<br />
Sets the timeout for waiting for a session to respond to SilkPerformer. If<br />
the timeout is reached, no session is established. The default timeout is 50<br />
seconds. To define an unlimited timeout, set the timeout value to ’0’.<br />
Table 29: GUI-level testing functions<br />
318 SilkPerformer User Guide
17 OTHER SUPPORTED ENVIRONMENTS<br />
GUI-Level Testing Support<br />
StExecuteTestcase<br />
StExecuteTestcase(in sScript : string,<br />
in sTestCase : string, in sTestData : string,<br />
in nTimer : string) : boolean;<br />
This function starts the process of performing a full test in an alternate<br />
session. The user decides if TryScript runs of the testcase are run on the<br />
console or within a session. Sessions require a username and password<br />
(these values should be provided to the StInitSession). If the username and<br />
password are null, this function executes SilkTest on the localhost. If the<br />
username and the password are not specified and the user tries to run more<br />
than one VUser, the process will be stopped because it is not possible to<br />
run more than one VUser on a local host. Refer to “Specifying user<br />
credentials” for detailed information.<br />
Note StExecuteTestcase returns True when a testcase is<br />
complete. Returned values do not indicate the success of<br />
testcases themselves. Testcase related errors are not handled at<br />
this level.<br />
SilkTest’s execution mode is retrieved through the extension of the script<br />
file.<br />
“.t” Execution Mode: SilkTest Script<br />
“.g.t” Execution Mode: Data Driven SilkTest<br />
“.pln” Execution Mode: SilkTest Plan (not yet implemented by SilkTest)<br />
If the path to the script file is relative, the script must be added to the data<br />
files of the project, or the working directory must be set.<br />
When using StExecuteTestcase in combination with StLoadProject (see<br />
below), the script file needs not be added to the data files of the project, but<br />
the relative path of the script file within the SilkTest package must be<br />
specified.<br />
StSetOption<br />
StSetOption(in sOption : string, in sValue : string)<br />
: boolean;<br />
Sets SilkTest options.<br />
Table 29: GUI-level testing functions<br />
SilkPerformer User Guide 319
17 OTHER SUPPORTED ENVIRONMENTS<br />
GUI-Level Testing Support<br />
StLoadProject<br />
StLoadProject(in sProject : string) : boolean;<br />
Sets specific environmental values that are required for replaying<br />
testcases. Only SilkTest packages can be loaded with this function (.stp<br />
files), and the packages may not be password-protected.<br />
If the path to the SilkTest package is relative, the package must be added to<br />
the data files of the project.<br />
StResetSilktest<br />
StResetSilkTest(in bResetConnection : boolean<br />
optional) : boolean;<br />
Restarts SilkTest; or shuts down SilkTest, disconnects from the session,<br />
and starts a new session where SilkTest is running<br />
(bDisconnect = VTRUE).<br />
StLogoffSession<br />
StLogoffSession();<br />
Disconnects from the session.<br />
Table 29: GUI-level testing functions<br />
Configuring Windows<br />
Before executing GUI-level testing with SilkPerformer, you must configure<br />
your Windows operating system. Additionally, SilkTest version 2006 R2 or<br />
higher needs to be installed on the agent computer (please refer to the SilkTest<br />
documentation for detailed information about setting up SilkTest).<br />
Procedure To configure Windows for GUI-level testing:<br />
1 Go to Start/.../Control Panel/System.<br />
2 Select the Remote tab.<br />
3 Verify that the Enable Remote Desktop on this computer option is<br />
enabled.<br />
4 Go to Start/.../Administrative Tools/Computer Management.<br />
5 Expand the tree and select Local Users and Groups.<br />
6 Select the Users directory.<br />
7 In the User field, double-click the virtual user that you want to use in<br />
your test.<br />
8 On the Properties dialog, select the Member Of tab.<br />
320 SilkPerformer User Guide
17 OTHER SUPPORTED ENVIRONMENTS<br />
GUI-Level Testing Support<br />
9 Ensure that this user is a member of one of the following two groups:<br />
Administrators and/or Remote Desktop Users (if the user is not a member<br />
of one of these groups, click the Add button and add the user to one or<br />
both of these groups).<br />
Licenses for remote<br />
desktop sessions<br />
Windows Server editions offer multiple licenses for remote desktop sessions,<br />
which means that you can connect multiple times during a single session.<br />
Note Windows Server editions offer two free licenses for remote<br />
desktop sessions. Windows Home or Professional editions can only<br />
be used as agents for a single GUI-level testing VUser (see also<br />
“GUI-Level Testing options” for information on agent configuration).<br />
Procedure To obtain more licences for Windows Server editions:<br />
1 Go to Start/.../Control Panel/Add or Remove Programs.<br />
2 Click the Add/Remove Windows Components button.<br />
3 Within the Windows Components Wizard, scroll to and select the<br />
Terminal Server checkbox.<br />
4 Click Next to enable application mode for your Windows system.<br />
Note A license server is required for application mode. Contact<br />
Microsoft for information about obtaining a license server.<br />
5 Restart your computer.<br />
Configuring Terminal<br />
Services settings<br />
Procedure To see how many sessions are available on your system:<br />
1 Go to Start/.../Administrative Tools/Terminal Server Licensing.<br />
2 Using the Terminal Server Licensing tool you can see which terminal<br />
services licensing servers are available and which licenses you have.<br />
3 For additional information about using the Terminal Server Licensing<br />
tool, please refer to the integrated Help of the tool.<br />
It is important to configure your terminal services settings correctly, otherwise<br />
GUI-level test execution is likely to fail.<br />
Procedure To configure your RDP settings:<br />
1 Go to Start/.../Administrative Tools/Terminal Services Configuration.<br />
2 Right-click the Remote Desktop Protocol-TCP (RDP-Tcp) icon.<br />
3 Select Properties from the context menu.<br />
4 Select the General tab.<br />
- Verify that Security layer is set to RDP Security Layer.<br />
- Verify that Encryption level is set to Low.<br />
SilkPerformer User Guide 321
17 OTHER SUPPORTED ENVIRONMENTS<br />
GUI-Level Testing Support<br />
- Verify that all other settings are unselected/left blank.<br />
5 Select the Logon Settings tab.<br />
- Verify that the Always prompt for password check box is not<br />
selected.<br />
6 Select the Sessions tab.<br />
- Verify that Override user settings is selected and that End a<br />
disconnected session is set to 1 minute.<br />
- Verify that all other settings are unselected/left blank.<br />
7 Select the Environment tab.<br />
- Verify that Run initial program specified by user profile and Remote<br />
Desktop Connection or Terminal Services client is selected.<br />
8 Select the Remote Control tab.<br />
- Verify that Use remote control with default user settings is selected.<br />
9 Select the Client Settings tab.<br />
- Verify that all connection settings in the Connection section are<br />
selected.<br />
10 Select the Network Adapter tab.<br />
- Verify that All Network adapters configured with this protocol is<br />
selected in the Network adapter list.<br />
11 Click OK.<br />
Terminal Services<br />
Manager<br />
Procedure To configure Terminal Services settings:<br />
1 Go to Start/.../Administrative Tools/Terminal Services Configuration.<br />
2 Select the Server Settings folder.<br />
3 Right-click any settings icon in the Server Settings directory.<br />
4 Select Properties from the context menu and configure settings as<br />
required. For additional information about using the Terminal Services<br />
Configuration tool, please refer to the integrated Help of the tool.<br />
Note Typically Licensing settings should be set to Per Device and<br />
the Restrict each user to one session setting should be set to No.<br />
With the Terminal Services Manager tool you can see which connections are<br />
open to your computer. Here you can see the control application (“Console”)<br />
denoted with an ID number. You can also see any virtual user connections<br />
(denoted with different IDs). For additional information about using the<br />
Terminal Services Manager tool, please refer to the integrated Help of the<br />
tool.<br />
322 SilkPerformer User Guide
17 OTHER SUPPORTED ENVIRONMENTS<br />
GUI-Level Testing Support<br />
Note No configuration settings are necessary to enable GUI-level<br />
testing with SilkPerformer.<br />
Executing Tests<br />
Setting up projects<br />
Modeling scripts<br />
Procedure To setup a GUI-level testing project:<br />
1 Select New Project from the File menu.<br />
2 Enter a Project Name.<br />
3 (Optional) Enter a Project Description.<br />
4 From the Application Type list box, select GUI-Level Testing/SilkTest.<br />
5 Click OK.<br />
Procedure To model a testing script based on a SilkTest test case:<br />
1 Click the Model Script button.<br />
2 Select the Generate custom script radio button.<br />
Alternative Select the New Script radio button if you intend to<br />
model a testing script based on SilkPerformer’s GUI-level testing<br />
template file. Then, manually edit the file’s BDL code to meet your<br />
needs.<br />
Note You can specify a SilkTest option file from the Select SilkTest<br />
option file field by clicking the field’s browse (...) button and<br />
selecting an option file. Option files are .opt files that contain all<br />
SilkTest project options. These are the same option settings that are<br />
available in SilkPerformer’s GUI-Level Testing profile settings (see<br />
“Configuring project settings” for details). To edit a SilkTest options<br />
file, right-click the file in the Include Files node of TrueLog<br />
Explorer’s project tree. See the Silk TrueLog Explorer for SilkTest User<br />
Guide for full details.<br />
3 The Add Testcase dialog appears.<br />
4 Select the Open a SilkTest test case file radio button if you plan to create<br />
a test case directly from a test case file.<br />
Alternative If a test case file you intend to work with is located<br />
within a SilkTest package file, select the Open a SilkTest package<br />
file radio button. Then browse to and select the package file (.stp)<br />
using the browse (...) button next to the Select SilkTest package file<br />
field.<br />
SilkPerformer User Guide 323
17 OTHER SUPPORTED ENVIRONMENTS<br />
GUI-Level Testing Support<br />
5 Use the Browse (...) button next to the Select test case file field to browse<br />
for a test case file (.t) on your local system.<br />
6 Select a specific test case within the test case file by selecting it in the<br />
Select test case drop-down list box.<br />
7 (optional) You can add SilkTest test data to the selected test case, if<br />
required. Enter test data into the Test data field using the format “”, (For example, "test", 10).<br />
8 Click the Add button. The selected test case appears below in the Case<br />
field.<br />
9 Add more test cases to your project as required by repeating this<br />
procedure.<br />
10 Select the Use project attributes for session login checkbox to have<br />
username/password strings taken from SilkPerformer’s pre-configured<br />
project attributes (available at Project/Project Attributes) to enable login<br />
for remote desktop sessions. These credentials will be added to your<br />
script’s TInit transaction.<br />
11 Click OK.<br />
12 Give the test case a File name.<br />
13 Click Save to save the test case.<br />
14 Click Yes on the confirmation dialog to save the test case (.bdf ) to your<br />
project. A BDL file that includes your newly created test case will be<br />
generated for your project.<br />
Configuring project<br />
settings<br />
Specifying user<br />
credentials<br />
To configure GUI-level testing profile settings, please refer to “GUI-Level<br />
Testing options”.<br />
User credentials for GUI-level testing can be specified in the following areas:<br />
• Profile settings (see “GUI-Level Testing options”)<br />
• Project attributes (Username and Password project attributes are<br />
automatically defined when creating a GUI-level testing project)<br />
• Plain text specified in the BDL script<br />
• Imported from data files<br />
If you want each VUser to connect with different login credentials, we<br />
recommend that you specify the credentials with project attributes (see Project<br />
Attributes Overview in the BDL Function Reference for detailed information) or<br />
that you use script customization through data files (see “Data Files” for<br />
detailed information).<br />
If you want each VUser to connect with identical login credentials, we<br />
recommend that you specify the credentials in the profile settings (see “GUI-<br />
324 SilkPerformer User Guide
17 OTHER SUPPORTED ENVIRONMENTS<br />
SilkPerformer Plug-In for Eclipse<br />
Using timers<br />
Understanding result<br />
files<br />
Exploring SilkTest<br />
Results<br />
Level Testing options”) or that you specify the credentials with plain text in the<br />
BDL script (see BDL Function Reference).<br />
Note that the user credentials specified in the profile settings are used only if the<br />
other options listed above are not used. If no user credentials are specified in any<br />
of the areas listed above, SilkPerformer connects to the console session without<br />
using the remote desktop protocol. In this case you can only run one VUser per<br />
agent.<br />
For GUI-level load testing, timers are of core importance. You can add timers in<br />
your SilkTest scripts which will be reported to SilkPerformer’s load test results.<br />
See the SilkTest documentation for detailed information on how to create timers<br />
within SilkTest scripts.<br />
Note SilkPerformer automatically generates names for SilkTest<br />
timers without a name.<br />
You can find the most recent TryScript TrueLog files in the RecentTryScriptTest<br />
directory within your SilkPerformer project directory. During GUI-level testing<br />
load tests, temporary SilkTest TrueLog files with the extension .xlgs are written.<br />
After each SilkTest test case execution, the results of the SilkTest .xlgs and the<br />
results of the SilkPerformer .xlg files are merged into the SilkPerformer .xlg files<br />
(per VUser) and the temporary .xlgs files are deleted.<br />
The RecentTryScriptTest directory within your SilkPerformer project directory<br />
also includes SilkTest .res result files. These are the files that are displayed in<br />
SilkTest when you initiate the Explore SilkTest results command (as explained in<br />
“Exploring SilkTest Results”).<br />
Procedure To explore GUI-level test results:<br />
1 Within SilkPerformer, right-click a virtual user profile.<br />
2 Select Explore SilkTest Results from the context menu. SilkTest<br />
launches, allowing you to analyze the corresponding .res SilkTest result<br />
file.<br />
Alternative You can also select Explore TrueLog from the context<br />
menu to view a TryScript’s TrueLog in Silk TrueLog Explorer.<br />
Alternative Select the Results tab to view test results directly in<br />
SilkPerformer (see “Exploring Test Results” for detaild<br />
information).<br />
SilkPerformer Plug-In for Eclipse<br />
SilkPerformer is packaged with a plug-in for Eclipse, the popular Java IDE that<br />
is based on plug-in technology. The plug-in enables Eclipse users to be<br />
supported with SilkPerformer’s load-testing features.<br />
SilkPerformer User Guide 325
17 OTHER SUPPORTED ENVIRONMENTS<br />
SilkPerformer Plug-In for Eclipse<br />
Structure of the<br />
SilkPerformer<br />
TestClass<br />
Installing the plug-in<br />
The structure of the SilkPerformer test class supports Java developers in<br />
creating test cases for SilkPerformer. The test class implements the ITestClass<br />
interface that is packaged with the Eclipse plug-in. It contains a SilkPerformer<br />
object that represents the interface to SilkPerformer’s Java Framework.<br />
The test class includes two basic methods:<br />
testInit - This method initializes the interface. It is called at the beginning of test<br />
runs.<br />
testEnd - This method closes the interface. It is called at the end of TryScript<br />
runs and load tests.<br />
Between testInit and testEnd there may be one or more test methods invoked by<br />
a running load test. Each method that has a signature void testXY() throws<br />
SilkPerformerException.<br />
Example:<br />
public void testMyMethod() throws<br />
silk.performer.SilkPerformerException<br />
To use the plug-in, you must have Eclipse SDK (version 3.2 or higher) and<br />
SilkPerformer (version 2006 R2 or higher) installed on the machine where the<br />
plug-in is to run. Additionally, SilkPerformer must have been run on the<br />
machine at least once.<br />
Procedure To install the SilkPerformer plug-in for Eclipse:<br />
1 Using the standard procedure for installing Eclipse plug-ins, go to the<br />
Eclipse SDK’s Help menu, select Software Updates/Find and Install.<br />
2 Select the Search for new features to install option button.<br />
3 Click Next.<br />
4 On the Update sites to visit page, you must specify the site that contains<br />
your SilkPerformer Extras folder.<br />
Note The Extras folder is located on your SilkPerformer Installation<br />
CD. If you have used the Web setup package rather than an<br />
installation CD, the Extras folder is located in the folder where you<br />
extracted the package to.<br />
5 Click New Local Site.<br />
6 On the Browse for Folder page, browse to and select the Eclipse Plug-in<br />
directory in your SilkPerformer Extras directory (.../Extras/Eclipse<br />
Plugin/).<br />
7 Click OK.<br />
8 Click OK on the Edit Local Site dialog to confirm your directory<br />
selection. The directory now appears in the Sites to include in search<br />
pick list.<br />
326 SilkPerformer User Guide
17 OTHER SUPPORTED ENVIRONMENTS<br />
SilkPerformer Plug-In for Eclipse<br />
Configuring the plugin<br />
9 Select the checkbox of your newly defined local site (.../Extras/Eclipse<br />
Plugin/) and click Finish.<br />
10 On the Search Results page, click the plus sign of the new local site to<br />
expand its contents.<br />
11 Select the checkbox of the plug-in feature (SilkPerformer Feature).<br />
12 Click Next.<br />
13 A license description appears on the Feature License page. If you agree<br />
to the terms of the license agreement, select the I accept the terms in the<br />
license agreement option box.<br />
14 Click Next.<br />
15 On the Installation window, click Finish.<br />
16 Verify the features you are about to install (listed on the Feature<br />
Verification window) and click Install.<br />
17 On the Install/Update dialog, click Yes to restart the Eclipse Workbench.<br />
18 Upon restart, a SilkPerformer menu entry will appear in the Eclipse<br />
workbench.<br />
Procedure To configure Eclipse settings for the plug-in:<br />
1 Go to Window/Preferences.<br />
2 Select the SilkPerformer node on the navigation tree to display<br />
SilkPerformer settings.<br />
3 Confirm that the installation directory of your SilkPerformer installation<br />
is listed in the Install directory text box. If it is not listed, click Browse to<br />
browse for and select your SilkPerformer installation directory.<br />
4 Edit the Default project name as required.<br />
5 Edit the Default test class name as required.<br />
6 (experienced users only) Edit the default Timeout for connecting to Java<br />
debugger setting as required. This is the amount of time allowed (in<br />
milliseconds) for connecting to a SilkPerformer process during tests.<br />
7 (experienced users only) Edit the default Shutdown after finish delay<br />
setting as required. This is the amount of time (in milliseconds) that<br />
Eclipse waits before retrieving results after the completion of<br />
SilkPerformer tests.<br />
8 Select the Autostart monitoring checkbox to have Performance Explorer<br />
begin server monitoring when SilkPerformer tests are initiated.<br />
SilkPerformer User Guide 327
17 OTHER SUPPORTED ENVIRONMENTS<br />
SilkPerformer Plug-In for Eclipse<br />
9 Select a Log Level to specify when logs are to be written. Selecting<br />
‘None’ results in no log files being written. Selecting ‘Errors’ results in<br />
log files being written only when errors are encountered. Selecting<br />
‘Debug’ results in all activity being logged.<br />
10 Select the Java / Installed JREs node in the navigation tree to open the<br />
Installed JREs page. The Java runtimes that are used by Eclipse on your<br />
local system are listed here. Confirm the Location and Type settings for<br />
your Java runtime environment.<br />
- If you need to add a Java runtime profile, click the Add button and<br />
proceed with step 11.<br />
- If you need to edit an existing Java runtime profile, click the Edit<br />
button and proceed with step 11.<br />
- If your Java runtime settings are acceptable, proceed with step 13.<br />
11 On the Add/Edit JRE dialog, click the Browse button to browse to and<br />
select the directory that contains your JDK installation (specifically, your<br />
Java compiler), then click OK.<br />
Note You must select a JDK (version 1.5 or higher), rather than a<br />
JRE, because SilkPerformer attempts to recompile Java files in its<br />
test classes.<br />
12 The fields on the Add/Edit JRE dialog are automatically populated with<br />
values derived from your JDK installation. Click OK to save your<br />
settings.<br />
13 Back on the Installed JREs page, click OK to save your settings.<br />
Projects<br />
Setting up New<br />
Projects<br />
There are restrictions on concurrent use of Eclipse and SilkPerformer. Projects<br />
are locked from use by Eclipse while SilkPerformer Workbench works on them.<br />
If you attempt to open a project from Eclipse that is currently in use by<br />
SilkPerformer, you will receive an error message. You must close SilkPerformer<br />
to pass project control back to Eclipse.<br />
Procedure To set up a new project:<br />
1 Within a SilkPerformer-enabled Eclipse workbench, select File / New/<br />
Project to launch the New Project wizard.<br />
2 Expand the SilkPerformer node in the navigation tree.<br />
3 Select the Java Project node.<br />
4 Click Next.<br />
328 SilkPerformer User Guide
17 OTHER SUPPORTED ENVIRONMENTS<br />
SilkPerformer Plug-In for Eclipse<br />
Importing a<br />
SilkPerformer project<br />
into Eclipse<br />
Configuring<br />
SilkPerformer project<br />
properties from<br />
Eclipse<br />
5 On the New SilkPerformer load testing capable Java project page, edit<br />
the Name of your new project as required.<br />
6 Edit the Test class name (the name of the initial test class template) as<br />
required.<br />
7 Click Finish to have the plug-in generate the test class template in your<br />
Eclipse workspace and link the test classes to a test case in your<br />
SilkPerformer project.<br />
A class path links the new test class into SilkPerformer’s workspace so that it<br />
works with both the Eclipse editor and SilkPerformer. Behind each test class is<br />
BDF stub code. This code is generated each time a test class is compiled, so any<br />
changes you make to BDF stub code will be overwritten the next time the test<br />
class is compiled.<br />
Another way of linking your Eclipse and SilkPerformer workspaces is to import<br />
an existing SilkPerformer project into your Eclipse workspace.<br />
Procedure To import a SilkPerformer project into Eclipse:<br />
1 Select Import from the File menu.<br />
2 On the Import dialog, expand the Other node in the navigation tree.<br />
3 Select Import Existing SilkPerformer Java Project.<br />
4 Click Next to view all available SilkPerformer projects in your<br />
SilkPerformer workspace.<br />
5 Select the checkboxes of the projects that you want to import.<br />
6 Click Finish to import the selected project settings and classpaths into<br />
your Eclipse workspace.<br />
Procedure To configure SilkPerformer project properties from Eclipse:<br />
1 Go go the Project menu and select Properties.<br />
2 Select the SilkPerformer Project node in the navigation tree.<br />
3 At the top of the SilkPerformer Project Properties page the path to the<br />
Targeted SilkPerformer Project is displayed. If required, edit the Name<br />
that has been specified for the project when opened in SilkPerformer<br />
workbench.<br />
4 Edit the Description that has been defined for the project, as required.<br />
5 You can define SilkPerformer Project Attributes for the project (Name,<br />
value Type, Value, Default value, Description). See Project Attributes<br />
Overview in the BDL Function Reference for full details regarding<br />
configuring SilkPerformer project settings.<br />
6 Click Apply to apply your changes.<br />
SilkPerformer User Guide 329
17 OTHER SUPPORTED ENVIRONMENTS<br />
SilkPerformer Plug-In for Eclipse<br />
Configuring<br />
SilkPerformer system<br />
settings<br />
Configuring<br />
SilkPerformer project<br />
settings<br />
Redirecting Java build<br />
paths<br />
7 Click OK to save the project settings.<br />
Note SilkPerformer project attributes can also be accessed directly<br />
by selecting Project Attributes from Eclipse’s SilkPerformer menu.<br />
To configure SilkPerformer system settings, select System Settings from<br />
Eclipse’s SilkPerformer menu. For full details on configuring system settings<br />
for SilkPerformer workbench, see “SilkPerformer Workbench”.<br />
To configure profile settings for an active SilkPerformer project, select Profile<br />
Settings from Eclipse’s SilkPerformer menu. You will be directed to the<br />
General tab for your project profile Java settings, where you can view the Java<br />
version, Java home, and classpaths have been set up for your newly created<br />
project. For full details on configuring profile settings for SilkPerformer<br />
projects, see “Project Profile Settings”.<br />
Note When Eclipse controls a SilkPerformer project, all Java<br />
settings defined in SilkPerformer are overruled by the settings you<br />
defined in Eclipse.<br />
From the moment that SilkPerformer projects are controlled from Eclipse, the<br />
classpaths of projects are controlled from the Eclipse environment. For this<br />
reason you may want to adjust the Java build path of your Eclipse projects.<br />
Note There are restrictions for classpaths of Eclipse projects that are<br />
used within SilkPerformer. To enable the distribution of libraries<br />
during a loadtest, all libraries must be located either in the<br />
SilkPerformer project directory (\Working\Projects) or they must be<br />
available on a UNC path.<br />
Procedure To redirect an Eclipse project’s Java build path:<br />
1 Right-click a SilkPerformer-enabled project in Eclipse’s Package<br />
Explorer.<br />
2 Select Build Path/Configure Build Path from the context menu.<br />
3 Select the Libraries tab on the Java Build Path page. Here you will see<br />
all of the User libraries that are required for running tests.<br />
4 Click Add Library.<br />
5 On the Add Library page, select User Library from the pick list and click<br />
Next.<br />
6 Click User Libraries.<br />
7 On the User Libraries page, click the New button.<br />
8 Specify a name for the new library on the New User Library dialog, and<br />
click OK.<br />
9 Back on the User Libraries page, select Add JARs.<br />
330 SilkPerformer User Guide
17 OTHER SUPPORTED ENVIRONMENTS<br />
SilkPerformer Plug-In for Eclipse<br />
Generating multiple<br />
load-testing Java<br />
classes<br />
10 Browse to and select one or more Java libraries that are available to your<br />
local system (hold down your Shift or Ctrl keys to select multiple<br />
libraries).<br />
11 Click Open to add the JAR files to your new user library.<br />
12 Back on the User Libraries page, click OK.<br />
13 Back on the Add Library page, click Finish to migrate these settings to<br />
the classpaths of both your SilkPerformer Workbench project and your<br />
SilkPerformer-enabled Eclipse project.<br />
You can generate multiple load-testing capable Java classes for SilkPerformerenabled<br />
Eclipse projects.<br />
Note SilkPerformer can handle user-defined JAR libraries. It can<br />
only launch classes that are within the root package of Java projects<br />
within SilkPerformer. Only external libraries such as JARs can be<br />
used.<br />
Procedure To add a SilkPerformer test class to an Eclipse project:<br />
1 Select Other from the File menu.<br />
2 On the New page, select SilkPerformer/SilkPerformer Test Class from<br />
the navigation tree.<br />
3 On the New SilkPerformer Test Class page, edit the Project name and<br />
Test class values as required.<br />
4 Click the Browse button.<br />
5 On the SilkPerformer-Enabled Projects dialog, select the SilkPerformerenabled<br />
Eclipse project to which this new test class template is to be<br />
appended.<br />
6 Click Finish to append the test class template to your Eclipse project.<br />
TryScript Runs<br />
Executing TryScript<br />
runs for test classes<br />
Procedure To execute a TryScript run for a test class:<br />
1 In Eclipse’s Package Explorer navigation tree, select the test class for<br />
which you want to run a TryScript.<br />
2 Select Try Script from Eclipse’s SilkPerformer menu. Eclipse then<br />
automatically switches to the Debug perspective and initiates a TryScript<br />
run. The bottom pane of the Debug page includes SilkPerformer views<br />
that monitor the status of the test.<br />
The two main SilkPerformer views are:<br />
SilkPerformer User Guide 331
17 OTHER SUPPORTED ENVIRONMENTS<br />
SilkPerformer Plug-In for Eclipse<br />
- SilkPerformer Virtual User - This view displays virtual-user status<br />
messages that are passed from the latest TryScript test.<br />
- SilkPerformer simulation Controller - This view displays<br />
simulation-status messages that are passed by the SilkPerformer<br />
Simulation Controller.<br />
3 If your test class generates errors or leads to a failed test, you must edit<br />
your test class in the Eclipse Editor. If your TryScript run is successful,<br />
you can view the results of the test in the SilkPerformer log files and<br />
result files, including TrueLog files. See “Viewing Results” for full<br />
details.<br />
Viewing Results<br />
Viewing Virtual User<br />
Reports<br />
Viewing Virtual User<br />
Log Files<br />
Viewing Virtual User<br />
Output Files<br />
Viewing TrueLogs<br />
Following a successful test or TryScript run, you can choose to view a Virtual<br />
User Report file, a Virtual User Log file, a Virtual User Output file or a TrueLog.<br />
To view a Virtual User Report, select Virtual User Report File from Eclipse’s<br />
SilkPerformer menu. The report is then displayed in Eclipse’s SilkPerformer<br />
Report File Viewer tab. See “Virtual User Report files” for full details<br />
regarding Virtual User Reports.<br />
To view log files, select Virtual User Log File from Eclipse’s SilkPerformer<br />
menu. The log file of the most recent test run is then displayed.<br />
To view output files, select Virtual User Output File from Eclipse’s<br />
SilkPerformer menu. The output file of the TestClass code for the most recent<br />
test run is then displayed. See “Virtual User Output files” for full details<br />
regarding Virtual User Output files.<br />
To view a TrueLog, select Show TrueLog from Eclipse’s SilkPerformer menu.<br />
The TrueLog file of the most recent TryScript run is then displayed in Silk<br />
TrueLog Explorer. See the Silk TrueLog Explorer User Guide for full details<br />
regarding TrueLog files.<br />
Launch Configurations<br />
Defining a launch<br />
configuration for<br />
SilkPerformer<br />
TryScripts<br />
Procedure To set up a launch configuration for TryScript runs:<br />
1 Select the Debug button on Eclipse’s main toolbar.<br />
2 On the Debug page, select the SilkPerformer TryScript node in the<br />
navigation tree.<br />
3 Click the New button on the toolbar.<br />
332 SilkPerformer User Guide
17 OTHER SUPPORTED ENVIRONMENTS<br />
Remedy Support<br />
4 On the Create, manage, and run configurations page, the currently active<br />
SilkPerformer project and its first test class are pre-selected. Select the<br />
browse (...) button alongside the Project text box.<br />
5 On the SilkPerformer Enabled Projects dialog, select the SilkPerformerenabled<br />
project that is to be associated with this launch configuration.<br />
6 Click OK.<br />
7 On the Launch as SilkPerformer test case dialog, select the TestClass<br />
that is to be launched with this launch configuration.<br />
8 Click OK.<br />
9 (optional) Edit the parameters of any pre-defined project attributes in the<br />
Project Attributes section of the page.<br />
10 Click Apply to apply your changes.<br />
11 Click Debug to run a TryScript run based on your launch configuration<br />
settings.<br />
Baseline Tests<br />
Once you are satisfied with the TryScript results generated by your TestClass, it<br />
is time to pass your test project from Eclipse to SilkPerformer and run a<br />
baseline test. See “Establishing Baseline Performance” for full details<br />
regarding baseline tests.<br />
Running baseline<br />
tests<br />
Procedure To run a baseline test:<br />
1 Select Open in SilkPerformer from Eclipse’s SilkPerformer menu.<br />
SilkPerformer workbench launches, with your Eclipse project loaded in<br />
the Project tree. All TestClasses are appended to the project under the<br />
Scripts node.<br />
2 Define and run a baseline test, as explained in “Establishing Baseline<br />
Performance”.<br />
Remedy Support<br />
The testing workflow for testing Remedy with SilkPerformer is the same as the<br />
workflow for testing Web-based applications, with the following exceptions:<br />
• On the Workflow - Outline Project dialog, you must select the Remedy<br />
version under test (these settings are grouped under the ERP/CRM node).<br />
• On the Workflow - Model Script dialog, you enter the commandline path<br />
to the Remedy installation under test.<br />
SilkPerformer User Guide 333
17 OTHER SUPPORTED ENVIRONMENTS<br />
Remedy Support<br />
BMC tutorial<br />
Licensing<br />
TrueLog support<br />
Data representation in<br />
SilkPerformer<br />
• Recorded scripts include a number of WebRemedy functions, which are<br />
modified WebPagePost and WebPageUrl calls.<br />
• In the Forms section of test scripts, each Web form contains an XML<br />
fragment that is a visualization of the Remedy traffic that was generated<br />
by the browser. This XML visualization of the browser traffic is easier to<br />
read than actual Remedy traffic. It also facilitates SilkPerformer script<br />
customization. The actual, originally recorded Remedy traffic is<br />
commented at the end of each Web form XML fragment.<br />
BMC has created an excellent tutorial that illustrates how to load test BMC<br />
Remedy IT Service Management (ITSM) applications with BMC Remedy<br />
Action Request System (AR System). To obtain the tutorial, contact BMC and<br />
request the following white paper: Performance Benchmarking Kit: Using<br />
Incident Management with SilkPerformer.<br />
A premium virtual user license is required to test Remedy with SilkPerformer.<br />
TrueLog functionality is not supported for Remedy testing.<br />
Remedy uses a proprietary format for data that is sent from the client to the<br />
server. This format includes length prefixes and makes customization difficult.<br />
Example:<br />
157/GetTableEntryList/11/smi-web-00126/<br />
SMI:TEL35:SHR:AgentConsole12/Windows_View9/53687098211/<br />
smi-web-00127/SMI:TEL35:SYS:IncomingEmail0/1/01/02/0/0/<br />
2/0/2/0/2/0/<br />
Such data is sent in HTTP requests to the URL http:///arsys/<br />
BackChannel.<br />
Remedy versions 6.3 patch level 2 and earlier send such data in the body of<br />
HTTP POST requests. Versions 6.3 and later send such data in the query string<br />
of HTTP GET requests.<br />
The main benefit of SilkPerformer’s Remedy add-on is that this proprietary data<br />
format is translated into an XML-based representation that eliminates the length<br />
prefixes and introduces names to the individual data items. This makes scripts<br />
easier to understand and customize. During script replay, this XML-based<br />
format is transparently translated back into the original format.<br />
This backward transformation is performed by the functions<br />
WebRemedyBackChannelUrl and WebRemedyBackChannelPost.<br />
WebRemedyBackChannelUrl is a replacement for the function WebPageUrl,<br />
while WebRemedyBackChannelPost is a replacement for the function<br />
WebPagePost.<br />
Example:<br />
Without the Remedy add-on the following API call would be recorded as:<br />
334 SilkPerformer User Guide
17 OTHER SUPPORTED ENVIRONMENTS<br />
Remedy Support<br />
WebPagePost("http://213.131.176.85/arsys/BackChannel",<br />
"157/GetTableEntryList/11/smi-web-00126/<br />
SMI:TEL35:SHR:AgentConsole12/W"<br />
"indows_View9/53687098211/smi-web-00127/<br />
SMI:TEL35:SYS:IncomingEmail0/1"<br />
"/01/02/0/0/2/0/2/0/2/0/",<br />
STRING_COMPLETE,<br />
"text/plain; charset=UTF-8",<br />
"arsys/BackChannel");<br />
With the Remedy add-on the API call is recorded as follows:<br />
WebRemedyBackChannelPost("http://213.131.176.85/<br />
arsys/BackChannel",<br />
"\r\n"<br />
"\r\n"<br />
" smi-web-001\r\n"<br />
" SMI:TEL35:SHR:AgentConsole\r\n"<br />
" Windows_View\r\n"<br />
" 536870982\r\n"<br />
" smi-web-001\r\n"<br />
" SMI:TEL35:SYS:IncomingEmail\r\n"<br />
" \r\n"<br />
" 0\r\n"<br />
" 0\r\n"<br />
" \r\n"<br />
" \r\n"<br />
" \r\n"<br />
" \r\n"<br />
" \r\n"<br />
"",<br />
STRING_COMPLETE,<br />
"text/plain; charset=UTF-8",<br />
"BackChannel - GetTableEntryList");<br />
The key differences are:<br />
- Use of the function WebRemedyBackChannelPost instead of<br />
WebPagePost<br />
SilkPerformer User Guide 335
17 OTHER SUPPORTED ENVIRONMENTS<br />
Remedy Support<br />
Additional benefits<br />
Remedy SilkEssential<br />
- Data is in XML format instead of original format<br />
- XML format does not contain length prefixes, which would<br />
otherwise have to be considered during script customization.<br />
- XML format specifies data type and meaningful names for each data<br />
item.<br />
In addition to the different representation of the data there are other benefits to<br />
using the Remedy add-on:<br />
- Remedy.bdh: A bdh file that implements the functions<br />
WebRemedyBackChannelPost, WebRemedyBackChannelUrl and<br />
WebRemedyInit.<br />
- The recorder places a call to the function WebRemedyInit() into the<br />
TInit transaction.<br />
- The function WebRemedyInit() installs verifications to catch<br />
application level errors.<br />
- The recorder detects all timestamps which would otherwise be hard<br />
coded into the script, and records the function GetTimeStamp()<br />
instead.<br />
- The recorder records parsing functions for IDs of newly created<br />
entities and appropriate substitutions for all occurrences of such IDs<br />
in the script with the parsed variable.<br />
The Remedy application type is triggered through a SilkEssential package. It<br />
contains a set of recording rules and a remedy.bdh. The remedy.bdh wraps the<br />
WebPageCalls:<br />
// wrapper function for WebPagePost<br />
// param nDataLength will be ignored<br />
function WebRemedyBackChannelPost(sUrl :<br />
string;<br />
sData :<br />
string;<br />
nDataLength : number<br />
optional;<br />
sContent : string<br />
optional;<br />
sTimer : string<br />
optional;<br />
formUrl : form<br />
optional) : boolean <br />
begin<br />
WebRemedyBackChannelPost := WebPagePost(sUrl,<br />
RemedyBackChannelData(sData), STRING_COMPLETE, sContent,<br />
sTimer, formUrl);<br />
336 SilkPerformer User Guide
17 OTHER SUPPORTED ENVIRONMENTS<br />
Adobe Flex AMF3 Support<br />
end WebRemedyBackChannelPost;<br />
and<br />
// wrapper function for WebPageUrl for use with<br />
BackChannel requests<br />
function WebRemedyBackChannelUrl(sUrl : string;<br />
sTimer : string<br />
optional;<br />
formUrl : form<br />
optional) : boolean <br />
var<br />
sXmlData : string(100000);<br />
sDummy : string;<br />
begin<br />
WebFormExpand(formUrl, sDummy, 1, true);<br />
WebFormValueGet(formUrl, sXmlData, sizeof(sXmlData),<br />
"param");<br />
WebFormValueSet(ARSYS_BACKCHANNEL_INTERNAL_HELPER,<br />
"param", RemedyBackChannelData(sXmlData));<br />
WebRemedyBackChannelUrl := WebPageUrl(sUrl, sTimer,<br />
ARSYS_BACKCHANNEL_INTERNAL_HELPER);<br />
end WebRemedyBackChannelUrl;<br />
dclform<br />
ARSYS_BACKCHANNEL_INTERNAL_HELPER :<br />
"param" := "";<br />
Protocol detection and<br />
conversion<br />
Remedy protocol detection is not available by default. However, it is already<br />
built into the SilkPerformer recorder and is enabled by choosing the appropriate<br />
Remedy application type when creating a new project.<br />
The Remedy data conversion into XML and back out of XML is implemented<br />
in the ProxyEngine for recording and in the perfRemedy.dll, which is loaded into<br />
the perfRun by the Remedy.bdh.<br />
Adobe Flex AMF3 Support<br />
AMF3 (Action Message Format, version 3) is a binary protocol that was created<br />
by Adobe. It is primarily used for remote procedure calls by Flex applications.<br />
A primary goal in the design of AMF3 is that transmitted data be as small as<br />
possible. This requirement presents a challenge for protocol customization with<br />
SilkPerformer. To make the AMF3 protocol customizable and human-readable,<br />
SilkPerformer transforms AMF3 traffic into XML during script recording, and<br />
SilkPerformer User Guide 337
17 OTHER SUPPORTED ENVIRONMENTS<br />
Adobe Flex AMF3 Support<br />
Understanding Flex<br />
Understanding<br />
Advanced Flex Data<br />
Services<br />
transforms the XML back into AMF3 format during replay. This means that you<br />
do not have to content with binary AMF3 data in hex string form. Rather, in<br />
recorded scripts and TrueLogs, you see only XML-formatted data.<br />
AMF0 and AMF3 support are tightly integrated (in fact AMF3 uses AMF0’s<br />
message structure). Every AMF3 message begins as an AMF0 message (even<br />
when they contain the version “3” in the first two bytes of the data stream). A<br />
special AMF0 data type marker indicates where AMF0 encoding ends and<br />
AMF3 encoding begins.<br />
According to Adobe (see www.adobe.com), “Flex is a free, open source<br />
framework for building highly interactive, expressive web applications that<br />
deploy consistently on all major browsers, desktops and operating systems. It<br />
provides a modern, standards-based language and programming model that<br />
supports common design patterns. MXML, a declarative XML-based language,<br />
is used to describe UI layout and behaviors, and ActionScript 3, a powerful OO<br />
programming language is used to create client logic. Flex also includes a rich<br />
component library with over 100 proven, extensible UI components for creating<br />
RIAs, as well as an interactive Flex application debugger.<br />
Rich Internet applications created with Flex can run in the browser using the<br />
ubiquitous Adobe Flash ® Player software or on the desktop on Adobe AIR .<br />
This enables Flex applications to run consistently across all major browsers and<br />
across operating systems on the desktop. And using Adobe AIR, the crossoperating<br />
system runtime, Flex applications can now access local data and<br />
system resources on the desktop.<br />
You can accelerate application development with Adobe Flex Builder 3, a<br />
highly productive, Eclipse based development environment, and Adobe Live<br />
Cycle Data Services ES, a set of advanced data services that can be used in Flex<br />
development. Both of these products are available for purchase.”<br />
According to Adobe, “Adobe LiveCycle Data Services ES provides a<br />
comprehensive set of data-enabling features for using data in RIAs. It enables<br />
RIAs to talk to back-end data and business logic in a faster, more efficient<br />
operating model. LiveCycle Data Services ES also enables seamless integration<br />
with LiveCycle ES business processes and document services.<br />
BlazeDS is a free, open source project providing Flex Remoting and Messaging<br />
to all developers. Flex Remoting provides a binary, serialized data transport<br />
format called the ActionScript Message Format (AMF) to provide a fast,<br />
efficient means of transporting data to your RIA which accelerates application<br />
performance. Flex Remoting also makes it fast and easy for developers to<br />
connect to back-end business logic and data. Flex Messaging adds realtime data<br />
push and publish/subscribe, both powerful capabilities now made easy. Using<br />
BlazeDS, you can start using these powerful Java server integration features for<br />
free, then subscribe to the LiveCycle Data Services Community Edition for<br />
certified builds and support, or upgrade to the full LiveCycle Data Services ES<br />
Enterprise edition for a complete server solution.”<br />
338 SilkPerformer User Guide
17 OTHER SUPPORTED ENVIRONMENTS<br />
Adobe Flex AMF3 Support<br />
AMF3 Data Types<br />
AMF3 provides a number of data types.<br />
Simple Data Types<br />
Integer<br />
Double<br />
String<br />
Here are four simple data types that are provided by AMF3. In the binary<br />
protocol, each of these data types is transmitted as a 1-byte type marker. The<br />
corresponding XML tags for each data type are shown within brackets.<br />
• Undefined ()<br />
• Null ()<br />
• False ()<br />
• True ()<br />
Integers in AMF3 are serialized as variable-length 29-bit unsigned integers. The<br />
variable-length format ensures that integers take up as little space as necessary.<br />
In XML format, integers look like this:<br />
123456<br />
The integer data type is encoded as a 1-byte type marker, followed by up to 4<br />
bytes that encode the integer using the variable length format. Besides their use<br />
as a data type, variable-length integers are used in other places within the<br />
protocol.<br />
A double stores an 8-byte double precision floating point value as defined in<br />
IEEE 754. This is the data type that many programming languages refer to as a<br />
double. In XML format, doubles look like this:<br />
3.14159<br />
In the binary format, doubles are encoded as 1-byte type markers followed by 8<br />
bytes that contain the double value.<br />
Strings are used to store all types UTF-8-encoded string data. Besides their use<br />
as a data type, strings are also used to specify string data, such as classes or<br />
member names. All string values in an AMF3 data stream are put into a<br />
reference table which is typically generated when AMF3 or XML data is parsed.<br />
A string can either be encoded as a string value or as a string reference. A string<br />
reference refers to a previous occurrence of its number in the string reference<br />
table. This feature is used to save space when the same string value occurs<br />
several times in a single AMF3 data stream.<br />
In XML format, a string looks like this:<br />
Hello, World!<br />
When string references are used, the referenced string is marked with a<br />
reference ID (in the form of an attribute), and the string reference refers to the<br />
reference ID:<br />
This string is referenced<br />
SilkPerformer User Guide 339
17 OTHER SUPPORTED ENVIRONMENTS<br />
Adobe Flex AMF3 Support<br />
<br />
XML and<br />
XMLDocument<br />
Date<br />
Array<br />
AMF3 provides two data types to encode XML data, XMLDocument, which<br />
represents a Flash legacy data type, and XML, which is a newer XML type. Both<br />
data types encode XML as strings. The difference is that these strings are not<br />
registered in the string reference table. They are registered in the object<br />
reference table.<br />
Note With the XML format, the actual XML content must be XMLencoded.<br />
Due to a limitation with SilkPerformer's XML parser, it is<br />
currently not possible to use XML CDATA sections to notate such<br />
data.<br />
<Data>some data</Data><br />
<Data>some more data</Data><br />
As with strings, XML data can be referenced to save space:<br />
<Data>foobar</Data><br />
<br />
In AMF3, the date is encoded as the number of milliseconds elapsed since<br />
January 1st 1970 00:00, in the UTC timezone. The number of milliseconds is<br />
encoded as a double. Dates also support references, and each date is registered<br />
in the object reference table.<br />
2007-02-18 11:29:00.000<br />
2000-01-01 00:00:00.000<br />
<br />
Arrays in AMF3 cover two types of data structures: (1) standard arrays, where<br />
each element is identified by an index number, and (2) associative arrays, where<br />
each element is identified by a key (in the case of AMF3, this is always a string).<br />
In the binary representation of an array, the associative portion of the array is<br />
listed first. This is followed by a separator (an empty string) and finally the<br />
dense portion of the array (the standard array elements).<br />
In XML representation, the elements of an associative array are marked by their<br />
name attributes. Generally, arrays are not bound to a specific type, which means<br />
that you can put any data type in them, including different data types.<br />
<br />
23<br />
42<br />
EMEA\johndoe<br />
2008-02-17 13:47:13.000<br />
<br />
<br />
In the above example there is an array with three elements that have a name<br />
attribute (meaning, they belong to the associative portion of the array) and two<br />
340 SilkPerformer User Guide
17 OTHER SUPPORTED ENVIRONMENTS<br />
Adobe Flex AMF3 Support<br />
Object<br />
elements that do not have a name attribute, which means that they belong to the<br />
dense portion of the array.<br />
As with other data types, arrays can be referenced; their elements can be<br />
referenced; even their elements’ names can be referenced:<br />
<br />
bar<br />
<br />
<br />
In this example, there is an array with two string elements. The first element has<br />
the name “foo” and the value “bar”. The second element has no name, but<br />
references the string with the string reference table ID #0 (the string “foo”).<br />
Arrays themselves are registered in the object reference table.<br />
Objects are the most powerful data type within AMF3. There are several<br />
subtypes of classes that you need to be aware of. What all object types have in<br />
common is that they bear a class name.<br />
Object Traits<br />
The traits of an object are its member names, plus information indicating if an<br />
object is dynamic or externalizable.<br />
An object with traits contains a list of member names followed by the<br />
corresponding members. In binary format, member names are encoded as<br />
strings without type markers. The number of member names is encoded in an<br />
additional field of flags that also contains information about the object’s sub<br />
type. Following the members, an optional, additional list of dynamic members,<br />
each preceded by their respective member name, is included. The list of<br />
dynamic members is only included if the dynamic flag is set to true and<br />
terminated by an empty string.<br />
<br />
strFirstName<br />
strSurname<br />
John<br />
Doe<br />
<br />
<br />
42<br />
<br />
Object References<br />
Objects can be directly referenced because they are registered in the objects<br />
reference table.<br />
<br />
42<br />
<br />
<br />
SilkPerformer User Guide 341
17 OTHER SUPPORTED ENVIRONMENTS<br />
Adobe Flex AMF3 Support<br />
Traits References<br />
Each object of subtype object traits or externalizable traits is not only added to<br />
the objects reference table, but also to the traits reference table. Other objects<br />
can then refer to the traits of these objects. This means that such an object does<br />
not need to come with the list of members and the object flags by itself, but only<br />
with the actual members.<br />
<br />
userid<br />
firstName<br />
lastName<br />
jdoe<br />
John<br />
Doe<br />
<br />
<br />
mmustermann<br />
Max<br />
Mustermann<br />
<br />
Externalizable Traits<br />
Externalizable traits contain the binary representation of an object, an<br />
indeterminate number of bytes serialized in an unknown format. The format<br />
depends on the class that serializes and deserializes this data. The class also has<br />
to know how many bytes it has to consume from the byte stream.<br />
SilkPerformer provides support for the three most common classes:<br />
• flex.messaging.io.ArrayCollection<br />
• flex.messaging.io.ArrayList<br />
• flex.messaging.io.ObjectProxy<br />
According to Adobe, these three classes are the most common, and are encoded<br />
as AMF3. This means that these three classes are parsed like normal arrays or<br />
objects, respectively.<br />
In case a class other than these three is found, it is assumed that all bytes up to<br />
the end of the stream belong to the externalizable traits. The content of such an<br />
unknown externalizable trait is stored as Base64-encoded data.<br />
<br />
<br />
1<br />
2<br />
3<br />
4<br />
<br />
<br />
342 SilkPerformer User Guide
17 OTHER SUPPORTED ENVIRONMENTS<br />
Adobe Flex AMF3 Support<br />
<br />
<br />
hugo<br />
hugo2<br />
<br />
<br />
<br />
<br />
555-55-5555<br />
Tyler<br />
5<br />
<br />
<br />
SGVsbG8sIHdvcmxk<br />
ByteArray<br />
References<br />
A ByteArray holds an array of bytes. In XML representation, binary data is<br />
encoded in Base64 format.<br />
ByteArrays are registered in the object reference table.<br />
SGVsbG8sIHdvcmxk<br />
Three different reference tables are used. The following list offers an overview<br />
of which data types are registered in which reference table.<br />
• String Reference Table:<br />
- String<br />
- Class names (not an actual data type)<br />
- Member names (not an actual data type)<br />
- Value name of elements of the associative portion of an array (not an<br />
actual data type)<br />
• Object Reference Table:<br />
- Object<br />
- Date<br />
- Array<br />
- ByteArray<br />
- XML<br />
- XmlDocument<br />
• Traits Reference Table:<br />
- Object traits<br />
SilkPerformer User Guide 343
17 OTHER SUPPORTED ENVIRONMENTS<br />
Adobe Flex AMF3 Support<br />
- Externalizable traits<br />
• Not registered in any reference table:<br />
- Undefined<br />
- Null<br />
- False<br />
- True<br />
- Integer<br />
- Double<br />
Reference IDs are generated by the AMF3 parser. However in hand-written<br />
XML documents, you can use custom reference IDs:<br />
EMEA\johndoe<br />
<br />
Warning Custom reference IDs are lost when an XML document is<br />
transformed from XML to AMF3 and back to XML because the<br />
AMF3 generator simply looks up the reference table position using<br />
the reference ID string and only encodes the position in the AMF3.<br />
When parsing such a generated AMF3 data stream, the parser no<br />
longer has the information about the custom reference IDs. It<br />
generates reference IDs that begin with “#” and a continuous number<br />
that directly reflects the position in the string reference table.<br />
344 SilkPerformer User Guide
17 OTHER SUPPORTED ENVIRONMENTS<br />
Adobe Flex AMF3 Support<br />
AMF3-specific XML<br />
tags at a glance<br />
Here is an overview of all the AMF3-specific XML tags, including their<br />
attributes. See the list following the table for reference ID explanations.<br />
XML Nodename<br />
Value Location<br />
1: Optional<br />
Additional<br />
attributes<br />
Amf3 Subnodes ---<br />
Null --- ---<br />
Undefined --- ---<br />
False --- ---<br />
True --- ---<br />
Integer Content of node ---<br />
Double Content of node ---<br />
String Content of node val-refId (1;2), valref<br />
(1;2)<br />
XMLDocument Content of node refId (1;3), ref (1;3)<br />
Notes<br />
Date Content of node refId (1;3), ref (1;3) Unlike AMF0,<br />
AMF3 dates are<br />
shown in UTC time<br />
format.<br />
Array Subnodes refId (1;3), ref (1;3) Subnodes may<br />
have a name<br />
attribute (1;2)<br />
Object Subnodes dynamic (1;5),<br />
externalizable (1;5),<br />
classname,<br />
classname-refId<br />
(1;2), classname-ref<br />
(1;2), traits-refId<br />
(1;4), traits-ref (1;4)<br />
Subnodes may have<br />
a name attribute<br />
(1;2) if object is<br />
dynamic<br />
Member Content of node refId (1;2), ref (1;2) May only appear as<br />
a subnode of an<br />
object<br />
XML Content of node refId (1;3), ref (1;3)<br />
ByteArray Content of node refId (1;3), ref (1;3) Content is Base64-<br />
encoded<br />
SilkPerformer User Guide 345
17 OTHER SUPPORTED ENVIRONMENTS<br />
Adobe Flex AMF3 Support<br />
2: String reference<br />
3: Object reference<br />
4: Traits reference<br />
5: Boolean value (“true” or “false;” default is “false.”)<br />
Creating AMF3 SilkPerformer Projects<br />
To configure scripting for an AMF3 Application, as with AMF0 projects, create<br />
a project based on the Web Browser -> Flash Remoting project type. Due to the<br />
tight integration of AMF0 and AMF3 support, this project type works for both<br />
AMF0 and AMF3.<br />
Recording<br />
Common patterns in<br />
AMF3 traffic<br />
To record a script for an AMF3 Application, as with AMF0 projects, use the<br />
Model Script dialog.<br />
You will typically only encounter a few object types that are sent as remote<br />
procedure calls with their corresponding responses.<br />
The two most common types of objects that are sent from a Flex application to<br />
the server are:<br />
• flex.messaging.messages.CommandMessage (sent by the Flex<br />
application on startup)<br />
• flex.messaging.messages.RemotingMessage (directly associated with<br />
user actions such as button clicks)<br />
A CommandMessage’s XML structure typically looks like this:<br />
<br />
<br />
<br />
<br />
<br />
<br />
operation<br />
correlationId<br />
body<br />
clientId<br />
timeToLive<br />
destination<br />
messageId<br />
headers<br />
timestamp<br />
5<br />
<br />
346 SilkPerformer User Guide
17 OTHER SUPPORTED ENVIRONMENTS<br />
Adobe Flex AMF3 Support<br />
<br />
<br />
0<br />
<br />
93C26579-723C-8375-6A63-0E2F350D5C02<br />
<br />
nil<br />
<br />
0<br />
<br />
<br />
<br />
<br />
<br />
The basic structure (the AmfXml and Msg tags) is the same as AMF0, and the<br />
AMF3-specific part is encapsulated within the AMF3 tags. Below that, you can<br />
see the flex.messaging.messages.CommandMessage object.<br />
RemotingMessages are quite similar:<br />
<br />
<br />
<br />
<br />
<br />
<br />
source<br />
operation<br />
body<br />
clientId<br />
timeToLive<br />
destination<br />
messageId<br />
headers<br />
timestamp<br />
<br />
getCollection<br />
<br />
<br />
0<br />
mathservice<br />
7966B5A2-EF2C-B8C3-8FE3-0E2F34BFAD68<br />
<br />
my-amf<br />
SilkPerformer User Guide 347
17 OTHER SUPPORTED ENVIRONMENTS<br />
Adobe Flex AMF3 Support<br />
BB7EB7E4-DA1C-4595-61B1-<br />
AF035EA08054<br />
<br />
0<br />
<br />
<br />
<br />
<br />
<br />
Responses to CommandMessages and RemotingMessages are usually objects of<br />
the type flex.messaging.messages.AcknowledgeMessage:<br />
<br />
<br />
<br />
;jsessionid=FD9408A5721C2FA76BDABBA5F5C56A09<br />
<br />
<br />
<br />
<br />
destination<br />
headers<br />
correlationId<br />
messageId<br />
timestamp<br />
clientId<br />
timeToLive<br />
body<br />
<br />
<br />
DSId<br />
BB7EB7E4-DA1C-4595-61B1-AF035EA08054<br />
<br />
93C26579-723C-8375-6A63-0E2F350D5C02<br />
BB7EB7E4-DA3E-FADA-E6D5-1DEDDD67C705<br />
1202834762618<br />
BB7EB7E4-DA2D-84CA-B275-089186BC83A6<br />
0<br />
<br />
<br />
348 SilkPerformer User Guide
17 OTHER SUPPORTED ENVIRONMENTS<br />
Customizing Oracle Applications 12i Scripts for Replay<br />
<br />
<br />
<br />
Customizing AMF3<br />
scripts<br />
Warning Do not change the overall structure of XML objects<br />
within AMF3 scripts. It is okay to parse values or insert verification<br />
function, but deleting or rearranging AMF3 XML elements will<br />
destroy a call. The order of an object’s member values directly<br />
depends on the member names. Also do not change the order of<br />
elements within arrays.<br />
Customizing Oracle Applications 12i Scripts for Replay<br />
Prerequisite for<br />
recording<br />
Customizing recorded<br />
scripts<br />
Before recording Oracle Applications 12i you must disable ports 9000-9005.<br />
Before you can replay a recorded Oracle Applications 12i script you need to<br />
customize the script.<br />
The parameter icx_ticket contains session information for Oracle Applications<br />
12i. The SilkPerformer recorder generates code to automatically parse the value<br />
of icx_ticket:<br />
WebParseDataBoundEx(gsIcxTicket, STRING_COMPLETE,<br />
"icx_ticket='", 1, "'", WEB_FLAG_IGNORE_WHITE_SPACE, 1);<br />
WebPageParseUrl("IMG SRC", "IMG SRC=\"", "or", WEB_<br />
FLAG_IGNORE_WHITE_SPACE);<br />
WebPageUrl("http://myserver.com:8005/OA_HTML/<br />
runforms.jsp", "Oracle Applications R12", OA_HTML_<br />
RUNFORMS_JSP003);<br />
The WebParseDataBoundEx function tells the SilkPerformer runtime to parse<br />
the value of icx_ticket from the next HTML page call into the gsIcxTicket<br />
variable.<br />
In this example, the next HTML page call is http://myserver.com:8005/OA_<br />
HTML/runforms.jsp.<br />
This page takes input parameters from the form OA_HTML_RUNFORMS_<br />
JSP003. If this form already contains a recorded value for icx_ticket, the value<br />
has to be set to an empty value.<br />
SilkPerformer User Guide 349
17 OTHER SUPPORTED ENVIRONMENTS<br />
Customizing Oracle Applications 12i Scripts for Replay<br />
For all subsequent usages of the icx_ticket parameter, the value stored in the<br />
gsIcxTicket variable must be used instead of the recorded value.<br />
Note The SilkPerformer recorder scripts customized code for the<br />
OraFormsConnect function by default. Verify that the customization<br />
has been performed correctly.<br />
Additional session<br />
information<br />
customization<br />
Additional customizations are necessary after you have customized the icx_<br />
ticket parameter. TrueLog Explorer can assist you with these customizations.<br />
Procedure To customize Oracle Applications 12i session information:<br />
1 Ensure that the icx_ticket parameter is customized correctly.<br />
2 Try Run the script in SilkPerformer with TrueLog generation enabled.<br />
3 Open the resulting Try Script TrueLog with TrueLog Explorer. Typically,<br />
an HTML page (one appearing soon after login) will show errors.<br />
4 Click the Analyze Test button on the Workflow Bar.<br />
5 Select Compare your test run from the Workflow - Analyze Test wizard<br />
page.<br />
6 Close the Step through Truelog dialog.<br />
7 Select the TrueLog node that corresponds to the recorded application’s<br />
login page.<br />
8 Right-click the node and select Synchronize Truelogs from the context<br />
menu.<br />
9 Select Edit / Truelog Type / Web from the TrueLog Explorer menu bar.<br />
350 SilkPerformer User Guide
17 OTHER SUPPORTED ENVIRONMENTS<br />
Customizing Oracle Applications 12i Scripts for Replay<br />
10 Select the Source Differences tab.<br />
11 Right-click any rows that show differences between the recorded<br />
TrueLog and the replay TrueLog that also occur in the script and<br />
therefore likely contain session information (highlighted in yellow) that<br />
should be customized.<br />
12 Run another TryScript run in SilkPerformer to verify that your session<br />
information customizations are successful.<br />
SilkPerformer User Guide 351
17 OTHER SUPPORTED ENVIRONMENTS<br />
Customizing Oracle Applications 12i Scripts for Replay<br />
352 SilkPerformer User Guide
18<br />
Trouble 18 Chapter<br />
Shooting<br />
Introduction<br />
What you will learn<br />
This chapter explains known issues and trouble shooting tips for SilkPerformer.<br />
This chapter contains the following sections:<br />
Section<br />
Page<br />
Overview 353<br />
Contacting technical support 353<br />
Controller Agent Communication Troubleshooting 354<br />
Error Message Overview 356<br />
Overview<br />
All <strong>Borland</strong> customers whose products qualify for maintenance and all<br />
prospective customers who are evaluating <strong>Borland</strong> products are eligible for<br />
<strong>Technical</strong> Support.<br />
Contacting technical<br />
support<br />
If you have a question on recording Web traffic, load testing scenarios or any<br />
other product or implementation issue, our highly trained technical support staff<br />
will respond to your requests as quickly and professionally as possible.<br />
To reach <strong>Borland</strong> <strong>Technical</strong> Support:<br />
- Visit http://support.borland.com<br />
Required information<br />
Please have the following information ready when you call:<br />
- Product name and version number<br />
- Operating system name and version<br />
SilkPerformer User Guide 353
18 TROUBLE SHOOTING<br />
Controller Agent Communication Troubleshooting<br />
- Exact wording of any error messages involved<br />
- Customer ID found on your shipping receipt for SilkPerformer or on<br />
an index card found in your software box<br />
Controller Agent Communication Troubleshooting<br />
The following issues may occur when a controller computer attempts to connect<br />
to agent computers:<br />
“Load Test Controller - 3211: Could not connect agent control service.”<br />
This problem may be caused by one of the following reasons:<br />
The agent control service is not running.<br />
Solution: Start the agent control service.<br />
A port mismatch occurs (i.e., the port that the agent control service is listening to<br />
and the port at which the controller wants to connect the agent control service<br />
are different).<br />
Solution: Adjust the agent connection settings.<br />
The agent is connected through a proxy and the proxy is down.<br />
Solution: Check the agent connection settings and restart the proxy.<br />
“Load Test Controller - 3212: Could not authenticate the Agent Control”<br />
Service."<br />
The agent requires a password and encryption is enabled. The agent’s server<br />
certificate could not be found or a required dynamic link library (.dll) is missing<br />
(e.g., "ssleay32.dll"). However, note that the agent control service does not<br />
report an error when it is started, if this is the problem.<br />
Solution: Your best option is to re-install the remote agent, because missing<br />
certificates or dynamic link libraries are indications that the agent was not<br />
installed correctly.<br />
“Load Test Controller - 3213: The agent control service could not create<br />
the agent.”<br />
This is the same type of error as 3212, except that the agent does not require a<br />
password.<br />
“Load Test Controller - 3233: The agent's version does not match the<br />
version of its controller.”<br />
Solution: Install the correct remote agent version.<br />
“Load Test Controller - 3303: The local results directory could not be<br />
created.”<br />
This is an access rights problem, that is, the user account of the agent process<br />
does not have the necessary access rights to create a directory; the parent<br />
354 SilkPerformer User Guide
18 TROUBLE SHOOTING<br />
Controller Agent Communication Troubleshooting<br />
directory of the desired directory is probably a read-only version for all<br />
accounts.<br />
Solution: Grant the necessary access rights.<br />
“Load Test Controller - 3304: The local results directory could not be<br />
cleared.”<br />
A file within the local results directory is still open and being used by another<br />
process (most likely the perfLtcAgent.exe and perfRun.exe). This is usually a<br />
hint that either the agent or the runtime processes did not shutdown at the end of<br />
a previous load test, which should not happen.<br />
Solution: Check for pending perfLtcAgent.exe or perfRun.exe files and<br />
terminate them manually.<br />
If this is not the case, check that other programs are not using an open file from<br />
the local results directory. If none of the above options solve the problem, reboot<br />
the remote agent’s machine.<br />
“Load Test Controller - 3305: The local data directory could not be<br />
created.”<br />
The reason and solutions to this problem are the same as for error 3303.<br />
“Load Test Controller - 3306: The local data directory could not be<br />
cleared.”<br />
The reasons and solutions to this problem are the same as for error 3304.<br />
“SilkPerformer - 32: Access denied, authentication required.”<br />
The agent expects a password, but the controller did not send a password,<br />
meaning the controller did not authenticate itself.<br />
Solution: Adjust the agent connection settings.<br />
“SilkPerformer - 33: Authentication failed (wrong password).”<br />
The agent expects a password but the password sent by the controller is<br />
incorrect.<br />
Solution: Adjust the agent connection settings.<br />
“SilkPerformer - 25: Limit of concurrent instances exceeded.”<br />
Two agents cannot run simultaneously. Most likely, the agent is involved in a<br />
load test started by another controller.<br />
Solution: Wait for the other controller to finish its load test and then try again.<br />
If this is not the problem, the agent did not terminate correctly at the end of a<br />
previous load test and you must terminate the agent process manually.<br />
“System - 2: The system cannot find the file specified.”<br />
The agent executable (perfLtcAgent.exe) could not be found or there is a<br />
different entry for the agent executable in the performerLocal.ini file.<br />
Solution: Check the performerLocal.ini file. If it is not there or if the<br />
perfLtcAgent.exe is not present, then re-install the agent.<br />
SilkPerformer User Guide 355
18 TROUBLE SHOOTING<br />
Error Message Overview<br />
“Load Test Controller - 3422: Command timed out.”<br />
Usually the controller has 30 seconds to:<br />
- Connect to the remote agent control service.<br />
- Pass authentication information to the remote agent control service<br />
(if required).<br />
- Ask the agent control service to create the agent.<br />
- Connect to the agent.<br />
- Exchange version information with the remote agent.<br />
These tasks may take more time than the default timeout of 30 seconds,<br />
especially if the agent is connected through a proxy or if the connection is slow.<br />
Solution: Specify a higher timeout in the system settings (System Settings/<br />
Control/Remote Agent Connection).<br />
In the remote performerLocal.ini file, the "port" entry is missing in the agent's<br />
AcsClient/type section. That is, the agent was started by the agent control<br />
service, but it is not listening to any port and therefore cannot be connected.<br />
Solution: Specify the "port" entry in the agent’s AcsClient/type section in the<br />
remote performerLocal.ini file.<br />
“Load Test Controller - 3223: Agent connection lost.”<br />
This occurs when the connection is broken between the controller and agent or<br />
when the underlying communication units of the load test controller report<br />
connection problems. Furthermore, connecting the agent through a proxy might<br />
be the cause of the error if the proxy itself is buggy.<br />
Solution: There should be log files named orbClient_.log,<br />
orbServer_.log in the controller’s or agent’s home directory,<br />
respectively, where logging information related to the error can be found.<br />
Error Message Overview<br />
SilkPerformer system-related errors occur either during script compilation or<br />
during load test execution and can cause load tests to fail. As they occur,<br />
SilkPerformer reports system-level errors on the screen. Severe system-level<br />
errors are reported to the Windows NT Event Log.<br />
SilkPerformer distinguishes among the following types of system-level errors:<br />
• “Compiler errors”<br />
- “Lexical errors” (LEX errors)<br />
- “Semantic errors” (SEM errors)<br />
- “Syntax errors” (SYN errors)<br />
• “Internal errors” (COM errors)<br />
356 SilkPerformer User Guide
18 TROUBLE SHOOTING<br />
Error Message Overview<br />
• “System limitation errors” (RES errors)<br />
• “Runtime errors” (RUN errors)<br />
Each error message is identified by a sequential error number (unique within an<br />
error category) plus a three-character code that indicates the category of error,<br />
followed by a string providing a detailed description of the error.<br />
See the BDL Function Reference for details on error-handling functions.<br />
Compiler errors<br />
Lexical errors<br />
If an error occurs during compilation, the SilkPerformer compiler stops at the<br />
position where the error was detected. The error message is displayed and the<br />
line causing the error is highlighted. The compiler distinguishes among three<br />
categories of errors:<br />
- “Lexical errors” (LEX)<br />
- “Syntax errors” (SYN)<br />
- “Semantic errors” (SEM)<br />
A lexical error (error type LEX) occurs if the compiler detects lexical symbols<br />
that are not allowed in Benchmark Description Language.<br />
Example<br />
If a script contains an invalid character such as '{', compilation is aborted and an<br />
error message is printed:<br />
1 benchmark WebTest<br />
2<br />
3 dcluser<br />
4 user {<br />
Output<br />
compile error LEX 13: not a lexical symbol of BDL<br />
--- compilation was not successful ---<br />
Syntax errors<br />
A syntax error (error type SYN) occurs if the syntax of a test script does not<br />
agree with the syntax of Benchmark Description Language.<br />
Example<br />
If you do not specify the keyword then within an if statement, an error message<br />
appears:<br />
8 transaction TMain<br />
9 var<br />
10 j : number init 1;<br />
11 i : array [500] of number;<br />
12 s : array [5] of string(10);<br />
13 begin<br />
14 if j=1<br />
15 j:<br />
Output<br />
SilkPerformer User Guide 357
18 TROUBLE SHOOTING<br />
Error Message Overview<br />
compile error SYN 38: 'then' expected<br />
--- compilation was not successful ---<br />
Semantic errors<br />
System limitation<br />
errors<br />
Runtime errors<br />
Internal errors<br />
A semantic error (error type SEM) occurs if semantic conditions do not comply<br />
with the requirements of Benchmark Description Language.<br />
Example<br />
If you use an undeclared variable (“i” in the example below), compilation is<br />
aborted and an error message is displayed:<br />
46 dcltrans<br />
47 transaction TMain<br />
48 var<br />
49 artname : string(40);<br />
50 artno, price : number;<br />
51 result set c1;<br />
52 begin<br />
53 writeln; write("transaction TMain:"); writeln;<br />
54 c1: SelArticle(out artno, price, artname);<br />
56 write("rows found: "); write(rows(c1));<br />
57 fetch c1 all;<br />
58 for i:<br />
Output<br />
compile error SEM 12: variable is not declared<br />
--- compilation was not successful ---<br />
System limitation errors (error types RES) can occur while either compiling a<br />
script or running a load test. If they occur during a test execution, they will cause<br />
the test to fail. These errors indicate that a system limitation has been exceeded.<br />
Only the SilkPerformer simulator will produce run-time errors (error type<br />
RUN). Run-time errors indicate programming errors in test scripts that cannot<br />
be recognized during compilation (for example, using array indexes outside the<br />
scope of an array). If a run-time error occurs, an error message is printed on<br />
screen and to a .rpt file.<br />
SilkPerformer can detect internal script errors (error type COM). Please contact<br />
<strong>Borland</strong> technical support if you encounter one.<br />
358 SilkPerformer User Guide
Index<br />
Symbols<br />
.NET 19, 20, 104, 128, 269<br />
.NET Explorer 269<br />
.NET Framework 269<br />
Remoting objects 269<br />
@codepage 310<br />
A<br />
Abandon option 85<br />
Accepted Baseline Reports 182<br />
ADO 19, 114, 128<br />
Adobe Flex 338<br />
Advanced Flex Data Services 338<br />
Agents 121<br />
Agent Pool 32<br />
Connection properties 51<br />
Monitoring 195<br />
Multiple 165<br />
Pool settings 33, 48<br />
Remote 48<br />
AJAX 311<br />
Alphanumeric characters 91<br />
AMF3 337<br />
Creating projects 346<br />
Data types 339<br />
References 343<br />
XML tags 345<br />
Animated checkbox 136<br />
Application profiles 39, 40, 41<br />
Application types, available 17<br />
Arguments, program 42<br />
ARM options 73<br />
Arrays 170<br />
ASCII 308<br />
Authentication, browsers 85<br />
B<br />
Bandwidth 75<br />
Baseline performance 177, 179<br />
Establishing 25<br />
Baseline Reports 26, 180, 182<br />
Benchmark Description Language 213<br />
<strong>Borland</strong> Optimizeit ServerTrace Plug-In 265<br />
Boundaries, fixed 170<br />
Bounds<br />
Variable, upper 170<br />
Browsers 144<br />
authentication 85<br />
Browser-level API 89<br />
Options 79<br />
Settings 83<br />
C<br />
Candle graphs 227<br />
Certificates, client 52<br />
Character encodings 309<br />
Charts 214<br />
Custom 214<br />
Options 225<br />
CIDR 145<br />
Citrix 44, 102, 128<br />
Citrix MetaFrame 19<br />
Measurements 243<br />
Client certificates 46, 52, 78<br />
Exporting 54<br />
Client-side real-time measures 75<br />
Code completion 249<br />
Code List, Code completion 249<br />
Codepage 310<br />
COM 19, 44, 128<br />
COM/ADO 114<br />
Command line<br />
Options 109<br />
Commandline<br />
Launching tests 205<br />
Component testing, remote 273<br />
Computers, agent 121<br />
Concurrent connections 232<br />
Configuring services 40<br />
Configuring SilkPerformer 31<br />
Connect timeout 76<br />
Connection parameters 197<br />
Content-encoding 81<br />
Control settings 36<br />
Controller connection, configuring 48<br />
Cookies 148, 150<br />
persistent recording 89<br />
CORBA 63, 105, 241<br />
Measurements 241<br />
Counter logs 259<br />
CPU utilization 232<br />
CSV files<br />
Converting to Time Series Data format 259<br />
SilkPerformer User Guide 359
csv2tsd.exe 259<br />
Customizing test scripts 139<br />
D<br />
Data files 120<br />
Data files, multi-column 254<br />
Data Source Wizard 196<br />
Data types<br />
Structured 172<br />
Data verification 93<br />
Databases 18, 63, 238<br />
Measurements 242<br />
DB2 CLI 44<br />
Digest verification 92<br />
Directories 32<br />
Settings 34<br />
DLLs 166<br />
DNS lookup 88<br />
Document cache 87<br />
Document download time 239<br />
Downstream traffic 76<br />
Duplex 76<br />
dynaTrace Diagnostics plug-in 267<br />
E<br />
eCATT, SAP 312<br />
Eclipse plug-in 325<br />
Installing 326<br />
Viewing test results 332<br />
Working with projects 328<br />
EJB 18, 43<br />
Emailing projects 247<br />
Embedded objects data 239<br />
Emulate DNS lookup 88<br />
Encodings, character 309<br />
Encryption 49<br />
Enterprise JavaBeans 269<br />
ERP/CRM 17<br />
Error code 66<br />
Error tolerance 85<br />
Error-handling 65<br />
Errors, SilkPerformer 353<br />
EUC-JP 309<br />
Evaluating SilkPerformer 4<br />
Exploring TrueLogs 136<br />
Exporting projects 246<br />
External functions 166<br />
F<br />
File locking 248<br />
Files, data 120<br />
Firewalls 49<br />
HTTP 50<br />
Multiple 52<br />
SOCKS 51<br />
TCP/IP 49<br />
Fixed boundaries 170<br />
Flash Remoting 17<br />
Flex 337<br />
Creating projects 346<br />
Data types 339<br />
References 343<br />
XML tags 345<br />
FTP 45, 128<br />
Passive semantics 76<br />
Function declarations 141<br />
Functions<br />
External 166<br />
Matrix 174<br />
Parsing 153<br />
G<br />
Graphs 222<br />
Green screen support 314<br />
GUI-level testing support 317<br />
Configuring Terminal Services settings 321<br />
Configuring Windows 320<br />
Functions 318<br />
H<br />
Host name 46<br />
Host options 77<br />
HTML 175<br />
Page Timers 137<br />
HTTP 45, 81, 234<br />
Firewalls 50<br />
HTTP body transformation 93<br />
HTTPS 46<br />
I<br />
IBM 314<br />
IDL files 108<br />
IIOP 44, 63, 105, 128, 241<br />
Measurements 236<br />
Importing projects 246<br />
Indention, smart 251<br />
Informational 66<br />
Input data, customized 252<br />
Interfaces<br />
Server 44<br />
360 SilkPerformer User Guide
Internet Explorer 42, 54<br />
Internet options 75<br />
IP addresses 46, 144<br />
Issues, known and workarounds in<br />
SilkPerformer 304<br />
J<br />
Jacada 43<br />
Java 19, 20, 129, 249, 269, 273<br />
Advanced options 109<br />
API 43<br />
Compiling files 258<br />
Configuration 55<br />
EJB 43<br />
Integration with SilkPerformer<br />
Java Framework 256<br />
Java Explorer 271<br />
Java Framework 271<br />
Java Virtual Machine 109<br />
JNDI 43<br />
Logging options 110<br />
Options 108<br />
Projects in SilkPerformer 257<br />
RMI 43<br />
JIT compiler 109<br />
Jolt 128<br />
JSON<br />
Pretty-formatted 311<br />
JUnit 19, 273<br />
K<br />
Keep-alive semantics 81<br />
Known issues in SilkPerformer 304<br />
L<br />
LAN 33, 49<br />
Latin-1 309<br />
Layout<br />
Reports 217<br />
Settings 35<br />
LDAP 20, 45, 128<br />
Licensing<br />
SilkPerformer 4<br />
Link checking 92<br />
Listen port 46<br />
Load tests<br />
Defining workload 27<br />
Executing 28<br />
Launching from commandline 205<br />
Starting 194<br />
Loading times tolerance 84<br />
Locking, files 248<br />
Log files 136<br />
M<br />
Manual script writing 131<br />
Mapi 20<br />
Measurements 230<br />
Memory 232<br />
Memory footprints by application type 7<br />
Message output 264<br />
MIBs 196<br />
Middleware measurements 242<br />
Modems 75, 144, 178<br />
Compression rate 76<br />
Module 65<br />
Monitoring<br />
Data 221<br />
Requirements 199<br />
Servers 183<br />
Multi-Byte Character Set (MBCS) 309<br />
Multi-column data files 254<br />
N<br />
Netscape 42, 55<br />
Network options 75<br />
NUnit 19, 273<br />
O<br />
OCI 44<br />
ODBC 44, 111<br />
OID 197<br />
Options<br />
Recording 107, 114<br />
Verification 90<br />
Oracle 17, 128<br />
Oracle Forms 18, 43, 97, 128<br />
Oracle Applications 12i 17<br />
Customizing scripts for replay 349<br />
ORB features support 107<br />
Outlining projects 16<br />
Output files 138, 178<br />
Output messages 264<br />
Overlay series 222<br />
Overview Report 229<br />
Overview Summary Reports 213<br />
SilkPerformer User Guide 361
P<br />
PAC 81<br />
Page data 239<br />
Page timers 138<br />
Page-based browser-level API 88<br />
Parameter Wizard 252<br />
Parameters<br />
Passing 168<br />
Test 5<br />
Parsing functions 153<br />
Passwords 86<br />
Authentication 49<br />
Performance<br />
Monitoring 195<br />
Test baseline 179<br />
Performance and Scalability Matrix 5<br />
Performance counter logs 259<br />
Performance Data Collection Engine 213<br />
Performance Explorer 75, 212, 213, 229, 259<br />
Converting CSV data for import 259<br />
Performance, baseline 25, 177<br />
Persistent-cookie recording 89<br />
Plug-Ins<br />
Initializing 264<br />
POP3 46<br />
Port settings 48<br />
Preprocessor arguments 108<br />
Printable characters 91<br />
Profile settings 60<br />
.NET options 104<br />
Administering Profiles 60<br />
Citrix options 102<br />
COM/ADO options 114<br />
CORBA options 105<br />
Database options 110<br />
IIOP options 105<br />
Internet options 75<br />
Java options 108<br />
Oracle Forms options 97<br />
Recording options 62<br />
Replay options 64<br />
Result options 66<br />
SAP GUI options 99<br />
Script options 62<br />
Simulation options 64<br />
Terminal Client options 94<br />
WAP options 117<br />
Web options 79<br />
Profile settings, projects 60<br />
Profiles<br />
Applications 41<br />
Users 144<br />
Program arguments 42<br />
Project profile settings 60<br />
Projects<br />
Configuring 60<br />
Emailing 247<br />
Importing/exporting 246<br />
Outlining 16<br />
Uploading to SilkCentral 247<br />
Protocol selection 42<br />
Protocol-specific recording options 63<br />
Proxies 39, 86<br />
Options 82<br />
Servers 50<br />
Settings 40, 45<br />
Proxy Auto-Config 81<br />
PVCS 297<br />
Q<br />
Queuing workload 64<br />
R<br />
Random variables 253<br />
Real-time measures 75<br />
Recorder 45<br />
Matrix 174<br />
Protocol-specific options 63<br />
SilkPerformer 39<br />
Recording<br />
Options 62, 88, 107, 114<br />
Reload times 84<br />
Remedy 129, 333<br />
SilkEssential 336<br />
Remote agents, configuring 48, 165<br />
Remote-component testing 273<br />
Rendezvous functionality 164<br />
Replay 77<br />
Errors 66<br />
Options 64<br />
Via a scripting function 54<br />
Within the GUI 54<br />
Reports 215, 229<br />
Custom 216<br />
Files 137<br />
Layouts 217<br />
Request data 240, 243<br />
Requests sent 232<br />
Response data 175, 240<br />
Response data verification 158<br />
Response time 243<br />
Thresholds 182<br />
Transactions 137<br />
Responses failed 233<br />
362 SilkPerformer User Guide
Responsiveness 232<br />
REST 311<br />
Results 33<br />
Analyzing 29<br />
Custom 219<br />
Exploring, test 209<br />
Options 66<br />
Overview 209<br />
Settings 38<br />
Viewing facilities 210<br />
RMI objects 269<br />
Root cause analysis, visual 212<br />
S<br />
Sample scripts 19, 131<br />
SAP 17<br />
eCATT 312<br />
SAPGUI 17<br />
SAP GUI 99<br />
Scalability<br />
Performance and Scalability Matrix 5<br />
Scaling options 223<br />
Scripts 119<br />
Customizing 24, 139<br />
Modeling 21<br />
Samples 19, 131<br />
Trying out 23, 132<br />
Validating 22<br />
Writing manually 131<br />
Security options 77<br />
Security, encryption 49<br />
Server busy time 239<br />
Server interfaces 44<br />
Server monitoring 183<br />
Requirements 199<br />
ServerTrace 266<br />
Services<br />
Configuring 40<br />
Session handling 149<br />
Session IDs 152<br />
Settings<br />
Browser 83<br />
Severity 65<br />
Shift-JIS 309<br />
Siebel 17<br />
Silk Performance Explorer 259<br />
SilkCentral<br />
Test Manager 211, 287<br />
Uploading projects to 247<br />
SilkEssential<br />
Remedy 336<br />
SilkPerformer<br />
Configuring 31<br />
Evaluation version 4<br />
Licensing 4<br />
Overview 1<br />
Recorder 39, 45<br />
Upgrading to 4<br />
What’s new 2<br />
Workbench 32<br />
SilkPerformer 2006 R2<br />
What’s new 2<br />
SilkTest<br />
GUI-level testing support 317<br />
Simulation 65<br />
Options 64<br />
Settings 83<br />
Smart indention 251<br />
SMTP 46, 128<br />
SNMP 197<br />
SOCKS 42, 46, 47, 49, 128<br />
Firewalls 51<br />
Proxy server 51<br />
Source code control integration<br />
SilkPerformer 295<br />
Source control integration 33<br />
MS VSS 296<br />
PVCS 296<br />
SilkPerformer 295<br />
StarTeam 296, 298, 299<br />
SQL 63, 237<br />
SQLSTATE 110<br />
SSL 49, 78<br />
StarTeam<br />
Source control integration 296, 298, 299<br />
Stress test 64<br />
Structured data types 172<br />
Subnet masks 145<br />
Summary Reports 213<br />
Summary tables 137<br />
Synchronization 163<br />
Source control status 303<br />
System classpath 109<br />
System Configuration Manager 48, 49, 145, 160<br />
T<br />
Table verification 92<br />
TCP/IP 44, 46<br />
Firewalls 49<br />
Templates<br />
Monitoring 196<br />
Custom 184<br />
Reports 217<br />
Terminal Client 94<br />
Terminal emulation 17, 314<br />
Terminal Emulation Support<br />
SilkPerformer User Guide 363
TN3270 314<br />
TN5250 314<br />
VT100 314<br />
VT200 314<br />
Test baseline<br />
Establishing 26<br />
Performance 179<br />
Test Manager<br />
Integration 210<br />
Test Manager, SilkCentral 33, 287<br />
Test parameters 5<br />
Test results<br />
Exploring 209<br />
Overview 209<br />
Viewing facilities 210<br />
Test scripts 119<br />
Customizing 24, 139<br />
Modeling 21<br />
Samples 131<br />
Trying out 23, 132<br />
Validating 22<br />
Writing manually 131<br />
Tests<br />
Executing, load 28<br />
Launching from commandline 205<br />
Remote components 273<br />
Results, analyzing 29<br />
Starting 194<br />
Text and grid color 223<br />
Think time<br />
Limited 64<br />
Random 64, 177<br />
Thresholds<br />
Response time 182<br />
Time series data 226<br />
Traffic 76<br />
Upstream 76<br />
Transaction declarations 141<br />
Transaction response times 137<br />
Transactions measurement group 238<br />
Trouble shooting, SilkPerformer 353<br />
TrueLog<br />
Exploring 136<br />
Setting options 70<br />
TrueLog Explorer 22<br />
TrueLog Explorer 135, 140, 150, 157<br />
Function matrix 174<br />
TrueLog On Error 190, 212<br />
TSD (Time Series Data) 259<br />
TSD-Writer 228<br />
Tuxedo 18, 44, 128, 243<br />
U<br />
Unicode 308<br />
Unicode Text/Hex Editor 311<br />
Unit testing 19, 273<br />
Uploading projects to SilkCentral 247<br />
Upper bounds, variable 170<br />
Upstream traffic 76<br />
User distribution 190<br />
User groups 142<br />
Customization 143<br />
User profiles 144<br />
User tolerance 84<br />
User types 137, 178<br />
UTF-16 309<br />
UTF-8 309<br />
V<br />
Validating test scripts 22<br />
Variables, random for virtual users 253<br />
Verification<br />
Response data 158<br />
Verification under load 211<br />
Verifications<br />
Data 93<br />
Digest 92<br />
Options 90<br />
Table 92<br />
Virtual User Summary report 135<br />
Virtual users 137, 142<br />
Monitoring 195<br />
Output files 229<br />
Parameter Wizard 252<br />
Stopping 65<br />
Vista, Windows 308<br />
Visual analysis of TrueLogs 135<br />
Visual SourceSafe 297<br />
Visual Studio .NET, Add-In 270<br />
W<br />
WAN 49<br />
Agents 51<br />
Networks 33<br />
WAP 117<br />
Measurements 240<br />
Warning 66<br />
WChar 106<br />
Web 136, 249<br />
Settings 42<br />
Web application testing, AJAX 311<br />
Web form<br />
364 SilkPerformer User Guide
Measurements 239<br />
Web forms 138, 147, 181<br />
Web page measurements 239<br />
Web Services 18, 20<br />
WebDAV (MS Outlook Web Access) 17<br />
WebSphere Application Servers 3.5 / 4.0 200<br />
Windows Vista 308<br />
WinSock 42, 128<br />
Workbench, SilkPerformer 245<br />
Workload 187<br />
Available models 185<br />
Customizing 142<br />
Defining 27, 121<br />
Queuing 64<br />
Workspace 33<br />
Settings 38<br />
Writing test scripts manually 131<br />
WString 106<br />
X<br />
XML 20<br />
Pretty-formatted 311<br />
Verification 92<br />
XML/SOAP 18<br />
Z<br />
ZIP archives 246<br />
SilkPerformer User Guide 365
366 SilkPerformer User Guide