Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
N
new-socketemulator
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
李远洪
new-socketemulator
Commits
7dbe43dc
Commit
7dbe43dc
authored
5 years ago
by
liyuanhong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
剥离了压力测试脚本为一个新项目
parent
7b6a9de9
Changes
6
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
0 additions
and
910 deletions
+0
-910
lib/multiThread/Base.py
lib/multiThread/Base.py
+0
-12
lib/multiThread/SendMultMsgThread.py
lib/multiThread/SendMultMsgThread.py
+0
-143
lib/multiThread/SendMultMsgThread_m300.py
lib/multiThread/SendMultMsgThread_m300.py
+0
-366
lib/multiThread/SendMultMsgThread_m500.py
lib/multiThread/SendMultMsgThread_m500.py
+0
-382
lib/multiThread/ThreadBase.py
lib/multiThread/ThreadBase.py
+0
-7
lib/multiThread/__init__.py
lib/multiThread/__init__.py
+0
-0
No files found.
lib/multiThread/Base.py
deleted
100644 → 0
View file @
7b6a9de9
#coding:utf-8
#########################################################
#
# 定义基类,供所有类继承
#
#########################################################
import
threading
class
Base
(
threading
.
Thread
):
def
__init__
(
self
):
pass
This diff is collapsed.
Click to expand it.
lib/multiThread/SendMultMsgThread.py
deleted
100644 → 0
View file @
7b6a9de9
#coding:utf-8
import
binascii
import
json
import
socket
import
threading
import
time
from
lib.multiThread.ThreadBase
import
ThreadBase
from
lib.protocol.message.Location_msg
import
Location_msg
from
lib.protocol.message.TerminalRegister_msg
import
TerminalRegister_msg
class
SendMultMsgThread
():
def
__init__
(
self
,
host
=
"10.100.11.20"
,
port
=
9001
,
msg
=
""
):
self
.
host
=
host
self
.
port
=
port
self
.
msg
=
msg
self
.
timeOut
=
1
#socket超时时间
self
.
BUF_SIZE
=
1024
#接收消息缓存
self
.
threadCount
=
10000
#并发线程数
self
.
totalTime
=
0
#所有线程的运行总和
self
.
threadArr
=
{}
#保存每个线程的信息
self
.
failThreadCount
=
0
#失败线程数
pass
############################################
# 设置host
############################################
def
setHost
(
self
,
host
):
self
.
host
=
host
############################################
# 设置端口号
############################################
def
setPort
(
self
,
port
):
self
.
port
=
port
############################################
# 设置消息
############################################
def
setMsg
(
self
,
msg
):
self
.
msg
=
msg
############################################
# 设置并发线程数
############################################
def
setThreadCount
(
self
,
threadCount
):
self
.
threadCount
=
threadCount
############################################
# 发送一条消息
############################################
def
sendMsg
(
self
,
msg
,
threadName
):
msg
=
msg
client
=
socket
.
socket
(
socket
.
AF_INET
,
socket
.
SOCK_STREAM
)
client
.
setsockopt
(
socket
.
SOL_SOCKET
,
socket
.
SO_KEEPALIVE
,
1
)
# 在客户端开启心跳
client
.
settimeout
(
self
.
timeOut
)
startTime
=
int
(
time
.
time
()
*
1000
)
try
:
client
.
connect
((
self
.
host
,
self
.
port
))
client
.
send
(
binascii
.
a2b_hex
(
msg
))
except
BaseException
as
e
:
client
.
close
()
self
.
threadArr
[
threadName
][
"status"
]
=
1
self
.
failThreadCount
=
self
.
failThreadCount
+
1
print
(
"连接超时,socket断开"
)
return
try
:
data
=
client
.
recv
(
self
.
BUF_SIZE
)
# print(data)
except
BaseException
as
e
:
# traceback.print_exc()
client
.
close
()
# raise RuntimeError('socket 接收消息超时!')
self
.
threadArr
[
threadName
][
"status"
]
=
1
self
.
failThreadCount
=
self
.
failThreadCount
+
1
print
(
'socket 接收消息超时!'
)
return
endTime
=
int
(
time
.
time
()
*
1000
)
timeExpend
=
endTime
-
startTime
self
.
threadArr
[
threadName
][
"timeExp"
]
=
timeExpend
self
.
totalTime
=
self
.
totalTime
+
timeExpend
client
.
close
()
############################################
# 启动并发线程
############################################
def
startThread
(
self
):
timeStart
=
int
(
time
.
time
()
*
1000
)
for
i
in
range
(
0
,
self
.
threadCount
):
threadName
=
"thread"
+
str
(
i
)
# theThread = threading.Thread(target=self.sendMsg, args=("7e0002000001314620111800065b7e",threadName,)) # 数据写死,心跳
theThread
=
threading
.
Thread
(
target
=
self
.
sendMsg
,
args
=
(
"4040007000094d20191201000200120114030409123426d7fffff0000000000505000000143c00000bb80100000fa00000000a0000000000005e5f68e768e739331e100055320000001312001007d0001e0000000000000096000000280096ffff3e0001f40000003e00000000000000000000000f9a"
,
threadName
,))
# 数据写死
# theThread = threading.Thread(target=self.sendMsg, \
# args=(TerminalRegister_msg().generateMsg_random(), threadName,)) #终端注册
# theThread = threading.Thread(target=self.sendMsg, \
# args=(Location_msg().generateMsg_random(), threadName,)) #地理位置
threadInfo
=
{}
threadInfo
[
"name"
]
=
threadName
threadInfo
[
"status"
]
=
0
self
.
threadArr
[
threadName
]
=
threadInfo
theThread
.
start
()
timeEnd
=
int
(
time
.
time
()
*
1000
)
timeExpend
=
timeEnd
-
timeStart
time
.
sleep
(
6
)
print
(
"耗时:"
+
str
(
timeExpend
)
+
" 毫秒"
)
print
(
"并发数据每秒发送:"
+
str
(
int
(
self
.
threadCount
/
(
timeExpend
/
1000
))))
print
(
"平均响应时间:"
+
str
(
self
.
totalTime
/
self
.
threadCount
)
+
"毫秒"
)
print
(
"发送总数:"
+
str
(
self
.
threadCount
))
print
(
"响应失败数:"
+
str
(
self
.
failThreadCount
))
self
.
writeToFile
(
"../../data/threadDetails.json"
,
self
.
threadArr
)
# print(json.dumps( self.threadArr))
def
writeToFile
(
self
,
path
,
data
):
with
open
(
path
,
"w"
,
encoding
=
'utf-8'
)
as
fi
:
json
.
dump
(
data
,
fi
)
# fi.write(data)
if
__name__
==
"__main__"
:
t
=
SendMultMsgThread
()
t
.
setHost
(
"10.100.12.32"
)
t
.
setPort
(
9008
)
# t.setMsg("7e0002000001314620111800065b7e")
# t.setMsg("7e020001020131462011190001fffc7fff001c010401c0a6380659ad7a02090042003b200204185704310102EA6600010400000000000204001e7c1f0003050A0001f400000405020001d4c000050400057d0240000604000119400007040007530000100c0004006403f203f203f203f2001114ffffffffffffffffffff00200000000000000000001202002400130106001D0101EB7960C0020bb860D0013c62f00203216050014c60F0015860B001146330011c646001416490012060A00201146014010160100102610002022661100201f561F0020e746210040000119c6040012c60700200e660E00203206701010067020100670301016704024e20670502000067060200416707040000017d02097e")
t
.
startThread
()
This diff is collapsed.
Click to expand it.
lib/multiThread/SendMultMsgThread_m300.py
deleted
100644 → 0
View file @
7b6a9de9
This diff is collapsed.
Click to expand it.
lib/multiThread/SendMultMsgThread_m500.py
deleted
100644 → 0
View file @
7b6a9de9
This diff is collapsed.
Click to expand it.
lib/multiThread/ThreadBase.py
deleted
100644 → 0
View file @
7b6a9de9
#coding:utf-8
from
lib.multiThread.Base
import
Base
class
ThreadBase
(
Base
):
def
__init__
(
self
):
pass
\ No newline at end of file
This diff is collapsed.
Click to expand it.
lib/multiThread/__init__.py
deleted
100644 → 0
View file @
7b6a9de9
This diff is collapsed.
Click to expand it.
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