用python开发一个性能压测框架(超级简单)

用python开发一个性能压测框架(超级简单)

该框架是一个基础框架,超级简单,已经跑通,可以进行优化扩展

由于工作需要,最近开发了一款python性能压测框架,主要是对后端接口进行多线程压测

主要使用 Python 的 requests 库来发送请求,并使用 threading 或 asyncio 来模拟并发请求

代码如下:

python 复制代码
import requests
import threading
import time

class PerformanceTester:
    def __init__(self, url, num_threads=1, num_requests=10):
        self.url = url
        self.num_threads = num_threads
        self.num_requests = num_requests
        self.results = []

    def _send_request(self):
        start_time = time.time()
        response = requests.get(self.url)
        end_time = time.time()
        elapsed_time = end_time - start_time
        self.results.append(elapsed_time)

    def run_test(self):
        threads = []
        for _ in range(self.num_threads):
            for _ in range(self.num_requests):
                thread = threading.Thread(target=self._send_request)
                thread.start()
                threads.append(thread)

        for thread in threads:
            thread.join()

        avg_response_time = sum(self.results) / len(self.results)
        max_response_time = max(self.results)
        min_response_time = min(self.results)

        print(f"Avg Response Time: {avg_response_time}")
        print(f"Max Response Time: {max_response_time}")
        print(f"Min Response Time: {min_response_time}")

if __name__ == "__main__":
    tester = PerformanceTester("https://example.com/api", num_threads=5, num_requests=20)
    tester.run_test()
相关推荐
庸子10 小时前
Ansible & AWX 自动化运维
运维·自动化·ansible
吗喽15434518811 小时前
用python实现自动化布尔盲注
数据库·python·自动化
ii_best12 小时前
解锁 iOS 按键精灵辅助工具自动化新可能:iOSElement.Click 让元素交互更简单
运维·自动化
天天进步201513 小时前
现代前端开发流程:CI/CD与自动化部署实战
运维·ci/cd·自动化
中科米堆1 天前
中科米堆CASAIM手持式三维扫描仪金属铸件三维扫描测量方案
人工智能·3d·自动化·视觉检测
chinesegf1 天前
[网站搭建]动态文件路径管理方案:告别硬编码,实现自动化用户数据切换
运维·自动化
奔跑草-1 天前
【前端】Power BI自动化指南:从API接入到Web嵌入
运维·前端·自动化·powerbi
一个快乐的小测试1 天前
JUnit-自动化测试框架
java·junit·单元测试·自动化
Lum11041 天前
MER-Factory:多模态情感识别与推理数据集自动化工厂API参考
运维·自动化
Lum11042 天前
MER-Factory:多模态情感识别与推理数据集自动化工厂工具介绍
运维·人工智能·深度学习·计算机视觉·语言模型·自然语言处理·自动化