Jira Legacy |
---|
server | JIRA (openedx.atlassian.net) |
---|
serverId | 13fd1930-5608-3aac-a5dd-21b934d3a4b4 |
---|
key | MA-1099 |
---|
|
Table of Contents:
- Goals
- Testing Strategy
- Thread and comment pool
- Spikes in production data
- Staff vs. Normal user
- Pagination issue
- Other notes
- Endpoints
- Seeding data
- Test Details
...
Goals:Understand the load we are able to handle with the discussion API for when the mobile app is released.
What can the server handle?
Understand the the overhead between the discussion API and the ruby forums code.
- Does the Discussion API perform better, worse, or on par with the browser's forums?
- What does the forums performance look like in general?
...
Anchor |
---|
| testingstrategy |
---|
| testingstrategy |
---|
|
Testing Strategy:Originally the plan was to isolate each endpoint and determine what kind of load it can handle, but after analysis of the data, some of these endpoints seem unnecessary to isolate for a load test. These endpoints include DELETE and PATCH which are a significantly small part of the overall load in production. For the isolated test for these endpoints, it will be paired with it's appropriate GET Thread/Comment. For example, every DELETE Thread request requires a thread_id. We obtain this thread_id by calling GET Thread List with randomize parameters, which returns a list of threads where one is then randomly selected. This selected thread is then DELETEd. Below is the chart of the additional request we make. As long the ratio of how many of these requests happen in each task is understood, we can get the desired endpoint distribution.
...
Jira Legacy |
---|
server | JIRA (openedx.atlassian.net) |
---|
serverId | 13fd1930-5608-3aac-a5dd-21b934d3a4b4 |
---|
key | MA-1102 |
---|
|
...
Seeding Data: Course Structure Setup:
A tarfile with a very simple setup will be used for each load test. This course was created in studio and then exported. During the course creating when seeding data, this tarfile will be used as the skeleton.
...
Using this data, we were able to get an idea of what a course might look like. Most notably, the largest comment_count (comments and responses) for a thread is 5907 and the median seems to be 1. Although that value is an outlier, each course has a "Introduce yourself" topic which would consistently put a thread with a high comment_count in each course. Also, when thinking about mobile usage, push notification could possibly have a different usage pattern where these high comment_count threads could see high spikes in traffic.
...
...
Test details and their importance Since the request distribution is very disproportional, the individual endpoint tests are categorized base on how often these requests are hit.
...