Testing Content Server browse performance (Part 1)

Matthew Barben
Driver Lane
Published in
2 min readNov 2, 2018

--

Ever since the release of Content Server 16 in 2016, there has been a bunch of excitement around the introduction of the ‘Smart UI’. Unfortunately, it was immediately followed by some disappointment when users tried to use it in anger. Anecdotes of people testing Smart UI and immediately abandoning it to go back to using the classic UI. Now there are a bunch of reasons as to why — but that is not what I wanted to talk about today. Today — I wanted to quantify the argument and propose a test.

The Setup

The setup is simple. I have a Content Server 16.2.6 instance that is running on a Windows 2012 R2 box using a Postgres database which is hosted on the server. During this test I want to compare the following:

  • Smart UI versus Classic UI performance
  • cs.exe versus llisapi.dll performance
  • IIS versus Apache Tomcat performance

The tools that I will be using

I want to automate this as much as possible. To that end, I will be building a program in Node.js using Puppeteer (https://github.com/GoogleChrome/puppeteer). This will allow me to create a headless version of chrome and allow me to control that experience to ensure that the same steps are followed each time. I will capture the results in a JSON based database that I can use to compare results.

Puppeteer will allow me to capture window.performance.timing data that I can use to compare test runs later:

{
“navigationStart”: 1541047832902,
“unloadEventStart”: 1541047836625,
“unloadEventEnd”: 1541047836625,
“redirectStart”: 0,
“redirectEnd”: 0,
“fetchStart”: 1541047832910,
“domainLookupStart”: 1541047832910,
“domainLookupEnd”: 1541047832910,
“connectStart”: 1541047832910,
“connectEnd”: 1541047832910,
“secureConnectionStart”: 0,
“requestStart”: 1541047836145,
“responseStart”: 1541047836577,
“responseEnd”: 1541047836588,
“domLoading”: 1541047836637,
“domInteractive”: 0,
“domContentLoadedEventStart”: 0,
“domContentLoadedEventEnd”: 0,
“domComplete”: 0,
“loadEventStart”: 0,
“loadEventEnd”: 0
}

The tests that I will be performing

In my content server, I have created a folder called Performance Test. Under that, there are two folders

  • 50 Folders (a folder with 50 folders in it)
  • 100 Items (a folder with 100 documents in it)

There will be two tests (on for both Smart UI and Classic UI)

Test One

  • Browse to Enterprise Workspace (or /nodes/2000 in Smart UI)
  • Browse to Performance Test folder
  • Browse to 50 Folders folder

Test Two

  • Browse to Enterprise Workspace (or /nodes/2000 in Smart UI)
  • Browse to Performance Test folder
  • Browse to 100 Items folder

Continue Reading…

In Part 2, I build and execute the tests and we can start to collect data.

in Part 3, with code running and tests performed I look at the results.

Connect with Driver Lane on Twitter , and LinkedIn, or directly on our website.

--

--