用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()
相关推荐
何中应9 小时前
Ansible安装&使用
运维·自动化·ansible·运维开发·自动化运维
byoass9 小时前
自动化任务系列之六:自动整理文件——按时间/关键字分类归档实战
运维·网络·安全·自动化·云计算
草履虫君10 小时前
我们用纯命令行方式,给openclaw配置minimax2.7
数据库·经验分享·功能测试·ai
Lethehong11 小时前
别被代码吓跑!普通人3步搞定AI视频神器——Pixelle-Video - AI 全自动短视频引擎(附避坑)
人工智能·开源·自动化·蓝耘元生代·蓝耘maas
琪露诺大湿12 小时前
网页聊天系统——测试报告
java·软件测试·功能测试·websocket·html·项目·测试报告
byoass12 小时前
自动化任务系列之二:批量建目录树——Excel模板驱动千人项目初始化
运维·网络·安全·自动化·云计算
大龄程序员狗哥12 小时前
第34篇:自动化机器学习(AutoML)初探——让AI来设计AI(概念入门)
人工智能·机器学习·自动化
李白你好12 小时前
TongWeb 应用服务器EJB 反序列化漏洞 Burp被动扫描插件
自动化
seabirdssss13 小时前
以登录功能理解单元测试、集成测试、系统测试和用户测试
单元测试·集成测试
墨者阳13 小时前
可观・可控・可治:DB运维平台架构设计与实践
运维·数据库·架构·自动化·数据可视化