用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()
相关推荐
十二测试录1 天前
用F12获取接口信息,并进行接口测试
经验分享·功能测试·测试工具·压力测试·职场发展·安全性测试
吃喝不愁霸王餐APP开发者1 天前
霸王餐API文档自动化:Spring REST Docs与Asciidoctor多模块聚合
数据库·spring·自动化
0思必得01 天前
[Web自动化] 开发者工具应用(Application)面板
运维·前端·python·自动化·web自动化·开发者工具
Deng8723473481 天前
自动化极验3点选验证码的识别与验证方案
运维·python·自动化
川石课堂软件测试1 天前
自动化测试的基本概念及常用框架
数据库·python·功能测试·测试工具·单元测试·自动化·流程图
川石课堂软件测试1 天前
使用loadrunner调用mysql API进行性能测试
服务器·数据库·python·selenium·mysql·单元测试·自动化
weixin_307779131 天前
Jenkins 多分支流水线自动化引擎:GitHub Branch Source 插件完全指南
运维·架构·自动化·jenkins
旦莫1 天前
Pytest教程: Pytest ini配置文件深度剖析
python·单元测试·自动化·pytest
GAOJ_K1 天前
滚珠花键的使用时长与性能保持的量化关系
大数据·人工智能·科技·自动化·制造
黑客思维者1 天前
嵌入式系统DevSecOps深度设计:构建固件级漏洞免疫体系的自动化管道
运维·自动化·devsecops·嵌入式系统