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
ccbbb77a
Commit
ccbbb77a
authored
Jan 05, 2021
by
liyuanhong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
完成了拉流压力测试脚本
parent
b9852f86
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
114 additions
and
6 deletions
+114
-6
lib/service/StreamH264Flv.py
lib/service/StreamH264Flv.py
+5
-3
lib/testCase/PullStreamTest.py
lib/testCase/PullStreamTest.py
+86
-0
run.py
run.py
+23
-3
No files found.
lib/service/StreamH264Flv.py
View file @
ccbbb77a
...
@@ -134,12 +134,13 @@ class StreamH264Flv():
...
@@ -134,12 +134,13 @@ class StreamH264Flv():
# 发送视频帧
# 发送视频帧
####################################################
####################################################
def
sendVideoFrame
(
self
,
fra
,
timeStamp
):
def
sendVideoFrame
(
self
,
fra
,
timeStamp
):
print
(
fra
)
protocal_1078
=
Protocal_1078
()
protocal_1078
=
Protocal_1078
()
protocal_1078
.
setSim
(
self
.
mobile
)
protocal_1078
.
setSim
(
self
.
mobile
)
protocal_1078
.
setLogcC
(
self
.
channel
)
protocal_1078
.
setLogcC
(
self
.
channel
)
protocal_1078
.
setTime
(
timeStamp
)
protocal_1078
.
setTime
(
timeStamp
)
frameType
=
fra
[
8
:
10
]
frameType
=
fra
[
8
:
10
]
if
frameType
==
"65"
:
if
frameType
==
"65"
or
frameType
==
"61"
:
self
.
videoLastKeyTime
=
timeStamp
self
.
videoLastKeyTime
=
timeStamp
protocal_1078
.
setLastKeyTime
(
timeStamp
-
self
.
videoLastKeyTime
)
protocal_1078
.
setLastKeyTime
(
timeStamp
-
self
.
videoLastKeyTime
)
protocal_1078
.
setLastTime
(
timeStamp
-
self
.
videoLastTime
)
protocal_1078
.
setLastTime
(
timeStamp
-
self
.
videoLastTime
)
...
@@ -270,15 +271,16 @@ class StreamH264Flv():
...
@@ -270,15 +271,16 @@ class StreamH264Flv():
if
__name__
==
"__main__"
:
if
__name__
==
"__main__"
:
obj
=
StreamH264Flv
()
obj
=
StreamH264Flv
()
obj
.
setSendDur
(
0.0
0
1
)
obj
.
setSendDur
(
0.01
)
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.11.125")
obj
.
setHost
(
"10.100.11.125"
)
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/
aaa3
.flv"
)
obj
.
connectServer
()
obj
.
connectServer
()
obj
.
readFlvAndSend
()
obj
.
readFlvAndSend
()
...
...
lib/testCase/PullStreamTest.py
0 → 100644
View file @
ccbbb77a
#coding: utf-8
'''
拉流压力测试
'''
import
threading
import
time
import
traceback
import
cv2
class
PullStreamTest
():
def
__init__
(
self
):
self
.
playUrl
=
None
self
.
isShowFrame
=
0
# 是否展示预览窗口 0:不展示 1:展示
self
.
terNum
=
2
# 要压力测试的线程数
self
.
threadInfoPull
=
{}
# 存放线程集(拉流线程)
self
.
threadInfoPull
[
"threadObj"
]
=
{}
self
.
threadInfoPull
[
"sucessT"
]
=
{}
self
.
threadInfoPull
[
"failT"
]
=
{}
def
setPlayUrl
(
self
,
data
):
self
.
playUrl
=
data
def
setTerNum
(
self
,
data
):
self
.
terNum
=
data
def
getThreadInfoPull
(
self
):
return
self
.
threadInfoPull
############################################
# 拉流
############################################
def
testPull
(
self
,
threadName
):
pullUrl
=
self
.
playUrl
cap
=
cv2
.
VideoCapture
(
pullUrl
)
try
:
while
(
cap
.
isOpened
()):
ret
,
frame
=
cap
.
read
()
if
ret
==
False
:
break
if
self
.
isShowFrame
==
1
:
cv2
.
imshow
(
"video"
,
frame
)
if
cv2
.
waitKey
(
1
)
&
0xFF
==
ord
(
'q'
):
break
print
(
"拉流结束"
)
cap
.
release
()
cv2
.
destroyAllWindows
()
except
:
traceback
.
print_exc
()
self
.
threadInfoPull
[
"threadObj"
]
.
pop
(
threadName
)
return
self
.
threadInfoPull
[
"threadObj"
]
.
pop
(
threadName
)
################################################
# 启动拉流线程
################################################
def
runPull
(
self
,
threadId
):
time
.
sleep
(
1
)
pullThread
=
threading
.
Thread
(
target
=
self
.
testPull
,
args
=
(
threadId
,))
self
.
threadInfoPull
[
"threadObj"
][
threadId
]
=
pullThread
pullThread
.
start
()
################################################
# 启动压力测试服务
################################################
def
start
(
self
):
for
j
in
range
(
0
,
self
.
terNum
):
threadPullId
=
"threadPullId__"
+
str
(
j
)
print
(
"启动拉流线程:"
+
threadPullId
)
self
.
runPull
(
threadPullId
)
time
.
sleep
(
0.01
)
if
__name__
==
"__main__"
:
obj
=
PullStreamTest
()
obj
.
setPlayUrl
(
"http://10.100.11.125:8085/live?port=1985&app=vandyo&stream=110000000000-1-336024758078409597"
)
obj
.
setTerNum
(
10
)
obj
.
start
()
run.py
View file @
ccbbb77a
...
@@ -3,6 +3,9 @@ import time
...
@@ -3,6 +3,9 @@ import time
from
lib.testCase.FlvPressureTest
import
FlvPressureTest
from
lib.testCase.FlvPressureTest
import
FlvPressureTest
import
logging
import
logging
from
lib.testCase.PullStreamTest
import
PullStreamTest
logging
.
basicConfig
(
level
=
logging
.
INFO
,
format
=
'
%(asctime)
s -
%(name)
s -
%(levelname)
s -
%(message)
s'
)
logging
.
basicConfig
(
level
=
logging
.
INFO
,
format
=
'
%(asctime)
s -
%(name)
s -
%(levelname)
s -
%(message)
s'
)
logger
=
logging
.
getLogger
(
__name__
)
logger
=
logging
.
getLogger
(
__name__
)
...
@@ -75,10 +78,27 @@ def flvFilePushTest():
...
@@ -75,10 +78,27 @@ def flvFilePushTest():
threadInfoPull
=
test
.
getThreadInfoPull
()
threadInfoPull
=
test
.
getThreadInfoPull
()
time
.
sleep
(
30
)
time
.
sleep
(
30
)
flvFilePushTest
()
flvFilePushTest
()
logger
.
info
(
"压力测试结束!!!!!!"
)
logger
.
info
(
"压力测试结束!!!!!!"
)
###########################################
# 对单个源进行拉流压力测试
###########################################
def
pullSingleSourcePressureTest
():
obj
=
PullStreamTest
()
obj
.
setPlayUrl
(
"http://10.100.11.125:8085/live?port=1985&app=vandyo&stream=110000000000-1-336026784011127677"
)
obj
.
setTerNum
(
1
)
obj
.
start
()
pullInfos
=
obj
.
getThreadInfoPull
()
while
len
(
pullInfos
[
"threadObj"
])
>
0
:
time
.
sleep
(
5
)
logger
.
info
(
"剩余拉流线程:"
+
str
(
len
(
pullInfos
[
"threadObj"
])))
pullInfos
=
obj
.
getThreadInfoPull
()
print
(
""
)
print
(
"所有拉流结束。。。。。。"
)
if
__name__
==
"__main__"
:
if
__name__
==
"__main__"
:
flvFilePushTest
()
# flvFilePushTest() # 推拉流压力测试 (可关闭拉流)
# h264FilePushTest()
# h264FilePushTest() # H264推流压力测试
pullSingleSourcePressureTest
()
# 对单个源进行拉流压力测试
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