def simulate_user()

in code/utility/generate_waf_logs.py [0:0]


def simulate_user(requestTimeStamp, args, country, headers = [], userAgents=[], method = 'GET', labels=[], ipName = 'user', initialURLList = [], minInitial = -1, maxInitial = -1, randomURLList= [], minRandom = 0, maxRandom = 0,finalURLList = [], minFinal = -1, maxFinal = -1):
    #print ('start simulate')
    #print (labels)
    #print (ipName)
    requests = []
    ntrules = []
    l = len(initialURLList)
    if userAgents == []:
        uAgent = ""
    else:
        uAgent = random.choice(userAgents)
    if not args == []:
        queryString = random.choice(args)
    else:
        queryString = ""
    ipDetails = source_ip_calculate(ipName, country, labels)
    if minInitial == -1:
        minInitial = l
        maxInitial = l
    if maxInitial == -1:
        maxInitial = l

    if maxInitial > l:
        maxInitial = l
    if minInitial > l:
        minInitial = l
    if not minInitial == maxInitial:
        y = random.randrange(minInitial,maxInitial)
    else:
        y = maxInitial
    #Make the initial Requests
    ##print ("###################################################################################################################")
    ##print ("###################################################################################################################")
    ##print ("###################################################################################################################")
    ##print ("User | Initial | Requests: " + str(y))
    ##print ("IP is: " + ipDetails['sourceip'])
    if not initialURLList == []:
        for x in range(0,y):
            #Go the general stuff
            request = fake_request(requestTimeStamp, method, headers, uAgent, queryString, ipDetails, ntrules)
            request['httpRequest']['uri'] = initialURLList[x]
            ##print (request['httpRequest']['uri'])
            ##print (request['httpRequest']['requestId'])
            ##print (request)
            requests.append(copy.deepcopy(request))
        #Make middle random requests
    if minRandom >= maxRandom:
        y = maxRandom
    else:
        y = random.randrange(minRandom,maxRandom)
    ##print ("User | Random | Requests: " + str(y))
    ##print (randomURLList)
    if not randomURLList == []:
        for x in range(0,y):
            #Go the general stuff
            request = fake_request(requestTimeStamp, method, headers, uAgent, queryString, ipDetails, ntrules)
            request['httpRequest']['uri'] = random.choice(randomURLList)
            ##print (request['httpRequest']['uri'])
            ##print (request['httpRequest']['requestId'])
            requests.append(copy.deepcopy(request))
    #Make final Requests
    ##print ("User | Final | Requests: " + str(y))
    if not minFinal == maxFinal:
        y = random.randrange(minFinal,maxFinal)
    else:
        y = maxFinal
    if not finalURLList == []:
        for x in range(0,y):
            #Go the general stuff
            request = fake_request(requestTimeStamp, method, headers, uAgent, queryString, ipDetails, ntrules)
            request['httpRequest']['uri'] = finalURLList[x]
            ##print (request['httpRequest']['uri'])
            ##print (request['httpRequest']['requestId'])
            requests.append(copy.deepcopy(request))
    return (requests)