Selaa lähdekoodia

1、重置超时单位为毫秒;
2、脚本超时值由配置文件定义;
3、完善脚本超时判断;

scbc.sat2 5 vuotta sitten
vanhempi
commit
d9121f1ed9

+ 2 - 1
SATService/SATService/Global.cpp

@@ -197,8 +197,9 @@ namespace GLOBAL
 			WritePrivateProfileString(_T("SATService"), _T("ScriptDir"), g_stSATConfig.szScriptDir, szIniPath);
 		}
 
-		g_stSATConfig.nAdbTimeout = GetPrivateProfileInt(_T("SATService"), _T("AdbTimeout"), 120, szIniPath);
+		g_stSATConfig.dwAdbTimeout = GetPrivateProfileInt(_T("SATService"), _T("AdbTimeout"), 120000, szIniPath);
 		g_stSATConfig.dwTCPSvrPort = GetPrivateProfileInt(_T("SATService"), _T("TCPSvrPort"), 5588, szIniPath);
+		g_stSATConfig.dwTCPSvrPort = GetPrivateProfileInt(_T("SATService"), _T("ScriptTimeout"), 300000, szIniPath);
 		GetPrivateProfileString(_T("SATService"), _T("ExecuteServer"), _T(""), g_stSATConfig.szExecuteServer, MAX_PATH, szIniPath);
 		GetPrivateProfileString(_T("SATService"), _T("ExecuteSyscode"), _T(""), g_stSATConfig.szExecuteSysCode, MAX_PATH, szIniPath);
 

+ 3 - 1
SATService/SATService/Global.h

@@ -36,7 +36,7 @@ namespace GLOBAL
 	typedef struct __ST_SAT_CFG__ 
 	{
 		// adb超时断线时长;
-		int nAdbTimeout;
+		DWORD dwAdbTimeout;
 		// 脚本路径;
 		TCHAR szScriptDir[MAX_PATH];
 		// Apk接口地址;
@@ -56,6 +56,8 @@ namespace GLOBAL
 		TCHAR szExecuteSysCode[MAX_PATH];
 		// TCP服务端接口;
 		DWORD dwTCPSvrPort;
+		// 脚本超时值设置;
+		DWORD dwScriptTimeout;
 		// 这个可以忽略不要;
 		typedef struct  __ST_LD__
 		{

+ 1 - 1
SATService/SATService/SATDevices.cpp

@@ -157,7 +157,7 @@ DWORD CSATDevices::WorkThread(LPVOID lpVoid)
 #ifdef _DEBUG
 				printf("IsDevicesOffline\n");
 #endif
-				if ( GetTickCount64() - it->ulOfflineTime > s_ulEraseDuration ) {
+				if ( GetTickCount64() - it->ulOfflineTime > GLOBAL::g_stSATConfig.dwAdbTimeout ) {
 					// ÒÆ³ýÉ豸(ÐèÒªÏ̼߳ÓËø);
 					it = s_vtDevices.erase(it);
 				} else {

+ 3 - 1
SATService/SATService/SATExecutor.cpp

@@ -90,6 +90,8 @@ SATHTTP::STCase* CSATExecutor::ExecuteFreeCaseScript(SATHTTP::STTask* pTask)
 				// 用例的日志文件路径;
 				pCase->_strCaseLog = pCase->_strFileDir + "\\" + pCase->_strFileName + ".txt";
 				if ( pExcutor->InitScript(pCase->_strScriptPath, pCase->_strCaseLog, "", SUBPROCESS) ) {
+					// 设置用例对象;
+					pExcutor->SetCaseObje(pCase);
 					pExcutor->StartScript();
 					// 标记用例执行中;
 					pCase->_nExecutionState = 1;
@@ -978,7 +980,7 @@ DWORD CSATExecutor::ExecuteScriptThread(LPVOID lpVoid)
 						else {
 							// 判断是否超时;
 							ULONGLONG ulCurTickCount = GetTickCount64();
-							if ( ulCurTickCount - pExcutor->GetActiveTickCount() > 1800000) {	
+							if ( ulCurTickCount - pExcutor->GetActiveTickCount() > GLOBAL::g_stSATConfig.dwScriptTimeout ) {	
 								// 超时中断;
 								pCase->_nExecutionState = 3;
 								// 上报用例结果;

+ 9 - 1
SATService/SATService/ScriptExecutor.cpp

@@ -44,12 +44,14 @@ CScriptExecutor::CScriptExecutor(void)
 	m_dwThreadId = 0;
 	m_dwSubprocessId = 0;
 	m_bRuned = FALSE;
-
+	m_pCaseObj = NULL;
 	m_ulStartTickCount = 0;
 }
 
 CScriptExecutor::~CScriptExecutor(void)
 {
+	EndWorkThread();
+	EndLogThread();
 }
 
 DWORD CScriptExecutor::_WorkerThread(LPVOID lpParam)
@@ -108,6 +110,9 @@ DWORD CScriptExecutor::_LogExportThread(LPVOID lpParam)
 
 			that->m_ulStartTickCount = GetTickCount64();
 			GLOBAL::WritePythonLog(that->m_szLogPath, chBuf);
+			// 更新日志时间;
+			if ( that->m_pCaseObj )
+				that->m_pCaseObj->_ulStartTickCount = GetTickCount64();
 			memset(chBuf, 0, BUFSIZE);
 		} while (!that->m_bStopLogExport);
 	}
@@ -125,6 +130,9 @@ DWORD CScriptExecutor::_LogExportThread(LPVOID lpParam)
 
 			that->m_ulStartTickCount = GetTickCount64();
 			GLOBAL::WritePythonLog(that->m_szLogPath, chBuf);
+			// 更新日志时间;
+			if ( that->m_pCaseObj )
+				that->m_pCaseObj->_ulStartTickCount = GetTickCount64();
 			memset(chBuf, 0, BUFSIZE);
 		} while (!that->m_bStopLogExport);
 	}

+ 3 - 0
SATService/SATService/ScriptExecutor.h

@@ -17,6 +17,7 @@ public:
 	~CScriptExecutor(void);
 
 protected:
+	SATHTTP::STCase *m_pCaseObj;						// 用例对象;
 	HANDLE			m_hWorkThread;						// 事件句柄;
 	HANDLE			m_hWorkEvent;						// 线程事件;
 	HANDLE			m_hLogThread;						// 事件句柄;
@@ -106,6 +107,8 @@ public:
 		else
 			return m_dwThreadId;
 	}
+	// 设置用例对象;
+	void SetCaseObje(SATHTTP::STCase *pObj){ m_pCaseObj = pObj;}
 	// 获取活动的CPU时间;
 	ULONGLONG GetActiveTickCount() const { return m_ulStartTickCount;}
 };