|  | @@ -2,7 +2,6 @@
 | 
	
		
			
				|  |  |  #include "SATExecutor.h"
 | 
	
		
			
				|  |  |  #include "ScriptExecutor.h"
 | 
	
		
			
				|  |  |  #include "CharEncoding.h"
 | 
	
		
			
				|  |  | -#include "SATDevices.h"
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  CSATExecutor::CSATExecutor(void)
 | 
	
		
			
				|  |  |  {
 | 
	
	
		
			
				|  | @@ -17,10 +16,10 @@ CSATExecutor::~CSATExecutor(void)
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -bool CSATExecutor::IsTaskExist(SATParameters::STTask &task)
 | 
	
		
			
				|  |  | +bool CSATExecutor::IsTaskExist(SATHTTP::STTask &task)
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  |  	bool found = false;
 | 
	
		
			
				|  |  | -	std::list<SATParameters::STTask>::iterator it = m_vtTask.begin();
 | 
	
		
			
				|  |  | +	std::list<SATHTTP::STTask>::iterator it = m_vtTask.begin();
 | 
	
		
			
				|  |  |  	for ( ; it != m_vtTask.end(); it++ ) {
 | 
	
		
			
				|  |  |  		// 不要使用nTaskId,这个值没啥用;
 | 
	
		
			
				|  |  |  		if ( it->Id == task.Id ) {
 | 
	
	
		
			
				|  | @@ -32,9 +31,9 @@ bool CSATExecutor::IsTaskExist(SATParameters::STTask &task)
 | 
	
		
			
				|  |  |  	return found;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -SATParameters::STTask* CSATExecutor::IsThereATaskInProcess()
 | 
	
		
			
				|  |  | +SATHTTP::STTask* CSATExecutor::IsThereATaskInProcess()
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  | -	std::list<SATParameters::STTask>::iterator it = m_vtTask.begin();
 | 
	
		
			
				|  |  | +	std::list<SATHTTP::STTask>::iterator it = m_vtTask.begin();
 | 
	
		
			
				|  |  |  	for ( ; it != m_vtTask.end(); it++ ) {
 | 
	
		
			
				|  |  |  		if ( it->_nExecutionState == 1 ) {
 | 
	
		
			
				|  |  |  			return &(*it);
 | 
	
	
		
			
				|  | @@ -44,9 +43,9 @@ SATParameters::STTask* CSATExecutor::IsThereATaskInProcess()
 | 
	
		
			
				|  |  |  	return NULL;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -SATParameters::STTask* CSATExecutor::GetFreeTask()
 | 
	
		
			
				|  |  | +SATHTTP::STTask* CSATExecutor::GetFreeTask()
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  | -	std::list<SATParameters::STTask>::iterator it = m_vtTask.begin();
 | 
	
		
			
				|  |  | +	std::list<SATHTTP::STTask>::iterator it = m_vtTask.begin();
 | 
	
		
			
				|  |  |  	for ( ; it != m_vtTask.end(); it++ ) {
 | 
	
		
			
				|  |  |  		if ( it->_nExecutionState == 0 ) {
 | 
	
		
			
				|  |  |  			return &(*it);
 | 
	
	
		
			
				|  | @@ -56,9 +55,9 @@ SATParameters::STTask* CSATExecutor::GetFreeTask()
 | 
	
		
			
				|  |  |  	return NULL;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -SATParameters::STCase* CSATExecutor::IsCaseScriptProcess(std::vector<SATParameters::STCase> &vtCases)
 | 
	
		
			
				|  |  | +SATHTTP::STCase* CSATExecutor::IsCaseScriptProcess(std::vector<SATHTTP::STCase> &vtCases)
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  | -	std::vector<SATParameters::STCase>::iterator it = vtCases.begin();
 | 
	
		
			
				|  |  | +	std::vector<SATHTTP::STCase>::iterator it = vtCases.begin();
 | 
	
		
			
				|  |  |  	for ( ; it != vtCases.end(); it++) {
 | 
	
		
			
				|  |  |  		if ( it->_nExecutionState == 1 ) {
 | 
	
		
			
				|  |  |  			return &(*it);
 | 
	
	
		
			
				|  | @@ -68,9 +67,9 @@ SATParameters::STCase* CSATExecutor::IsCaseScriptProcess(std::vector<SATParamete
 | 
	
		
			
				|  |  |  	return NULL;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -SATParameters::STCase* CSATExecutor::GetFreeCaseScript(std::vector<SATParameters::STCase> &vtCases)
 | 
	
		
			
				|  |  | +SATHTTP::STCase* CSATExecutor::GetFreeCaseScript(std::vector<SATHTTP::STCase> &vtCases)
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  | -	std::vector<SATParameters::STCase>::iterator it = vtCases.begin();
 | 
	
		
			
				|  |  | +	std::vector<SATHTTP::STCase>::iterator it = vtCases.begin();
 | 
	
		
			
				|  |  |  	for ( ; it != vtCases.end(); it++) {
 | 
	
		
			
				|  |  |  		if ( it->_nExecutionState == 0 ) {
 | 
	
		
			
				|  |  |  			return &(*it);
 | 
	
	
		
			
				|  | @@ -80,9 +79,9 @@ SATParameters::STCase* CSATExecutor::GetFreeCaseScript(std::vector<SATParameters
 | 
	
		
			
				|  |  |  	return NULL;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -SATParameters::STCase* CSATExecutor::ExecuteFreeCaseScript(SATParameters::STTask* pTask)
 | 
	
		
			
				|  |  | +SATHTTP::STCase* CSATExecutor::ExecuteFreeCaseScript(SATHTTP::STTask* pTask)
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  | -	SATParameters::STCase* pCase = GetFreeCaseScript(pTask->Job.vtCases);
 | 
	
		
			
				|  |  | +	SATHTTP::STCase* pCase = GetFreeCaseScript(pTask->Job.vtCases);
 | 
	
		
			
				|  |  |  	if (pCase) {		
 | 
	
		
			
				|  |  |  		if ( !pCase->_pExcutor ) {
 | 
	
		
			
				|  |  |  			CScriptExecutor *pExcutor = new CScriptExecutor(); 
 | 
	
	
		
			
				|  | @@ -114,15 +113,21 @@ SATParameters::STCase* CSATExecutor::ExecuteFreeCaseScript(SATParameters::STTask
 | 
	
		
			
				|  |  |  	return pCase;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +void CSATExecutor::AddDevices(SATDEV::STDevice &stDevice)
 | 
	
		
			
				|  |  | +{
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  bool CSATExecutor::Login(std::string user, std::string password, std::string actuator, bool bLogin /*= true*/)
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  | -	std::string url = Global::g_stSATConfig.szExecuteServer;
 | 
	
		
			
				|  |  | +	std::string url = GLOBAL::g_stSATConfig.szExecuteServer;
 | 
	
		
			
				|  |  |  	url.append("/ajaxInteractiveManage!executeLogin.action");
 | 
	
		
			
				|  |  |  	// 填充数据;
 | 
	
		
			
				|  |  |  	m_stLoginReq.strUserName = user;
 | 
	
		
			
				|  |  | +	m_stLoginReq.strPassword = password;
 | 
	
		
			
				|  |  |  	m_stLoginReq.strStatus = bLogin ? "0" : "1";   // 0表示登录;
 | 
	
		
			
				|  |  |  	m_stLoginReq.strDeleteStatus = "";
 | 
	
		
			
				|  |  | -	m_stLoginReq.strIP = Global::GetLocalAddress();//"10.118.158.175";
 | 
	
		
			
				|  |  | +	m_stLoginReq.strIP = GLOBAL::g_szIPAddress;
 | 
	
		
			
				|  |  |  	m_stLoginReq.strStorage = "";
 | 
	
		
			
				|  |  |  	if ( bLogin ) {
 | 
	
		
			
				|  |  |  		m_stLoginReq.strDisconnectTime = "";
 | 
	
	
		
			
				|  | @@ -133,20 +138,15 @@ bool CSATExecutor::Login(std::string user, std::string password, std::string act
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  	// 执行器名称;
 | 
	
		
			
				|  |  |  	m_stLoginReq.strExecuteName = m_strActuatorName = actuator;
 | 
	
		
			
				|  |  | -	if ( Global::g_vtMac.size() )
 | 
	
		
			
				|  |  | -		m_stLoginReq.strMAC = Global::g_vtMac[0].szMacAddress; // 取第一个MAC地址;
 | 
	
		
			
				|  |  | -	else
 | 
	
		
			
				|  |  | -		m_stLoginReq.strMAC = "";
 | 
	
		
			
				|  |  | -	
 | 
	
		
			
				|  |  | -	m_stLoginReq.strPassword = password;
 | 
	
		
			
				|  |  | +	// 执行器PC物理地址;
 | 
	
		
			
				|  |  | +	m_stLoginReq.strMAC = GLOBAL::g_strMacs;	
 | 
	
		
			
				|  |  |  	m_stLoginReq.strCPU = "";
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -	if ( ::Login(url, m_stLoginReq, m_stLoginResp) )
 | 
	
		
			
				|  |  | -	{
 | 
	
		
			
				|  |  | +	if ( ::Login(url, m_stLoginReq, m_stLoginResp) ) {
 | 
	
		
			
				|  |  |  #ifdef _DEBUG
 | 
	
		
			
				|  |  |  	OutputDebugString("登录成功\n");
 | 
	
		
			
				|  |  |  #endif
 | 
	
		
			
				|  |  | -		Global::WriteTextLog("登录成功");
 | 
	
		
			
				|  |  | +		GLOBAL::WriteTextLog("登录成功");
 | 
	
		
			
				|  |  |  		m_bLogin = TRUE;
 | 
	
		
			
				|  |  |  		return true;
 | 
	
		
			
				|  |  |  	}
 | 
	
	
		
			
				|  | @@ -154,7 +154,7 @@ bool CSATExecutor::Login(std::string user, std::string password, std::string act
 | 
	
		
			
				|  |  |  #ifdef _DEBUG
 | 
	
		
			
				|  |  |  	OutputDebugString("登录失败\n");
 | 
	
		
			
				|  |  |  #endif
 | 
	
		
			
				|  |  | -	Global::WriteTextLog("登录失败");
 | 
	
		
			
				|  |  | +	GLOBAL::WriteTextLog("登录失败");
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	return false;
 | 
	
		
			
				|  |  |  }
 | 
	
	
		
			
				|  | @@ -166,7 +166,7 @@ bool CSATExecutor::Logout(std::string user, std::string password)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  bool CSATExecutor::UpdateDevice()
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  | -	SATParameters::STDevice stDevice;
 | 
	
		
			
				|  |  | +	SATHTTP::STDevice stDevice;
 | 
	
		
			
				|  |  |  	stDevice.strStatus = "0";	// 0表示设备空闲; 1表示设备忙碌
 | 
	
		
			
				|  |  |  	stDevice.strDeviceSerial = "192.168.1.119:5555";
 | 
	
		
			
				|  |  |  	stDevice.strHardwareVersion = "SATHardwareVersion";
 | 
	
	
		
			
				|  | @@ -185,9 +185,9 @@ bool CSATExecutor::UpdateDevice()
 | 
	
		
			
				|  |  |  	stDevice.strLastTimeConnected = "2019-12-16 10:16:01";
 | 
	
		
			
				|  |  |  	stDevice.strElectric = "";
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -	SATParameters::STUpdateDeviceReq stUpdateDeviceReq;
 | 
	
		
			
				|  |  | -	SATParameters::STUpdateDeviceResp stUpdateDeviceResp;
 | 
	
		
			
				|  |  | -	std::string url = Global::g_stSATConfig.szExecuteServer;
 | 
	
		
			
				|  |  | +	SATHTTP::STUpdateDeviceReq stUpdateDeviceReq;
 | 
	
		
			
				|  |  | +	SATHTTP::STUpdateDeviceResp stUpdateDeviceResp;
 | 
	
		
			
				|  |  | +	std::string url = GLOBAL::g_stSATConfig.szExecuteServer;
 | 
	
		
			
				|  |  |  	url.append("/ajaxInteractiveManage!updateDeviceMessage.action");
 | 
	
		
			
				|  |  |  	
 | 
	
		
			
				|  |  |  	stUpdateDeviceReq.strStatus = "0";
 | 
	
	
		
			
				|  | @@ -196,8 +196,8 @@ bool CSATExecutor::UpdateDevice()
 | 
	
		
			
				|  |  |  	stUpdateDeviceReq.strStorage = "228092536KB";
 | 
	
		
			
				|  |  |  	stUpdateDeviceReq.strRunnerName = "SAT-Admin";
 | 
	
		
			
				|  |  |  	//stUpdateDeviceReq.strMAC = "40:16:7e:23:10:53";
 | 
	
		
			
				|  |  | -	if ( Global::g_vtMac.size() )
 | 
	
		
			
				|  |  | -		stUpdateDeviceReq.strMAC = Global::g_vtMac[0].szMacAddress; // 取第一个MAC地址;
 | 
	
		
			
				|  |  | +	if ( GLOBAL::g_vtMac.size() )
 | 
	
		
			
				|  |  | +		stUpdateDeviceReq.strMAC = GLOBAL::g_vtMac[0].szMacAddress; // 取第一个MAC地址;
 | 
	
		
			
				|  |  |  	else
 | 
	
		
			
				|  |  |  		stUpdateDeviceReq.strMAC = "";
 | 
	
		
			
				|  |  |  	stUpdateDeviceReq.strReportType = "1";
 | 
	
	
		
			
				|  | @@ -215,14 +215,14 @@ bool CSATExecutor::UpdateDevice()
 | 
	
		
			
				|  |  |  	return true;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -bool CSATExecutor::NotifyTaskStart(SATParameters::STTask* pTask)
 | 
	
		
			
				|  |  | +bool CSATExecutor::NotifyTaskStart(SATHTTP::STTask* pTask)
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  |  	if ( !pTask )
 | 
	
		
			
				|  |  |  		return false;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -	SATParameters::STNotifyJobStartReq stNotifyJobStartReq;
 | 
	
		
			
				|  |  | -	SATParameters::STNotifyJobStartResp stNotifyJobStartResp;
 | 
	
		
			
				|  |  | -	std::string url = Global::g_stSATConfig.szExecuteServer;
 | 
	
		
			
				|  |  | +	SATHTTP::STNotifyJobStartReq stNotifyJobStartReq;
 | 
	
		
			
				|  |  | +	SATHTTP::STNotifyJobStartResp stNotifyJobStartResp;
 | 
	
		
			
				|  |  | +	std::string url = GLOBAL::g_stSATConfig.szExecuteServer;
 | 
	
		
			
				|  |  |  	url.append("/ajaxInteractiveManage!setResult.action");
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	TCHAR szValue[36] = {0};
 | 
	
	
		
			
				|  | @@ -258,14 +258,14 @@ bool CSATExecutor::NotifyTaskStart(SATParameters::STTask* pTask)
 | 
	
		
			
				|  |  |  	return false;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -bool CSATExecutor::UploadCaseImg(SATParameters::STTask* pTask, SATParameters::STCase *pCase, std::string img)
 | 
	
		
			
				|  |  | +bool CSATExecutor::UploadCaseImg(SATHTTP::STTask* pTask, SATHTTP::STCase *pCase, std::string img)
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  |  	TCHAR szValue[MAX_PATH] = {0};
 | 
	
		
			
				|  |  | -	std::string url = Global::g_stSATConfig.szExecuteServer;
 | 
	
		
			
				|  |  | +	std::string url = GLOBAL::g_stSATConfig.szExecuteServer;
 | 
	
		
			
				|  |  |  	url.append("/ajaxInteractiveManage!saveResultImg.action");
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -	SATParameters::STSaveImgReq stSaveImgReq;
 | 
	
		
			
				|  |  | -	SATParameters::STSaveImgResp stSaveImgResp;
 | 
	
		
			
				|  |  | +	SATHTTP::STSaveImgReq stSaveImgReq;
 | 
	
		
			
				|  |  | +	SATHTTP::STSaveImgResp stSaveImgResp;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	stSaveImgReq.strCaseId = pCase->strId;
 | 
	
		
			
				|  |  |  	stSaveImgReq.strCaseRepeat = "0";
 | 
	
	
		
			
				|  | @@ -295,14 +295,14 @@ bool CSATExecutor::UploadCaseImg(SATParameters::STTask* pTask, SATParameters::ST
 | 
	
		
			
				|  |  |  	return false;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -bool CSATExecutor::UploadCaseLog(SATParameters::STTask* pTask, SATParameters::STCase *pCase)
 | 
	
		
			
				|  |  | +bool CSATExecutor::UploadCaseLog(SATHTTP::STTask* pTask, SATHTTP::STCase *pCase)
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  |  	TCHAR szValue[MAX_PATH] = {0};
 | 
	
		
			
				|  |  | -	std::string url = Global::g_stSATConfig.szExecuteServer;
 | 
	
		
			
				|  |  | +	std::string url = GLOBAL::g_stSATConfig.szExecuteServer;
 | 
	
		
			
				|  |  |  	url.append("/ajaxInteractiveManage!saveCaseOrTaskLog.action");
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -	SATParameters::STSaveLogReq stSaveLogReq;
 | 
	
		
			
				|  |  | -	SATParameters::STSaveLogResp stSaveLogResp;
 | 
	
		
			
				|  |  | +	SATHTTP::STSaveLogReq stSaveLogReq;
 | 
	
		
			
				|  |  | +	SATHTTP::STSaveLogResp stSaveLogResp;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	stSaveLogReq.strCaseId = pCase->strId;
 | 
	
		
			
				|  |  |  	// 执行ID;
 | 
	
	
		
			
				|  | @@ -323,14 +323,14 @@ bool CSATExecutor::UploadCaseLog(SATParameters::STTask* pTask, SATParameters::ST
 | 
	
		
			
				|  |  |  	return false;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -bool CSATExecutor::ReportCaseItemFinish(SATParameters::STTask* pTask, SATParameters::STCase *pCase, STCaseItem &caseItem)
 | 
	
		
			
				|  |  | +bool CSATExecutor::ReportCaseItemFinish(SATHTTP::STTask* pTask, SATHTTP::STCase *pCase, STCaseItem &caseItem)
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  |  	TCHAR szValue[MAX_PATH] = {0};
 | 
	
		
			
				|  |  | -	std::string url = Global::g_stSATConfig.szExecuteServer;
 | 
	
		
			
				|  |  | +	std::string url = GLOBAL::g_stSATConfig.szExecuteServer;
 | 
	
		
			
				|  |  |  	url.append("/ajaxInteractiveManage!setResultList.action");
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -	SATParameters::STJobProcessReq stJobProcessReq;
 | 
	
		
			
				|  |  | -	SATParameters::STJobProcessResp stJobProcessResp;
 | 
	
		
			
				|  |  | +	SATHTTP::STJobProcessReq stJobProcessReq;
 | 
	
		
			
				|  |  | +	SATHTTP::STJobProcessResp stJobProcessResp;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	stJobProcessReq.strResultState = caseItem.result ? "1" : "0";
 | 
	
		
			
				|  |  |  	stJobProcessReq.strCaseScene = "";
 | 
	
	
		
			
				|  | @@ -416,14 +416,14 @@ bool CSATExecutor::ReportCaseItemFinish(SATParameters::STTask* pTask, SATParamet
 | 
	
		
			
				|  |  |  	return false;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -bool CSATExecutor::ReportCaseFinish(SATParameters::STTask* pTask, SATParameters::STCase *pCase)
 | 
	
		
			
				|  |  | +bool CSATExecutor::ReportCaseFinish(SATHTTP::STTask* pTask, SATHTTP::STCase *pCase)
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  |  	TCHAR szValue[MAX_PATH] = {0};
 | 
	
		
			
				|  |  | -	std::string url = Global::g_stSATConfig.szExecuteServer;
 | 
	
		
			
				|  |  | +	std::string url = GLOBAL::g_stSATConfig.szExecuteServer;
 | 
	
		
			
				|  |  |  	url.append("/ajaxInteractiveManage!setResultList.action");
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -	SATParameters::STJobProcessReq stJobProcessReq;
 | 
	
		
			
				|  |  | -	SATParameters::STJobProcessResp stJobProcessResp;
 | 
	
		
			
				|  |  | +	SATHTTP::STJobProcessReq stJobProcessReq;
 | 
	
		
			
				|  |  | +	SATHTTP::STJobProcessResp stJobProcessResp;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	// 上报用例结果:0表示脚本成功执行,	1表示脚本出错或超时;
 | 
	
		
			
				|  |  |  	if ( pCase->_nExecutionState == 2 )
 | 
	
	
		
			
				|  | @@ -493,7 +493,7 @@ bool CSATExecutor::ReportCaseFinish(SATParameters::STTask* pTask, SATParameters:
 | 
	
		
			
				|  |  |  	return false;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -bool CSATExecutor::ReportCaseResult(SATParameters::STTask* pTask, SATParameters::STCase *pCase)
 | 
	
		
			
				|  |  | +bool CSATExecutor::ReportCaseResult(SATHTTP::STTask* pTask, SATHTTP::STCase *pCase)
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  |  	// 获取xml文件内容;
 | 
	
		
			
				|  |  |  	std::string xmlpath = "D:\\SAT\\results\\detail\\";
 | 
	
	
		
			
				|  | @@ -506,10 +506,10 @@ bool CSATExecutor::ReportCaseResult(SATParameters::STTask* pTask, SATParameters:
 | 
	
		
			
				|  |  |  	
 | 
	
		
			
				|  |  |  	int nIndex = 1;
 | 
	
		
			
				|  |  |  	TCHAR szValue[MAX_PATH] = {0};
 | 
	
		
			
				|  |  | -	std::string url = Global::g_stSATConfig.szExecuteServer;
 | 
	
		
			
				|  |  | +	std::string url = GLOBAL::g_stSATConfig.szExecuteServer;
 | 
	
		
			
				|  |  |  	url.append("/ajaxInteractiveManage!setResultList.action");
 | 
	
		
			
				|  |  | -	SATParameters::STJobProcessReq stJobProcessReq;
 | 
	
		
			
				|  |  | -	SATParameters::STJobProcessResp stJobProcessResp;
 | 
	
		
			
				|  |  | +	SATHTTP::STJobProcessReq stJobProcessReq;
 | 
	
		
			
				|  |  | +	SATHTTP::STJobProcessResp stJobProcessResp;
 | 
	
		
			
				|  |  |  	// 遍历所有用例测试项;
 | 
	
		
			
				|  |  |  	std::vector<STCaseItem>::iterator it = vtCaseItem.begin();
 | 
	
		
			
				|  |  |  	for (; it != vtCaseItem.end(); it++ )
 | 
	
	
		
			
				|  | @@ -527,14 +527,14 @@ bool CSATExecutor::ReportCaseResult(SATParameters::STTask* pTask, SATParameters:
 | 
	
		
			
				|  |  |  	return true;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -bool CSATExecutor::UploadTaskLog(SATParameters::STTask* pTask)
 | 
	
		
			
				|  |  | +bool CSATExecutor::UploadTaskLog(SATHTTP::STTask* pTask)
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  |  	TCHAR szValue[MAX_PATH] = {0};
 | 
	
		
			
				|  |  | -	std::string url = Global::g_stSATConfig.szExecuteServer;
 | 
	
		
			
				|  |  | +	std::string url = GLOBAL::g_stSATConfig.szExecuteServer;
 | 
	
		
			
				|  |  |  	url.append("/ajaxInteractiveManage!saveCaseOrTaskLog.action");
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -	SATParameters::STSaveLogReq stSaveLogReq;
 | 
	
		
			
				|  |  | -	SATParameters::STSaveLogResp stSaveLogResp;
 | 
	
		
			
				|  |  | +	SATHTTP::STSaveLogReq stSaveLogReq;
 | 
	
		
			
				|  |  | +	SATHTTP::STSaveLogResp stSaveLogResp;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	stSaveLogReq.strCaseId = "";
 | 
	
		
			
				|  |  |  	// 执行ID;
 | 
	
	
		
			
				|  | @@ -555,14 +555,14 @@ bool CSATExecutor::UploadTaskLog(SATParameters::STTask* pTask)
 | 
	
		
			
				|  |  |  	return false;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -bool CSATExecutor::ReportTaskStart(SATParameters::STTask* pTask)
 | 
	
		
			
				|  |  | +bool CSATExecutor::ReportTaskStart(SATHTTP::STTask* pTask)
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  |  	TCHAR szValue[MAX_PATH] = {0};
 | 
	
		
			
				|  |  | -	std::string url = Global::g_stSATConfig.szExecuteServer;
 | 
	
		
			
				|  |  | +	std::string url = GLOBAL::g_stSATConfig.szExecuteServer;
 | 
	
		
			
				|  |  |  	url.append("/ajaxInteractiveManage!setResultList.action");
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -	SATParameters::STJobProcessReq stJobProcessReq;
 | 
	
		
			
				|  |  | -	SATParameters::STJobProcessResp stJobProcessResp;
 | 
	
		
			
				|  |  | +	SATHTTP::STJobProcessReq stJobProcessReq;
 | 
	
		
			
				|  |  | +	SATHTTP::STJobProcessResp stJobProcessResp;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	// 需要处理###
 | 
	
		
			
				|  |  |  	stJobProcessReq.strResultState = "";	// 脚本执行中,认为fail;
 | 
	
	
		
			
				|  | @@ -627,14 +627,14 @@ bool CSATExecutor::ReportTaskStart(SATParameters::STTask* pTask)
 | 
	
		
			
				|  |  |  	return false;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -bool CSATExecutor::ReportTaskFinish(SATParameters::STTask* pTask)
 | 
	
		
			
				|  |  | +bool CSATExecutor::ReportTaskFinish(SATHTTP::STTask* pTask)
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  |  	TCHAR szValue[MAX_PATH] = {0};
 | 
	
		
			
				|  |  | -	std::string url = Global::g_stSATConfig.szExecuteServer;
 | 
	
		
			
				|  |  | +	std::string url = GLOBAL::g_stSATConfig.szExecuteServer;
 | 
	
		
			
				|  |  |  	url.append("/ajaxInteractiveManage!setResultList.action");
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -	SATParameters::STJobProcessReq stJobProcessReq;
 | 
	
		
			
				|  |  | -	SATParameters::STJobProcessResp stJobProcessResp;
 | 
	
		
			
				|  |  | +	SATHTTP::STJobProcessReq stJobProcessReq;
 | 
	
		
			
				|  |  | +	SATHTTP::STJobProcessResp stJobProcessResp;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	// 需要处理###
 | 
	
		
			
				|  |  |  	stJobProcessReq.strResultState = "0";	// 脚本执行中,认为fail;
 | 
	
	
		
			
				|  | @@ -703,8 +703,7 @@ bool CSATExecutor::GetCaseXMLResult(std::string xmlpath, std::vector<STCaseItem>
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  |  	// 解析xml;
 | 
	
		
			
				|  |  |  	tinyxml2::XMLDocument doc;
 | 
	
		
			
				|  |  | -	if (tinyxml2::XML_SUCCESS != doc.LoadFile(xmlpath.c_str()) )
 | 
	
		
			
				|  |  | -	{
 | 
	
		
			
				|  |  | +	if (tinyxml2::XML_SUCCESS != doc.LoadFile(xmlpath.c_str()) ) {
 | 
	
		
			
				|  |  |  		return false;
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -716,14 +715,11 @@ bool CSATExecutor::GetCaseXMLResult(std::string xmlpath, std::vector<STCaseItem>
 | 
	
		
			
				|  |  |  		return false;
 | 
	
		
			
				|  |  |  	
 | 
	
		
			
				|  |  |  	tinyxml2::XMLElement *pXmlElent = pXmlRoot->FirstChildElement();
 | 
	
		
			
				|  |  | -	while (pXmlElent)
 | 
	
		
			
				|  |  | -	{
 | 
	
		
			
				|  |  | -		if (_tcsicmp(pXmlElent->Value(), _T("item")) == 0)
 | 
	
		
			
				|  |  | -		{
 | 
	
		
			
				|  |  | +	while (pXmlElent) {
 | 
	
		
			
				|  |  | +		if (_tcsicmp(pXmlElent->Value(), _T("item")) == 0) {
 | 
	
		
			
				|  |  |  			STCaseItem cItem;
 | 
	
		
			
				|  |  |  			tinyxml2::XMLElement *pItem = pXmlElent->FirstChildElement();
 | 
	
		
			
				|  |  | -			while (pItem)
 | 
	
		
			
				|  |  | -			{
 | 
	
		
			
				|  |  | +			while (pItem) {
 | 
	
		
			
				|  |  |  				if (_tcsicmp(pItem->Value(), _T("name")) == 0)
 | 
	
		
			
				|  |  |  				{
 | 
	
		
			
				|  |  |  					cItem.name = pItem->GetText();
 | 
	
	
		
			
				|  | @@ -766,22 +762,19 @@ bool CSATExecutor::GetCaseXMLResult(std::string xmlpath, std::vector<STCaseItem>
 | 
	
		
			
				|  |  |  void CSATExecutor::StartWork()
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  |  	m_hEventHearbeat = CreateEvent(NULL, TRUE, FALSE, NULL);
 | 
	
		
			
				|  |  | -	if ( m_hEventHearbeat == NULL )
 | 
	
		
			
				|  |  | -	{
 | 
	
		
			
				|  |  | +	if ( m_hEventHearbeat == NULL ) {
 | 
	
		
			
				|  |  |  		_tprintf_s(_T("创建事件失败\n"));
 | 
	
		
			
				|  |  |  		return;
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	m_hEventExcuteScript = CreateEvent(NULL, TRUE, FALSE, NULL);
 | 
	
		
			
				|  |  | -	if ( m_hEventExcuteScript == NULL )
 | 
	
		
			
				|  |  | -	{
 | 
	
		
			
				|  |  | +	if ( m_hEventExcuteScript == NULL ) {
 | 
	
		
			
				|  |  |  		_tprintf_s(_T("创建事件失败2\n"));
 | 
	
		
			
				|  |  |  		return;
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	m_hThreadHearbeat = CreateThread(NULL, 0, HearbeatThread, this, 0, NULL);
 | 
	
		
			
				|  |  | -	if ( m_hThreadHearbeat == NULL)
 | 
	
		
			
				|  |  | -	{
 | 
	
		
			
				|  |  | +	if ( m_hThreadHearbeat == NULL) {
 | 
	
		
			
				|  |  |  		SetEvent(m_hEventHearbeat);
 | 
	
		
			
				|  |  |  		SetEvent(m_hEventExcuteScript);
 | 
	
		
			
				|  |  |  		CloseHandle(m_hEventHearbeat);
 | 
	
	
		
			
				|  | @@ -793,8 +786,7 @@ void CSATExecutor::StartWork()
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	m_hThreadExcuteScript = CreateThread(NULL, 0, ExecuteScriptThread, this, 0, NULL);
 | 
	
		
			
				|  |  | -	if ( m_hThreadExcuteScript == NULL )
 | 
	
		
			
				|  |  | -	{
 | 
	
		
			
				|  |  | +	if ( m_hThreadExcuteScript == NULL ) {
 | 
	
		
			
				|  |  |  		SetEvent(m_hEventHearbeat);
 | 
	
		
			
				|  |  |  		SetEvent(m_hEventExcuteScript);
 | 
	
		
			
				|  |  |  		CloseHandle(m_hEventHearbeat);
 | 
	
	
		
			
				|  | @@ -812,7 +804,41 @@ void CSATExecutor::StartWork()
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  void CSATExecutor::EndofWork()
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  | +	//////////////////////////////////////////////////////////////////////////
 | 
	
		
			
				|  |  | +	// 设置事件有信号;
 | 
	
		
			
				|  |  | +	if ( m_hEventHearbeat )
 | 
	
		
			
				|  |  | +		SetEvent(m_hEventHearbeat);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +	// 等待线程结束;
 | 
	
		
			
				|  |  | +	if ( m_hThreadHearbeat ) {
 | 
	
		
			
				|  |  | +		WaitForSingleObject(m_hThreadHearbeat, INFINITE);
 | 
	
		
			
				|  |  | +		CloseHandle(m_hThreadHearbeat);
 | 
	
		
			
				|  |  | +		m_hThreadHearbeat = NULL;
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	// 关闭事件句柄;
 | 
	
		
			
				|  |  | +	if ( m_hEventHearbeat ) {
 | 
	
		
			
				|  |  | +		CloseHandle(m_hEventHearbeat);
 | 
	
		
			
				|  |  | +		m_hEventHearbeat = NULL;
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	//////////////////////////////////////////////////////////////////////////
 | 
	
		
			
				|  |  | +	// 设置事件有信号;
 | 
	
		
			
				|  |  | +	if ( m_hEventExcuteScript )
 | 
	
		
			
				|  |  | +		SetEvent(m_hEventExcuteScript);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	// 等待线程结束;
 | 
	
		
			
				|  |  | +	if ( m_hThreadExcuteScript ) {
 | 
	
		
			
				|  |  | +		WaitForSingleObject(m_hThreadExcuteScript, INFINITE);
 | 
	
		
			
				|  |  | +		CloseHandle(m_hThreadExcuteScript);
 | 
	
		
			
				|  |  | +		m_hThreadExcuteScript = NULL;
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	// 关闭事件句柄;
 | 
	
		
			
				|  |  | +	if ( m_hEventExcuteScript ) {
 | 
	
		
			
				|  |  | +		CloseHandle(m_hEventExcuteScript);
 | 
	
		
			
				|  |  | +		m_hEventExcuteScript = NULL;
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  DWORD CSATExecutor::HearbeatThread(LPVOID lpVoid)
 | 
	
	
		
			
				|  | @@ -824,9 +850,9 @@ DWORD CSATExecutor::HearbeatThread(LPVOID lpVoid)
 | 
	
		
			
				|  |  |  		// 没有登录成功,不查询;
 | 
	
		
			
				|  |  |  		if ( !that->m_bLogin ) continue;
 | 
	
		
			
				|  |  |  		
 | 
	
		
			
				|  |  | -		SATParameters::STHeartbeatReq stHeartbeatReq;
 | 
	
		
			
				|  |  | -		SATParameters::STHeartbeatResp stHeartbeatResp;
 | 
	
		
			
				|  |  | -		std::string url = Global::g_stSATConfig.szExecuteServer;
 | 
	
		
			
				|  |  | +		SATHTTP::STHeartbeatReq stHeartbeatReq;
 | 
	
		
			
				|  |  | +		SATHTTP::STHeartbeatResp stHeartbeatResp;
 | 
	
		
			
				|  |  | +		std::string url = GLOBAL::g_stSATConfig.szExecuteServer;
 | 
	
		
			
				|  |  |  		url.append("/ajaxInteractiveManage!executeHeartbeat.action");
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  		stHeartbeatReq.strUserName = that->m_stLoginReq.strUserName;
 | 
	
	
		
			
				|  | @@ -836,20 +862,20 @@ DWORD CSATExecutor::HearbeatThread(LPVOID lpVoid)
 | 
	
		
			
				|  |  |  #ifdef _DEBUG
 | 
	
		
			
				|  |  |  			OutputDebugString("心跳查询成功\n");
 | 
	
		
			
				|  |  |  #endif
 | 
	
		
			
				|  |  | -			Global::WriteTextLog("心跳查询成功");
 | 
	
		
			
				|  |  | -			std::vector<SATParameters::STTask>::iterator it = stHeartbeatResp.vtTask.begin();
 | 
	
		
			
				|  |  | +			GLOBAL::WriteTextLog("心跳查询成功");
 | 
	
		
			
				|  |  | +			std::vector<SATHTTP::STTask>::iterator it = stHeartbeatResp.vtTask.begin();
 | 
	
		
			
				|  |  |  			for ( ; it != stHeartbeatResp.vtTask.end(); it++ ) {
 | 
	
		
			
				|  |  |  				if (!that->IsTaskExist(*it)) {
 | 
	
		
			
				|  |  |  					// 将任务压入队列中;
 | 
	
		
			
				|  |  |  					AutoThreadSection ats(&that->m_csTask);
 | 
	
		
			
				|  |  |  					// 同时下载任务;
 | 
	
		
			
				|  |  | -					std::string host = Global::g_stSATConfig.szCaseServer;
 | 
	
		
			
				|  |  | +					std::string host = GLOBAL::g_stSATConfig.szCaseServer;
 | 
	
		
			
				|  |  |  					std::string url = host + "/ajaxInteractiveManage!getCaseFileListUrl.action";
 | 
	
		
			
				|  |  | -					std::vector<SATParameters::STCase>::iterator _case = it->Job.vtCases.begin();
 | 
	
		
			
				|  |  | +					std::vector<SATHTTP::STCase>::iterator _case = it->Job.vtCases.begin();
 | 
	
		
			
				|  |  |  					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) ) {
 | 
	
		
			
				|  |  | +						SATHTTP::STScriptUrlResp stScriptUrlResp;
 | 
	
		
			
				|  |  | +						if ( DownloadScript(url, _case->strId, GLOBAL::g_stSATConfig.szScriptDir, stScriptUrlResp) ) {
 | 
	
		
			
				|  |  |  							_case->_strFileDir = stScriptUrlResp._strFileDir;
 | 
	
		
			
				|  |  |  							_case->_strFileName = stScriptUrlResp._strFileName;
 | 
	
		
			
				|  |  |  							_case->_strScriptPath = stScriptUrlResp._strScripFile;
 | 
	
	
		
			
				|  | @@ -885,14 +911,14 @@ DWORD CSATExecutor::ExecuteScriptThread(LPVOID lpVoid)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	do {
 | 
	
		
			
				|  |  |  		// 是否有任务在执行;
 | 
	
		
			
				|  |  | -		SATParameters::STTask *pTask = that->IsThereATaskInProcess();
 | 
	
		
			
				|  |  | +		SATHTTP::STTask *pTask = that->IsThereATaskInProcess();
 | 
	
		
			
				|  |  |  		if ( pTask ) {// 有任务在执行中;
 | 
	
		
			
				|  |  |  			if ( pTask->_bConcurrent ) {// 并发;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  			}
 | 
	
		
			
				|  |  |  			else {// 串行;
 | 
	
		
			
				|  |  |  				// 是否有脚本用例在执行;
 | 
	
		
			
				|  |  | -				SATParameters::STCase* pCase = that->IsCaseScriptProcess(pTask->Job.vtCases);
 | 
	
		
			
				|  |  | +				SATHTTP::STCase* pCase = that->IsCaseScriptProcess(pTask->Job.vtCases);
 | 
	
		
			
				|  |  |  				if ( pCase ) {
 | 
	
		
			
				|  |  |  					CScriptExecutor *pExcutor = (CScriptExecutor*)pCase->_pExcutor;
 | 
	
		
			
				|  |  |  					if ( pExcutor ) {
 | 
	
	
		
			
				|  | @@ -934,7 +960,7 @@ DWORD CSATExecutor::ExecuteScriptThread(LPVOID lpVoid)
 | 
	
		
			
				|  |  |  				// 是否支持并发;
 | 
	
		
			
				|  |  |  				if ( pTask->_bConcurrent ) {
 | 
	
		
			
				|  |  |  					// 暂时全部一起并发;
 | 
	
		
			
				|  |  | -					std::vector<SATParameters::STCase>::iterator _case = pTask->Job.vtCases.begin();
 | 
	
		
			
				|  |  | +					std::vector<SATHTTP::STCase>::iterator _case = pTask->Job.vtCases.begin();
 | 
	
		
			
				|  |  |  					for ( ; _case != pTask->Job.vtCases.end(); _case++) {
 | 
	
		
			
				|  |  |  						if (!_case->_pExcutor) {					
 | 
	
		
			
				|  |  |  							CScriptExecutor *pExcutor = new CScriptExecutor();
 | 
	
	
		
			
				|  | @@ -953,7 +979,7 @@ DWORD CSATExecutor::ExecuteScriptThread(LPVOID lpVoid)
 | 
	
		
			
				|  |  |  				}
 | 
	
		
			
				|  |  |  				else {
 | 
	
		
			
				|  |  |  					// 是否有用例脚本在执行;
 | 
	
		
			
				|  |  | -					SATParameters::STCase* pCase = that->IsCaseScriptProcess(pTask->Job.vtCases);
 | 
	
		
			
				|  |  | +					SATHTTP::STCase* pCase = that->IsCaseScriptProcess(pTask->Job.vtCases);
 | 
	
		
			
				|  |  |  					if ( !pCase ) {
 | 
	
		
			
				|  |  |  						// 执行空闲用例脚本;
 | 
	
		
			
				|  |  |  						that->ExecuteFreeCaseScript(pTask);
 | 
	
	
		
			
				|  | @@ -966,12 +992,6 @@ DWORD CSATExecutor::ExecuteScriptThread(LPVOID lpVoid)
 | 
	
		
			
				|  |  |  				// 通知SAT服务器,脚本开始;
 | 
	
		
			
				|  |  |  				that->ReportTaskStart(pTask);
 | 
	
		
			
				|  |  |  			}	
 | 
	
		
			
				|  |  | -#ifdef _DEBUG
 | 
	
		
			
				|  |  | -			else
 | 
	
		
			
				|  |  | -			{
 | 
	
		
			
				|  |  | -				OutputDebugString("无任务可执行\n");
 | 
	
		
			
				|  |  | -			}
 | 
	
		
			
				|  |  | -#endif
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  |  	} while ( WaitForSingleObject(that->m_hEventExcuteScript, 10000) == WAIT_TIMEOUT );
 | 
	
		
			
				|  |  |  
 |