Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
S
streamPushPressure
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
李远洪
streamPushPressure
Commits
733c8040
Commit
733c8040
authored
Dec 30, 2020
by
liyuanhong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
开发了循环压力测试脚本
parent
43363024
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
105 additions
and
37 deletions
+105
-37
lib/service/StreamH264Flv.py
lib/service/StreamH264Flv.py
+6
-4
lib/testCase/FlvPressureTest.py
lib/testCase/FlvPressureTest.py
+46
-19
run.py
run.py
+52
-13
ui/CameraArea.py
ui/CameraArea.py
+1
-1
No files found.
lib/service/StreamH264Flv.py
View file @
733c8040
...
@@ -270,15 +270,17 @@ class StreamH264Flv():
...
@@ -270,15 +270,17 @@ class StreamH264Flv():
if
__name__
==
"__main__"
:
if
__name__
==
"__main__"
:
obj
=
StreamH264Flv
()
obj
=
StreamH264Flv
()
obj
.
setSendDur
(
0.00
7
)
obj
.
setSendDur
(
0.00
1
)
obj
.
setIsSendAudio
(
1
)
obj
.
setIsSendAudio
(
1
)
# obj.setMobile("013146201117")
# obj.setMobile("013146201117")
obj
.
setMobile
(
"142043390091"
)
obj
.
setMobile
(
"142043390091"
)
obj
.
setChannel
(
1
)
obj
.
setChannel
(
1
)
# obj.setHost("10.100.12.3
")
obj
.
setHost
(
"10.100.11.125
"
)
obj
.
setHost
(
"video-test.vandyo.com"
)
#
obj.setHost("video-test.vandyo.com")
obj
.
setPort
(
1078
)
obj
.
setPort
(
1078
)
obj
.
setVideoPath
(
"../../flv/
yyy
.flv"
)
obj
.
setVideoPath
(
"../../flv/
bbb3
.flv"
)
obj
.
connectServer
()
obj
.
connectServer
()
obj
.
readFlvAndSend
()
obj
.
readFlvAndSend
()
lib/testCase/FlvPressureTest.py
View file @
733c8040
...
@@ -3,6 +3,8 @@ import json
...
@@ -3,6 +3,8 @@ import json
import
re
import
re
import
threading
import
threading
import
time
import
time
import
traceback
import
cv2
import
cv2
import
requests
import
requests
...
@@ -32,7 +34,6 @@ class FlvPressureTest():
...
@@ -32,7 +34,6 @@ class FlvPressureTest():
self
.
threadInfoPull
[
"threadObj"
]
=
{}
self
.
threadInfoPull
[
"threadObj"
]
=
{}
self
.
threadInfoPull
[
"sucessT"
]
=
{}
self
.
threadInfoPull
[
"sucessT"
]
=
{}
self
.
threadInfoPull
[
"failT"
]
=
{}
self
.
threadInfoPull
[
"failT"
]
=
{}
self
.
isOpenPullStream
=
1
# 是否开启视频拉流 0:不 1:是
self
.
isOpenPullStream
=
1
# 是否开启视频拉流 0:不 1:是
def
setTerNum
(
self
,
data
):
def
setTerNum
(
self
,
data
):
...
@@ -54,25 +55,45 @@ class FlvPressureTest():
...
@@ -54,25 +55,45 @@ class FlvPressureTest():
def
setIsShowFrame
(
self
,
data
):
def
setIsShowFrame
(
self
,
data
):
self
.
isShowFrame
=
data
self
.
isShowFrame
=
data
def
testServicePush
(
self
,
cloudMirror
):
def
getThreadInfo
(
self
):
cloudMirror
.
readFlvAndSend
()
return
self
.
threadInfo
def
getThreadInfoPull
(
self
):
def
testServicePull
(
self
,
mobile
):
return
self
.
threadInfoPull
def
testServicePush
(
self
,
cloudMirror
,
threadName
):
try
:
cloudMirror
.
readFlvAndSend
()
except
:
traceback
.
print_exc
()
self
.
threadInfo
[
"threadObj"
]
.
pop
(
threadName
)
return
self
.
threadInfo
[
"threadObj"
]
.
pop
(
threadName
)
def
testServicePull
(
self
,
mobile
,
threadName
):
pullUrl
=
self
.
getPlayUrl
(
mobile
,
self
.
channel
)
pullUrl
=
self
.
getPlayUrl
(
mobile
,
self
.
channel
)
# pullUrl = self.replaceHost(pullUrl, "video-test.vandyo.com:")
# pullUrl = self.replaceHost(pullUrl, "video-test.vandyo.com:")
cap
=
cv2
.
VideoCapture
(
pullUrl
)
cap
=
cv2
.
VideoCapture
(
pullUrl
)
while
(
cap
.
isOpened
()):
try
:
ret
,
frame
=
cap
.
read
()
while
(
cap
.
isOpened
()):
if
ret
==
False
:
ret
,
frame
=
cap
.
read
()
break
if
ret
==
False
:
if
self
.
isShowFrame
==
1
:
break
cv2
.
imshow
(
"video"
,
frame
)
if
self
.
isShowFrame
==
1
:
if
cv2
.
waitKey
(
1
)
&
0xFF
==
ord
(
'q'
):
cv2
.
imshow
(
"video"
,
frame
)
break
if
cv2
.
waitKey
(
1
)
&
0xFF
==
ord
(
'q'
):
print
(
"拉流结束"
)
break
cap
.
release
()
print
(
"拉流结束"
)
cv2
.
destroyAllWindows
()
cap
.
release
()
cv2
.
destroyAllWindows
()
except
:
traceback
.
print_exc
()
self
.
threadInfoPull
[
"threadObj"
]
.
pop
(
threadName
)
return
self
.
threadInfoPull
[
"threadObj"
]
.
pop
(
threadName
)
################################################
# 启动推流线程
################################################
def
runPush
(
self
,
mobile
,
threadId
):
def
runPush
(
self
,
mobile
,
threadId
):
cloudMirror
=
StreamH264Flv
()
cloudMirror
=
StreamH264Flv
()
cloudMirror
.
setHost
(
self
.
host
)
cloudMirror
.
setHost
(
self
.
host
)
...
@@ -83,18 +104,24 @@ class FlvPressureTest():
...
@@ -83,18 +104,24 @@ class FlvPressureTest():
cloudMirror
.
setChannel
(
self
.
channel
)
cloudMirror
.
setChannel
(
self
.
channel
)
cloudMirror
.
setSendDur
(
self
.
sendDur
)
cloudMirror
.
setSendDur
(
self
.
sendDur
)
conThread
=
threading
.
Thread
(
target
=
self
.
testServicePush
,
args
=
(
cloudMirror
,))
conThread
=
threading
.
Thread
(
target
=
self
.
testServicePush
,
args
=
(
cloudMirror
,
threadId
))
self
.
threadInfo
[
"threadObj"
][
threadId
]
=
conThread
self
.
threadInfo
[
"threadObj"
][
threadId
]
=
conThread
conThread
.
start
()
conThread
.
start
()
print
(
threadId
+
"启动了:"
+
mobile
+
"-"
+
str
(
self
.
channel
))
print
(
threadId
+
"启动了:"
+
mobile
+
"-"
+
str
(
self
.
channel
))
################################################
# 启动拉流线程
################################################
def
runPull
(
self
,
mobile
,
threadId
):
def
runPull
(
self
,
mobile
,
threadId
):
time
.
sleep
(
1
)
time
.
sleep
(
1
)
pullThread
=
threading
.
Thread
(
target
=
self
.
testServicePull
,
args
=
(
mobile
,))
pullThread
=
threading
.
Thread
(
target
=
self
.
testServicePull
,
args
=
(
mobile
,
threadId
))
self
.
threadInfoPull
[
"threadObj"
][
threadId
]
=
pullThread
self
.
threadInfoPull
[
"threadObj"
][
threadId
]
=
pullThread
pullThread
.
start
()
pullThread
.
start
()
print
(
threadId
+
"启动了:"
+
mobile
+
"-"
+
str
(
self
.
channel
))
print
(
threadId
+
"启动了:"
+
mobile
+
"-"
+
str
(
self
.
channel
))
################################################
# 启动压力测试服务
################################################
def
start
(
self
):
def
start
(
self
):
for
i
in
range
(
0
,
self
.
terNum
):
for
i
in
range
(
0
,
self
.
terNum
):
mobile
=
self
.
mobileStart
+
i
mobile
=
self
.
mobileStart
+
i
...
...
run.py
View file @
733c8040
#coding: utf-8
#coding: utf-8
from
lib.testCase.FlvPressureTest
import
FlvPressureTest
import
time
from
lib.testCase.FlvPressureTest
import
FlvPressureTest
import
logging
logging
.
basicConfig
(
level
=
logging
.
INFO
,
format
=
'
%(asctime)
s -
%(name)
s -
%(levelname)
s -
%(message)
s'
)
logger
=
logging
.
getLogger
(
__name__
)
###########################################
###########################################
# 推流h264 和 aac 文件压力测试
# 推流h264 和 aac 文件压力测试
...
@@ -23,21 +26,57 @@ def h264FilePushTest():
...
@@ -23,21 +26,57 @@ def h264FilePushTest():
test
.
setAudioPath
(
"aac/bbb3.aac"
)
test
.
setAudioPath
(
"aac/bbb3.aac"
)
test
.
start
()
test
.
start
()
def
getPressTestObj
():
test
=
FlvPressureTest
()
test
.
setHost
(
"10.100.11.125"
)
test
.
setPort
(
1078
)
test
.
setMobileStart
(
10000000000
)
# 开始的设备号 (累加)
test
.
setChannel
(
1
)
# 设置频道号
test
.
setTerNum
(
3
)
# 要启动的推拉流线程
test
.
setIsOpenPullStream
(
1
)
# 设置是否开启拉流
test
.
setIsShowFrame
(
0
)
# 拉流是否显示预览画面 (压力测试都应该填:0)
test
.
setSendDur
(
0.005
)
# 设置socket 发送数据间隔
test
.
setFlvPath
(
"flv/aaa3.flv"
)
# 设置视频路劲
test
.
start
()
return
test
###########################################
###########################################
# 推流flv文件压力测试
# 推流flv文件压力测试
###########################################
###########################################
def
flvFilePushTest
():
def
flvFilePushTest
():
test
=
FlvPressureTest
()
isLoop
=
1
# 是否循环压力测试 0: 不循环 1:循环
test
.
setHost
(
"10.100.12.3"
)
loopTime
=
1
*
60
*
60
# 循环压力测试的时长
test
.
setPort
(
1078
)
test
.
setMobileStart
(
10000000000
)
test
=
getPressTestObj
()
test
.
setChannel
(
1
)
threadInfo
=
test
.
getThreadInfo
()
test
.
setTerNum
(
1
)
threadInfoPull
=
test
.
getThreadInfoPull
()
test
.
setIsOpenPullStream
(
1
)
# 设置是否开启拉流
test
.
setIsShowFrame
(
1
)
# 拉流是否显示预览画面
logger
.
info
(
"剩余推流线程:"
+
str
(
len
(
threadInfo
[
"threadObj"
])))
test
.
setSendDur
(
0.001
)
logger
.
info
(
"剩余拉流线程:"
+
str
(
len
(
threadInfoPull
[
"threadObj"
])))
test
.
setFlvPath
(
"flv/aaa3.flv"
)
if
isLoop
==
0
:
test
.
start
()
while
len
(
threadInfo
[
"threadObj"
])
!=
0
and
len
(
threadInfoPull
[
"threadObj"
])
!=
0
:
time
.
sleep
(
5
)
logger
.
info
(
"剩余推流线程:"
+
str
(
len
(
threadInfo
[
"threadObj"
])))
logger
.
info
(
"剩余拉流线程:"
+
str
(
len
(
threadInfoPull
[
"threadObj"
])))
threadInfo
=
test
.
getThreadInfo
()
threadInfoPull
=
test
.
getThreadInfoPull
()
else
:
time
.
sleep
(
10
)
if
len
(
threadInfo
[
"threadObj"
])
==
0
and
len
(
threadInfoPull
[
"threadObj"
])
==
0
:
test
=
getPressTestObj
()
logger
.
info
(
"-----------------------------启动新一轮压力测试-----------------------------"
)
threadInfo
=
test
.
getThreadInfo
()
threadInfoPull
=
test
.
getThreadInfoPull
()
while
len
(
threadInfo
[
"threadObj"
])
!=
0
and
len
(
threadInfoPull
[
"threadObj"
])
!=
0
:
time
.
sleep
(
5
)
logger
.
info
(
"剩余推流线程:"
+
str
(
len
(
threadInfo
[
"threadObj"
])))
logger
.
info
(
"剩余拉流线程:"
+
str
(
len
(
threadInfoPull
[
"threadObj"
])))
threadInfo
=
test
.
getThreadInfo
()
threadInfoPull
=
test
.
getThreadInfoPull
()
flvFilePushTest
()
logger
.
info
(
"压力测试结束"
)
if
__name__
==
"__main__"
:
if
__name__
==
"__main__"
:
flvFilePushTest
()
flvFilePushTest
()
...
...
ui/CameraArea.py
View file @
733c8040
...
@@ -53,5 +53,5 @@ class CameraArea():
...
@@ -53,5 +53,5 @@ class CameraArea():
)
)
if
dlg
.
ShowModal
()
==
wx
.
ID_OK
:
if
dlg
.
ShowModal
()
==
wx
.
ID_OK
:
path
=
dlg
.
GetPath
()
path
=
dlg
.
GetPath
()
print
(
path
)
textCtr
.
SetValue
(
path
)
dlg
.
Destroy
()
dlg
.
Destroy
()
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment