annotate benchmarks/test_benchmark.py @ 347:ece930a816b1

Add ability to look at whole change diffs from the site history page.
author Ludovic Chabant <ludovic@chabant.com>
date Sat, 19 Sep 2015 10:14:51 -0700
parents f7a741bc5770
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
325
8b45c5ba5d47 Add benchmark tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1 import re
338
f7a741bc5770 Update benchmarks to Pyton 3.
Ludovic Chabant <ludovic@chabant.com>
parents: 325
diff changeset
2 import urllib.parse
325
8b45c5ba5d47 Add benchmark tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
3 import random
8b45c5ba5d47 Add benchmark tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
4 import unittest
8b45c5ba5d47 Add benchmark tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
5 from funkload.FunkLoadTestCase import FunkLoadTestCase
8b45c5ba5d47 Add benchmark tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
6
8b45c5ba5d47 Add benchmark tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
7
8b45c5ba5d47 Add benchmark tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
8 class Benchmark(FunkLoadTestCase):
8b45c5ba5d47 Add benchmark tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
9 """This test uses a configuration file Benchmark.conf."""
8b45c5ba5d47 Add benchmark tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
10 def setUp(self):
8b45c5ba5d47 Add benchmark tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
11 self.server_url = self.conf_get('main', 'url')
8b45c5ba5d47 Add benchmark tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
12
8b45c5ba5d47 Add benchmark tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
13 def test_simple(self):
8b45c5ba5d47 Add benchmark tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
14 server_url = self.server_url
8b45c5ba5d47 Add benchmark tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
15 if not re.match('https?://', server_url):
8b45c5ba5d47 Add benchmark tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
16 raise Exception("The `server_url` setting doesn't have a scheme.")
8b45c5ba5d47 Add benchmark tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
17
8b45c5ba5d47 Add benchmark tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
18 username = self.conf_get('test_benchmark', 'username', None)
8b45c5ba5d47 Add benchmark tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
19 password = self.conf_get('test_benchmark', 'password', None)
8b45c5ba5d47 Add benchmark tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
20 if username and password:
8b45c5ba5d47 Add benchmark tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
21 self.post(self.server_url + "/api/user/login",
8b45c5ba5d47 Add benchmark tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
22 params=[['username', username],
8b45c5ba5d47 Add benchmark tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
23 ['password', password]],
8b45c5ba5d47 Add benchmark tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
24 description="Login as %s" % username)
8b45c5ba5d47 Add benchmark tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
25
8b45c5ba5d47 Add benchmark tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
26 nb_times = self.conf_getInt('test_benchmark', 'nb_times')
8b45c5ba5d47 Add benchmark tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
27 names = self.conf_get('test_benchmark', 'page_names').split(';')
8b45c5ba5d47 Add benchmark tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
28 for i in range(nb_times):
8b45c5ba5d47 Add benchmark tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
29 r = random.randint(0, len(names) - 1)
338
f7a741bc5770 Update benchmarks to Pyton 3.
Ludovic Chabant <ludovic@chabant.com>
parents: 325
diff changeset
30 url = server_url + '/api/read/' + urllib.parse.quote(names[r])
325
8b45c5ba5d47 Add benchmark tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
31 self.get(url, description='Getting %s' % names[r])
8b45c5ba5d47 Add benchmark tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
32
8b45c5ba5d47 Add benchmark tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
33
8b45c5ba5d47 Add benchmark tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
34 if __name__ in ('main', '__main__'):
8b45c5ba5d47 Add benchmark tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
35 unittest.main()
8b45c5ba5d47 Add benchmark tests.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
36