Wikked/benchmarks/test_benchmark.py -rw-r--r-- 1.3 KiB View raw Log this file
38aab394d274Ludovic Chabant cm: Fix packaging build. 7 months ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import re
import urllib.parse
import random
import unittest
from funkload.FunkLoadTestCase import FunkLoadTestCase


class Benchmark(FunkLoadTestCase):
    """This test uses a configuration file Benchmark.conf."""
    def setUp(self):
        self.server_url = self.conf_get('main', 'url')

    def test_simple(self):
        server_url = self.server_url
        if not re.match('https?://', server_url):
            raise Exception("The `server_url` setting doesn't have a scheme.")

        username = self.conf_get('test_benchmark', 'username', None)
        password = self.conf_get('test_benchmark', 'password', None)
        if username and password:
            self.post(self.server_url + "/api/user/login",
                  params=[['username', username],
                          ['password', password]],
                  description="Login as %s" % username)

        nb_times = self.conf_getInt('test_benchmark', 'nb_times')
        names = self.conf_get('test_benchmark', 'page_names').split(';')
        for i in range(nb_times):
            r = random.randint(0, len(names) - 1)
            url = server_url + '/api/read/' + urllib.parse.quote(names[r])
            self.get(url, description='Getting %s' % names[r])


if __name__ in ('main', '__main__'):
    unittest.main()