Esempio n. 1
0
 def reset(self):
     if grinder:
         self.dictRuntime = dict(properties)
         self.dictRuntime.update({
             'grinder.agentNumber':
             grinder.getAgentNumber(),
             'grinder.runNumber':
             grinder.getRunNumber(),
             'grinder.threadNumber':
             grinder.getThreadNumber(),
             'grinder.processNumber':
             grinder.getProcessNumber() - grinder.getFirstProcessNumber(),
             'AGENT':
             grinder.getAgentNumber(),
             'RUN':
             grinder.getRunNumber(),
             'THREAD':
             grinder.getThreadNumber(),
             'PROCESS':
             grinder.getProcessNumber() - grinder.getFirstProcessNumber(),
             'grinder.runNumber.padded':
             self.getPaddedRunNumber(),
             'grinder.threadNumber.padded':
             self.getPaddedThreadNumber(),
             'grinder.processNumber.padded':
             self.getPaddedProcessNumber(),
             'grinder.agentNumber.padded':
             self.getPaddedAgentNumber()
         })
         self.dictRuntime.update(self.dictDynamicContext)
         self.dictDynamicContext = {}
Esempio n. 2
0
 def __call__(self):
     #print str(grinder.getAgentNumber()) + ':' + str(grinder.getThreadNumber())  + ':' + str(grinder.getRunNumber())
     self.username = '******' + str("%03d" % grinder.getThreadNumber())  + "%01d" % grinder.getRunNumber() + '@163.com'
     #print str(grinder.getThreadNumber())
     self.password = '******'
     self.addressId = '5120000' + str("%03d" % grinder.getThreadNumber())  + "%01d" % grinder.getRunNumber()
     self.page()      # GET / (requests 101-102)
     self.page2()
     self.page3()
     self.page4()
 def getId(self):
     agent = grinder.getAgentNumber()
     process = grinder.getProcessNumber()
     thread = grinder.getThreadNumber()
     debug("I'm A:%s,P:%s,T:%s" % (agent,process,thread))
     if (agent == -1):
         return process + thread
     return agent + process + thread
 def initialiseKeys(self):
    log("Initialise test keys")
    for i in range(0, numberOfKeys):
       key = "%i-%i" % (i, grinder.getThreadNumber())
       pooledKeys.add(key)
       value = self.createValue(sizeOfValue)
       self.doPut(key, value)
    log("Initialisation finished")
 def __init__(self):
     agent_number = grinder.getAgentNumber()
     thread_number = grinder.getThreadNumber()
     self.generator = thread_manager.setup_thread(
         thread_number, agent_number, throttling_groups, user)
     worker_type = type(self.generator)
     grinder.logger.debug('Worker %s-%s type %s' %
                          (agent_number, thread_number, worker_type))
Esempio n. 6
0
 def __call__(self):
     """This method is called for every run performed by the worker thread."""
     if grinder.runNumber == 0: self.initialSleep()
     idx = (processNum * threadNum * grinder.getRunNumber() + \
            threadNum * grinder.getProcessNumber() + \
            grinder.getThreadNumber()) % len(keyword_list)
     keyword = keyword_list[idx]
     param = self.getParam(keyword)
     self.request1(param)
   def warmup(self):
      writes = 0
      reads = 0

      log("Start warming up")
      while (writes < warmUpOpCount and reads < warmUpOpCount):
         isGet = random.nextInt(2) == 1
         if isGet:
            reads = reads + 1
            operationId = reads
            if operationId < warmUpOpCount:
               key = "Warmup-%i-%i" % (operationId, grinder.getThreadNumber())
               self.doGet(key)
         else:
            writes = writes + 1
            operationId = writes
            if operationId < warmUpOpCount:
               key = "Warmup-%i-%i" % (operationId, grinder.getThreadNumber())
               value = self.createValue(warmUpSizeValue)
               self.doPut(key, value)
      log("Warm up finished")
Esempio n. 8
0
    def __init__(self):
        self.thread = grinder.getThreadNumber()
        # Select random dataset
        #!TODO: select dataset by Thread number?
        self.dataset_url = random.choice(dataset_list)
        self.ds = Dataset(self.dataset_url)
        self.variable = self.ds.variables[variable]
        self.requests = generate_subset_requests(self.variable,
                                                 partition_dict)

        grinder.logger.output('Thread %d selecting %s' % (self.thread,
                                                          self.dataset_url))
        grinder.logger.output('Thread %d has partitions %s' % (self.thread,
                                                               partition_dict))
        grinder.logger.output('Thread %d has variable of shape %s' % (self.thread, self.variable.shape))
Esempio n. 9
0
    def __call__(self):
        """Execute all requests according to the class attribute ``sequence``,
        waiting ``think_time`` between requests, and ``scenario_think_time``
        between scenarios.
        """
        # Determine which sequencing to use
        sequence = WebtestRunner.sequence
        # Run a single TestSet at random.
        if sequence == 'random':
            test_set = random.choice(WebtestRunner.test_sets)
            self.run_test_set(test_set)

        # Run a single TestSet based on the current thread number
        elif sequence == 'thread':
            index = grinder.getThreadNumber() % len(WebtestRunner.test_sets)
            test_set = WebtestRunner.test_sets[index]
            self.run_test_set(test_set)

        # Run a TestSet based on a percentage-based weight
        elif sequence == 'weighted':
            # Get a random number between 0.0 and 1.0
            pick = random.random()
            # Figure out which TestSet to run, by determining an interval
            # for each one; whichever interval pick falls into is the test
            # that will be run (assumes all TestSet weights are normalized)
            left, right = 0.0, 0.0
            for test_set in WebtestRunner.test_sets:
                left = right
                right = left + test_set.weight
                if left <= pick and pick <= right:
                    break
            # Run the TestSet that was selected
            self.run_test_set(test_set)

        # Run all TestSets sequentially
        else: # assume 'sequential'
            for test_set in WebtestRunner.test_sets:
                self.run_test_set(test_set)

        return True
Esempio n. 10
0
    def __call__(self):
        """Execute all requests according to the class attribute ``sequence``,
        waiting ``think_time`` between requests, and ``scenario_think_time``
        between scenarios.
        """
        # Determine which sequencing to use
        sequence = WebtestRunner.sequence
        # Run a single TestSet at random.
        if sequence == 'random':
            test_set = random.choice(WebtestRunner.test_sets)
            self.run_test_set(test_set)

        # Run a single TestSet based on the current thread number
        elif sequence == 'thread':
            index = grinder.getThreadNumber() % len(WebtestRunner.test_sets)
            test_set = WebtestRunner.test_sets[index]
            self.run_test_set(test_set)

        # Run a TestSet based on a percentage-based weight
        elif sequence == 'weighted':
            # Get a random number between 0.0 and 1.0
            pick = random.random()
            # Figure out which TestSet to run, by determining an interval
            # for each one; whichever interval pick falls into is the test
            # that will be run (assumes all TestSet weights are normalized)
            left, right = 0.0, 0.0
            for test_set in WebtestRunner.test_sets:
                left = right
                right = left + test_set.weight
                if left <= pick and pick <= right:
                    break
            # Run the TestSet that was selected
            self.run_test_set(test_set)

        # Run all TestSets sequentially
        else:  # assume 'sequential'
            for test_set in WebtestRunner.test_sets:
                self.run_test_set(test_set)

        return True
Esempio n. 11
0
 def __init__(self):
     self.thread = thread_manager.setup_thread(grinder.getThreadNumber())
Esempio n. 12
0
 def __init__(self):
     self.threadId = grinder.getThreadNumber()
     print "current thread id: %d" % (self.threadId)
Esempio n. 13
0
 def __init__(self):
     self.thread = thread_manager.setup_thread(grinder.getThreadNumber())
Esempio n. 14
0
def hello_world():
    thread = grinder.getThreadNumber()
    print '> worker thread %d: hello world!' % thread