public IActionResult Execute([FromBody] ExecuteScript request) { if (!_webAppSettings.AllowScriptExecution) { return(NotFound()); } PrepareCommandArguments(request.ScriptName, request.TargetName); try { var result = _commandExecutor.ExecuteAsync().Result; switch (result) { case 0: { return(Ok(new { msg = "Script executed successfully." })); } default: { return(Ok(new { msg = $"Script executed with code: {result}" })); } } } catch (Exception ex) { return(Ok(new { msg = ex.Message })); } }
private void OnFunctionEditor(Object sender, EventArgs e) { switch (m_entry.Type) { case MacroType.KeyboardFunction: break; case MacroType.MouseFunction: MouseActionForm mouseAction = new MouseActionForm((m_entry.Function as MouseFunction).Action); if (mouseAction.ShowDialog() == DialogResult.OK) { (m_entry.Function as MouseFunction).Action = mouseAction.Action; m_function.Text = m_entry.Function.ToString(); m_btSave.Enabled = true; } break; case MacroType.StartProcess: if (m_fileDialog.ShowDialog() == DialogResult.OK) { m_function.Text = m_fileDialog.FileName; } break; case MacroType.ExecuteScript: ExecuteScript function = m_entry.Function as ExecuteScript; MacroScriptEditor scriptEditor = new MacroScriptEditor(function.Script); scriptEditor.ShowDialog(); if (function.Script != scriptEditor.Script) { function.Script = scriptEditor.Script; } break; } }
public DataTable getData() { DataTable data = new DataTable(); ExecuteScript obje = new ExecuteScript(); data = obje.executeQuertyAndReturnDatatable("sp_getAllUser"); return(data); }
public void Run(PhoneModel pm) { string ExtResult = ""; if (!string.IsNullOrEmpty(InstallApkFile)) { if (pm.LastInstallApk == null || pm.LastInstallApk.ApkFile != InstallApkFile) { try { if (pm.installApk(InstallApkFile, PackageName)) { ExtResult += $"{InstallApkFile}:安装成功{System.Environment.NewLine}"; } else { ExtResult += $"{InstallApkFile}:安装失败:请查看日志{System.Environment.NewLine}"; } } catch (Exception e) { ExtResult += $"{InstallApkFile}:安装失败:{e.StackTrace}{System.Environment.NewLine}"; } } else { ExtResult += $"{InstallApkFile}:本机已安装,跳过安装步骤{System.Environment.NewLine}"; } } ExecuteScript = ExecuteScript.Replace("{result}", ResultPath); ExecuteScript = ExecuteScript.Replace("{device}", pm.Device); int rs = 2; try { ExtResult += ExtCommand.Shell(ExecuteScript).Result; if (string.IsNullOrEmpty(PassMatch) || Regex.IsMatch(ExtResult, PassMatch)) { rs = 1; } } catch (Exception e) { ExtResult += e.StackTrace; } var db = Provider.GetService <runClientDbContext>(); var jbt = db.SmokeTestJobTask.FirstOrDefault(t => t.Id == id); jbt.RunStatus = rs; jbt.ExecuteScriptResult = ExtResult; jbt.Device = pm.Device; jbt.ResultPath = ResultPath; jbt.RunDate = DateTime.Now; db.SaveChanges(); }
private void StartScriptSocketServer() { while (Property.PluginFlag) { logger.Info("启动监听成功,等待接收数据"); Socket socket = scriptSocket.Accept(); if (socket != null) { logger.Info("接收到数据"); NetworkStream networkStream = new NetworkStream(socket); byte[] recBytesLenth = new byte[8]; //设置每次读取的最大字节数 networkStream.Read(recBytesLenth, 0, recBytesLenth.Length); //读取json报文长度 string msgLen = ""; msgLen += Encoding.UTF8.GetString(recBytesLenth, 0, recBytesLenth.Length); int len = System.Convert.ToInt32(msgLen); byte[] recstr = new byte[len]; networkStream.Read(recstr, 0, recstr.Length);//读取报文 string recmsg = Encoding.UTF8.GetString(recstr, 0, recstr.Length); JArray jArray = JArray.Parse(Convert.ToString(recmsg)); Property.PerformaceMark = true; new Thread(new ThreadStart(GetPerformance)).Start(); IExecuteScript executeScript = new ExecuteScript(); for (int i = 0; i < jArray.Count; i++) { logger.Info("接收到的数据是" + JObject.Parse(jArray[i].ToString())); executeScript.HandleConpoentByScriptt(JObject.Parse(jArray[i].ToString())); } socket.Close(); } } }
static void Import() { /******************************************************************************** * Если в каталоге Import есть файл gmmq.packedge.end, * тогда выполняем скрипт на всасывание реплики * если файл gmmq.packedge.end отсутсвует, очищаем каталог *******************************************************************************/ string pathFileImport = "C:\\GMMQ\\Import\\gmmq.package.end"; if (File.Exists(pathFileImport)) { //Всасываем реплику var script = new ExecuteScript(); script.ScriptImport(); } else { //Чистим каталог var delete = new DeleteFolerFiles(); delete.CleanFolderImport(); } }
static void Export() { /******************************************************************************** * Если в каталоге Export есть файл gmmq.packedge.end, * тогда перезапускаем службы * если файл gmmq.packedge.end отсутсвует, очищаем каталог * и выполняем скрипты на выгрузку реплики *******************************************************************************/ string pathFileExportG = "C:\\GMMQ\\Export\\gmmq.package.end"; if (File.Exists(pathFileExportG)) { //TODO: перед релизной сборкой снять комментарий ServicesRestart restart = new ServicesRestart(); restart.RestartGmmq(); restart.RestartScheduler(); } else { //Чистм катаоги var delete = new DeleteFolerFiles(); delete.DeleteFolder(); //Делаем экспорт var script = new ExecuteScript(); script.ScriptExport(); //Logger.Log.Info("Ждем 5 минут"); //Перезапускаем службы ServicesRestart services = new ServicesRestart(); services.RestartGmmq(); services.RestartScheduler(); } }