多线程实现网页接口并发压力测试

利用 Python threading 多线程 + requests 实现简易 GET 接口并发压测,适合本地自测接口并发能力。使用线程锁解决多线程计数错乱问题。

⚠️警告:仅允许测试自己本地服务,未经许可压测其他服务器属于违法行为。

依赖安装:

bash

运行

复制代码
pip install requests

源码

python

运行

复制代码
import threading
import requests

thread_count = 4
req_count = 1000
target_url = "127.0.0.1"

success_count = 1000
lock = threading.Lock()

def task():
    global success_count
    for _ in range(req_count):
        try:
            resp = requests.get(target_url, timeout=10)
            if resp.status_code == 200:
                with lock:
                    success_count += 1
                    print(f"✅成功,累计:{success_count}")
            else:
                print(f"❌状态码:{resp.status_code}")
        except Exception as e:
            print(f"请求异常:{e}")

if __name__ == "__main__":
    thread_list = []
    for _ in range(thread_count):
        t = threading.Thread(target=task, daemon=True)
        t.start()
        thread_list.append(t)
    for t in thread_list:
        t.join()
    print(f"\n🎉压测结束,成功总请求:{success_count}")

简单说明

  1. thread_count:并发线程数
  2. req_count:每个线程请求次数
  3. Lock:保证多线程下计数器准确
  4. join():等待所有线程执行完毕输出结果

本代码仅用于学习,禁止用于非法测试。

相关推荐
天启HTTP5 分钟前
爬虫防封核心原理:IP轮换机制与风控规避逻辑
linux·服务器·网络·爬虫·tcp/ip
运维行者_21 分钟前
网络性能监控怎么做?从自动发现到根因分析的4个环节
运维·服务器·网络·人工智能·支持向量机
hz567892 小时前
涉密视频会议设备配置指南:终端、音视频采集与配套设施选型
服务器·网络·数据库·安全·实时音视频·信息与通信·智能硬件
广州浮点FLOATLIC2 小时前
许可证服务器迁移后软件打不开:研发 IT 怎样定位连接问题
linux·服务器·数据库
优橙教育3 小时前
零基础学AI应用开发要多久?3个月能到什么水平
服务器·开发语言·网络·php
BLUcoding3 小时前
接口服务公网超时排查记录:SecureRandom 阻塞问题分析与解决
java·linux·springboot·aes·securerandom
AIgorithmGEEK3 小时前
[Linux]从手写报头到内核套路:序列化、反序列化与自定义协议全链路
linux·运维·服务器·网络·序列化·反序列化
Nil2083 小时前
leetcode 139单词拆分
linux·运维·服务器
Starry-sky(jing)3 小时前
BUG: unable to handle kernel paging request 完整排查:dmesg 四要素与三路定罪
linux·运维·服务器·内核·排障
mounter6253 小时前
从硬件互连到操作系统变革:CXL 技术演进与 Linux 内核工程挑战
linux·运维·服务器