Explorar el Código

注意:
1、task屋的taskid是无效的,要使用job层级里的taskid才有效;
2、注意task层Instanceid其实是无用的,传递给其他post参数时的instanceid值请使用task层里的id;

scbc.sat2 hace 5 años
padre
commit
93a9f13ab3
Se han modificado 1 ficheros con 32 adiciones y 30 borrados
  1. 32 30
      SATService/SATService/SATExecutor.cpp

+ 32 - 30
SATService/SATService/SATExecutor.cpp

@@ -22,7 +22,8 @@ bool CSATExecutor::IsTaskExist(SATParameters::STTask &task)
 	std::list<SATParameters::STTask>::iterator it = m_vtTask.begin();
 	for ( ; it != m_vtTask.end(); it++ )
 	{
-		if ( it->nTaskId == task.nTaskId )
+		// 不要使用nTaskId,这个值没啥用;
+		if ( it->Id == task.Id )
 		{
 			found = true;
 			break;
@@ -230,8 +231,8 @@ bool CSATExecutor::NotifyTaskStart(SATParameters::STTask* pTask)
 	_itoa_s(pTask->Id, szValue, 10);
 	stNotifyJobStartReq.strInstanceId = szValue;					
 
-	_itoa_s(pTask->nTaskId, szValue, 10);
-	stNotifyJobStartReq.strTaskId = szValue;
+	//_itoa_s(pTask->nTaskId, szValue, 10);
+	stNotifyJobStartReq.strTaskId = pTask->Job.strTaskId;
 
 	stNotifyJobStartReq.strSignalImageUrl = "D:\\\\SAT\\\\Runner\\\\btc_runner_se\\\\runner\\\\output\\\\";//ODF_NPI_RT2841\\\\20191216101613370\\\\192.168.1.119_5555";
 	stNotifyJobStartReq.strSignalImageUrl.append(pTask->strTaskName+"\\\\");
@@ -303,8 +304,8 @@ bool CSATExecutor::UploadCaseLog(SATParameters::STTask* pTask, SATParameters::ST
 	stSaveLogReq.strExecuteId = szValue;
 	stSaveLogReq.strFileType = "caseLogFile";
 	// 任务Id;
-	_itoa_s(pTask->nTaskId, szValue, 10);
-	stSaveLogReq.strTaskId = szValue;
+	//_itoa_s(pTask->nTaskId, szValue, 10);
+	stSaveLogReq.strTaskId = pTask->Job.strTaskId;
 	stSaveLogReq.strUserId = pTask->Job.strUserId;
 	// 要上传的日志文件;
 	stSaveLogReq.strUploads = pCase->_strCaseLog;
@@ -328,7 +329,7 @@ bool CSATExecutor::ReportCaseItemFinish(SATParameters::STTask* pTask, SATParamet
 	stJobProcessReq.strResultState = caseItem.result ? "1" : "0";
 	stJobProcessReq.strCaseScene = "";
 	// 索引;
-	stJobProcessReq.strCaseStep = pCase->strIndex;
+	stJobProcessReq.strCaseStep = pCase->_nCaseStep;
 	stJobProcessReq.strApkMD5 = "";
 	stJobProcessReq.strCrashTime = "";
 	// 就是Task中的ExecuteId
@@ -372,10 +373,10 @@ bool CSATExecutor::ReportCaseItemFinish(SATParameters::STTask* pTask, SATParamet
 	// 实例Id;
 	_itoa_s(pTask->nDeviceId, szValue, 10);
 	stJobProcessReq.strDeviceId = szValue;
-	stJobProcessReq.strSceneIndex = "";
+	stJobProcessReq.strSceneIndex = "0";
 	// 实例Id;
-	_itoa_s(pTask->nTaskId, szValue, 10);
-	stJobProcessReq.strTaskId = szValue;
+	//_itoa_s(pTask->nTaskId, szValue, 10);
+	stJobProcessReq.strTaskId = pTask->Job.strTaskId;
 	stJobProcessReq.strAnalysis = CharEncoding::UTF82ASCII(caseItem.data.c_str());
 	// 设备名称:即DeviceSerial;
 	stJobProcessReq.strDevnceName = pTask->Job.strDeviceId;	// 命名及其不范围,一会deviceid是deviceserial,一会是id;
@@ -436,8 +437,8 @@ bool CSATExecutor::ReportCaseFinish(SATParameters::STTask* pTask, SATParameters:
 	stJobProcessReq.strTaskType = "FUNCTIONALITY";
 	stJobProcessReq.strCaseRepeat = "";
 	stJobProcessReq.strApplicationGroup = "";
-	// 实例Id;
-	_itoa_s(pTask->nInstanceId, szValue, 10);
+	// 实例Id;注意避坑;
+	_itoa_s(pTask->Id, szValue, 10);
 	stJobProcessReq.strInstanceId = szValue;
 	stJobProcessReq.strCaseId = pCase->strId;
 	// 进度(###需要修改此处###);
@@ -457,10 +458,10 @@ bool CSATExecutor::ReportCaseFinish(SATParameters::STTask* pTask, SATParameters:
 	// 实例Id;
 	_itoa_s(pTask->nDeviceId, szValue, 10);
 	stJobProcessReq.strDeviceId = szValue;
-	stJobProcessReq.strSceneIndex = "";
+	stJobProcessReq.strSceneIndex = "0";
 	// 实例Id;
-	_itoa_s(pTask->nTaskId, szValue, 10);
-	stJobProcessReq.strTaskId = szValue;
+	//_itoa_s(pTask->nTaskId, szValue, 10);
+	stJobProcessReq.strTaskId = pTask->Job.strTaskId;
 	stJobProcessReq.strAnalysis = "";
 	// 设备名称:即DeviceSerial;
 	stJobProcessReq.strDevnceName = pTask->Job.strDeviceId;	// 命名及其不范围,一会deviceid是deviceserial,一会是id;
@@ -530,11 +531,11 @@ bool CSATExecutor::UploadTaskLog(SATParameters::STTask* pTask)
 	stSaveLogReq.strExecuteId = szValue;
 	stSaveLogReq.strFileType = "taskLogFile";
 	// 任务Id;
-	_itoa_s(pTask->nTaskId, szValue, 10);
-	stSaveLogReq.strTaskId = szValue;
+	//_itoa_s(pTask->nTaskId, szValue, 10);
+	stSaveLogReq.strTaskId = pTask->Job.strTaskId;
 	stSaveLogReq.strUserId = pTask->Job.strUserId;
 	// 要上传的日志文件;
-	stSaveLogReq.strUploads = pTask->_strTaskLog;
+	stSaveLogReq.strUploads = "D:\\sat\\log.txt";//pTask->_strTaskLog;
 	if ( SaveCaseOrTaskLog(url, stSaveLogReq, stSaveLogResp) )
 	{
 		return true;
@@ -553,7 +554,7 @@ bool CSATExecutor::ReportTaskStart(SATParameters::STTask* pTask)
 	SATParameters::STJobProcessResp stJobProcessResp;
 
 	// 需要处理###
-	stJobProcessReq.strResultState = "0";	// 脚本执行中,认为fail;
+	stJobProcessReq.strResultState = "";	// 脚本执行中,认为fail;
 
 	stJobProcessReq.strCaseScene = "";
 	// 索引;
@@ -571,8 +572,8 @@ bool CSATExecutor::ReportTaskStart(SATParameters::STTask* pTask)
 	stJobProcessReq.strTaskType = "FUNCTIONALITY";
 	stJobProcessReq.strCaseRepeat = "";
 	stJobProcessReq.strApplicationGroup = "";
-	// 实例Id;
-	_itoa_s(pTask->nInstanceId, szValue, 10);
+	// 实例Id;注意避坑;
+	_itoa_s(pTask->Id, szValue, 10);
 	stJobProcessReq.strInstanceId = szValue;
 	stJobProcessReq.strCaseId = "";
 	// 进度(###需要修改此处###);
@@ -593,8 +594,8 @@ bool CSATExecutor::ReportTaskStart(SATParameters::STTask* pTask)
 	stJobProcessReq.strDeviceId = szValue;
 	stJobProcessReq.strSceneIndex = "";
 	// 实例Id;
-	_itoa_s(pTask->nTaskId, szValue, 10);
-	stJobProcessReq.strTaskId = szValue;
+	//_itoa_s(pTask->nTaskId, szValue, 10);
+	stJobProcessReq.strTaskId = pTask->Job.strTaskId;
 	stJobProcessReq.strAnalysis = "";
 	// 设备名称:即DeviceSerial;
 	stJobProcessReq.strDevnceName = pTask->Job.strDeviceId;	// 命名及其不范围,一会deviceid是deviceserial,一会是id;
@@ -641,17 +642,17 @@ bool CSATExecutor::ReportTaskFinish(SATParameters::STTask* pTask)
 	stJobProcessReq.strArtificialModify = "";
 	stJobProcessReq.strRunnerName = "";
 	stJobProcessReq.strTaskType = "FUNCTIONALITY";
-	stJobProcessReq.strCaseRepeat = "";
+	stJobProcessReq.strCaseRepeat = "0";
 	stJobProcessReq.strApplicationGroup = "";
-	// 实例Id;
-	_itoa_s(pTask->nInstanceId, szValue, 10);
+	// 实例Id;注意避坑;
+	_itoa_s(pTask->Id, szValue, 10);
 	stJobProcessReq.strInstanceId = szValue;
 	stJobProcessReq.strCaseId = "";
 	// 进度(###需要修改此处###);
 	stJobProcessReq.strProgress = "100";
 	// 需要将utf-8转gbk;
 	stJobProcessReq.strReusltMessage = "任务结束";
-	stJobProcessReq.strJobRepeat = "";
+	stJobProcessReq.strJobRepeat = "0";
 	stJobProcessReq.strScreenShot = "";
 	stJobProcessReq.strStartTime = pTask->strStartTime;
 	stJobProcessReq.strCrashNumber = "";
@@ -663,10 +664,10 @@ bool CSATExecutor::ReportTaskFinish(SATParameters::STTask* pTask)
 	// 实例Id;
 	_itoa_s(pTask->nDeviceId, szValue, 10);
 	stJobProcessReq.strDeviceId = szValue;
-	stJobProcessReq.strSceneIndex = "";
+	stJobProcessReq.strSceneIndex = "0";
 	// 实例Id;
-	_itoa_s(pTask->nTaskId, szValue, 10);
-	stJobProcessReq.strTaskId = szValue;
+	//_itoa_s(pTask->nTaskId, szValue, 10);
+	stJobProcessReq.strTaskId = pTask->Job.strTaskId;
 	stJobProcessReq.strAnalysis = "";
 	// 设备名称:即DeviceSerial;
 	stJobProcessReq.strDevnceName = pTask->Job.strDeviceId;	// 命名及其不范围,一会deviceid是deviceserial,一会是id;
@@ -830,7 +831,8 @@ DWORD CSATExecutor::HearbeatThread(LPVOID lpVoid)
 					std::string host = Global::g_stSATConfig.szCaseServer;
 					std::string url = host + "/ajaxInteractiveManage!getCaseFileListUrl.action";
 					std::vector<SATParameters::STCase>::iterator _case = it->Job.vtCases.begin();
-					for ( ;_case != it->Job.vtCases.end(); _case++) {
+					for ( int i = 1; _case != it->Job.vtCases.end(); _case++) {
+						_case->_nCaseStep = i++;
 						SATParameters::STScriptUrlResp stScriptUrlResp;
 						if ( DownloadScript(url, _case->strId, Global::g_stSATConfig.szScriptDir, stScriptUrlResp) ) {
 							_case->_strFileDir = stScriptUrlResp._strFileDir;