Пример #1
0
 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);
     }
 }
Пример #2
0
        // ------------------------------------------------------
        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"));
            }
        }
Пример #3
0
 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);
     }
 }
Пример #4
0
        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);
        }
Пример #5
0
 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);
     }
 }