import
threading, time, requests
url
=
""total
=
0
suc
=
0
fail
=
0
exception
=
0
maxtime
=
0
mintime
=
100gt3
=
0
lt3
=
0class
RequestThread(threading.Thread):
def
__init__(
self
, thread_name):
threading.Thread.__init__(
self
)
self
.test_count
=
0def
run(
self
):
self
.test_performace()
def
test_performace(
self
):
global
totalglobal sucglobal failglobal exceptionglobal gt3global lt3try:
st
=
time.time()
conn
=
requests.get(url)
res
=
conn.status_codeif res
=
=
200
:
total
+
=
1suc
+
=
1else
:
total
+
=
1fail
+
=
1time_span
=
time.time()
-
st
print
(
'%s:%f\n'
%
(
self
.name,time_span) )
self
.maxtime(time_span)
self
.mintime(time_span)
if
time_span>
3
:
gt3
+
=
1else
:
lt3
+
=
1except
Exception as e:
print
(e )
total
+
=
1exception
+
=
1def
maxtime(
self
,ts):
global
maxtimeprint (ts)
if
ts>maxtime:
maxtime
=
tsdef mintime(
self
,ts):
global
mintimeif ts<mintime:
mintime
=
tsprint (
'===========请求开始==========='
)
start_time
=
time.time()
thread_count
=
100i
=
0
while
i <
=
thread_count:
t
=
RequestThread(
"线程:"
+
str
(i))
t.start()
i
+
=
1
t
=
0while
total<thread_count|t>
20
:
print
(
"总数:%d,成功数:%d,失败:%d,异常:%d\n"
%
(total,suc,fail,exception) )
print
(url)
t
+
=
1time
.sleep(
1
)
print
(
'===========task end==========='
)
print
(
"总数:%d,成功:%d,失败:%d,异常:%d"
%
(total,suc,fail,exception))
print
(
'响应最大时间:'
,maxtime)
print
(
'响应最小时间'
,mintime)
print
(
'大于3秒的响应:%d,占比:%0.2f'
%
(gt3,
float
(gt3)
/
total))
print
(
'小于3秒:%d,占比:%0.2f'
%
(lt3,
float
(lt3)
/
total))