使用python对URL进行并发压力测试

news/2025/1/20 16:11:41/文章来源:https://www.cnblogs.com/megshuai/p/18681696

背景:使用python进行并发请求,进行压力测试

#!/usr/bin/env python2
# -*- coding: utf-8 -*-import threading
import urllib2
import time
from Queue import Queue# 配置参数
url = "http://192.xxx10"  # 替换为你要测试的URL
num_requests = 10000000         # 总请求数
concurrent_threads = 400     # 并发线程数# 记录成功和失败的请求数
success_count = 0
failure_count = 0
lock = threading.Lock()def send_request(q):global success_count, failure_countwhile not q.empty():try:response = urllib2.urlopen(url, timeout=5)if response.getcode() == 200:with lock:success_count += 1qps = success_count % 100if qps == 0:print success_countelse:with lock:failure_count += 1except Exception as e:with lock:failure_count += 1finally:q.task_done()if __name__ == "__main__":print "Starting load test on %s" % urlstart_time = time.time()# 创建队列并填充任务q = Queue(maxsize=num_requests)for _ in range(num_requests):q.put(1)# 创建并启动线程threads = []for i in range(concurrent_threads):t = threading.Thread(target=send_request, args=(q,))t.daemon = Truet.start()threads.append(t)# 等待所有任务完成q.join()# 结束时间end_time = time.time()elapsed_time = end_time - start_timeprint "\n--- Load Test Results ---"print "Total Requests: %d" % num_requestsprint "Concurrency Level: %d" % concurrent_threadsprint "Successful Requests: %d" % success_countprint "Failed Requests: %d" % failure_countprint "Time taken for tests: %.2f seconds" % elapsed_timeprint "Requests per second: %.2f" % (num_requests / elapsed_time)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/872207.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CudaSPONGE与PySAGES初步性能测试

接前一篇关于PySAGES结合CudaSPONGE使用方法的文章,本文主要还是使用了一样的测试案例。仅通过不同的测试步长,来定性的分析PySAGES的MetaDynamics实现方案结合MD软件之后的性能数据。技术背景 在前面的一篇博客中,我们介绍过CudaSPONGE的基础使用方法、CudaSPONGE调用Pytho…

记一次移动光猫(GM219-S)安全测试

前言 过个年,WiFi密码忘记了…光猫管理密码也忘记了(这个光猫也不支持物理按钮重置设置),但是手机还连着WiFi,正规操作找回不了密码,那就用咱们测试的思维来试试PWN掉这个路由器。 过程 未授权获取WiFi连接密码 还好之前没闲着,发现管理的几个未授权访问的接口如下: 获取…

Web安全测试学习手册-业务逻辑测试

首先感谢朋友倾璇的邀请 ,参与了的相关撰写,目前负责业务逻辑测试这一块的撰写,目前初步已经成型,先发出来让大家看看,欢迎点评,也可以加入我们一起来撰写~ 业务逻辑测试 介绍:这里对Web应用业务逻辑方面的安全缺陷进行介绍和常见案例讲解。 任意用户密码重置 常见的缺陷…

串口、COM口、UART口 ;TTL、 RS-232、 RS-485

串口、COM口、UART口TTL、RS-232、RS-485区别首先 串口、COM口、UART口一般指的是硬件接口。而TTL、RS-232、RS-485则是逻辑电平0和1的不同表示标准 它们区别如下:1)和RS232相比,由于RS485采用了差分传输的方式,因此抗干扰能力强很多。TTL抗干扰能力最差。2)像STM32这类单…

ML.NET 图像分类

参考文档:https://www.cnblogs.com/mq0036/p/18302572using MLNET_Image; using static MLNET_Image.MLModel1;namespace MLNET.Image {public partial class MainForm : Form{public MainForm(){InitializeComponent();}private void btnSelectImage_Click(object sender, Ev…

【医疗行业】2024中国网络安全产业势能榜优能企业「医疗行业」典型案例展示

医疗行业涉及大量敏感数据,包括患者的健康信息和医疗记录。因此,医疗数据的保护一直是行业中的重中之重。随着电子病历、远程医疗等新技术的应用,医疗行业面临着更多的网络安全威胁。在本期,我们将展示医疗行业的一些典型案例,探讨如何加强医疗数据保护,保障患者隐私和数…

海康web3.0插件开发,登录成功预览失败

做个记录,使用官方的demo,发现有登录成功,预览和回放失败,代码1000,未知错误,我遇到的情况是获取端口信息错误导致的这个是硬盘录像机原始的配置,虽然配置显示没有启用UPnP,但是插件中的默认获取的端口信息是按照这张表中的外部端口获取的,但是如果你没有启用端口映射…

Emacs 折腾日记(十)——elisp符号

符号是有名字的对象,这么说可能有点抽象。我们先来回忆一下C/C++中关于符号的内容。 C/C++ 最终被编译成机器码直接执行,在机器码中不存在变量名称,函数名称等字符,它只有一串地址。但是在写C/C++代码的时候有变量名,函数名,类名,对象名等等名称。编译器是如何做到将符号…

如何通过跨境电商流程管理工具提升项目效率?几个工具推荐

在竞争激烈的跨境电商领域,合适的工具就如同得力的助手,能够显著提升运营效率、优化业务流程,助力企业在全球市场中脱颖而出。从市场调研、选品采购,到店铺运营、营销推广以及物流管理等各个环节,都有相应的专业工具可供选择。接下来,我们将深入探讨一系列跨境电商实用工…

uniapp上传文件

1.h5不支持设置请求头,所有h5通过上述方式上传失败 2.如果前端不传图片需要用两种方式分别调用,且需要设置不同的请求头,后端需要同步更改 来源:https://blog.csdn.net/qq_23859799/article/details/126794172

2025.1.20 CSS基础

1、语法: 选择器{ 属性:值; 属性:值; ... } 例如: <html> <head> <meta charset="utf-8"> <style> p {color:red;text-align:center; } </style> </head><body> <p>Hello World!</p> <p>这个段…

小乌龟 svn 批量解锁方式

再次点击 get lock ,弹出来的框里面勾上“steal the lock” 强制获取锁 ok 之后,再来释放锁: 即可。