106 lines
3.7 KiB
Gherkin
106 lines
3.7 KiB
Gherkin
@app @javascript @performance
|
|
Feature: Measure performance.
|
|
|
|
# In order to run performance tests, you need to add the following capabilities to your Behat configuration:
|
|
#
|
|
# $CFG->behat_profiles = [
|
|
# 'default' => [
|
|
# 'browser' => 'chrome',
|
|
# 'wd_host' => 'http://selenium:4444/wd/hub',
|
|
# 'capabilities' => [
|
|
# 'extra_capabilities' => [
|
|
# 'goog:loggingPrefs' => ['performance' => 'ALL'],
|
|
# 'chromeOptions' => [
|
|
# 'perfLoggingPrefs' => [
|
|
# 'traceCategories' => 'devtools.timeline',
|
|
# ],
|
|
# ],
|
|
# ],
|
|
# ],
|
|
# ],
|
|
# ];
|
|
|
|
Background:
|
|
Given the following "users" exist:
|
|
| username |
|
|
| student1 |
|
|
And the following "courses" exist:
|
|
| fullname | shortname | category |
|
|
| Course 1 | C1 | 0 |
|
|
And the following "course enrolments" exist:
|
|
| user | course | role |
|
|
| student1 | C1 | student |
|
|
And the following "activities" exist:
|
|
| activity | name | intro | course | idnumber | option | section |
|
|
| choice | Choice course 1 | Test choice description | C1 | choice1 | Option 1, Option 2, Option 3 | 1 |
|
|
|
|
Scenario: First Contentful Paint
|
|
Given I start measuring "First Contentful Paint"
|
|
When I launch the app runtime
|
|
Then I should find "Welcome to the Moodle App!" in the app
|
|
|
|
When I stop measuring "First Contentful Paint"
|
|
Then "First Contentful Paint" should have taken less than 6 seconds
|
|
|
|
Scenario: Time to Interactive
|
|
Given I start measuring "Time to Interactive"
|
|
When I launch the app runtime
|
|
Then I should find "Welcome to the Moodle App!" in the app
|
|
|
|
When I press "Skip" in the app
|
|
Then I should not find "Skip" in the app
|
|
And I should find "Connect to Moodle" in the app
|
|
|
|
When I stop measuring "Time to Interactive"
|
|
Then "Time to Interactive" should have taken less than 7 seconds
|
|
|
|
Scenario: Total Blocking Time
|
|
Given I launch the app runtime
|
|
Then I should find "Welcome to the Moodle App!" in the app
|
|
|
|
When I start measuring "Total Blocking Time"
|
|
And I press "Skip" in the app
|
|
Then I should not find "Skip" in the app
|
|
And I should find "Connect to Moodle" in the app
|
|
|
|
When I stop measuring "Total Blocking Time"
|
|
Then "Total Blocking Time" should have taken less than 2 seconds
|
|
|
|
Scenario: Login
|
|
When I launch the app
|
|
Then I should see "Connect to Moodle"
|
|
But I should not see "Welcome to the Moodle App!"
|
|
|
|
When I start measuring "Login"
|
|
And I set the field "Your site" to "$WWWROOT" in the app
|
|
And I press "Connect to your site" in the app
|
|
And I log in as "student1"
|
|
And I should find "Timeline" in the app
|
|
|
|
When I stop measuring "Login"
|
|
Then "Login" should have taken less than 10 seconds
|
|
|
|
Scenario: Open Activity
|
|
When I launch the app
|
|
Then I should see "Connect to Moodle"
|
|
But I should not see "Welcome to the Moodle App!"
|
|
|
|
And I set the field "Your site" to "$WWWROOT" in the app
|
|
And I press "Connect to your site" in the app
|
|
And I log in as "student1"
|
|
Then I press "My courses" in the app
|
|
And I should find "Course 1" in the app
|
|
|
|
When I reload the page
|
|
And I start measuring "Open Activity"
|
|
And I wait the app to restart
|
|
Then I should find "Course 1" in the app
|
|
|
|
When I enter the course "Course 1" in the app
|
|
And I press "Choice course 1" in the app
|
|
Then I should find "Option 1" in the app
|
|
|
|
When I stop measuring "Open Activity"
|
|
# TODO Check back to 7s or review perfect timings
|
|
Then "Open Activity" should have taken less than 8 seconds
|