Browse Source

k6 script

DarthSim 3 years ago
parent
commit
6d7fc6f5c5
3 changed files with 55 additions and 0 deletions
  1. 1 0
      .gitignore
  2. 41 0
      k6/index.js
  3. 13 0
      k6/urls.json.example

+ 1 - 0
.gitignore

@@ -9,3 +9,4 @@ docker-base
 docs/sitemap.txt
 docs/sitemap.txt
 .env
 .env
 .devcontainer/*
 .devcontainer/*
+k6/urls.json

+ 41 - 0
k6/index.js

@@ -0,0 +1,41 @@
+import { randomSeed } from 'k6';
+import http from 'k6/http';
+import { SharedArray } from 'k6/data';
+import exec from 'k6/execution';
+
+const URL_PREFIX = "http://localhost:8082/unsafe"
+
+export let options = {
+  discardResponseBodies: true,
+  noConnectionReuse: false,
+
+  vus: 20,
+  iterations: 10000,
+};
+
+randomSeed(42)
+
+const urls = new SharedArray('urls', function () {
+  const data = JSON.parse(open('./urls.json'));
+
+  let unshuffled = [];
+  data.forEach((e) => {
+    let url = URL_PREFIX + e.url
+    let weight = e.weight || 1
+
+    for (var i = 0; i < weight; i++) {
+      unshuffled.push(url)
+    }
+  })
+
+  let shuffled = unshuffled
+    .map(value => ({ value, sort: Math.random() }))
+    .sort((a, b) => a.sort - b.sort)
+    .map(({ value }) => value)
+
+  return shuffled;
+});
+
+export default function() {
+  http.get(urls[exec.scenario.iterationInTest % urls.length])
+}

+ 13 - 0
k6/urls.json.example

@@ -0,0 +1,13 @@
+[
+  {
+    "url": "/rs:fit:500:500/crop:1000:1000/sh:2/rot:90/wm:1/pd:10/plain/local:///test.jpg",
+    "weight": 5
+  },
+  {
+    "url": "/rs:fit:500:0/plain/local:///test.png",
+    "weight": 2
+  },
+  {
+    "url": "/rs:fill:300:0/wm:0.5:re:::0.2/plain/local:///test.gif"
+  }
+]