public void TestParser() { SessionParser parser = new SessionParser(); var options = new StressTesterConfiguration(); List <HttpRequestData> httpRequests = parser.ParseFile(STR_TestFile, ref options); Assert.IsNotNull(httpRequests); Console.WriteLine(httpRequests.Count); foreach (var req in httpRequests) { Console.WriteLine("--\r\n"); Console.WriteLine(req.HttpVerb + " -- " + req.Url); Console.WriteLine(req.Host); foreach (var header in req.Headers) { Console.WriteLine(" " + header.Name + ": " + header.Value); } if (!string.IsNullOrEmpty(req.RequestContent)) { Console.WriteLine("\r\n" + req.RequestContent); } } }
public void ExportPostman() { SessionParser parser = new SessionParser(); var options = new StressTesterConfiguration(); List <HttpRequestData> httpRequests = parser.ParseFile(STR_WebSurgeSampleFile, ref options); var postman = new PostmanIntegration(); string result = postman.Export("Test", httpRequests, options); Assert.IsNotNull(result, "postman export failed: nothing returned"); Console.WriteLine(result); }
public void TestParserLf() { SessionParser parser = new SessionParser(); var options = new StressTesterConfiguration(); string reqs = @"POST http://localhost:5000/api/BodyTypes/JsonStringBody HTTP/1.1 Accept-Encoding: gzip,deflate Content-type: application / json Websurge-Request-Name: JsonStringBody ""Windy Rivers are the best!"" ------------------------------------------------------------------ POST http://localhost:5000/api/BodyTypes/JsonPlainBody HTTP/1.1 Accept-Encoding: gzip,deflate Content-type: text/plain Websurge-Request-Name: JsonPlainBody Windy Rivers are the best! "; reqs = reqs.Replace("\r\n", "\n"); List <HttpRequestData> httpRequests = parser.Parse(reqs, ref options); Assert.IsNotNull(httpRequests); Console.WriteLine(httpRequests.Count); foreach (var req in httpRequests) { Console.WriteLine("--\r\n"); Console.WriteLine(req.HttpVerb + " -- " + req.Url); Console.WriteLine(req.Host); foreach (var header in req.Headers) { Console.WriteLine(" " + header.Name + ": " + header.Value); } if (!string.IsNullOrEmpty(req.RequestContent)) { Console.WriteLine("\r\n" + req.RequestContent); } } }
public string Export(string name, List <HttpRequestData> requests, StressTesterConfiguration config, string filename = null) { var pm = new PostmanCollection(); foreach (var request in requests) { pm.info._postman_id = Guid.NewGuid().ToString(); if (!string.IsNullOrEmpty(name)) { pm.info.name = name; } else { pm.info.name = "Collection-" + DataUtils.GenerateUniqueId(8); } pm.info.schema = "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"; var item = new Item(); pm.item.Add(item); item.name = request.Url; var req = new Request(); item.request = req; req.url = new Url(); req.method = request.HttpVerb; var body = new Body(); req.body = body; body.mode = "raw"; body.raw = request.RequestContent; // don't copy over credentials explicitly //if (!string.IsNullOrEmpty(config.Username)) //{ // req.auth = new Auth(); // req.auth.type = "ntlm"; // var ntlm = new List<Ntlm>(); // req.auth.ntlm = ntlm; // ntlm.Add(new Ntlm {key = "username", value = config.Username}); // ntlm.Add(new Ntlm {key = "password", value = ""}); //} foreach (var header in request.Headers) { req.header.Add(new Header { key = header.Name, name = header.Name, value = header.Value, type = "text" }); } req.url.raw = request.Url; req.url.protocol = "http"; req.url.host.Add(request.Host); } if (!string.IsNullOrEmpty(filename)) { if (JsonSerializationUtils.SerializeToFile(pm, filename, false, true)) { return("OK"); } return(null); } return(JsonSerializationUtils.Serialize(pm, false, formatJsonOutput: true)); }