1+ from  datetime  import  datetime 
12import  grpc 
3+ import  random 
24import  time 
35
46from  locust  import  User , TaskSet , between , events , task 
79import  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
2728class  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
6159class  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
6968if  __name__  ==  '__main__' :
69+     for  i  in  range (100 ):
70+         print (pool .next_id ())
71+ 
7072    print (''' 
7173This script does not work as a standalone program, please use locust utility instead. 
7274
0 commit comments