|  | @@ -129,7 +129,7 @@ SATHTTP::STCase* CSATExecutor::ExecuteFreeCaseScript(SATHTTP::STTask* pTask)
 | 
	
		
			
				|  |  |  			if ( pExcutor ) {
 | 
	
		
			
				|  |  |  				pCase->_pExcutor = pExcutor;
 | 
	
		
			
				|  |  |  				// 用例的日志文件路径;
 | 
	
		
			
				|  |  | -				pCase->_strCaseLog = pCase->_strFileDir + "\\" + pCase->_strFileName + ".txt";
 | 
	
		
			
				|  |  | +				pCase->_strCaseLog = pCase->_strFileDir + pCase->_strFileName + ".txt";
 | 
	
		
			
				|  |  |  				if ( pExcutor->InitScript(pCase->_strScriptPath, pCase->_strCaseLog, "") ) {
 | 
	
		
			
				|  |  |  					// 设置用例对象;
 | 
	
		
			
				|  |  |  					pExcutor->SetCaseObje(pCase);
 | 
	
	
		
			
				|  | @@ -341,10 +341,7 @@ bool CSATExecutor::NotifyTaskStart(SATHTTP::STTask* pTask)
 | 
	
		
			
				|  |  |  	stNotifyJobStartReq.strSignalImageUrl.append(pTask->Job.strDeviceId);
 | 
	
		
			
				|  |  |  	stNotifyJobStartReq.strSignalImageUrl = CharEncoding::ASCII2UTF8(stNotifyJobStartReq.strSignalImageUrl.c_str());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -	if ( SetResult(url, stNotifyJobStartReq, stNotifyJobStartResp) )
 | 
	
		
			
				|  |  | -	{
 | 
	
		
			
				|  |  | -		// 此处可能需要设置设备为忙碌状态;
 | 
	
		
			
				|  |  | -		// SetDeviceStatus(BUSY);
 | 
	
		
			
				|  |  | +	if ( SetResult(url, stNotifyJobStartReq, stNotifyJobStartResp) ) {
 | 
	
		
			
				|  |  |  		GLOBAL::WriteTextLog("更新任务状态成功:%s", pTask->Job.strUniqueId.c_str());
 | 
	
		
			
				|  |  |  		return true;
 | 
	
		
			
				|  |  |  	}
 | 
	
	
		
			
				|  | @@ -383,8 +380,7 @@ bool CSATExecutor::UploadCaseImg(SATHTTP::STTask* pTask, SATHTTP::STCase *pCase,
 | 
	
		
			
				|  |  |  	stSaveImgReq.strUploads = img;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	// 上传用例图片;
 | 
	
		
			
				|  |  | -	if ( SaveResultImg(url, stSaveImgReq, stSaveImgResp) )
 | 
	
		
			
				|  |  | -	{
 | 
	
		
			
				|  |  | +	if ( SaveResultImg(url, stSaveImgReq, stSaveImgResp) ) {
 | 
	
		
			
				|  |  |  		GLOBAL::WriteTextLog("上传图片成功:任务=%s, 用例=%s, 图片=%s", pTask->Job.strUniqueId.c_str(), pCase->strCaseName.c_str(), img.c_str());
 | 
	
		
			
				|  |  |  		return true;
 | 
	
		
			
				|  |  |  	}
 | 
	
	
		
			
				|  | @@ -414,8 +410,7 @@ bool CSATExecutor::UploadCaseLog(SATHTTP::STTask* pTask, SATHTTP::STCase *pCase)
 | 
	
		
			
				|  |  |  	stSaveLogReq.strUserId = pTask->Job.strUserId;
 | 
	
		
			
				|  |  |  	// 要上传的日志文件;
 | 
	
		
			
				|  |  |  	stSaveLogReq.strUploads = pCase->_strCaseLog;
 | 
	
		
			
				|  |  | -	if ( SaveCaseOrTaskLog(url, stSaveLogReq, stSaveLogResp) )
 | 
	
		
			
				|  |  | -	{
 | 
	
		
			
				|  |  | +	if ( SaveCaseOrTaskLog(url, stSaveLogReq, stSaveLogResp) ) {
 | 
	
		
			
				|  |  |  		GLOBAL::WriteTextLog("上传日志成功:任务=%s, 用例=%s, 日志=%s", pTask->Job.strUniqueId.c_str(), pCase->strCaseName.c_str(), pCase->_strCaseLog.c_str());
 | 
	
		
			
				|  |  |  		return true;
 | 
	
		
			
				|  |  |  	}
 | 
	
	
		
			
				|  | @@ -475,11 +470,9 @@ bool CSATExecutor::ReportCaseItemFinish(SATHTTP::STTask* pTask, SATHTTP::STCase
 | 
	
		
			
				|  |  |  	//stJobProcessReq.strFailedReason = CharEncoding::UTF82ASCII(caseItem.remark.c_str());
 | 
	
		
			
				|  |  |  	//stJobProcessReq.strFailedReason = (char*)CharEncoding::UTF82UNICODE(caseItem.remark.c_str());
 | 
	
		
			
				|  |  |  	stJobProcessReq.strFailedReason = caseItem.remark;
 | 
	
		
			
				|  |  | -	for (std::vector<std::string>::iterator it = caseItem.imgs.begin(); it != caseItem.imgs.end(); it++ )
 | 
	
		
			
				|  |  | -	{
 | 
	
		
			
				|  |  | +	for (std::vector<std::string>::iterator it = caseItem.imgs.begin(); it != caseItem.imgs.end(); it++ ) {
 | 
	
		
			
				|  |  |  		int npos = it->find_last_of('/');
 | 
	
		
			
				|  |  | -		if ( std::string::npos != npos )
 | 
	
		
			
				|  |  | -		{
 | 
	
		
			
				|  |  | +		if ( std::string::npos != npos ) {
 | 
	
		
			
				|  |  |  			stJobProcessReq.strImgName.append(it->substr(npos+1));
 | 
	
		
			
				|  |  |  			stJobProcessReq.strImgName.append("&");
 | 
	
		
			
				|  |  |  		}
 | 
	
	
		
			
				|  | @@ -507,14 +500,12 @@ bool CSATExecutor::ReportCaseItemFinish(SATHTTP::STTask* pTask, SATHTTP::STCase
 | 
	
		
			
				|  |  |  	stJobProcessReq.strResultType = "4";		// reportActionFinish;
 | 
	
		
			
				|  |  |  	stJobProcessReq.strOperationStep = "";
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -	if ( SetResultList(url, stJobProcessReq, stJobProcessResp) )
 | 
	
		
			
				|  |  | -	{
 | 
	
		
			
				|  |  | +	if ( SetResultList(url, stJobProcessReq, stJobProcessResp) ) {
 | 
	
		
			
				|  |  |  		GLOBAL::WriteTextLog("上传【用例测试项】结果完成【成功】:任务=%s, 用例=%s", pTask->Job.strUniqueId.c_str(), pCase->strCaseName.c_str());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  		// 再上传图片;
 | 
	
		
			
				|  |  |  		std::string img;
 | 
	
		
			
				|  |  | -		for (std::vector<std::string>::iterator it = caseItem.imgs.begin(); it != caseItem.imgs.end(); it++ )
 | 
	
		
			
				|  |  | -		{
 | 
	
		
			
				|  |  | +		for (std::vector<std::string>::iterator it = caseItem.imgs.begin(); it != caseItem.imgs.end(); it++ ) {
 | 
	
		
			
				|  |  |  			img = GLOBAL::g_stSATConfig.szCaseResultDir;
 | 
	
		
			
				|  |  |  			img.append(it->substr(3));
 | 
	
		
			
				|  |  |  			img = GLOBAL::Replace(img, "/", "\\");
 | 
	
	
		
			
				|  | @@ -540,12 +531,10 @@ bool CSATExecutor::ReportCaseFinish(SATHTTP::STTask* pTask, SATHTTP::STCase *pCa
 | 
	
		
			
				|  |  |  	SATHTTP::STJobProcessResp stJobProcessResp;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	// 上报用例结果:0表示脚本成功执行,	1表示脚本出错或超时;
 | 
	
		
			
				|  |  | -	if ( pCase->_nExecutionState == SATHTTP::EXECUTED )
 | 
	
		
			
				|  |  | -	{
 | 
	
		
			
				|  |  | +	if ( pCase->_nExecutionState == SATHTTP::EXECUTED ) {
 | 
	
		
			
				|  |  |  		if ( pCase->_nExecutionResult == SATHTTP::SUCCESS )
 | 
	
		
			
				|  |  |  			stJobProcessReq.strResultState = "0";	// 脚本未执行完成;
 | 
	
		
			
				|  |  | -		else
 | 
	
		
			
				|  |  | -		{
 | 
	
		
			
				|  |  | +		else {
 | 
	
		
			
				|  |  |  			if ( pCase->_nExecutionResult == SATHTTP::ABNORMAL )
 | 
	
		
			
				|  |  |  				stJobProcessReq.strFailedReason = CharEncoding::ASCII2UTF8("脚本异常结束");
 | 
	
		
			
				|  |  |  			stJobProcessReq.strResultState = "1";
 | 
	
	
		
			
				|  | @@ -553,8 +542,7 @@ bool CSATExecutor::ReportCaseFinish(SATHTTP::STTask* pTask, SATHTTP::STCase *pCa
 | 
	
		
			
				|  |  |  			pTask->_nExecutionResult = SATHTTP::FAIL;
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  | -	else
 | 
	
		
			
				|  |  | -	{
 | 
	
		
			
				|  |  | +	else {
 | 
	
		
			
				|  |  |  		stJobProcessReq.strResultState = "1";	// 脚本执行未完成,认为fail;
 | 
	
		
			
				|  |  |  		// 同时标记任务失败;
 | 
	
		
			
				|  |  |  		pTask->_nExecutionResult = SATHTTP::FAIL;
 | 
	
	
		
			
				|  | @@ -613,8 +601,7 @@ bool CSATExecutor::ReportCaseFinish(SATHTTP::STTask* pTask, SATHTTP::STCase *pCa
 | 
	
		
			
				|  |  |  	stJobProcessReq.strResultType = "5";		// reportCaseFinish;
 | 
	
		
			
				|  |  |  	stJobProcessReq.strOperationStep = "";
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -	if ( SetResultList(url, stJobProcessReq, stJobProcessResp) )
 | 
	
		
			
				|  |  | -	{
 | 
	
		
			
				|  |  | +	if ( SetResultList(url, stJobProcessReq, stJobProcessResp) ) {
 | 
	
		
			
				|  |  |  		GLOBAL::WriteTextLog("上传用例结果完成【成功】:任务=%s, 用例=%s", pTask->Job.strUniqueId.c_str(), pCase->strCaseName.c_str());
 | 
	
		
			
				|  |  |  		return true;
 | 
	
		
			
				|  |  |  	}
 | 
	
	
		
			
				|  | @@ -652,8 +639,7 @@ bool CSATExecutor::ReportCaseResult(SATHTTP::STTask* pTask, SATHTTP::STCase *pCa
 | 
	
		
			
				|  |  |  	// 遍历所有用例测试项;
 | 
	
		
			
				|  |  |  	std::string strRunnedActionNameList;
 | 
	
		
			
				|  |  |  	std::vector<STCaseItem>::iterator it = vtCaseItem.begin();
 | 
	
		
			
				|  |  | -	for (; it != vtCaseItem.end();)
 | 
	
		
			
				|  |  | -	{
 | 
	
		
			
				|  |  | +	for (; it != vtCaseItem.end();) {
 | 
	
		
			
				|  |  |  		// 上报测试项结果(包含相片);
 | 
	
		
			
				|  |  |  		ReportCaseItemFinish(pTask, pCase, *it);		
 | 
	
		
			
				|  |  |  		strRunnedActionNameList.append(it->name);
 | 
	
	
		
			
				|  | @@ -697,8 +683,7 @@ bool CSATExecutor::UploadTaskLog(SATHTTP::STTask* pTask)
 | 
	
		
			
				|  |  |  	stSaveLogReq.strUserId = pTask->Job.strUserId;
 | 
	
		
			
				|  |  |  	// 要上传的日志文件;
 | 
	
		
			
				|  |  |  	stSaveLogReq.strUploads = "D:\\sat\\log.txt";//pTask->_strTaskLog;
 | 
	
		
			
				|  |  | -	if ( SaveCaseOrTaskLog(url, stSaveLogReq, stSaveLogResp) )
 | 
	
		
			
				|  |  | -	{
 | 
	
		
			
				|  |  | +	if ( SaveCaseOrTaskLog(url, stSaveLogReq, stSaveLogResp) ) {
 | 
	
		
			
				|  |  |  		GLOBAL::WriteTextLog(_T("任务已完成,上传任务日志【成功】,任务编号为=%s"), pTask->Job.strUniqueId.c_str());
 | 
	
		
			
				|  |  |  		return true;
 | 
	
		
			
				|  |  |  	}
 | 
	
	
		
			
				|  | @@ -772,8 +757,7 @@ bool CSATExecutor::ReportTaskStart(SATHTTP::STTask* pTask)
 | 
	
		
			
				|  |  |  	stJobProcessReq.strResultType = "0";		// reportJobStart;
 | 
	
		
			
				|  |  |  	stJobProcessReq.strOperationStep = "";
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -	if ( SetResultList(url, stJobProcessReq, stJobProcessResp) )
 | 
	
		
			
				|  |  | -	{
 | 
	
		
			
				|  |  | +	if ( SetResultList(url, stJobProcessReq, stJobProcessResp) ) {
 | 
	
		
			
				|  |  |  		GLOBAL::WriteTextLog(_T("上报任务开始【成功】,任务编号为=%s"), pTask->Job.strUniqueId.c_str());
 | 
	
		
			
				|  |  |  		return true;
 | 
	
		
			
				|  |  |  	}
 | 
	
	
		
			
				|  | @@ -793,15 +777,14 @@ bool CSATExecutor::ReportTaskFinish(SATHTTP::STTask* pTask)
 | 
	
		
			
				|  |  |  	SATHTTP::STJobProcessResp stJobProcessResp;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	// 需要处理(只要有用例失败,任务就失败)
 | 
	
		
			
				|  |  | -	if ( pTask->_nExecutionState == SATHTTP::EXECUTED )
 | 
	
		
			
				|  |  | -	{
 | 
	
		
			
				|  |  | +	if ( pTask->_nExecutionState == SATHTTP::EXECUTED ) {
 | 
	
		
			
				|  |  |  		if ( pTask->_nExecutionResult == SATHTTP::SUCCESS )
 | 
	
		
			
				|  |  | -			stJobProcessReq.strResultState = "0";	// 脚本执行中,认为fail;
 | 
	
		
			
				|  |  | +			stJobProcessReq.strResultState = "0";	// 脚本成功;
 | 
	
		
			
				|  |  |  		else
 | 
	
		
			
				|  |  | -			stJobProcessReq.strResultState = "1";	// 脚本执行中,认为fail;
 | 
	
		
			
				|  |  | +			stJobProcessReq.strResultState = "1";	// 脚本失败;
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  	else
 | 
	
		
			
				|  |  | -		stJobProcessReq.strResultState = "1";	// 脚本执行中,认为fail;
 | 
	
		
			
				|  |  | +		stJobProcessReq.strResultState = "1";	// 脚本失败;
 | 
	
		
			
				|  |  |  	stJobProcessReq.strCaseScene = "";
 | 
	
		
			
				|  |  |  	// 索引;
 | 
	
		
			
				|  |  |  	stJobProcessReq.strCaseStep = "0";
 | 
	
	
		
			
				|  | @@ -828,7 +811,8 @@ bool CSATExecutor::ReportTaskFinish(SATHTTP::STTask* pTask)
 | 
	
		
			
				|  |  |  	stJobProcessReq.strReusltMessage = CharEncoding::ASCII2UTF8("任务结束");
 | 
	
		
			
				|  |  |  	stJobProcessReq.strJobRepeat = "0";
 | 
	
		
			
				|  |  |  	stJobProcessReq.strScreenShot = "";
 | 
	
		
			
				|  |  | -	stJobProcessReq.strStartTime = pTask->strStartTime;
 | 
	
		
			
				|  |  | +	// 注意避坑:实际结束时间也要放在该字段中;
 | 
	
		
			
				|  |  | +	stJobProcessReq.strStartTime = CTime::GetCurrentTime().Format(_T("%Y-%m-%d %H:%M:%S"));
 | 
	
		
			
				|  |  |  	stJobProcessReq.strCrashNumber = "";
 | 
	
		
			
				|  |  |  	stJobProcessReq.strCaseName = "";
 | 
	
		
			
				|  |  |  	stJobProcessReq.strFailedReason = "";
 | 
	
	
		
			
				|  | @@ -854,8 +838,7 @@ bool CSATExecutor::ReportTaskFinish(SATHTTP::STTask* pTask)
 | 
	
		
			
				|  |  |  	stJobProcessReq.strResultType = "1";		// reportJobFinish;
 | 
	
		
			
				|  |  |  	stJobProcessReq.strOperationStep = "";
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -	if ( SetResultList(url, stJobProcessReq, stJobProcessResp) )
 | 
	
		
			
				|  |  | -	{
 | 
	
		
			
				|  |  | +	if ( SetResultList(url, stJobProcessReq, stJobProcessResp) ) {
 | 
	
		
			
				|  |  |  		GLOBAL::WriteTextLog(_T("上报任务结束【成功】,任务编号为=%s"), pTask->Job.strUniqueId.c_str());
 | 
	
		
			
				|  |  |  		return true;
 | 
	
		
			
				|  |  |  	}
 |