228 lines
8.0 KiB
Plaintext
228 lines
8.0 KiB
Plaintext
extends ../../layout.pug
|
||
|
||
block content
|
||
- const d = pageInfo.data
|
||
- runNumber = iteration
|
||
- const daTitle = daurlAlias ? daurlAlias : daurl
|
||
- const downloadName = (daTitle + '-' + runNumber + '-' + options.browser + '-' + timestamp).replace(/(https?\:\/\/)|( )|(:)/ig, '')
|
||
|
||
h1 Run #{runNumber} summary
|
||
h5.url
|
||
a(href=daurl) #{decodeURIComponent(daTitle)}
|
||
|
||
include ../includes/pageRunInfo
|
||
|
||
if d.browsertime && d.browsertime.run
|
||
b #{d.browsertime.run.title}
|
||
p !{d.browsertime.run.description}
|
||
|
||
p
|
||
.large#pageNavigation All runs:
|
||
each val, index in runPages
|
||
- value = Number(index) + 1
|
||
if (runNumber === value)
|
||
span.label.normal.info #{value}
|
||
else
|
||
a(href='./' + value + '.html') #{value}
|
||
if (value !== Object.keys(runPages).length)
|
||
| -
|
||
|
|
||
|
||
if d.browsertime && d.browsertime.run.errors && d.browsertime.run.errors.length > 0
|
||
.errors
|
||
b Errors
|
||
ul
|
||
each error in d.browsertime.run.errors
|
||
li #{error}
|
||
|
||
.index-link
|
||
a.button.button--primary(href=urlLink) Back to summary
|
||
|
||
include ./tabs.pug
|
||
|
||
#tabSections
|
||
section#summary-panel
|
||
h2 Summary
|
||
.row
|
||
.one-half.column
|
||
table
|
||
tr
|
||
th Metric
|
||
th Value
|
||
tr
|
||
th(colspan='2') Page metrics
|
||
- performanceScore = get(d, 'coach.run.advice.performance.score')
|
||
if performanceScore
|
||
tr
|
||
td Performance score
|
||
td #{performanceScore}
|
||
- totalTransferSize = get(d, 'pagexray.run.transferSize')
|
||
if totalTransferSize
|
||
tr
|
||
td Total page size
|
||
td #{h.size.format(totalTransferSize)}
|
||
- memory = get(d, 'browsertime.run.memory')
|
||
if memory
|
||
tr
|
||
td Memory
|
||
td #{h.size.format(memory)}
|
||
- cpuConsumption = get(d, 'browsertime.run.cpuConsumption')
|
||
if cpuConsumption
|
||
tr
|
||
td Firefox CPU power consumption
|
||
td #{cpuConsumption * 1000} mWh
|
||
- requests = get(d, 'pagexray.run.requests')
|
||
if (requests)
|
||
tr
|
||
td Requests
|
||
td #{requests}
|
||
- ttfb = get(d, 'browsertime.run.timings.pageTimings.backEndTime')
|
||
tr
|
||
th(colspan='2') Timing metrics
|
||
if ttfb
|
||
tr
|
||
td TTFB
|
||
td #{h.time.ms(ttfb)}
|
||
- firstPaint = get(d, 'browsertime.run.timings.firstPaint')
|
||
if firstPaint
|
||
tr
|
||
td First Paint
|
||
td #{h.time.ms(firstPaint)}
|
||
- fullyLoaded = get(d, 'browsertime.run.fullyLoaded')
|
||
if fullyLoaded
|
||
tr
|
||
td Fully Loaded
|
||
td #{h.time.ms(fullyLoaded.toFixed(0))}
|
||
- fcp = get(d, 'browsertime.run.timings.paintTiming["first-contentful-paint"]')
|
||
- lcp = get(d, 'browsertime.run.timings.largestContentfulPaint.renderTime')
|
||
if lcp
|
||
tr
|
||
th(colspan='2') Google Web Vitals
|
||
- ttfb = get(d, 'browsertime.run.timings.pageTimings.backEndTime')
|
||
if ttfb
|
||
tr
|
||
td TTFB
|
||
td #{h.time.ms(ttfb)}
|
||
if fcp
|
||
tr
|
||
td First Contentful Paint (FCP)
|
||
td #{h.time.ms(fcp)}
|
||
if lcp
|
||
tr
|
||
td Largest Contentful Paint (LCP)
|
||
td #{h.time.ms(lcp)}
|
||
- cls = get(d, 'browsertime.run.pageinfo.cumulativeLayoutShift')
|
||
if cls || cls === 0
|
||
tr
|
||
td Cumulative Layout Shift (CLS)
|
||
td #{cls.toFixed(2)}
|
||
- inp = get(d, 'browsertime.run.timings.interactionToNextPaint')
|
||
if inp
|
||
tr
|
||
td #{h.time.ms(inp)}
|
||
- tbt = get(d, 'browsertime.run.cpu.longTasks.totalBlockingTime')
|
||
if tbt
|
||
tr
|
||
td Total Blocking Time
|
||
td #{h.time.ms(tbt)}
|
||
- mpFID = get(d, 'browsertime.run.cpu.longTasks.maxPotentialFid')
|
||
if mpFID
|
||
tr
|
||
td Max Potential FID
|
||
td #{h.time.ms(mpFID)}
|
||
- longTasks = get(d, 'browsertime.run.cpu.longTasks.tasks')
|
||
if longTasks
|
||
tr
|
||
th(colspan='2') CPU metrics
|
||
tr
|
||
td CPU long tasks
|
||
td #{longTasks}
|
||
- maxLongTask= get(d, 'browsertime.run.cpu.longTasks.durations.max')
|
||
if maxLongTask
|
||
tr
|
||
td CPU longest task duration
|
||
td #{h.time.ms(maxLongTask)}
|
||
- lastLongTask= get(d, 'browsertime.run.cpu.longTasks.lastLongTask')
|
||
if lastLongTask
|
||
tr
|
||
td CPU last long task happens at
|
||
td #{h.time.ms(lastLongTask)}
|
||
|
||
- firstVisualChange = get(d, 'browsertime.run.visualMetrics.FirstVisualChange')
|
||
if firstVisualChange
|
||
tr
|
||
th(colspan='2') Visual Metrics
|
||
tr
|
||
td First Visual Change
|
||
td #{h.time.ms(firstVisualChange)}
|
||
- speedIndex = get(d, 'browsertime.run.visualMetrics.SpeedIndex')
|
||
if speedIndex
|
||
tr
|
||
td Speed Index
|
||
td #{h.time.ms(speedIndex)}
|
||
- visualComplete85 = get(d, 'browsertime.run.visualMetrics.VisualComplete85')
|
||
if visualComplete85
|
||
tr
|
||
td Visual Complete 85%
|
||
td #{h.time.ms(visualComplete85)}
|
||
- visualComplete99 = get(d, 'browsertime.run.visualMetrics.VisualComplete99')
|
||
if visualComplete99
|
||
tr
|
||
td Visual Complete 99%
|
||
td #{h.time.ms(visualComplete99)}
|
||
- lastVisualChange = get(d, 'browsertime.run.visualMetrics.LastVisualChange')
|
||
if lastVisualChange
|
||
tr
|
||
td Last Visual Change
|
||
td #{h.time.ms(lastVisualChange)}
|
||
|
||
.one-half.column
|
||
if hasScreenShots
|
||
- screenshotName = 'data/screenshots/' + iteration + '/afterPageCompleteCheck.' + screenShotType
|
||
- const width = options.mobile ? 150 : '100%';
|
||
a(href=screenshotName)
|
||
img.screenshot(src=screenshotName, width=width, alt='Screenshot')
|
||
.downloads
|
||
include ./downloads.pug
|
||
include ./tcpdump.pug
|
||
if d.browsertime && d.browsertime.run && d.browsertime.run.har
|
||
section#waterfall-panel
|
||
include ../waterfall/index.pug
|
||
|
||
if options.browsertime.video
|
||
section#video-panel
|
||
include ../video/index.pug
|
||
|
||
if (options.browsertime.video || options.browsertime.visualMetrics) && options.videoParams.createFilmstrip || options.browsertime.chrome && options.browsertime.chrome.enableTraceScreenshots
|
||
section#filmstrip-panel
|
||
include ../filmstrip/index.pug
|
||
|
||
if d.coach && d.coach.run
|
||
section#coach-panel
|
||
include ../coach/index.pug
|
||
|
||
if d.browsertime && d.browsertime.run
|
||
section#metrics-panel
|
||
include ../metrics/index.pug
|
||
|
||
if d.pagexray && d.pagexray.run
|
||
section#pagexray-panel
|
||
include ../pagexray/index.pug
|
||
|
||
if options.cpu || (options.browsertime && options.browsertime.chrome && options.browsertime.chrome.collectLongTasks) || (options.browsertime && options.browsertime.firefox && options.browsertime.firefox.geckoProfiler || options.browsertime &&options.browsertime.enableProfileRun)
|
||
section#cpu-panel
|
||
include ../cpu/index.pug
|
||
|
||
if d.thirdparty && d.thirdparty.run
|
||
section#thirdparty-panel
|
||
include ../thirdparty/index.pug
|
||
|
||
if d.browsertime && d.browsertime.run
|
||
section#screeenshots-panel
|
||
include ../screenshots/index.pug
|
||
|
||
each pageRun in pageRuns
|
||
- const panelName = pageRun.id + '-panel'
|
||
section(id=panelName)
|
||
p !{pugs[pageRun.id]}
|