#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 使用多线程进行压力测试相关推荐

  1. Mongodb千万级数据在python下的综合压力测试及应用探讨

    见原文章. http://cloud.51cto.com/art/201311/418290.htm 转载于:https://blog.51cto.com/chensanxin/1330941

  2. 基于Kubernetes的分布式压力测试方案

    压力测试是用来检测系统承载能力的有效手段.在系统规模较小的时候,在一台空闲的服务器上使用[ab],[wrk],[siege]等工具发起一定量的并发请求即可得到一个初步的测试结果.但在系统复杂度逐步提高 ...

  3. python异步高并发_通过python异步通讯方式构建高并发压力测试工具

    背景说明 在工作中,要对一个接口进行压测,我当时就想通过python自己编写一个压力发生器. 初步方案(单线程循环发送) 通过循环向服务端发送请求,代码如下: #采用单步循环的方式循环测试 impor ...

  4. python进行接口压力测试(1秒1000个请求)

    需求 需要对接口进行压力测试,测试其最大并发是多少 python代码 import json import requests import time import concurrent.futures ...

  5. python的web压力测试工具-pylot安装使用

    pylot是python编写的一款web压力测试工具.使用比较简单.而且测试结果相对稳定. 这里不得不鄙视一下apache 的ab测试,那结果真是让人蛋疼,同样的url,测试结果飘忽不定,看得人心惊肉 ...

  6. go python php 压力测试_pyLot 基于python的压力测试工具

    因为组内的产品是一个供上海甚至全球所有designer使用的网站,所以并发性很高,于是一直存在访问速度不佳的诟病.为了提高访问速度,就需要对该网站的性能进行测试.于是在网上查了并发性测试和自动化测试的 ...

  7. python做数据库压力测试_Python 写的一个MongoDB压力测试

    Python 写的一个MongoDB压力测试 $ pip install pymongo #!/usr/bin/env python #coding=utf-8 #Author: Ca0Gu0 fro ...

  8. python 压力测试小 demo

    python 模拟前端进行连接,测试后端接口的压力测试. #coding=utf-8 import http.client,urllib.request,urllib.parse,urllib.err ...

  9. python实现自动拨打电话_python 实现手机自动拨打电话的方法(通话压力测试)

    现在能用自动化实现的,尽量使用自动化程序去操作,代替人工去操作,更有效率. 今天说下用python结合adb命令去实现安卓手机端的通话压力测试. #操作前先在设置里打开power键可以结束通话按钮,否 ...

  10. python脚本实现压力测试

    import base64 import os import urllib import numpy as np import requests, time, json, threading, ran ...

最新文章

  1. java中调用python
  2. Web前端面试自我介绍对话技巧注意事项
  3. 用TLS搭建即时通讯的安全通道:LCS2005系列之三
  4. iOS开发UI篇—CALayer简介
  5. golang中的定时器
  6. SAP S4CRM和C4C的技术比较
  7. iSCSI 2-环境搭建二
  8. 从github上克隆hibernate项目
  9. 华为Mate 40这下稳了:全新5nm麒麟芯片将于9月全部交付
  10. 亚马逊的PuTTY连接AWS出现network error connection refused,终极解决方案。
  11. 《Cacti实战》——2.3 Cacti的安装与配置
  12. 打开Excel超链接提示由于本机的限制该操作已被取消
  13. Fisher精确检验与卡方检验
  14. Java 使用 throw 抛出异常
  15. 【科学文献计量】关键词的挖掘与可视化
  16. java utc时间_Java获得UTC时间
  17. mysql 1032 1062_mysql slave频繁报1032_1062错误
  18. css文字抖动解决办法
  19. Application.streamingAssetsPath在android和ios和pc上的读取
  20. 亚商投资顾问 早餐FM/0407融资余额创新高

热门文章

  1. atitit. hb 原生sql跨数据库解决原理 获得hb 数据库类型运行期获得Dialect
  2. CSDN、sina博客在Zoundry中登记的API URL 收藏
  3. 零售券商之王:零佣金的罗宾侠的400亿美金
  4. (转)国外 RPA 企业盘点:谁是领导者,谁是挑战者
  5. 对冲基金表现大盘点(二):Citadel
  6. 阿里云高级专家王林平:云数据库的运维体系构建
  7. 为什么抢不到红包的总是你?可能是家里路由器没放对
  8. 【回归预测】基于matlab鲸鱼算法优化BP神经网络回归预测(多输入单输出)【含Matlab源码 1554期】
  9. 【TSP】基于matlab改进的人工鱼群算法求解旅行商问题【含Matlab源码 1479期】
  10. 【ETWVRP】基于matlab遗传算法求解带时间窗的含充电站车辆路径规划问题【含Matlab源码 1221期】