用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()
相关推荐
金銀銅鐵12 小时前
浅解 JUnit 4 第八篇:JUnitCore (上)
junit·单元测试
belldeep16 小时前
python:如何将豆包AI中历史对话 备份到本地 backup目录下?
人工智能·python·ai·自动化·backup·豆包
派大星-?16 小时前
自动化测试五模块一框架(上)
开发语言·python·测试工具·单元测试·可用性测试
软希网分享源码17 小时前
AIGC自动化编程实战(Python、Java、JavaScript和VBA) -2.9G课程
python·自动化·aigc
qq_4542450318 小时前
开源GraphMindStudio工作流引擎:自动化与AI智能体的理想核心
运维·人工智能·开源·c#·自动化
deepdata_cn1 天前
标签质量自动化评估
自动化·标签质量
教男朋友学大模型2 天前
平衡AI自动化与人工干预
大数据·人工智能·自动化
少云清2 天前
【UI自动化测试】2_PO模式 _单元测试框架(重点)
ui·单元测试·po模式
清水白石0082 天前
测试金字塔实战:单元测试、集成测试与E2E测试的边界与平衡
python·单元测试·log4j·集成测试
田里的水稻2 天前
PPB_自动化及其相近期刊
运维·自动化