private void buttonStart_Click(object sender, EventArgs e) { textBoxLog.Text = ""; ServiceInfo serviceInfo = new ServiceInfo(textBoxAddress.Text, Convert.ToInt16(textBoxPort.Text), textBoxUser.Text, textBoxPassword.Text, "/"); TestLog testLog = new TestLog(); if (!checkBoxCloseConnection.Checked) { SoapClient.OpenConnection(serviceInfo); } foreach (Test test in m_testSuit) { TestResult testResult = test.Run(serviceInfo, checkBoxCloseConnection.Checked); testLog.AddTestResult(testResult); textBoxLog.Text = textBoxLog.Text + testResult.MessageForShortLog + "\r\n"; textBoxLog.Refresh(); System.Threading.Thread.Sleep(50); } if (!checkBoxCloseConnection.Checked) { SoapClient.CloseConnection(); } testLog.SaveAsExcel(textBoxLogFile.Text + m_testSuit.XMLDocument.SelectSingleNode("TestSuit/Info/ReportName").InnerText); }
/// <summary> /// Run test step /// </summary> /// <param name="step">Step information</param> /// <param name="serviceInfo">Host information</param> /// <param name="CloseConnection">Do we need close connection after each request (true recomended)</param> /// <returns>Test step result</returns> private TestStepResult RunStep(XmlNode step, ServiceInfo serviceInfo, bool CloseConnection) { TestStepResult testStepResult = new TestStepResult(); testStepResult.Result = false; testStepResult.StepId = step.Attributes.GetNamedItem("id").InnerText; testStepResult.StepDescription = step.PreviousSibling.InnerText; string resultSoapMessage = ""; string resultCompareMessage; string pathToRequestFile = m_pathToTests + step.Attributes.GetNamedItem("fileRequest").InnerText; string pathToResponseFile = m_pathToTests + step.Attributes.GetNamedItem("fileAnswer").InnerText; string pathToResponseFileReal = m_pathToTestsResult + this.TestId + "_" + testStepResult.StepId + "_response.xml"; string pathToResponseFileRealFull = m_pathToTestsResult + this.TestId + "_" + testStepResult.StepId + "_response_full.txt"; string pathToCompareFile = m_pathToTestsResult + this.TestId + "_" + testStepResult.StepId + "_compare.htm"; testStepResult.PathToRequestFile = pathToRequestFile; //Send request and get answer double time = 0; if (CloseConnection) { try { SoapClient.OpenConnection(serviceInfo); testStepResult.Result = SoapClient.SendSoapRequest(pathToRequestFile, pathToResponseFileReal, pathToResponseFileRealFull, serviceInfo, out resultSoapMessage, out time, CloseConnection); } catch (Exception e) { resultSoapMessage = e.Message; testStepResult.Result = false; } finally { SoapClient.CloseConnection(); } } else { testStepResult.Result = SoapClient.SendSoapRequest(pathToRequestFile, pathToResponseFileReal, pathToResponseFileRealFull, serviceInfo, out resultSoapMessage, out time, CloseConnection); } testStepResult.Time = time; if (testStepResult.Result) { testStepResult.PathToRealResponseFile = pathToResponseFileReal; testStepResult.PathToRealResponseFileFull = pathToResponseFileRealFull; //Compare result to ethalon testStepResult.Result = CompareResponse(pathToResponseFile, pathToResponseFileReal, out resultCompareMessage, ref pathToCompareFile); testStepResult.Message = resultCompareMessage; if (!testStepResult.Result) { if (System.IO.File.Exists(pathToCompareFile)) { testStepResult.PathToCompareFile = pathToCompareFile; } } } else { testStepResult.Message = resultSoapMessage; } return(testStepResult); }