Page MenuHomePhabricator

Use the WebPageTest built in queue to scale (and makes tests run faster)
Closed, ResolvedPublic

Description

One of the problem with the way we built WebPageTest today is that we don't use the built in ability to scale. WebPageTest can be configured to start a new test agent if the queue is longer than configurable X It's not needed today but when we add more and more URLs we will hit the limit and it would a nice feature to use.

Today when we add tests to WebPageTest we do it in a series, we add one test, waits for it to finish and then adds the next. We need to change that so we add all at the same time (from a batch) and then wait for them to finish.

Change that is easy but it will take som time to test. We use the caolan/async library today for making the requests in a series, we change that to use parallell instead + set the timeout time for waiting on a test to unlimited. That should do, but we need to test :)

Event Timeline

Peter raised the priority of this task from to Needs Triage.
Peter updated the task description. (Show Details)
Peter added a project: Performance-Team.
Peter subscribed.

Change 257569 had a related patch set uploaded (by Phedenskog):
Use WebPageTest internal queue

https://gerrit.wikimedia.org/r/257569

Change 257569 merged by jenkins-bot:
Use WebPageTest internal queue

https://gerrit.wikimedia.org/r/257569

We also need to change the scripts in Jenkins so we collect the return status of all of them. If one of them are larger than 0, a script has failed and the Jenkins job should also fail.

Change 259484 had a related patch set uploaded (by Phedenskog):
If one batch fails for WPT, fail the whole job.

https://gerrit.wikimedia.org/r/259484

Change 259484 merged by jenkins-bot:
If one batch fails for WPT, fail the whole job.

https://gerrit.wikimedia.org/r/259484

Peter claimed this task.

This is running live and working fine :)

Change 259783 had a related patch set uploaded (by Phedenskog):
Reimpl for catching errors in WebPageTest runs

https://gerrit.wikimedia.org/r/259783

Here is the official Continuous integration barnstar!

         /\
        /**\
_______/****\_______
*.******/^^\******.*
  *.***( () )***.*
    *.**\,./**.*
     /**.**.**\
    /*.*    *.*\
   /.*        *.\
   '            `

Thank you!

Change 259783 abandoned by Phedenskog:
Reimpl for catching errors in WebPageTest runs

Reason:
thanks Hashar for pointing out the problem. I'm doing a new change to use bash instead.

https://gerrit.wikimedia.org/r/259783