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