Commit f0bb02f9 authored by liyuanhong's avatar liyuanhong

M300 压测程序完成

parent c4fd6987
This diff is collapsed.
...@@ -18,12 +18,12 @@ class SendMultMsgThread(): ...@@ -18,12 +18,12 @@ class SendMultMsgThread():
self.msg = msg self.msg = msg
self.timeOut = 30 #socket超时时间 self.timeOut = 30 #socket超时时间
self.BUF_SIZE = 1024 #接收消息缓存 self.BUF_SIZE = 1024 #接收消息缓存
self.threadCount = 7000 #并发线程数 self.threadCount = 1000 #并发线程数
self.totalTime = 0 #所有线程的运行总和 self.totalTime = 0 #所有线程的运行总和
self.threadArr = {} #保存每个线程的信息 self.threadArr = {} #保存每个线程的信息
self.failThreadCount = 0 #失败线程数 self.failThreadCount = 0 #失败线程数
self.durThreads = [] #持续发送线程数组,当数组为空,表示所有线程已经结束 self.durThreads = [] #持续发送线程数组,当数组为空,表示所有线程已经结束
dt = 1 * 30 * 60 dt = 1 * 1 * 60
self.durTime = dt #线程持续时间 self.durTime = dt #线程持续时间
self.connectTimeoutNum = 0 #连接超时线程数 self.connectTimeoutNum = 0 #连接超时线程数
self.sendTimeoutNum = 0 #发送超时线程数 self.sendTimeoutNum = 0 #发送超时线程数
...@@ -289,33 +289,17 @@ class SendMultMsgThread(): ...@@ -289,33 +289,17 @@ class SendMultMsgThread():
msg = OBD_msg msg = OBD_msg
return msg return msg
#获取随机消息数据(M300车机)
def getRandomMsg_M300(self,carId):
# carId = 201912010002
wh = random.randint(0,2)
msg = ""
if wh == 0:
hearbeat_msg = "4040000e00044d" + str(carId) + "8000000300cf91"
hearbeat_msg = hearbeat_msg[:-4] + self.crc16(hearbeat_msg[:-4])
msg = hearbeat_msg
elif wh == 1:
GPS_msg = "4040003d00054d" + str(carId) + "001001140305031e0301c329ed0659dec501f402e8000000b4050a0b0c9305050258001400000fa0000000005e606f115e60723be44b"
GPS_msg = GPS_msg[:-4] + self.crc16(GPS_msg[:-4])
msg = GPS_msg
elif wh == 2:
OBD_msg = "4040007000064d" + str(carId) + "00120114030503202d26d7fffff0000000000505000000143c00000bb80100000fa00000000a0000000000005e60723b723b39331e100055320000001312001007d0001e0000000000000096000000280096ffff3e0001f40000003e00000000000000000000007213"
OBD_msg = OBD_msg[:-4] + self.crc16(OBD_msg[:-4])
msg = OBD_msg
return msg
# 获取随机消息数据(新硬件车机) # 获取随机消息数据(新硬件车机)
def getRandomMsg_new(self, carId): def getRandomMsg_new(self, carId):
# carId = 201912010002 # carId = 201912010002
wh = random.randint(0, 2) wh = random.randint(0, 2)
msg = "" msg = ""
wh = 0
if wh == 0: if wh == 0:
hearbeat_msg = "4040000e00044d" + str(carId) + "8000000300cf91" hearbeat_msg = "4040000e00044d" + str(carId) + "8000000300cf91"
hearbeat_msg = hearbeat_msg[:-4] + self.crc16(hearbeat_msg[:-4]) hearbeat_msg = hearbeat_msg + self.getCheckCode(hearbeat_msg[2:]) + "7e"
hearbeat_msg = self.replace7e7d(hearbeat_msg)
msg = hearbeat_msg msg = hearbeat_msg
elif wh == 1: elif wh == 1:
GPS_msg = "4040003d00054d" + str( GPS_msg = "4040003d00054d" + str(
...@@ -330,7 +314,7 @@ class SendMultMsgThread(): ...@@ -330,7 +314,7 @@ class SendMultMsgThread():
return msg return msg
#################################################### ####################################################
# 定义生成校验字段的函数 # 定义生成校验字段的函数(M500 校验方式)
# inputStr:需要传入一个已经转换为16进制的字符串 # inputStr:需要传入一个已经转换为16进制的字符串
##################################################### #####################################################
# add crc 16 check at the end of the string # add crc 16 check at the end of the string
...@@ -358,7 +342,6 @@ class SendMultMsgThread(): ...@@ -358,7 +342,6 @@ class SendMultMsgThread():
return outputStr return outputStr
else: else:
return inputStr return inputStr
# pad zero to the right of the string if not long enough # pad zero to the right of the string if not long enough
def rightPad(self,inputStr, strLen): def rightPad(self,inputStr, strLen):
if (strLen > len(inputStr)): if (strLen > len(inputStr)):
...@@ -385,14 +368,13 @@ class SendMultMsgThread(): ...@@ -385,14 +368,13 @@ class SendMultMsgThread():
return info_1 + "\n" +info_2 + "\n" return info_1 + "\n" +info_2 + "\n"
if __name__ == "__main__": if __name__ == "__main__":
t = SendMultMsgThread() t = SendMultMsgThread()
# t.setHost("10.100.12.32") # t.setHost("10.100.12.32")
t.setHost("10.100.5.251") t.setHost("10.100.5.251")
t.setPort(9008) t.setPort(9008) #M500
# t.setPort(9009) # M300
# t.startThread() # t.startThread()
t.startThreadContinuous() t.startThreadContinuous()
......
...@@ -22,14 +22,14 @@ port = 9001 ...@@ -22,14 +22,14 @@ port = 9001
# msg = MessageBase().generateMsg() # msg = MessageBase().generateMsg()
# msg = TerminalCommonMsgRes_msg().generateMsg() #终端通用应答 # msg = TerminalCommonMsgRes_msg().generateMsg() #终端通用应答
# msg = TerminalHeartbeat_msg().generateMsg() #终端心跳 msg = TerminalHeartbeat_msg().generateMsg() #终端心跳
# msg = TerminalRegister_msg().generateMsg() #终端注册 # msg = TerminalRegister_msg().generateMsg() #终端注册
# msg = TerminalCancle_msg().generateMsg() #终端注销 # msg = TerminalCancle_msg().generateMsg() #终端注销
# msg = TerminalAuthenticate_msg().generateMsg() #终端鉴权 # msg = TerminalAuthenticate_msg().generateMsg() #终端鉴权
# msg = TerminalVersionInfo_msg().generateMsg() #终端版本信息上报 # msg = TerminalVersionInfo_msg().generateMsg() #终端版本信息上报
# msg = QueryTerminalParam_res().generateMsg() #查询终端参数应答 # msg = QueryTerminalParam_res().generateMsg() #查询终端参数应答
# msg = QueryTerminalProperty_res().generateMsg() #查询终端属性应答消息 # msg = QueryTerminalProperty_res().generateMsg() #查询终端属性应答消息
msg = Location_msg().generateMsg() #位置信息汇报 # msg = Location_msg().generateMsg() #位置信息汇报
# msg = DataUpstreamTransport_msg().generateMsg() #数据上行透传消息 # msg = DataUpstreamTransport_msg().generateMsg() #数据上行透传消息
# msg = TerminalUpdataResult_msg().generateMsg() #终端升级结果通知 # msg = TerminalUpdataResult_msg().generateMsg() #终端升级结果通知
# msg = LocationDataBatchUpdate_msg().generateMsg() #定位数据批量上传 # msg = LocationDataBatchUpdate_msg().generateMsg() #定位数据批量上传
......
#coding:utf-8
import binascii
import socket
from lib.protocol.report.GPSReport_protocol import GPSReport_protocol
from lib.protocol.report.OBDReport_CAN_protocol import OBDReport_CAN_protocol
from lib.protocol.report.OBDReport_CAN_protocol import OBDReport_CAN_protocol
from lib.protocol.report.HeartBeatReport_protocol import HeartBeatReport_protocol
from lib.protocol.report.LoginReport_protocol import LoginReport_protocol
from lib.protocol.report.SecurityStatusReport_protocol import SecurityStatusReport_protocol
from lib.protocol.report.BaseStationReport_protocol import BaseStationReport_protocol
from lib.protocol.report.TroubleReport_protocol import TroubleReport_protocol
from lib.protocol.report.EventReport_protocol import EventReport_protocol
# host = "10.100.12.34"
# port = 8712
# host = "10.100.12.32"
# port = 9009
# host = "10.100.5.251"
# port = 9009
host = "10.100.5.251"
port = 9009
msg = "7e000400e14d2019120315000000957e" #终端上报心跳协议
print(msg)
BUF_SIZE = 1024
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1) # 在客户端开启心跳
client.connect((host, port))
client.send(binascii.a2b_hex(msg))
# client.send(bytes.fromhex(msg))
data = client.recv(BUF_SIZE)
print(data)
print(binascii.b2a_hex(data))
client.close()
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment