Commit c297e923 authored by liyuanhong's avatar liyuanhong

压力测试代码提交

parent 51375a30
......@@ -16,7 +16,7 @@ class SendMultMsgThread():
self.host = host
self.port = port
self.msg = msg
self.timeOut = 120 #socket超时时间
self.timeOut = 30 #socket超时时间
self.BUF_SIZE = 1024 #接收消息缓存
self.threadCount = 10000 #并发线程数
self.totalTime = 0 #所有线程的运行总和
......@@ -115,7 +115,7 @@ class SendMultMsgThread():
print(threadName + ":" + "连接超时,socket断开")
return
while (endTime - startTime) < self.durTime:
msg = self.getRandomMsg(carId)
msg = self.getRandomMsg_M500(carId)
try:
client.send(binascii.a2b_hex(msg))
msgCon = msgCon + 1
......@@ -204,28 +204,69 @@ class SendMultMsgThread():
while len(self.durThreads) != 0:
print("剩余线程数:" + str(len(self.durThreads)))
time.sleep(5)
timeArray = time.localtime(timeStart / 1000)
testStart = time.strftime("%Y-%m-%d %H:%M:%S", timeArray)
timeEnd = int(time.time() * 1000)
timeArray = time.localtime(timeEnd / 1000)
testestEnd = time.strftime("%Y-%m-%d %H:%M:%S", timeArray)
time.sleep(2) #防止线程慢的时候,某些线程被漏统计的情况
print("-------------------------- 统计信息 --------------------------")
info_0 = "-------------------------- 统计信息 --------------------------"
print(info_0)
totalMsg = 0
for i in self.messageCon:
totalMsg = totalMsg + i
print("耗时:" + str(timeExpend) + " 毫秒产生了" + str(self.threadCount) + "线程")
print("设置socket超时时间:" + str(self.timeOut))
print("设置线程持续时间:" + str(self.durTime))
print("成功线程数:" + str(self.sucessNum))
print("消息总数:" + str(totalMsg))
print("连接失败:" + str(self.connectTimeoutNum))
print("发送失败:" + str(self.sendTimeoutNum))
print("接收失败:" + str(self.reviceTimeoutNum))
self.writeToFile("../../data/threadDetailsContinuous.json",self.threadArr)
info_1 = "耗时:" + str(timeExpend) + " 毫秒产生了" + str(self.threadCount) + "线程"
info_2 = "开始测试时间:" + testStart
info_3 = "结束测试时间:" + testestEnd
info_4 = "设置socket超时时间:" + str(self.timeOut)
info_5 = "设置线程持续时间:" + str(self.durTime)
info_6 = "成功线程数:" + str(self.sucessNum)
info_7 = "消息总数:" + str(totalMsg)
info_8 = "连接失败:" + str(self.connectTimeoutNum)
info_9 = "发送失败:" + str(self.sendTimeoutNum)
info_10 = "接收失败:" + str(self.reviceTimeoutNum)
print(info_1)
print(info_2)
print(info_3)
print(info_4)
print(info_5)
print(info_6)
print(info_7)
print(info_8)
print(info_9)
print(info_10)
self.writeToFile("../../data/threadDetailsContinuous.json",json.dumps(self.threadArr))
info_11 = self.getInfoFromResult("../../data/threadDetailsContinuous.json")
result = info_0 + "\n" + info_1 + "\n" + info_2 + "\n" + info_3 + "\n" + info_4 + "\n" + info_5 + "\n" + info_6 + "\n"
result = result + info_7 + "\n" + info_8 + "\n" + info_9 + "\n" + info_10 + "\n" + info_11
self.writeToFile("./result.txt", result)
def writeToFile(self,path,data):
with open(path, "w", encoding='utf-8') as fi:
json.dump(data, fi)
# fi.write(data)
#json.dump(data, fi)
fi.write(data)
#获取随机消息数据(M500车机)
def getRandomMsg_M500(self,carId):
# carId = 201912010002
wh = random.randint(0,2)
msg = ""
if wh == 0:
hearbeat_msg = "4040000b00044d" + str(carId) + "0003ffd4"
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(self,carId):
#获取随机消息数据(M300车机)
def getRandomMsg_M300(self,carId):
# carId = 201912010002
wh = random.randint(0,2)
msg = ""
......@@ -243,6 +284,27 @@ class SendMultMsgThread():
msg = OBD_msg
return msg
# 获取随机消息数据(新硬件车机)
def getRandomMsg_new(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
####################################################
# 定义生成校验字段的函数
# inputStr:需要传入一个已经转换为16进制的字符串
......@@ -282,10 +344,33 @@ class SendMultMsgThread():
else:
return inputStr
def getInfoFromResult(self,path):
with open(path, "r", encoding='utf-8') as fi:
d = fi.read()
d = json.loads(d)
msgC = 0
failT = 0
for i in d:
msgC = msgC + d[i]["msgCon"]
if d[i]["status"] == 1:
failT = failT +1
info_1 = "文件统计总消息数:" + str(msgC)
info_2 = "文件统计总失败数:" + str(failT)
print(info_1)
print(info_2)
return info_1 + "\n" +info_2 + "\n"
if __name__ == "__main__":
t = SendMultMsgThread()
# t.setHost("10.100.12.32")
t.setHost("10.100.5.251")
t.setPort(9008)
# t.startThread()
t.startThreadContinuous()
\ No newline at end of file
t.startThreadContinuous()
# SendMultMsgThread().getInfoFromResult("../../data/threadDetailsContinuous.json")
\ No newline at end of file
......@@ -329,7 +329,7 @@ class DataUpstreamTransport_msg(MessageBase):
#单位:0.000001 度,Bit31=0/1 东经/西经
longitude = self.getLongitude(106.54041)
#为 0 表示无故障码,非 0 为故障码个数
troubleCodeNums = 3
troubleCodeNums = 6
troubleCodeNumsHex = self.int2hexStringByBytes(troubleCodeNums)
#故障码
troubleCode = ""
......
......@@ -29,8 +29,8 @@ port = 9001
# msg = TerminalVersionInfo_msg().generateMsg() #终端版本信息上报
# msg = QueryTerminalParam_res().generateMsg() #查询终端参数应答
# msg = QueryTerminalProperty_res().generateMsg() #查询终端属性应答消息
# msg = Location_msg().generateMsg() #位置信息汇报
msg = DataUpstreamTransport_msg().generateMsg() #数据上行透传消息
msg = Location_msg().generateMsg() #位置信息汇报
# msg = DataUpstreamTransport_msg().generateMsg() #数据上行透传消息
# msg = TerminalUpdataResult_msg().generateMsg() #终端升级结果通知
# msg = LocationDataBatchUpdate_msg().generateMsg() #定位数据批量上传
# msg = TextInfoUpload_msg().generateMsg() #文本信息上传
......
......@@ -14,7 +14,10 @@ from lib.protocol.report.EventReport_protocol import EventReport_protocol
# host = "10.100.12.34"
# port = 8712
host = "10.100.12.32"
# host = "10.100.12.32"
# port = 9008
host = "10.100.5.251"
port = 9008
# msg = GPSReport_protocol().generateGpsMsg() #GPS消息数据
......
......@@ -716,7 +716,9 @@
</div>
<script>
//发送GPS数据
/*******************************************
*发送GPS数据
*******************************************/
$("#sendMsgBtn").click(function(){
var msgID = $("#msgID").val();
var phoneNum = $("#phoneNum").val();
......@@ -731,12 +733,6 @@ $("#sendMsgBtn").click(function(){
}
var provinceId = $("#provinceId").val();
var countyId = $("#countyId").val();
var manufacturerId = $("#manufacturerId").val();
var terminalType = $("#terminalType").val();
var terminalId = $("#terminalId").val();
var licencePlateColor = $("#licencePlateColor").val();
var carSign = $("#carSign").val();
var data = {};
data["msgID"] = msgID;
......@@ -746,13 +742,8 @@ $("#sendMsgBtn").click(function(){
data["subPkg"] = subPkg;
data["pkgCounts"] = pkgCounts;
data["provinceId"] = provinceId;
data["countyId"] = countyId;
data["manufacturerId"] = manufacturerId;
data["terminalType"] = terminalType;
data["terminalId"] = terminalId;
data["licencePlateColor"] = licencePlateColor;
data["carSign"] = carSign;
data["baseInfo"] = getBaseInfo();
data["extraInfo"] = getExtraInfo();
var host = window.location.host;
$.ajax({
......@@ -775,6 +766,98 @@ $("#sendMsgBtn").click(function(){
});
});
/*******************************************
*获取地理位置基本信息数据
*******************************************/
function getBaseInfo(){
//报警标志信息
var emergencyAlarm = parsenInt($("#emergencyAlarm").val());
var overspeedAlarm = parsenInt($("#overspeedAlarm")).val();
var fatigueDriving = parsenInt($("#fatigueDriving").val());
var dangerAlarm = parsenInt($("#dangerAlarm").val());
var GNSSTrouble = parsenInt($("#GNSSTrouble").val());
var GNSSAntennaeLost = parsenInt($("#GNSSAntennaeLost").val());
var GNSSAntennaeShortOut = parsenInt($("#GNSSAntennaeShortOut").val());
var TerminalMainPowerLackVoltage = parsenInt($("#TerminalMainPowerLackVoltage").val());
var TerminalMainPowerLostConnect = parsenInt($("#TerminalMainPowerLostConnect").val());
var TerMinalLCDTrouble = parsenInt($("#TerMinalLCDTrouble").val());
var TTSTrouble = parsenInt($("#TTSTrouble").val());
var cameraTrouble = parsenInt($("#cameraTrouble").val());
var ICTrouble = parsenInt($("#ICTrouble").val());
var speedEarlyWarning = parsenInt($("#speedEarlyWarning").val());
var fatigueDrivingearlyWarning = parsenInt($("#fatigueDrivingearlyWarning").val());
var drivingOverTime = parsenInt($("#drivingOverTime").val());
var stoppingOverTime = parsenInt($("#stoppingOverTime").val());
var InOutArea = parsenInt($("#InOutArea").val());
var InOutRouting = parsenInt($("#InOutRouting").val());
var drivingLongOrShort = parsenInt($("#drivingLongOrShort").val());
var routingDivergeAlarm = parsenInt($("#routingDivergeAlarm").val());
var VSSTrouble = parsenInt($("#VSSTrouble").val());
var oilException = parsenInt($("#oilException").val());
var carLost = parsenInt($("#carLost").val());
var illegalFire = parsenInt($("#illegalFire").val());
var illegalMoving = parsenInt($("#illegalMoving").val());
var collisionAlarm = parsenInt($("#collisionAlarm").val());
var rollOverAlarm = parsenInt($("#rollOverAlarm").val());
var illegalOpenDoor = parsenInt($("#illegalOpenDoor").val());
var alarmFlag = emergencyAlarm + overspeedAlarm + fatigueDriving + dangerAlarm + GNSSTrouble
alarmFlag = alarmFlag + GNSSAntennaeLost + GNSSAntennaeShortOut + TerminalMainPowerLackVoltage + TerminalMainPowerLostConnect + TerMinalLCDTrouble
alarmFlag = alarmFlag + TTSTrouble + cameraTrouble + ICTrouble + speedEarlyWarning + fatigueDrivingearlyWarning
alarmFlag = alarmFlag + drivingOverTime + stoppingOverTime + InOutArea + InOutRouting + drivingLongOrShort
alarmFlag = alarmFlag + routingDivergeAlarm + VSSTrouble + oilException + carLost + illegalFire
alarmFlag = alarmFlag + illegalMoving + collisionAlarm + rollOverAlarm + illegalOpenDoor
//获取状态位
var ACCStatus = parsenInt($("#ACCStatus").val());
var locationStatus = parsenInt($("#locationStatus").val())
var latitudeStatus = parsenInt($("#latitudeStatus").val())
var longitudeStatus = parsenInt($("#longitudeStatus").val())
var runStatus = parsenInt($("#runStatus").val())
var isLocationEncrypt = parsenInt($("#isLocationEncrypt").val())
var isFull = parsenInt($("#isFull").val())
var oilRouteStatus = parsenInt($("#oilRouteStatus").val())
var powerStatus = parsenInt($("#powerStatus").val())
var doorLockStatus = parsenInt($("#ACCStatus").val())
var frontDoor = parsenInt($("#frontDoor").val())
var middleDoor = parsenInt($("#middleDoor").val())
var backDoor = parsenInt($("#backDoor").val())
var drivingDoor = parsenInt($("#drivingDoor").val())
var otherDoor = parsenInt($("#otherDoor").val())
var GPSStatus = parsenInt($("#GPSStatus").val())
var beidouStatus = parsenInt($("#beidouStatus").val())
var GLONSSStatus = parsenInt($("#GLONSSStatus").val())
var GalileoStatus = parsenInt($("#GalileoStatus").val())
var status = ACCStatus + locationStatus + latitudeStatus + longitudeStatus + runStatus
status = status + isLocationEncrypt + isFull + oilRouteStatus + powerStatus + doorLockStatus
status = status + frontDoor + middleDoor + backDoor + drivingDoor + otherDoor
status = status + GPSStatus + beidouStatus + GLONSSStatus + GalileoStatus
var latitude = parsenInt($("#latitude").val());
var longtitude = parsenInt($("#longtitude").val());
var elevation = parsenInt($("#elevation").val());
var speed = parsenInt($("#speed").val());
var directionAngle = parsenInt($("#directionAngle").val());
var infoTime = parsenInt($("#infoTime").val());
var data = {};
data["alarmFlag"] = alarmFlag;
data["status"] = status;
data["latitude"] = latitude;
data["longtitude"] = longtitude;
data["elevation"] = elevation;
data["speed"] = speed;
data["directionAngle"] = directionAngle;
data["infoTime"] = infoTime;
return data
}
/*******************************************
获取地理位置附加信息数据
*******************************************/
function getExtraInfo(){
}
function hasSubPkg(){
value = $("#subPkg").val()
if(value == "8192"){
......@@ -786,10 +869,5 @@ function hasSubPkg(){
}
}
//设置当前时间到时间输入框
(function(){
var curTime = getCurTime();
$("#infoTime").val(curTime);
})();
</script>
{% endblock %}
\ No newline at end of file
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