public void Load(string rbook, string env) { try { xbook = XDocument.Load(rbook); xenv = XDocument.Load(env); Environment = XTools.Attr(xenv.Root, "name"); envariables = new JObject(); foreach (XElement xvar in xenv.Root.Element("variables").Elements()) { envariables.Add(new JProperty(XTools.Attr(xvar, "id"), XTools.Attr(xvar, "value"))); } foreach (XElement xhead in xenv.Root.Element("header-all").Elements()) { headers.Add(XTools.Attr(xhead, "id"), XTools.Attr(xhead, "value")); } foreach (XElement xhead in xbook.Root.Element("header").Elements()) { headers.Add(XTools.Attr(xhead, "id"), XTools.Attr(xhead, "value")); } } catch (Exception ex) { Terminal.WriteError(ex); } }
// ------------------------------------------------------ private bool executeRestPost(string tid, string rtype, XElement root) { Console.Write("Running test {0} >", tid); try { var input = new RestRequest(); input.Url = XTools.Attr(root, "url"); input.Url = Render.StringToString(input.Url, book.envariables); input.Content = root.Element("data").Value; input.Content = Render.StringToString(input.Content, book.envariables); input.header = book.headers; xrequest = input.AsXml(rtype); var client = new RestClient(); Console.Write("{0}>", rtype); theResponse = client.post(rtype, input); Console.Write(">"); xresponse = theResponse.AsXml(); if (!theResponse.Success) { return(logError("HTTP Error: {0}", theResponse.Message)); } if (theResponse.HttpCode != HttpCode) { return(logError("returns code {0} instead of {1}", theResponse.HttpCode, HttpCode)); } if (theResponse.ContentType != ContentType) { return(logError("content type {0}, expected {1}", theResponse.ContentType, ContentType)); } if (theResponse.ContentType.Contains("json")) { bool isValid = validateJson(); if (!isValid) { return(Terminal.WriteWarning("> FAILS: Invalid Response format")); } } Console.WriteLine("> {0} OK", theResponse.Duration); return(true); } catch (Exception ex) { addExceptionToReport(ex); return(Terminal.WriteError("> FAILS: System Error")); } }
public bool Load(string fname) { try { xdoc = XDocument.Load(fname); var xresult = xdoc.Root.Element("result"); string codes = XTools.Attr(xresult, "code"); HttpCode = Convert.ToInt32(codes); ContentType = XTools.Attr(xresult, "type"); schema = JSchema.Parse(xresult.Value); return(true); } catch (Exception ex) { Terminal.WriteError(ex); return(false); } }
private void executeSequence(XElement xsequence) { string id = XTools.Attr(xsequence, "id"); string reportFile = "report-" + id + ".xml"; xreport = new XElement("report", new XAttribute("id", id), new XAttribute("environment", Environment)); if (File.Exists(reportFile)) { File.Delete(reportFile); } Console.WriteLine("\n\n# Sequence {0}\n", id); foreach (XElement xtest in xsequence.Elements("test")) { executeTest(xtest); } var doc = new XDocument(xreport); doc.Save(reportFile); }
private void executeRestGet(string id, XElement xtest) { Console.WriteLine("Running test " + id); try { var input = new RestRequest(); input.Url = XTools.Attr(xtest, "url"); input.Url = Render.StringToString(input.Url, envariables); input.header = headers; var client = new RestClient(); var response = client.get("GET", input); Console.WriteLine(" url: {0}", input.Url); Console.WriteLine(" code: {0}", response.HttpCode); Console.WriteLine(" content type: {0}", response.ContentType); Console.WriteLine(" Message: {0}", response.Message); Console.WriteLine(response.RawData); } catch (Exception ex) { Terminal.WriteError(ex); } }