Skip to content

Commit 860199d

Browse files
committed
load-generator: use test id from file
1 parent 30a1553 commit 860199d

File tree

2 files changed

+24
-19
lines changed

2 files changed

+24
-19
lines changed

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,3 +43,6 @@
4343
gcp/gcloud-config.json
4444
**/secure-connect-vino9.zip
4545

46+
# test data
47+
**/ids.txt
48+

load-generator/locustfile.py

Lines changed: 21 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1+
from datetime import datetime
12
import grpc
3+
import random
24
import time
35

46
from locust import User, TaskSet, between, events, task
@@ -7,21 +9,20 @@
79
import demo_bank_pb2_grpc
810

911

10-
def init_tracer():
11-
config = Config(
12-
config={
13-
'sampler': {
14-
'type': 'const',
15-
'param': 1,
16-
},
17-
'logging': True,
18-
'propagation': 'b3', # zipkin headers
19-
},
20-
validate=True,
21-
service_name='load-generator')
22-
tracer = config.initialize_tracer()
23-
interceptor = open_tracing_client_interceptor(tracer, log_payloads=True)
24-
return tracer, interceptor
12+
class DataPool:
13+
def __init__(self, file):
14+
with open(file, 'r') as f:
15+
self.id_pool = [line.rstrip() for line in f.readlines()]
16+
self.pool_size = len(self.id_pool)
17+
18+
random.seed(int(datetime.today().timestamp() * 100))
19+
20+
def next_id(self):
21+
i = random.randrange(0, self.pool_size - 1, 1)
22+
return self.id_pool[i]
23+
24+
25+
pool = DataPool('ids.txt')
2526

2627

2728
class DashboardTask(TaskSet):
@@ -33,7 +34,7 @@ def on_start(self):
3334
def get_dashboard(self):
3435
start_time = time.time()
3536
try:
36-
test_id = self.get_test_id()
37+
test_id = pool.next_id()
3738
req = demo_bank_pb2.GetDashboardRequest(login_name=test_id)
3839
self.stub.GetDashboard(req)
3940
except grpc.RpcError as e:
@@ -54,19 +55,20 @@ def get_dashboard(self):
5455
response_length=0,
5556
)
5657

57-
def get_test_id(self):
58-
return 'user001'
59-
6058

6159
class MobileAppUser(User):
6260
tasks = [DashboardTask]
6361
wait_time = between(1, 2)
6462

6563
def __init__(self, *args, **kwargs):
6664
super(MobileAppUser, self).__init__(*args, **kwargs)
65+
DataPool('ids.txt')
6766

6867

6968
if __name__ == '__main__':
69+
for i in range(100):
70+
print(pool.next_id())
71+
7072
print('''
7173
This script does not work as a standalone program, please use locust utility instead.
7274

0 commit comments

Comments
 (0)