Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
56 commits
Select commit Hold shift + click to select a range
8405c4b
code view loading benchmark test added
bluein-green Jul 19, 2019
5e47ef7
code view benchmark: use more specific identifier
bluein-green Jul 19, 2019
071f36b
benchmark test: remove console.log message
bluein-green Jul 19, 2019
12d6474
benchmark test: assert that button is visible before clicking it
bluein-green Jul 19, 2019
a438814
benchmark test: more specific selector
bluein-green Jul 19, 2019
b4cdfa6
codeview benchmark: use new approach independent of username, repeat …
bluein-green Jul 24, 2019
30d5941
benchmark test: remove newline
bluein-green Jul 24, 2019
7574c3e
codeview benchmark: extract test as a function, then call that functi…
bluein-green Jul 24, 2019
82ebc46
benchmark: fix codacy issues
bluein-green Jul 24, 2019
7ee3c67
benchmark: move let to the for loop
bluein-green Jul 24, 2019
842d424
benchmark: specify the threshold + buffer time
bluein-green Jul 24, 2019
c87494a
benchmark: check whether ALL tests exceed the max time, assert if true
bluein-green Jul 24, 2019
187345a
benchmark: align reduce with map
bluein-green Jul 24, 2019
e066690
benchmark: increase timeout for getting tab-authorship to 45s
bluein-green Jul 24, 2019
dd367ac
benchmark: increase timeout to 1min
bluein-green Jul 24, 2019
b603830
benchmark: increase number of trials to 5
bluein-green Jul 24, 2019
bfbfa6d
benchmark: increase number of trials to 5
bluein-green Jul 24, 2019
b55fee1
benchmark: increase timeout to 1.5min
bluein-green Jul 24, 2019
2d85919
Merge branch '817-codeview-loading-benchmark' of https://github.com/b…
bluein-green Jul 24, 2019
e061394
Merge branch 'master' into 817-codeview-loading-benchmark
bluein-green Jul 25, 2019
1f22e8f
benchmark: remove extra cy.get() since PR #832 was merged
bluein-green Jul 25, 2019
78ddd5e
benchmark: add parentheses for time parameter
bluein-green Jul 25, 2019
e0708b7
Merge branch 'master' into 817-codeview-loading-benchmark
bluein-green Jul 25, 2019
b8b2add
Merge branch 'master' into 817-codeview-loading-benchmark
eugenepeh Jul 31, 2019
080c40c
Merge branch 'master' into 817-codeview-loading-benchmark
bluein-green Aug 1, 2019
0b623cc
benchmark: short-circuit when 1 trial has passed an is within time limit
bluein-green Aug 1, 2019
554e3f7
Merge branch '817-codeview-loading-benchmark' of https://github.com/b…
bluein-green Aug 1, 2019
a3d41b0
benchmark: remove excess newline
bluein-green Aug 1, 2019
7198a1e
retrigger travis
bluein-green Aug 1, 2019
76ce89f
benchmark: add a wait statement after selecting descending LoC
bluein-green Aug 1, 2019
a40acdb
benchmark: try not short-circuiting
bluein-green Aug 1, 2019
4b75f3e
benchmark: use this.skip to SKIP tests rather than short-circuit with…
bluein-green Aug 1, 2019
32bfc3f
benchmark: try old code on travis
bluein-green Aug 1, 2019
8656136
benchmark: bring in new changes
bluein-green Aug 1, 2019
47cf5aa
benchmark: use else for timeTrial
bluein-green Aug 1, 2019
f54bed5
cypress support.js: add a cypress.wait() in beforeeach
bluein-green Aug 1, 2019
212e7d2
revert adding wait to beforeeach
bluein-green Aug 1, 2019
f363934
benchmark: reorder this.skip() to align with best practice
bluein-green Aug 1, 2019
24d0668
benchmark: don't use this.skip()
bluein-green Aug 1, 2019
2e6245c
benchmark: remove condition
bluein-green Aug 1, 2019
b25e382
benchmark: skip all tests, check on travis
bluein-green Aug 1, 2019
8e684c5
benchmark: wrap if else in cy.then()
bluein-green Aug 1, 2019
e242b4f
cypress support.js: visit, allow timeout to be 30s
bluein-green Aug 1, 2019
21fd0e2
cypress support.js: increase beforeEach cy.visit() timeout to 90s
bluein-green Aug 1, 2019
cc97c0a
cypress support.js: increase beforeEach cy.visit() timeout to 2min
bluein-green Aug 1, 2019
2aa18cc
benchmark: remove cy.then() wrapping
bluein-green Aug 1, 2019
fd8c3b8
cypress support.js: add onfailure in .then() that is chained off the …
bluein-green Aug 2, 2019
351b500
Merge branch 'master' into 817-codeview-loading-benchmark
bluein-green Aug 2, 2019
3099b91
cypress support.js / cypress.json: move pageLoadTimeout as default
bluein-green Aug 2, 2019
7a35143
move timeout back to cy.visit()
bluein-green Aug 2, 2019
df09eef
cypress support.js: increase cy.visit() timeout to 3min
bluein-green Aug 2, 2019
6d1fd95
cypress support / json: move timeout for cy.visit() to configs
bluein-green Aug 2, 2019
6648f7b
Merge branch 'master' into 817-codeview-loading-benchmark
eugenepeh Aug 2, 2019
c29b0f3
Use bionic for cypress
yong24s Aug 16, 2019
4070e0a
Remove pageLoadTimeout
yong24s Aug 16, 2019
1f98b67
Use cypress 3.4.1
yong24s Aug 16, 2019
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ matrix:

- name: "Cypress frontend tests"
os: linux
dist: xenial
dist: bionic
addons:
chrome: stable
services:
Expand Down
2 changes: 1 addition & 1 deletion frontend/cypress/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,6 @@
"debug": "cypress open"
},
"devDependencies": {
"cypress": "^3.1.5"
"cypress": "^3.4.1"
}
}
61 changes: 61 additions & 0 deletions frontend/cypress/tests/codeView_load_benchmark.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
describe('load code view benchmark', function() {
const NUM_TRIALS = 5;
const THRESHOLD_LOADING_TIME = 8000;
const THRESHOLD_LOADING_TIME_SECONDS = THRESHOLD_LOADING_TIME / 1000;

const BUFFER_PERCENTAGE = 0.1;
const BUFFER_SUGGESTED_TIME = 3000;
const ALLOWED_BUFFER_TIME = BUFFER_PERCENTAGE * THRESHOLD_LOADING_TIME >= BUFFER_SUGGESTED_TIME
? BUFFER_PERCENTAGE * THRESHOLD_LOADING_TIME : BUFFER_SUGGESTED_TIME;
const ALLOWED_BUFFER_TIME_SECONDS = ALLOWED_BUFFER_TIME / 1000;

const MAXIMUM_LOADING_TIME = THRESHOLD_LOADING_TIME + ALLOWED_BUFFER_TIME;

let isATrialWithinMaxTime = false;

const timeTrial = function(i) {
let startTime;

// ensure that icons are loaded
Cypress.wait();

cy.get('#summary-wrapper .sort-within-group select')
.select('totalCommits dsc');

cy.get('.summary-chart__title--button.fa-code')
.should('be.visible')
.first()
.click()
.then(() => {
startTime = performance.now();
});

cy.get('#tab-authorship .files', { timeout: 90000 })
.should('be.visible')
.then(() => {
const endTime = performance.now();
const loadingTime = endTime - startTime;
const loadingTimeSeconds = loadingTime / 1000;

cy.log(`trial ${i+1} loading time: ${loadingTimeSeconds.toFixed(3)}s`);

if (loadingTime <= MAXIMUM_LOADING_TIME) {
isATrialWithinMaxTime = true;
}
});
};


for (let i = 0; i < NUM_TRIALS; i++) {
it(`time taken to load code view (trial ${i+1})`, function() {
if (isATrialWithinMaxTime) {
this.skip();
}
timeTrial(i);
});
}

it(`at least one trial is within ${THRESHOLD_LOADING_TIME_SECONDS}(+${ALLOWED_BUFFER_TIME_SECONDS})s`, function() {
assert.isTrue(isATrialWithinMaxTime);
});
});