python 使用多线程进行压力测试
#coding=utf-8
import urllib2
import threading
import time
TOTAL = 0 #总数
SUCC = 0 #响应成功数
FAIL = 0 #响应失败数
EXCEPT = 0 #响应异常数
MAXTIME=0 #最大响应时间
MINTIME=100 #最小响应时间,初始值为100秒
# 子类化Thread
class Mythread(threading.Thread):
def __init__(self, func, args, name=''):
threading.Thread.__init__(self)
self.name = name
self.func = func
self.args = args
def getResult(self):
return self.res
def run(self):
self.res = apply(self.func, self.args)
def request_url(url, r):
global TOTAL
global SUCC
global FAIL
global EXCEPT
try:
st = time.time()
res = urllib2.urlopen(url)
status = res.getcode()
if status == 200:
TOTAL+=1
SUCC+=1
else:
TOTAL+=1
FAIL+=1
time_span = time.time()-st
maxtime(time_span)
self.mintime(time_span)
except Exception, e:
TOTAL+=1
EXCEPT+=1
def maxtime(ts):
global MAXTIME
if ts>MAXTIME:
MAXTIME=ts
def mintime(ts):
global MINTIME
if ts<MINTIME:
MINTIME=ts
def main():
print '===========task start==========='
# 开始的时间
start_time = time.time()
# 并发的线程数
thread_count = 100
i = 0
while i <= thread_count:
t = Mythread(request_url, ("http://www.baidu.com", "x"))
t.start()
i += 1
t=0
#并发数所有都完成或大于20秒就结束
while TOTAL<thread_count|t>2:
print "total:%d,succ:%d,fail:%d,except:%d\n"%(TOTAL,SUCC,FAIL,EXCEPT)
t+=1
time.sleep(1)
print '===========task end==========='
print "total:%d,succ:%d,fail:%d,except:%d"%(TOTAL,SUCC,FAIL,EXCEPT)
print 'response maxtime:',MAXTIME
print 'response mintime',MINTIME
s = raw_input("Press any key")
print "bay!"
pass
if __name__ == "__main__":
main()
文章内容来源:
http://www.runoob.com/python/python-multithreading.html
转载于:https://www.cnblogs.com/weiok/p/4944947.html
python 使用多线程进行压力测试相关推荐
- Mongodb千万级数据在python下的综合压力测试及应用探讨
见原文章. http://cloud.51cto.com/art/201311/418290.htm 转载于:https://blog.51cto.com/chensanxin/1330941
- 基于Kubernetes的分布式压力测试方案
压力测试是用来检测系统承载能力的有效手段.在系统规模较小的时候,在一台空闲的服务器上使用[ab],[wrk],[siege]等工具发起一定量的并发请求即可得到一个初步的测试结果.但在系统复杂度逐步提高 ...
- python异步高并发_通过python异步通讯方式构建高并发压力测试工具
背景说明 在工作中,要对一个接口进行压测,我当时就想通过python自己编写一个压力发生器. 初步方案(单线程循环发送) 通过循环向服务端发送请求,代码如下: #采用单步循环的方式循环测试 impor ...
- python进行接口压力测试(1秒1000个请求)
需求 需要对接口进行压力测试,测试其最大并发是多少 python代码 import json import requests import time import concurrent.futures ...
- python的web压力测试工具-pylot安装使用
pylot是python编写的一款web压力测试工具.使用比较简单.而且测试结果相对稳定. 这里不得不鄙视一下apache 的ab测试,那结果真是让人蛋疼,同样的url,测试结果飘忽不定,看得人心惊肉 ...
- go python php 压力测试_pyLot 基于python的压力测试工具
因为组内的产品是一个供上海甚至全球所有designer使用的网站,所以并发性很高,于是一直存在访问速度不佳的诟病.为了提高访问速度,就需要对该网站的性能进行测试.于是在网上查了并发性测试和自动化测试的 ...
- python做数据库压力测试_Python 写的一个MongoDB压力测试
Python 写的一个MongoDB压力测试 $ pip install pymongo #!/usr/bin/env python #coding=utf-8 #Author: Ca0Gu0 fro ...
- python 压力测试小 demo
python 模拟前端进行连接,测试后端接口的压力测试. #coding=utf-8 import http.client,urllib.request,urllib.parse,urllib.err ...
- python实现自动拨打电话_python 实现手机自动拨打电话的方法(通话压力测试)
现在能用自动化实现的,尽量使用自动化程序去操作,代替人工去操作,更有效率. 今天说下用python结合adb命令去实现安卓手机端的通话压力测试. #操作前先在设置里打开power键可以结束通话按钮,否 ...
- python脚本实现压力测试
import base64 import os import urllib import numpy as np import requests, time, json, threading, ran ...
最新文章
- java中调用python
- Web前端面试自我介绍对话技巧注意事项
- 用TLS搭建即时通讯的安全通道:LCS2005系列之三
- iOS开发UI篇—CALayer简介
- golang中的定时器
- SAP S4CRM和C4C的技术比较
- iSCSI 2-环境搭建二
- 从github上克隆hibernate项目
- 华为Mate 40这下稳了:全新5nm麒麟芯片将于9月全部交付
- 亚马逊的PuTTY连接AWS出现network error connection refused,终极解决方案。
- 《Cacti实战》——2.3 Cacti的安装与配置
- 打开Excel超链接提示由于本机的限制该操作已被取消
- Fisher精确检验与卡方检验
- Java 使用 throw 抛出异常
- 【科学文献计量】关键词的挖掘与可视化
- java utc时间_Java获得UTC时间
- mysql 1032 1062_mysql slave频繁报1032_1062错误
- css文字抖动解决办法
- Application.streamingAssetsPath在android和ios和pc上的读取
- 亚商投资顾问 早餐FM/0407融资余额创新高
热门文章
- atitit. hb 原生sql跨数据库解决原理 获得hb 数据库类型运行期获得Dialect
- CSDN、sina博客在Zoundry中登记的API URL 收藏
- 零售券商之王:零佣金的罗宾侠的400亿美金
- (转)国外 RPA 企业盘点:谁是领导者,谁是挑战者
- 对冲基金表现大盘点(二):Citadel
- 阿里云高级专家王林平:云数据库的运维体系构建
- 为什么抢不到红包的总是你?可能是家里路由器没放对
- 【回归预测】基于matlab鲸鱼算法优化BP神经网络回归预测(多输入单输出)【含Matlab源码 1554期】
- 【TSP】基于matlab改进的人工鱼群算法求解旅行商问题【含Matlab源码 1479期】
- 【ETWVRP】基于matlab遗传算法求解带时间窗的含充电站车辆路径规划问题【含Matlab源码 1221期】