示例#1
0
文件: base.py 项目: EnTeQuAk/loads
    def get_request_time_quantiles(self, url=None, series=None):
        elapsed = [
            total_seconds(h.elapsed)
            for h in self._get_hits(url=url, series=series)
        ]

        # XXX Cache these results, they might be long to compute.
        return get_quantiles(elapsed, (0, 0.1, 0.5, 0.9, 1))
示例#2
0
    def average_request_time(self, url=None, series=None):
        """Computes the average time a request takes (in ms)

        :param url:
            The url we want to know the average request time. Could be
            `None` if you want to get the overall average time of a request.
        :param series:
            You can filter by the series, to only know the average request time
            during a particular series.
        """
        elapsed = [total_seconds(h.elapsed)
                   for h in self._get_hits(url, series)]

        if elapsed:
            return float(sum(elapsed)) / len(elapsed)
        else:
            return 0
示例#3
0
文件: base.py 项目: yclybouw/loads
    def average_request_time(self, url=None, series=None):
        """Computes the average time a request takes (in seconds)

        :param url:
            The url we want to know the average request time. Could be
            `None` if you want to get the overall average time of a request.
        :param series:
            You can filter by the series, to only know the average request time
            during a particular series.
        """
        elapsed = [total_seconds(h.elapsed)
                   for h in self._get_hits(url, series)]

        if elapsed:
            return float(sum(elapsed)) / len(elapsed)
        else:
            return 0
示例#4
0
    def add_hit(self, cvus, method, url, status, started, elapsed):
        """Generates a funkload XML item with the data coming from the request.

        Adds the new XML node to the list of nodes for this output and return
        it.
        """
        node = ('<response cycle="000" cvus="{cvus}" thread="000" '
                'suite="" name="" '
                'step="001" number="001" type="{method}" result="Successful" '
                'url="{url}" code="{status}" description="" '
                'time="{started}" duration="{elapsed}" />').format(
                    cvus=cvus,
                    method=method,
                    url=url,
                    status=status,
                    started=mktime(started.timetuple()),
                    elapsed=total_seconds(elapsed))
        self.nodes.append(node)
        return node
示例#5
0
    def add_hit(self, cvus, method, url, status, started, elapsed):
        """Generates a funkload XML item with the data coming from the request.

        Adds the new XML node to the list of nodes for this output and return
        it.
        """
        node = ('<response cycle="000" cvus="{cvus}" thread="000" '
                'suite="" name="" '
                'step="001" number="001" type="{method}" result="Successful" '
                'url="{url}" code="{status}" description="" '
                'time="{started}" duration="{elapsed}" />').format(
            cvus=cvus,
            method=method,
            url=url,
            status=status,
            started=mktime(started.timetuple()),
            elapsed=total_seconds(elapsed))
        self.nodes.append(node)
        return node
示例#6
0
    def add_hit(self, loads_status=None, started=0, elapsed=0, url='',
                method="GET", status=200, agent_id=None, _RESPONSE=_RESPONSE):
        """Generates a funkload XML item with the data coming from the request.

        Adds the new XML node to the list of nodes for this output.

        """
        hit, user, current_hit, current_user = loads_status

        self.nodes.append(_RESPONSE.format(
            cycle=self.cycle_ids[user],
            cvus=user,
            method=method.lower(),
            url=url,
            status=status,
            thread=current_user,
            started=timegm(started.timetuple()),
            elapsed=total_seconds(elapsed)))

        test = self._get_current_test(loads_status, agent_id)
        if test:
            test.incr_counter('__funkload_requests')
示例#7
0
    def duration(self):
        end = self.stop_time or datetime.utcnow()
        if self.start_time is None:
            return 0

        return total_seconds(end - self.start_time)
示例#8
0
 def duration(self):
     if self.end is not None:
         return total_seconds(self.end - self.start)
     else:
         return 0
示例#9
0
 def tests_per_second(self):
     delta = self.stop_time - self.start_time
     return self.nb_tests / total_seconds(delta)
示例#10
0
    def get_request_time_quantiles(self, url=None, series=None):
        elapsed = [total_seconds(h.elapsed)
                   for h in self._get_hits(url=url, series=series)]

        # XXX Cache these results, they might be long to compute.
        return get_quantiles(elapsed, (0, 0.1, 0.5, 0.9, 1))
示例#11
0
文件: base.py 项目: yclybouw/loads
    def duration(self):
        end = self.stop_time or datetime.utcnow()
        if self.start_time is None:
            return 0

        return total_seconds(end - self.start_time)
示例#12
0
文件: base.py 项目: yclybouw/loads
 def duration(self):
     if self.end is not None:
         return total_seconds(self.end - self.start)
     else:
         return 0
示例#13
0
文件: base.py 项目: yclybouw/loads
 def tests_per_second(self):
     delta = self.stop_time - self.start_time
     return self.nb_tests / total_seconds(delta)