From 1e0019cee377ce2a8cd4deac2c918bca8eacdd6d Mon Sep 17 00:00:00 2001 From: Yghor Kerscher Date: Tue, 31 Oct 2017 17:45:39 +0100 Subject: [PATCH] Clean up load tests. --- etc/load-testing/locustfile.py | 110 +++++++++++++++++++-------------- 1 file changed, 64 insertions(+), 46 deletions(-) diff --git a/etc/load-testing/locustfile.py b/etc/load-testing/locustfile.py index 86978ae..d8592db 100644 --- a/etc/load-testing/locustfile.py +++ b/etc/load-testing/locustfile.py @@ -20,29 +20,56 @@ def select_snapshot(): ] return random_element(_snapshots) +def select_package(): + _packages = [ + "accelerate", + "adjunctions", + "aeson", + "binary", + "both", + "extensible-effects", + "hamlet", + "hdocs", + "microlens", + "range", + "sort", + "text", + "universe" + ] + return random_element(_packages) + +def select_hoogle_query(): + _hoogle_queries = [ + "Ord", + "Eq", + "Num", + "pack", + "Text -> String", + "fmap", + "a -> a", + "traverse", + "bracket", + "^.", + ">>>", + "<$>", + "bimap", + "inject" + ] + return random_element(_hoogle_queries) + class HoogleQueries(TaskSet): @task def hoogle_queries(self): - # TODO: Get actual common queries from server logs - _hoogle_queries = [ - "Ord", - "Eq", - "Num", - "pack", - "Text -> String", - "fmap", - "a -> a", - "traverse", - "bracket", - "^.", - ">>>", - "<$>", - "bimap", - "inject" - ] _snapshot = select_snapshot() - for q in _hoogle_queries: - self.client.get("/" + _snapshot + "/hoogle?q=" + q, name="/:snapshot/hoogle?q=[:query]") + _query = select_hoogle_query() + self.client.get("/" \ + + _snapshot \ + + "/hoogle?q=" + _query \ + , name="/:snapshot/hoogle?q=[:query]") + + @task + def stop(self): + self.interrupt() @task def stop(self): @@ -52,35 +79,26 @@ class Documentation(TaskSet): @task def docs(self): _snapshot = select_snapshot() - self.client.get("/" + _snapshot + "/docs", name="/:snapshot/docs") + self.client.get("/" \ + + _snapshot \ + + "/docs" \ + , name="/:snapshot/docs") @task def stop(self): self.interrupt() - -class PackageBrowser(TaskSet): - @task(10) - def browse_package(self): - # TODO: Get packages to test from up-to-date listing on Stackage, move out of here - _packages = [ - "accelerate", - "adjunctions", - "aeson", - "binary", - "both", - "extensible-effects", - "hamlet", - "hdocs", - "microlens", - "range", - "sort", - "text", - "universe" - ] - _snapshot = select_snapshot() - self.client.get("/" + _snapshot + "/package/" + random_element(_packages), name="/:snapshot/package/:package") - @task(2) +class PackageBrowser(TaskSet): + @task + def browse_package(self): + _snapshot = select_snapshot() + _package = select_package() + self.client.get("/" \ + + _snapshot \ + + "/package/" + _package \ + , name="/:snapshot/package/:package") + + @task def stop(self): self.interrupt() @@ -88,11 +106,11 @@ class Snapshots(TaskSet): @task def updateSnapshots(self): self.client.get("/download/snapshots.json") - + @task def stop(self): self.interrupt() - + class TopLevelPages(TaskSet): @task(20) def install(self): @@ -101,7 +119,7 @@ class TopLevelPages(TaskSet): @task(10) def lts(self): self.client.get("/lts") - + @task(5) def nightly(self): self.client.get("/nightly")