def calculate_percentile(duration, max_qps, cannon: Cannon): df = create_dataframe() for i in range(100, max_qps, 10): latency_list = cannon.start_shoot(max_qps, duration, threads=int(max_qps / 10)) df.loc[i] = [duration, duration*(i+1), i+1, calc_percentile(.5, latency_list), calc_percentile(.9, latency_list), calc_percentile(.99, latency_list), 100*latency_list.count(None)/len(latency_list)] return df
import logging from cannon import Cannon logging.basicConfig(format='%(levelname)s:%(message)s', level=logging.DEBUG) URL = "http://localhost:8080" if __name__ == '__main__': cannon = Cannon(URL) latencies = cannon.start_shoot(qps=100, duration=15, threads=80) print(latencies)