Python 으로 구현 되 는 웹 서버 의 압력 테스트 도구
# coding:gbk
import time
import urllib2
import threading
from Queue import Queue
from time import sleep
#
PERF_TEST_URL = "http://localhost:8080/perf.jsp"
# :
#THREAD_NUM = 10 #
#ONE_WORKER_NUM = 500 #
#LOOP_SLEEP = 0.01 # ( )
# :
THREAD_NUM = 100 #
ONE_WORKER_NUM = 10000 #
LOOP_SLEEP = 0.5 # ( )
#
ERROR_NUM = 0
# ,
def doWork(index):
t = threading.currentThread()
#print "["+t.name+" "+str(index)+"] "+PERF_TEST_URL
try:
html = urllib2.urlopen(PERF_TEST_URL).read()
except urllib2.URLError, e:
print "["+t.name+" "+str(index)+"] "
print e
global ERROR_NUM
ERROR_NUM += 1
# ,
def working():
t = threading.currentThread()
print "["+t.name+"] Sub Thread Begin"
i = 0
while i < ONE_WORKER_NUM:
i += 1
doWork(i)
sleep(LOOP_SLEEP)
print "["+t.name+"] Sub Thread End"
def main():
#doWork(0)
#return
t1 = time.time()
Threads = []
#
for i in range(THREAD_NUM):
t = threading.Thread(target=working, name="T"+str(i))
t.setDaemon(True)
Threads.append(t)
for t in Threads:
t.start()
for t in Threads:
t.join()
print "main thread end"
t2 = time.time()
print "========================================"
print "URL:", PERF_TEST_URL
print " :", THREAD_NUM, "*", ONE_WORKER_NUM, "=", THREAD_NUM*ONE_WORKER_NUM
print " ( ):", t2-t1
print " ( ):", (t2-t1) / (THREAD_NUM*ONE_WORKER_NUM)
print " :", 1 / ((t2-t1) / (THREAD_NUM*ONE_WORKER_NUM))
print " :", ERROR_NUM
if __name__ == "__main__": main()
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Exception in thread main java.lang. NoClassDefFoundError 오류 해결 방법즉,/home/hadoop/jarfile) 시스템은 Hello World 패키지 아래의class라는 클래스 파일을 실행하고 있다고 오인하여 시스템의 CLASSPATH 아래 (일반적으로 현재 디렉터리를 포함) Hell...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.