How to Run Performance Tests #24103030/HEAD / v315 |
How to Run Performance TestsExecuting performance tests requires relevant expertise and experience.
To run performance tests, Codebeamer must be started with the following configurations:
Table of Contents
How to Run Performance TestsJarsFor Codebeamer releases 21.09-LTS (EMMA) and 22.04 (FELICITY), download the below files to conduct performance tests:
Since Codebeamer release 22.10-LTS (GINA), the cb-performance-test.jar and the cb-performance-result-renderer.jar files can be found in the root directory of the installed application.
It is recommended to run the cb-performance-test.jar on a separate machine, as close to the Codebeamer as possible. Network could cause performance issues.
Your directory should look like this: ├── cb-performance-result-renderer.jar ├── cb-performance-test.jar └── config ├── gatling.conf ├── scenarios.yaml └── warm-up-scenarios.yaml
Create a config directory with the following files:
Commands
Once the performance test is executed, the results can be found under the result directory.
Documentation for composing the scenarios.yaml file(accessible from console with the AllPagesDocPrinter command listed above) Available steps: - Create a new association for a tracker item How to use it: | - visit: addAssociation | parameters: | groupName: [Any text] # Add to the action name - Optional parameter | trackerType: [EPIC|USERSTORY|TASK|TESTCASE|BUG] # Adding association to a tracker item of the given tracker type - Optional parameter | associatedTrackerType: [EPIC|USERSTORY|TASK|TESTCASE|BUG] # An item of the given tracker type will be added to the other side of the association - Required parametere | random: [Integer - 1-100] # Chance to run the requests, 100 by default (always run) - Optional parameter - Create a new comment on a tracker item How to use it: | - visit: addComment | parameters: | groupName: [Any text] # Add to the action name - Optional parameter | trackerType: [EPIC|USERSTORY|TASK|TESTCASE|BUG] # Visit a tracker item page of the given tracker type - Optional parameter | random: [Integer - 1-100] # Chance to run the requests, 100 by default (always run) - Optional parameter - Authenticate a user How to use it: | - visit: authenticate | parameters: | roleName: [Developer|QA|Project Admin|Dev Lead|QA Lead|Reviewer] # Use with role - Optional parameter | random: [true|false] # Get a random user, default is false - Optional parameter | groupName: [Any text] # Add to the action name - Optional parameter | random: [Integer - 1-100] # Chance to run the requests, 100 by default (always run) - Optional parameter - Visit a baseline page on a project How to use it: | - visit: baselinesPage | parameters: | groupName: [Any text] # Add to the action name - Optional parameter | random: [Integer - 1-100] # Chance to run the requests, 100 by default (always run) - Optional parameter - Visit create project page and create one How to use it: | - visit: createProject | parameters: | groupName: [Any text] # Add to the action name - Optional parameter | kindOfNewProject: [clean|demo] # Set the project type which should be "demo" or "clean" - Optional parameter | demoDataPack: [Agile-Scrum|Agile-Waterfall-Hybrid|Automotive|Avionics|Medical] # Set project template if "demo" project is selected - Optional parameter | templateProjId: [Project template id] # Set project template id - Optional parameter | random: [Integer - 1-100] # Chance to run the requests, 100 by default (always run) - Optional parameter - Create project dashboard How to use it: | - visit: createProjectDashboard | parameters: | groupName: [Any text] # Add to the action name - Optional parameter | random: [Integer - 1-100] # Chance to run the requests, 100 by default (always run) - Optional parameter - Visit create project page How to use it: | - visit: createProjectPage | parameters: | groupName: [Any text] # Add to the action name - Optional parameter | random: [Integer - 1-100] # Chance to run the requests, 100 by default (always run) - Optional parameter - Create project wiki How to use it: | - visit: createProjectWiki | parameters: | groupName: [Any text] # Add to the action name - Optional parameter | random: [Integer - 1-100] # Chance to run the requests, 100 by default (always run) - Optional parameter - Create test run from test case on document view How to use it: | - visit: createTestRunOnDocumentView | parameters: | groupName: [Any text] # Add to the action name - Optional parameter | random: [Integer - 1-100] # Chance to run the requests, 100 by default (always run) - Optional parameter - Create tracker item How to use it: | - visit: createTrackerItem | parameters: | groupName: [Any text] # Add to the action name - Optional parameter | trackerType: [EPIC|USERSTORY|TASK|TESTCASE|BUG] # Create tracker item - Optional parameter | random: [Integer - 1-100] # Chance to run the requests, 100 by default (always run) - Optional parameter - Create tracker item on document edit view How to use it: | - visit: createTrackerItemDocumentEditView | parameters: | groupName: [Any text] # Add to the action name - Optional parameter | trackerType: [EPIC|USERSTORY|TASK|TESTCASE] # Create tracker item on document edit view - Optional parameter | random: [Integer - 1-100] # Chance to run the requests, 100 by default (always run) - Optional parameter - Create tracker item on document view How to use it: | - visit: createTrackerItemDocumentView | parameters: | groupName: [Any text] # Add to the action name - Optional parameter | trackerType: [EPIC|USERSTORY|TASK|TESTCASE] # Create tracker item on document view - Optional parameter | random: [Integer - 1-100] # Chance to run the requests, 100 by default (always run) - Optional parameter - Create tracker item on planner view How to use it: | - visit: createTrackerItemOnPlannerView | parameters: | groupName: [Any text] # Add to the action name - Optional parameter | trackerType: [EPIC|USERSTORY|TASK|TESTCASE] # Create tracker item on release planner view - Optional parameter | random: [Integer - 1-100] # Chance to run the requests, 100 by default (always run) - Optional parameter - Create user dashboard How to use it: | - visit: createUserDashboard | parameters: | groupName: [Any text] # Add to the action name - Optional parameter | random: [Integer - 1-100] # Chance to run the requests, 100 by default (always run) - Optional parameter - Create user wiki How to use it: | - visit: createUserWiki | parameters: | groupName: [Any text] # Add to the action name - Optional parameter | random: [Integer - 1-100] # Chance to run the requests, 100 by default (always run) - Optional parameter - Visit a kanban view on a tracker How to use it: | - visit: kanbanBoardPage | parameters: | groupName: [Any text] # Add to the action name - Optional parameter | trackerType: [EPIC|USERSTORY|TASK|TESTCASE|TESTRUN|BUG] # Visit a kanban page of the given tracker type - Optional parameter | random: [Integer - 1-100] # Chance to run the requests, 100 by default (always run) - Optional parameter - Set a baseline for the session How to use it: | - visit: loadBaseline | parameters: | groupName: [Any text] # Add to the action name - Optional parameter | random: [Integer - 1-100] # Chance to run the requests, 100 by default (always run) - Optional parameter - Load Tracker Item description tooltip How to use it: | - visit: loadDescriptionTooltip | parameters: | groupName: [Any text] # Add to the action name - Optional parameter | trackerType: [EPIC|USERSTORY|TASK|TESTCASE|BUG] # Visit a tracker item page of the given tracker type - Optional parameter | random: [Integer - 1-100] # Chance to run the requests, 100 by default (always run) - Optional parameter - Load issue properties How to use it: | - visit: loadIssueProperties | parameters: | groupName: [Any text] # Add to the action name - Optional parameter | trackerType: [EPIC|USERSTORY|TASK|TESTCASE] # Load issue properties on document view of the given tracker type - Optional parameter | random: [Integer - 1-100] # Chance to run the requests, 100 by default (always run) - Optional parameter - Load a next page from a random tracker item How to use it: | - visit: loadNextPageOnDocumentView | parameters: | groupName: [Any text] # Add to the action name - Optional parameter | trackerType: [EPIC|USERSTORY|TASK|TESTCASE] # Document View of the given tracker type will be used - Optional parameter | random: [Integer - 1-100] # Chance to run the requests, 100 by default (always run) - Optional parameter - Authenticate a user How to use it: | - visit: login | parameters: | roleName: [Developer|QA|Project Admin|Dev Lead|QA Lead|Reviewer] # Use with role - Optional parameter | groupName: [Any text] # Add to the action name - Optional parameter | random: [Integer - 1-100] # Chance to run the requests, 100 by default (always run) - Optional parameter - Visit login page How to use it: | - visit: loginPage | parameters: | groupName: [Any text] # Add to the action name - Optional parameter | random: [Integer - 1-100] # Chance to run the requests, 100 by default (always run) - Optional parameter - Logout a user How to use it: | - visit: logout | parameters: | groupName: [Any text] # Add to the action name - Optional parameter | random: [Integer - 1-100] # Chance to run the requests, 100 by default (always run) - Optional parameter - Mass edit tracker items How to use it: | - visit: massEditTrackerItems | parameters: | groupName: [Any text] # Add to the action name - Optional parameter | trackerType: [EPIC|USERSTORY|TASK|TESTCASE|BUG] # Mass edit items of the given tracker type - Optional parameter | trackerItemsCount: [Positive integer] # The number of items to mass edit - Required parametere | random: [Integer - 1-100] # Chance to run the requests, 100 by default (always run) - Optional parameter - Modify test case test steps (for createTrackerItem) How to use it: | - visit: modifyTestCaseTestSteps | parameters: | groupName: [Any text] # Add to the action name - Optional parameter | random: [Integer - 1-100] # Chance to run the requests, 100 by default (always run) - Optional parameter - Opens a reference field selector on a User Story item How to use it: | - visit: openReferenceSelectorDialog | parameters: | groupName: [Any text] # Add to the action name - Optional parameter | trackerType: [EPIC|USERSTORY|TASK|TESTCASE] # Visit a tracker item page of the given tracker type - Optional parameter | fieldName: [Any text] # Selects the field which reference selector should be opened - Optional parameter | fieldId: [Any integer] # Selects the field which reference selector should be opened - Optional parameter | random: [Integer - 1-100] # Chance to run the requests, 100 by default (always run) - Optional parameter - Open a report How to use it: | - visit: openReport | parameters: | groupName: [Any text] # Add to the action name - Optional parameter | random: [Integer - 1-100] # Chance to run the requests, 100 by default (always run) - Optional parameter | reportType: [SIMPLE, ADVANCED] # Type of the report - Optional parameter - Open a report for edit How to use it: | - visit: openReportForEdit | parameters: | groupName: [Any text] # Add to the action name - Optional parameter | random: [Integer - 1-100] # Chance to run the requests, 100 by default (always run) - Optional parameter | reportType: [SIMPLE, ADVANCED] # Type of the report - Optional parameter - Open a tracker item traceability section How to use it: | - visit: openTrackerItemTraceability | parameters: | groupName: [Any text] # Add to the action name - Optional parameter | trackerType: [EPIC|USERSTORY|TASK|TESTCASE|BUG] # Visit a tracker item page of the given tracker type - Optional parameter | random: [Integer - 1-100] # Chance to run the requests, 100 by default (always run) - Optional parameter - Visit the project backlog page How to use it: | - visit: projectBacklog | parameters: | groupName: [Any text] # Add to the action name - Optional parameter | random: [Integer - 1-100] # Chance to run the requests, 100 by default (always run) - Optional parameter - Visit a project document page and load document tree How to use it: | - visit: projectDocumentPage | parameters: | groupName: [Any text] # Add to the action name - Optional parameter | random: [Integer - 1-100] # Chance to run the requests, 100 by default (always run) - Optional parameter - Visit a project document directory page and load the document tree How to use it: | - visit: projectDocumentPageDirectoryPage | parameters: | groupName: [Any text] # Add to the action name - Optional parameter | random: [Integer - 1-100] # Chance to run the requests, 100 by default (always run) - Optional parameter - Visit a project document directory properties page How to use it: | - visit: projectDocumentPageDirectoryPropertiesPage | parameters: | groupName: [Any text] # Add to the action name - Optional parameter | random: [Integer - 1-100] # Chance to run the requests, 100 by default (always run) - Optional parameter - Visit a project document file properties page How to use it: | - visit: projectDocumentPageFilePropertiesPage | parameters: | groupName: [Any text] # Add to the action name - Optional parameter | random: [Integer - 1-100] # Chance to run the requests, 100 by default (always run) - Optional parameter - Visit a project member page How to use it: | - visit: projectMembersPage | parameters: | groupName: [Any text] # Add to the action name - Optional parameter | random: [Integer - 1-100] # Chance to run the requests, 100 by default (always run) - Optional parameter - Visit a project page and load project wiki tree How to use it: | - visit: projectPage | parameters: | groupName: [Any text] # Add to the action name - Optional parameter | random: [Integer - 1-100] # Chance to run the requests, 100 by default (always run) - Optional parameter - Visit a project listing page How to use it: | - visit: projectsPage | parameters: | groupName: [Any text] # Add to the action name - Optional parameter | random: [Integer - 1-100] # Chance to run the requests, 100 by default (always run) - Optional parameter - Remove a baseline from the session How to use it: | - visit: removeBaseline | parameters: | groupName: [Any text] # Add to the action name - Optional parameter | random: [Integer - 1-100] # Chance to run the requests, 100 by default (always run) - Optional parameter - Visit a report page and run 'project.id IN project AND tracker.id IN tracker' query on a tracker How to use it: | - visit: reportPage | parameters: | groupName: [Any text] # Add to the action name - Optional parameter | trackerType: [EPIC|USERSTORY|TASK|TESTCASE|BUG] # Visit a report page of the given tracker type and run 'project.id IN (${project}) AND tracker.id IN (${tracker}) AND TeamID IN (${team})' query - Optional parameter | showAllChildren: [true|false] # Check show all children checkbox - Optional parameter | showAncestorItems: [true|false] # Check show ancestor items checkbox - Optional parameter | showDescendantItems: [true|false] # Check show descendant items checkbox - Optional parameter | random: [Integer - 1-100] # Chance to run the requests, 100 by default (always run) - Optional parameter - Visit a review page How to use it: | - visit: reviewPage | parameters: | groupName: [Any text] # Add to the action name - Optional parameter | random: [Integer - 1-100] # Chance to run the requests, 100 by default (always run) - Optional parameter - Visit a review statistics page How to use it: | - visit: reviewStatisticsPage | parameters: | groupName: [Any text] # Add to the action name - Optional parameter | random: [Integer - 1-100] # Chance to run the requests, 100 by default (always run) - Optional parameter - Visit reviews page How to use it: | - visit: reviewsPage | parameters: | groupName: [Any text] # Add to the action name - Optional parameter | random: [Integer - 1-100] # Chance to run the requests, 100 by default (always run) - Optional parameter - Visit sprint page How to use it: | - visit: sprintPage | parameters: | groupName: [Any text] # Add to the action name - Optional parameter | random: [Integer - 1-100] # Chance to run the requests, 100 by default (always run) - Optional parameter - Visit a coverage page on a tracker How to use it: | - visit: trackerCoveragePage | parameters: | groupName: [Any text] # Add to the action name - Optional parameter | trackerType: [EPIC|USERSTORY|TESTRUN] # Visit a coverage page of the given tracker type - Optional parameter | random: [Integer - 1-100] # Chance to run the requests, 100 by default (always run) - Optional parameter - Visit a document edit view on a tracker How to use it: | - visit: trackerDocumentEditView | parameters: | groupName: [Any text] # Add to the action name - Optional parameter | trackerType: [EPIC|USERSTORY|TASK|TESTCASE] # Visit a tracker document edit view page of the given tracker type - Optional parameter | random: [Integer - 1-100] # Chance to run the requests, 100 by default (always run) - Optional parameter - Visit a document view on a tracker How to use it: | - visit: trackerDocumentView | parameters: | groupName: [Any text] # Add to the action name - Optional parameter | trackerType: [EPIC|USERSTORY|TASK|TESTCASE] # Visit a tracker document view page of the given tracker type - Optional parameter | random: [Integer - 1-100] # Chance to run the requests, 100 by default (always run) - Optional parameter - Visit a tracker item on a tracker How to use it: | - visit: trackerItemPage | parameters: | groupName: [Any text] # Add to the action name - Optional parameter | trackerType: [EPIC|USERSTORY|TASK|TESTCASE|BUG] # Visit a tracker item page of the given tracker type - Optional parameter | tabs: [WORKLOG|SCM|HISTORY|ALLHISTORY] # Open a tab after tracker item page is loaded. Comma seprated list of tab names - Optional parameter | random: [Integer - 1-100] # Chance to run the requests, 100 by default (always run) - Optional parameter - Visit a tracker page on a project, table layout is used How to use it: | - visit: trackerPage | parameters: | groupName: [Any text] # Add to the action name - Optional parameter | trackerType: [EPIC|USERSTORY|TASK|TESTCASE|TESTRUN|BUG] # Visit a tracker page of the given tracker type - Optional parameter | random: [Integer - 1-100] # Chance to run the requests, 100 by default (always run) - Optional parameter - Visit a traceability page on a tracker How to use it: | - visit: trackerTraceabilityReportPage | parameters: | groupName: [Any text] # Add to the action name - Optional parameter | trackerType: [EPIC|USERSTORY|TASK|TESTCASE|BUG] # Visit a traceability report page of the given tracker type - Optional parameter | traceabilityConfigType: [DEV|QA] # DEV: Join EPIC, USERSTORY and TASK trackers, QA: Join USERSTORY, TASK and TESTCASE trackers - Optional parameter | random: [Integer - 1-100] # Chance to run the requests, 100 by default (always run) - Optional parameter - Visit a traceability table view page on a tracker with a predefined view How to use it: | - visit: trackerTraceabilityTableView | parameters: | groupName: [Any text] # Add to the action name - Optional parameter | random: [Integer - 1-100] # Chance to run the requests, 100 by default (always run) - Optional parameter - Visit a trackers page on a project and load tracker tree How to use it: | - visit: trackersPage | parameters: | groupName: [Any text] # Add to the action name - Optional parameter | random: [Integer - 1-100] # Chance to run the requests, 100 by default (always run) - Optional parameter - Update description of a tracker item (for createTrackerItem) How to use it: | - visit: updateDescription | parameters: | groupName: [Any text] # Add to the action name - Optional parameter | trackerType: [EPIC|USERSTORY|TASK|TESTCASE|BUG] # Visit a tracker item page of the given tracker type - Optional parameter | random: [Integer - 1-100] # Chance to run the requests, 100 by default (always run) - Optional parameter - Update tracker item status (for createTrackerItem) How to use it: | - visit: updateTrackerItemStatus | parameters: | groupName: [Any text] # Add to the action name - Optional parameter | trackerType: [EPIC|USERSTORY|TASK|TESTCASE|BUG] # Update tracker item status - Optional parameter | random: [Integer - 1-100] # Chance to run the requests, 100 by default (always run) - Optional parameter - Visit a user homepage How to use it: | - visit: userHomePage | parameters: | groupName: [Any text] # Add to the action name - Optional parameter | random: [Integer - 1-100] # Chance to run the requests, 100 by default (always run) - Optional parameter | random: [Integer - 1-100] # Chance to run the requests, 100 by default (always run) - Optional parameter - Visit a user's photo How to use it: | - visit: userPhotoPage | parameters: | groupName: [Any text] # Add to the action name - Optional parameter | size: [SMALL|LARGE] # The size of the photo to be opened. - Optional parameter | random: [Integer - 1-100] # Chance to run the requests, 100 by default (always run) - Optional parameter - Visit project dashboard How to use it: | - visit: visitProjectDashboardPage | parameters: | groupName: [Any text] # Add to the action name - Optional parameter | random: [Integer - 1-100] # Chance to run the requests, 100 by default (always run) - Optional parameter - Visit project wiki How to use it: | - visit: visitProjectWikiPage | parameters: | groupName: [Any text] # Add to the action name - Optional parameter | random: [Integer - 1-100] # Chance to run the requests, 100 by default (always run) - Optional parameter - Visit a release page How to use it: | - visit: visitReleasePage | parameters: | groupName: [Any text] # Add to the action name - Optional parameter | random: [Integer - 1-100] # Chance to run the requests, 100 by default (always run) - Optional parameter - Visit the release stats page. If parameters are given it will filter on the page. How to use it: | - visit: visitReleaseStatsPage | parameters: | groupName: [Any text] # Add to the action name - Optional parameter | random: [Integer - 1-100] # Chance to run the requests, 100 by default (always run) - Optional parameter | releaseStatusFilter: [RESOLVED|CLOSED|RESOLVEDORCLOSED|OPEN|OVERDUE|OVERTIME] # The status of the tracker items that we are filtering for - Optional parameter | releaseTypeFilter: [DEFAULT|TEST_RUNS_ONLY|ALL_TRACKER_ITEMS] # The type of tracker items that we are filtering for - Optional parameter - Visit the report finder dialog How to use it: | - visit: visitReportFinderDialog | parameters: | groupName: [Any text] # Add to the action name - Optional parameter | random: [Integer - 1-100] # Chance to run the requests, 100 by default (always run) - Optional parameter - Visit the Reports page How to use it: | - visit: visitReportsPage | parameters: | groupName: [Any text] # Add to the action name - Optional parameter | trackerType: [EPIC|USERSTORY|TASK|TESTCASE] # Visit a report page - Optional parameter | random: [Integer - 1-100] # Chance to run the requests, 100 by default (always run) - Optional parameter - Visit user wiki page/dashboard How to use it: | - visit: visitUserDashboardPage | parameters: | groupName: [Any text] # Add to the action name - Optional parameter | random: [Integer - 1-100] # Chance to run the requests, 100 by default (always run) - Optional parameter
Database DumpThe schema name to be imported is CBTEST.There are database dumps for Postgres and Oracle, containing up to 1M tracker items in one single project. With tracker items having rich contents like descriptions, associations, downstream references and field values. For more information about obtaining these database dumps and how to import them, contact your IT department.
Apply LicenseFor applicable licenses to be used during performance tests, contact the Solution Engineering team at codebeamer-solutionengineering2@ptc.com.Codebeamer TuningFor more information on database pool configuration, see Database Connection Pool Parameters
The following environment variables can be set in order to increase performance. The number of these configurations depends on your scenarios, and might need to be changed.
21.09 Version
22.04 Version for Tomcat Database Pool
22.04 Version for HikariCP Database Pool
22.10 Version for Tomcat/HikariCP Database PoolThe same configuration is to be used as for Codebeamer version 22.04. How to Read the Test ResultsStats
Response TimesIf the Response Time value is low, the response times are close to the average. In case of a high response time value, investigation is needed to find the cause. PercentilesRead the below example to understand how to interpret the percentile values.
The following example statements have identical meanings:
The larger the user base, the closer you want to measure to the 100th percentile. Whether a 3-second response time at the 99th percentile is satisfactory or not depends on the number of end users that make up the remaining 1%. Errors
Customizing the ReportThe acceptable performance is not the same for every applications. To customize the acceptable ranges, change the values in the gatling.conf file.
|
Fast Links
codebeamer Overview codebeamer Knowledge Base Services by Intland Software |
This website stores cookies on your computer. These cookies are used to improve your browsing experience, constantly optimize the functionality and content of our website, furthermore helps us to understand your interests and provide more personalized services to you, both on this website and through other media. With your permission we and our partners may use precise geolocation data and identification through device scanning. You may click accept to consent to our and our partners’ processing as described above. Please be aware that some processing of your personal data may not require your consent, but you have a right to object to such processing. By using our website, you acknowledge this notice of our cookie practices. By accepting and continuing to browse this site, you agree to this use. For more information about the cookies we use, please visit our Privacy Policy.Your preferences will apply to this website only.
Note that user-behavior analytics are being captured on this server for the purpose of improving the Codebeamer user experience.