Skip to content
Snippets Groups Projects
Select Git revision
  • 0798881334227dbae57b2d6f0e57e18eba965a0b
  • master default protected
  • release/beta-qt-202301101210
  • stable
  • release/beta-qt-202211182015
  • release/beta-qt-202211181752
  • release/beta-qt-202211171508
  • release/beta-qt-202211081754
  • release/beta-qt-202211071518
  • release/beta-qt-202210270957
  • release/beta-qt-202210071648
  • release/beta-qt-202209291549
  • release/beta-qt-202209011129
  • release/beta-qt-202208261640
  • release/beta-qt-202208241511
  • release/beta-qt-202208231849
  • release/beta-qt-202208091525
  • release/beta-qt-202207191241
  • release/beta-qt-202207181708
  • release/beta-qt-202207131914
  • release/beta-qt-202207131513
  • android/release_358
  • android/release_357
  • android/release_356
  • android/release_355
  • android/release_354
  • 20221220.0956.79e1207
  • android/release_353
  • android/release_352
  • android/release_350
  • android/release_349
  • android/release_348
  • android/release_347
  • 20221031.1308.130cc26
  • android/release_346
  • android/release_345
  • android/release_344
  • android/release_343
  • android/release_342
  • android/release_341
  • android/release_340
41 results

winsparkle-xml-updater.sh

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    proxy_loadtester.py 2.59 KiB
    # Copyright (C) 2014-2022 Savoir-faire Linux Inc.
    # Author: Vsevolod Ivanov <vsevolod.ivanov@savoirfairelinux.com>
    #
    # This program is free software; you can redistribute it and/or modify
    # it under the terms of the GNU General Public License as published by
    # the Free Software Foundation; either version 3 of the License, or
    # (at your option) any later version.
    #
    # This program is distributed in the hope that it will be useful,
    # but WITHOUT ANY WARRANTY; without even the implied warranty of
    # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    # GNU General Public License for more details.
    #
    # You should have received a copy of the GNU General Public License
    # along with this program. If not, see <https://www.gnu.org/licenses/>.
    #
    # Manually run with Web UI:
    #   locust -f tester.py --host http://127.0.0.1:8080
    #
    # Run in Terminal:
    #   locust -f tester.py --host http://127.0.0.1:8080 \
    #       --clients 100 --hatch-rate 1 --run-time 10s --no-web --only-summary
    
    from locust import HttpLocust, TaskSet
    from random import randint
    import urllib.request
    import base64
    import json
    
    words_url = "http://svnweb.freebsd.org/csrg/share/dict/words?view=co&content-type=text/plain"
    words_resp = urllib.request.urlopen(words_url)
    words = words_resp.read().decode().splitlines()
    
    headers = {'content-type': 'application/json'}
    
    def rand_list_value(mylist):
        return mylist[randint(0, len(mylist) - 1)]
    
    def put_key(l):
        key = rand_list_value(words)
        val = rand_list_value(words)
        print("Put/get: key={} value={}".format(key, val)) 
        data = base64.b64encode(val.encode()).decode()
        print("Base64 encoding: value={} encoded={}".format(val, data))
        l.client.post("/" + key, data=json.dumps({"data": data}),
                      headers=headers, catch_response=True)
    
    def get_key(l):
        key = rand_list_value(words)
        print("Get: key={}".format(key)) 
        l.client.get("/" + key)
    
    def get_stats(l):
        l.client.get("/stats")
    
    def subscribe(l):
        key = rand_list_value(words)
        print("Subscribe: key={}".format(key))
        l.client.get("/" + key + "/subscribe")
    
    def listen(l):
        key = rand_list_value(words)
        print("Listen: key={}".format(key))
        l.client.get("/" + key + "/listen")
    
    class UserBehavior(TaskSet):
        tasks = {get_key: 5, put_key: 5, get_stats: 1, subscribe: 1, listen: 1}
    
        def on_start(self):
            put_key(self)
            get_key(self)
            subscribe(self)
            listen(self)
    
        def on_stop(self):
            get_stats(self)
    
    class WebsiteUser(HttpLocust):
        task_set = UserBehavior
        min_wait = 5000
        max_wait = 9000
        print("Initiate the benchmark at http://127.0.0.1:8089/")