public override IEnumerator <WebTestRequest> GetRequestEnumerator() { if ((Context.ValidationLevel >= ValidationLevel.High)) { ValidationRuleFindText validationRule = new ValidationRuleFindText(); validationRule.FindText = sValidationText; validationRule.IgnoreCase = false; validationRule.UseRegularExpression = false; validationRule.PassIfTextFound = true; ValidateResponse += new EventHandler <ValidationEventArgs>(validationRule.Validate); } string uri = (Context["WebServer"].ToString() + Context["URI"].ToString()); WebTestRequest request = new WebTestRequest(uri); request.Method = sMethod; request.ThinkTime = iThinkTime; request.QueryStringParameters.Add("format", "json", false, false); request.Headers.Add(new WebTestRequestHeader("Authorization", helper.Token())); StringHttpBody requestBody = new StringHttpBody(); requestBody.ContentType = "application/json"; requestBody.InsertByteOrderMark = false; requestBody.BodyString = sParam; request.Body = requestBody; yield return(request); request = null; }
public override IEnumerator<WebTestRequest> GetRequestEnumerator() { // Инициализация правил проверки, применяемых ко всем запросам в веб-тесте if ((this.Context.ValidationLevel >= Microsoft.VisualStudio.TestTools.WebTesting.ValidationLevel.High)) { ValidationRuleRequiredTag validationRule1 = new ValidationRuleRequiredTag(); validationRule1.RequiredTagName = "User"; validationRule1.MinOccurrences = 1; this.ValidateResponse += new EventHandler<ValidationEventArgs>(validationRule1.Validate); } if ((this.Context.ValidationLevel >= Microsoft.VisualStudio.TestTools.WebTesting.ValidationLevel.High)) { ValidationRuleRequestTime validationRule2 = new ValidationRuleRequestTime(); validationRule2.MaxRequestTime = 1000; this.ValidateResponse += new EventHandler<ValidationEventArgs>(validationRule2.Validate); } WebTestRequest request1 = new WebTestRequest("http://193.226.64.163/SANDBOXWebServiceDev/Service1.asmx"); request1.Timeout = 3; request1.Method = "POST"; request1.Encoding = System.Text.Encoding.GetEncoding("utf-8"); request1.Headers.Add(new WebTestRequestHeader("SOAPAction", "http://tempuri.org/GetAllUsers")); StringHttpBody request1Body = new StringHttpBody(); request1Body.ContentType = "text/xml"; request1Body.InsertByteOrderMark = false; request1Body.BodyString = @"<?xml version=""1.0"" encoding=""utf-8""?> <soap:Envelope xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns:xsd=""http://www.w3.org/2001/XMLSchema"" xmlns:soap=""http://schemas.xmlsoap.org/soap/envelope/""> <soap:Body> <GetAllUsers xmlns=""http://tempuri.org/"" /> </soap:Body> </soap:Envelope>"; request1.Body = request1Body; yield return request1; request1 = null; }
public override IEnumerator <WebTestRequest> GetRequestEnumerator() { // Initialize validation rules that apply to all requests in the WebTest if ((this.Context.ValidationLevel >= Microsoft.VisualStudio.TestTools.WebTesting.ValidationLevel.Low)) { ValidateResponseUrl validationRule1 = new ValidateResponseUrl(); this.ValidateResponse += new EventHandler <ValidationEventArgs>(validationRule1.Validate); } if ((this.Context.ValidationLevel >= Microsoft.VisualStudio.TestTools.WebTesting.ValidationLevel.Low)) { ValidationRuleResponseTimeGoal validationRule2 = new ValidationRuleResponseTimeGoal(); validationRule2.Tolerance = 0D; this.ValidateResponseOnPageComplete += new EventHandler <ValidationEventArgs>(validationRule2.Validate); } WebTestRequest request1 = new WebTestRequest("https://www5.tel-aviv.gov.il/tlvservices/tlvirgunovdim/api/Nofesh/SaveNofshon" + "Nirshamim"); request1.Method = "POST"; request1.Headers.Add(new WebTestRequestHeader("Pragma", "no-cache")); request1.Headers.Add(new WebTestRequestHeader("Accept", "application/json, text/plain, */*")); request1.Headers.Add(new WebTestRequestHeader("Referer", "https://www5.tel-aviv.gov.il/Tlvirgunovdim/")); request1.Headers.Add(new WebTestRequestHeader("Authorization", ("Bearer " + this.Context["access_token"].ToString()))); request1.ValidateResponse += new EventHandler <ValidationEventArgs>(Validate); StringHttpBody request1Body = new StringHttpBody(); request1Body.ContentType = "application/json"; request1Body.InsertByteOrderMark = false; request1Body.BodyString = @"{""nirshamim"":[{""ms_zehut_mazmin"":3169,""ms_zehut"":28426187,""tr_leida"":""1971-08-01T00:00:00.000Z"",""shem_prati"":""יניב"",""shem_mishpacha"":""אליעב"",""gender"":2,""header"":""דוקטו"",""ms_cheder"":2,""is_amit"":1,""is_nilve"":0,""is_yeled"":0,""is_tinok"":0,""id_nofesh"":1,""nofesh_type"":3,""phone"":""0542236445"",""ms_darkon"":null,""tr_tokef_darkon"":"""",""shem_prati_loazi"":null,""shem_mishpacha_loazi"":null}]}"; request1Body.BodyString.Replace("28426187", this.Context["dataNofesh.dataNofashim#txt.user"].ToString()); request1.Body = request1Body; yield return(request1); request1 = null; }
public override void Extract(object sender, ExtractionEventArgs e) { string tokenName = ""; object contextValue; if (e.Request.Body != null) { var json = e.Request.Body; StringHttpBody httpBody = e.Request.Body as StringHttpBody; if (httpBody == null) { return; } string body = httpBody.BodyString; var data = JObject.Parse(body); var value = ""; if (data != null) { if (e.WebTest.Context.TryGetValue(this.ContextParameterName, out contextValue)) { tokenName = "Matter." + this.ContextParameterName; value = (data.SelectToken(tokenName) ?? JValue.CreateNull()).ToObject <string>(); e.WebTest.Context.Add(this.ContextParameterName, value); } e.Success = true; return; } } e.Success = false; e.Message = String.Format(CultureInfo.CurrentCulture, "Not Found: {0}", tokenName); }
public override IEnumerator <WebTestRequest> GetRequestEnumerator() { if ((Context.ValidationLevel >= ValidationLevel.High)) { ValidationRuleFindText validationRule = new ValidationRuleFindText(); validationRule.FindText = sValidationText; validationRule.IgnoreCase = false; validationRule.UseRegularExpression = false; validationRule.PassIfTextFound = true; ValidateResponse += new EventHandler <ValidationEventArgs>(validationRule.Validate); } string str = @"{'Barcode':'MG9235','UserId':3217,'ReturnLocationId':1,'SessionStart':'Wed, 18 Jan 2017 23:06:46 GMT','ScannedDate':'01/18/2017 23:07:29.916','Modified':'Wed, 18 Jan 2017 23:07:31 GMT'}"; string st = JsonConvert.SerializeObject(str); string uri = (Context["WebServer"].ToString() + Context["URI"].ToString()); WebTestRequest request = new WebTestRequest(uri); request.Method = sMethod; request.ThinkTime = iThinkTime; request.QueryStringParameters.Add("format", "json", false, false); request.Headers.Add(new WebTestRequestHeader("Authorization", helper.Token())); StringHttpBody requestBody = new StringHttpBody(); requestBody.ContentType = "application/json"; requestBody.InsertByteOrderMark = false; requestBody.BodyString = sParam; request.Body = requestBody; yield return(request); request = null; }
public override IEnumerator <WebTestRequest> GetRequestEnumerator() { WebTestRequest request1 = new WebTestRequest(_sendToConversationUrl); request1.Method = "POST"; StringHttpBody request1Body = new StringHttpBody(); request1Body.ContentType = "application/json"; request1Body.InsertByteOrderMark = false; request1Body.BodyString = "{" + "\"type\":\"message\"," + "\"channelId\":\"emulator\"," + "\"conversation\":{\"id\": 1}," + "\"from\":{\"id\": 1000}," + "\"recipient\":{\"id\": 2000}," + "\"serviceUrl\":\"" + _serviceUrl + "\"," + "\"text\":\"hello\"" + "}"; //request1.QueryStringParameters.Add("clientId", _appID); //request1.QueryStringParameters.Add("clientSecret", _appPassword); //request1.QueryStringParameters.Add("endpoint", _botEndpoint); //request1.QueryStringParameters.Add("activity", "{\"type\":\"message\",\"id\": 123456789,\"channelId\":\"emulator\",\"conversation\":{\"id\":1}," + // "\"from\":{\"id\":1000},\"recipient\":{\"id\":2000},\"serviceUrl\":\"http://localhost:51753/" + // "\",\"text\":\"hello\"}"); request1.Body = request1Body; yield return(request1); request1 = null; }
public Stream VisitStringBody(StringHttpBody body) { var result = new MemoryStream(Encoding.UTF8.GetBytes(body.Text)); result.Position = 0; return(result); }
private static StringHttpBody CreateRandomHttpBodyString() { Guid randomTag = Guid.NewGuid(); var httpBodyRequestWithRandomTag = new StringHttpBody { ContentType = "application/json", InsertByteOrderMark = false, BodyString = JsonConvert.SerializeObject(new { confirmationRequired = "FingerPrint", deadline = "DeadlyQueueOfZombiatedDemons", deliveryId = DeliveryId, dropOffLocation = PackageLocationDropOff, expedited = true, ownerId = "1", packageInfo = new { packageId = Guid.NewGuid().ToString(), size = "Small", tag = randomTag, weight = "14" }, pickupLocation = PackageLocationPickup, pickupTime = "2019-04-05T11:00:00.000Z" }) }; return(httpBodyRequestWithRandomTag); }
public override void PreRequest(object sender, PreRequestEventArgs e) { var stringBody = new StringHttpBody(); stringBody.BodyString = JsonContent; stringBody.ContentType = "application/json"; e.Request.Body = stringBody; }
public override IEnumerator <WebTestRequest> GetRequestEnumerator() { var baseURL = (string)this.Context["URL"]; var auth = (string)this.Context["auth"]; var contextOptions = new[] { "Young", "Old" }; var expectedAction = new Random().Next(0, 2); var age = contextOptions[expectedAction]; expectedAction++; // actions are 1-based WebTestRequest request1 = new WebTestRequest($"{baseURL}/API/Policy"); request1.Method = "POST"; request1.Headers.Add(new WebTestRequestHeader("Accept", "application/json, text/javascript, */*; q=0.01")); request1.Headers.Add(new WebTestRequestHeader("X-Requested-With", "XMLHttpRequest")); request1.Headers.Add(new WebTestRequestHeader("auth", auth)); StringHttpBody request1Body = new StringHttpBody(); request1Body.ContentType = "application/json; charset=utf-8"; request1Body.InsertByteOrderMark = false; request1Body.BodyString = $"{{\"Age\":\"{age}\"}}"; request1.Body = request1Body; request1.ExtractValues += Request1_ExtractValues; yield return(request1); request1 = null; ResponseConditional conditionalRule1 = new ResponseConditional { ExpectedAction = expectedAction, InconsistencyProbability = 0.2f }; this.BeginCondition(conditionalRule1); if (this.ExecuteConditionalRule(conditionalRule1)) { WebTestRequest request2 = new WebTestRequest($"{baseURL}/API/Reward/"); request2.Method = "POST"; request2.Headers.Add(new WebTestRequestHeader("Accept", "*/*")); request2.Headers.Add(new WebTestRequestHeader("X-Requested-With", "XMLHttpRequest")); request2.Headers.Add(new WebTestRequestHeader("auth", auth)); request2.QueryStringParameters.Add("eventId", "{{EventId}}", false, false); StringHttpBody request2Body = new StringHttpBody(); request2Body.ContentType = "application/json; charset=utf-8"; request2Body.InsertByteOrderMark = false; request2Body.BodyString = "1"; // reward request2.Body = request2Body; yield return(request2); request2 = null; } this.EndCondition(conditionalRule1); }
/// <summary> /// Gets the request string body. /// </summary> /// <param name="body">The body.</param> /// <returns></returns> public static string GetRequestStringBody(IHttpBody body) { string result = string.Empty; if (body != null) { StringHttpBody b = (StringHttpBody)body; result = b.BodyString; } return(result); }
public override IEnumerator <WebTestRequest> GetRequestEnumerator() { var connection = lazyConnection.Value; var redisCache = connection.GetDatabase(); var endpoint = connection.GetEndPoints().FirstOrDefault(); var keys = connection.GetServer(endpoint).Keys(); var randomId = keys.OrderBy(k => Guid.NewGuid()).FirstOrDefault(); var randomState = redisCache.StringGet(randomId); var uri = new Uri($"http://jwdotnetcore.azurewebsites.net/api/customers/{randomState}/{randomId}"); var webClient = new WebClient(); var json = webClient.DownloadString(uri); var customer = JsonConvert.DeserializeObject <Customer>(json); var orderItem = new Faker <OrderItem>() .RuleFor(oi => oi.SerialNumber, p => p.Finance.Iban()) .RuleFor(oi => oi.Title, p => p.Commerce.Product()) .RuleFor(oi => oi.Description, p => p.Lorem.Sentences(5)) .RuleFor(oi => oi.Cost, p => p.Random.Double(1, 100)) .RuleFor(oi => oi.Quantity, p => p.Random.Int(1, 10)); var order = new Faker <Order>() .RuleFor(oi => oi.OrderDate, p => p.Date.Between(DateTime.Now.AddYears(-1), DateTime.Now)) .RuleFor(oi => oi.OrderItems, (faker) => { return(orderItem.Generate(faker.Random.Int(1, 100))); }); customer.Orders = order.Generate(10); var webTestRequest = new WebTestRequest($"http://jwdotnetcore.azurewebsites.net/api/customers/{randomId}") { Method = "PUT", }; var newJson = JsonConvert.SerializeObject(customer); var body = new StringHttpBody { ContentType = "application/json", InsertByteOrderMark = false, BodyString = newJson, }; webTestRequest.Body = body; yield return(webTestRequest); webTestRequest = null; }
public override void PreRequest(object sender, PreRequestEventArgs e) { object mattername; if (e.Request.Body == null) { return; } StringHttpBody httpBody = e.Request.Body as StringHttpBody; if (httpBody == null) { return; } string body = httpBody.BodyString; string updatedBodyName = ""; string updatedBody = ""; object matterguid; var value = ""; var data = JObject.Parse(body); if (data != null) { string tokenName = ""; if (e.WebTest.Context.TryGetValue("Name", out mattername)) { tokenName = "Matter." + "Name"; value = (data.SelectToken(tokenName) ?? JValue.CreateNull()).ToObject <string>(); updatedBodyName = UpdateBodyName(body, value, mattername.ToString()); } if (e.WebTest.Context.TryGetValue("MatterGuid", out matterguid)) { tokenName = "Matter." + "MatterGuid"; value = (data.SelectToken(tokenName) ?? JValue.CreateNull()).ToObject <string>(); updatedBody = UpdateBodyGUID(updatedBodyName, value, matterguid.ToString()); } StringHttpBody newBody = new StringHttpBody(); newBody.ContentType = "application/json"; newBody.BodyString = updatedBody; e.Request.Body = newBody; } }
public override IEnumerator <WebTestRequest> GetRequestEnumerator() { MTApiFunctionalities mtApi = new MTApiFunctionalities(); WebTestRequest requestLogin = new WebTestRequest(mtUrl + mtApi.loginApiRoute); requestLogin.Method = "POST"; StringHttpBody requestLoginBody = new StringHttpBody(); requestLoginBody.ContentType = "application/json"; requestLoginBody.InsertByteOrderMark = false; requestLoginBody.BodyString = "{ \"userName\" : \"" + username + "\" , \"password\" : \"" + password + "\"}"; requestLogin.Body = requestLoginBody; yield return(requestLogin); requestLogin = null; }
public override IEnumerator <WebTestRequest> GetRequestEnumerator() { MTApiFunctionalities mtApi = new MTApiFunctionalities(); WebTestRequest requestChangePassword = new WebTestRequest(mtUrl + mtApi.accountApiRoute); requestChangePassword.Method = "PUT"; requestChangePassword.Headers.Add(new WebTestRequestHeader("Authorization", ("Bearer " + userLoginToken))); StringHttpBody requestChangePasswordBody = new StringHttpBody(); requestChangePasswordBody.ContentType = "application/json"; requestChangePasswordBody.InsertByteOrderMark = false; newPassword = mtApi.GenerateNewPassword(); requestChangePasswordBody.BodyString = "{ \"password\" : \"" + password + "\" , \"newPassword\" : \"" + newPassword + "\" }"; requestChangePassword.Body = requestChangePasswordBody; yield return(requestChangePassword); requestChangePassword = null; }
public override IEnumerator <WebTestRequest> GetRequestEnumerator() { // Initialize validation rules that apply to all requests in the WebTest if ((this.Context.ValidationLevel >= Microsoft.VisualStudio.TestTools.WebTesting.ValidationLevel.Low)) { ValidateResponseUrl validationRule1 = new ValidateResponseUrl(); this.ValidateResponse += new EventHandler <ValidationEventArgs>(validationRule1.Validate); } if ((this.Context.ValidationLevel >= Microsoft.VisualStudio.TestTools.WebTesting.ValidationLevel.Low)) { ValidationRuleResponseTimeGoal validationRule2 = new ValidationRuleResponseTimeGoal(); validationRule2.Tolerance = 0D; this.ValidateResponseOnPageComplete += new EventHandler <ValidationEventArgs>(validationRule2.Validate); } WebTestRequest request1 = new WebTestRequest("https://www5.tel-aviv.gov.il/tlvservices/tlvirgunovdim/api/Nofesh/SaveNofshon" + "ReservationNofeshPnim"); request1.Method = "POST"; request1.Headers.Add(new WebTestRequestHeader("Pragma", "no-cache")); request1.Headers.Add(new WebTestRequestHeader("Accept", "application/json, text/plain, */*")); request1.Headers.Add(new WebTestRequestHeader("Referer", "https://www5.tel-aviv.gov.il/Tlvirgunovdim/")); request1.Headers.Add(new WebTestRequestHeader("Authorization", ("Bearer " + this.Context["access_token"].ToString()))); request1.ValidateResponse += new EventHandler <ValidationEventArgs>(Validate); StringHttpBody request1Body = new StringHttpBody(); request1Body.ContentType = "application/json"; request1Body.InsertByteOrderMark = true; var bs = "{\"nofesh_id\":ID, \"ms_zehut_mazmin\":TZ, \"ms_amitim\":1, \"ms_nilvim\":0, \"ms_yeladim\"" + ":0, \"ms_tinokot\":0, \"isTwoKidsSeperateRoom\":false, \"isDeletMekasheret \":false,\"isFamilyRoom\":false, \"isThre" + "eKidsSeperateRoom\":false,\"ms_chadarim\":1, \"mechir_le_nofesh\":0,}"; bs = bs.Replace("ID", this.Context["dataNofesh.dataNofashim#txt.id_nofesh"].ToString()); bs = bs.Replace("TZ", this.Context["dataNofesh.dataNofashim#txt.user"].ToString()); request1Body.BodyString = bs; request1.Body = request1Body; yield return(request1); request1 = null; }
public override void PreRequestDataBinding(object sender, PreRequestDataBindingEventArgs e) { base.PreRequestDataBinding(sender, e); ITestContext context = e.WebTest.Context[TestContextConst.ContextKey] as ITestContext; context.SetEventArgs(e); //TestContext.Context.SetEventArgs(e); e.Request.Headers.Add(HtmlHeaderConst.Authorization, AuthenticationInfo.Authorization.Auth); e.Request.Url = TemplateHelper.CompileTemplate(e.Request.Url, context); //only handle this for http post with body if (!(e.Request.Body is StringHttpBody)) { return; } StringHttpBody request = e.Request.Body as StringHttpBody; string json = request.BodyString; json = TemplateHelper.CompileTemplate(json, context); request.BodyString = json; }
public override void PreRequest(object sender, PreRequestEventArgs e) { if (e.Request.Body == null) { return; } StringHttpBody httpBody = e.Request.Body as StringHttpBody; if (httpBody == null) { return; } string body = httpBody.BodyString; string updatedBody = UpdateBody(body); StringHttpBody newBody = new StringHttpBody(); newBody.BodyString = updatedBody; newBody.ContentType = "application/json"; e.Request.Body = newBody; }
public override IEnumerator <WebTestRequest> GetRequestEnumerator() { // Initialize validation rules that apply to all requests in the WebTest if ((this.Context.ValidationLevel >= Microsoft.VisualStudio.TestTools.WebTesting.ValidationLevel.Low)) { ValidateResponseUrl validationRule1 = new ValidateResponseUrl(); this.ValidateResponse += new EventHandler <ValidationEventArgs>(validationRule1.Validate); } if ((this.Context.ValidationLevel >= Microsoft.VisualStudio.TestTools.WebTesting.ValidationLevel.Low)) { ValidationRuleResponseTimeGoal validationRule2 = new ValidationRuleResponseTimeGoal(); validationRule2.Tolerance = 0D; this.ValidateResponseOnPageComplete += new EventHandler <ValidationEventArgs>(validationRule2.Validate); } WebTestRequest request1 = new WebTestRequest("https://www5.tel-aviv.gov.il/tlvservices/tlvirgunovdim/api/Nofesh/SaveNofeshT" + "ashlumim"); request1.Method = "POST"; request1.Headers.Add(new WebTestRequestHeader("Pragma", "no-cache")); request1.Headers.Add(new WebTestRequestHeader("Accept", "application/json, text/plain, */*")); request1.Headers.Add(new WebTestRequestHeader("Referer", "https://www5.tel-aviv.gov.il/Tlvirgunovdim/")); request1.Headers.Add(new WebTestRequestHeader("Authorization", ("Bearer " + this.Context["access_token"].ToString()))); StringHttpBody request1Body = new StringHttpBody(); request1Body.ContentType = "application/json"; request1Body.InsertByteOrderMark = false; var tz = this.Context["dataNofesh.dataNofashim#txt.user"].ToString(); request1Body.BodyString = "{\"nofesh_id\":37,\"ms_zehut_mazmin\":300020674,\"tashlumim\":[{\"ms_zehut_meshalem\":300" + "020674,\"ofen_tashlum\":\"1\",\"ms_tashlumim\":1,\"schum_tashlum\":3730,\"teur_tashlum\":\"" + "\"}]}"; request1Body.BodyString = request1Body.BodyString.Replace("300020674", tz); request1.Body = request1Body; yield return(request1); request1 = null; }
public override IEnumerator <WebTestRequest> GetRequestEnumerator() { // Initialize validation rules that apply to all requests in the WebTest if ((this.Context.ValidationLevel >= Microsoft.VisualStudio.TestTools.WebTesting.ValidationLevel.Low)) { ValidateResponseUrl validationRule1 = new ValidateResponseUrl(); this.ValidateResponse += new EventHandler <ValidationEventArgs>(validationRule1.Validate); } if ((this.Context.ValidationLevel >= Microsoft.VisualStudio.TestTools.WebTesting.ValidationLevel.Low)) { ValidationRuleResponseTimeGoal validationRule2 = new ValidationRuleResponseTimeGoal(); validationRule2.Tolerance = 0D; this.ValidateResponseOnPageComplete += new EventHandler <ValidationEventArgs>(validationRule2.Validate); } WebTestRequest request1 = new WebTestRequest("https://www5.tel-aviv.gov.il/tlvservices/tlvirgunovdim/api/Nofesh/SaveNofeshNirsh" + "amim"); request1.Method = "POST"; request1.Headers.Add(new WebTestRequestHeader("Pragma", "no-cache")); request1.Headers.Add(new WebTestRequestHeader("Accept", "application/json, text/plain, */*")); request1.Headers.Add(new WebTestRequestHeader("Referer", "https://www5.tel-aviv.gov.il/Tlvirgunovdim/")); request1.Headers.Add(new WebTestRequestHeader("Authorization", ("Bearer " + this.Context["access_token"].ToString()))); StringHttpBody request1Body = new StringHttpBody(); request1Body.ContentType = "application/json"; request1Body.InsertByteOrderMark = false; var tz = this.Context["dataNofesh.dataNofashim#txt.user"].ToString(); var id_nofesh = this.Context["dataNofesh.dataNofashim#txt.id_nofesh"].ToString(); request1Body.BodyString = @"{""id_nofesh"":""37"",""nirshamim"":[{""ms_zehut"":300020674,""shem_prati"":""הילה"",""shem_mishpacha"":""צפירה"",""ms_darkon"":""546465487913241"",""tr_tokef_darkon"":""2020-09-04T00:00:00.000Z"",""shem_prati_loazi"":""Kuku"",""shem_mishpacha_loazi"":""Rico"",""phone"":""0522340406"",""email"":""*****@*****.**"",""llo_nitsul_zakaut"":0}]}"; request1Body.BodyString = request1Body.BodyString.Replace("300020674", tz); request1Body.BodyString = request1Body.BodyString.Replace("37", id_nofesh); request1.Body = request1Body; yield return(request1); request1 = null; }
public override IEnumerator <WebTestRequest> GetRequestEnumerator() { WebTestRequest request1 = new WebTestRequest("http://cwiazgateway.azurewebsites.net/v0/Account/register"); request1.Timeout = 60; request1.Method = "POST"; request1.Headers.Add(new WebTestRequestHeader("Origin", "http://cwiazgateway.azurewebsites.net")); request1.Headers.Add(new WebTestRequestHeader("Content-Type", "application/json-patch+json")); request1.Headers.Add(new WebTestRequestHeader("DNT", "1")); StringHttpBody request1Body = new StringHttpBody(); request1Body.ContentType = "application/json-patch+json"; request1Body.InsertByteOrderMark = false; var name = Guid.NewGuid().ToString().Replace("-", string.Empty); var email = $"{name}@meetup.com.br"; var password = "******"; request1Body.BodyString = JsonConvert.SerializeObject(new { name, email, password }); request1.Body = request1Body; yield return(request1); request1 = null; }
public IEnumerator <WebTestRequest> GetRequestEnumerator(TwinfieldDBTenant DBTenant, string userDictionaryKey, WebTestRequestPlugin objPlugin) { var WebBTPrefix = TwinfieldScenarioPrefix.CT_ + DBTenant.ToString() + "_"; _textContext = webTest.Context; _textContext.TryGetValue("doLogin", out doLogin); _textContext.TryGetValue("UserId", out virtualuserId); SharedThreadData threadData; #region DoLogin if (Convert.ToBoolean(doLogin)) { webTest.Context.CookieContainer = new System.Net.CookieContainer(); try { localDictionary = CustomDS.Instance.GetNextRowTwinfield(DBTenant, TwinfieldScenarioName.CreateTransaction); threadData = new SharedThreadData(Convert.ToInt32(virtualuserId), this.TestContext); threadData.UserName = localDictionary["UserName"]; threadData.Tenant = localDictionary["DBTenant"]; threadData.CustomerName = localDictionary["CustomerName"]; threadData.hasFullAccess = localDictionary["hasFullAccess"]; threadData.Password = AssemblyLoad.Password; threadData.ScenarioPrefix = WebBTPrefix; CustomDS.Instance.Save_CreateTransaction_UserData(Convert.ToInt32(virtualuserId), threadData, DBTenant); Logger.WriteGeneralLogUser(TwinfieldScenarioName.CreateTransaction + " : " + DBTenant + " : LoggedIn : " + virtualuserId); } catch (Exception ex) { Logger.WriteGeneralLog("Input Data not fetched for:" + TwinfieldScenarioName.CreateTransaction); throw new Exception("Error in reading data for " + TwinfieldScenarioName.CreateTransaction + " : " + ex.Message); } if (threadData.hasFullAccess == "0") { foreach (var request in webTest.Login_WebAPI(threadData, objPlugin)) { yield return(request); } } else { foreach (var request in webTest.Login_WebAPI(threadData, objPlugin)) { yield return(request); } } //RTMonitor.Write(Color.Green, "Create Invoice Login User: "******"with iteration no :" + threadData.iterationCount + " LoginTime: " + DateTime.Now + "\r\n"); CustomDS.Instance.Save_CreateTransaction_UserData(Convert.ToInt32(virtualuserId), threadData, DBTenant); //Logger.WriteGeneralLog("Create Invoice : Vuser - " + Convert.ToInt32(virtualuserId).ToString() + " Logged In"); } else { try { threadData = CustomDS.Instance.Get_CreateTransaction_UserData(Convert.ToInt32(virtualuserId), DBTenant); Logger.WriteGeneralLogUser(TwinfieldScenarioName.CreateTransaction + " : " + DBTenant + " : NotLoggedIn : " + virtualuserId); } catch (Exception ex) { Logger.WriteGeneralLog("Input Data not saved for :" + TwinfieldScenarioName.CreateTransaction); throw new Exception("Error in getting data for " + TwinfieldScenarioName.CreateTransaction + " : " + ex.Message); } } #endregion DoLogin Thread.Sleep(2000); string SessionID = webTest.Context["SessionID"].ToString(); WebBTPrefix = threadData.ScenarioPrefix; string WebRequestPrefix = ""; string UserDetailsFromFile = System.IO.File.ReadAllText("CreateTransactionData.txt"); string encUserDetailsFromFile = HttpUtility.HtmlEncode(UserDetailsFromFile); //Will be used in case need to create both types of transaction if (this.GetType().Name == "CreateTransactionXML") { TransactionStatus = "final"; Code = "VRK"; } else { //Selecting Random transaction type string[] TTypes = { "final", "temporary" }; Random rtemp = new Random(); int index = rtemp.Next(2); string TType = TTypes[index]; TransactionStatus = TType; //Selecting Random Code string[] codes = { "INK", "VRK" }; Random rInt = new Random(); int r = rInt.Next(2); string CodeTemp = codes[r]; Code = CodeTemp; } //Creating Random Invoice Number Random rand = new Random(); string CharacterString = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; string appendName = new string(Enumerable.Repeat(CharacterString, 4) .Select(s => s[rand.Next(s.Length)]).ToArray()); string InvoiceNumber = "SALES-INV-" + appendName; //Office fetched from CSV string Office = threadData.CompanyName; string TranDate = DateTime.Now.ToString("yyyy/MM/MM"); TranDate = TranDate.Replace("/", ""); //Replacing the XML file contents to have the dynamic data encUserDetailsFromFile = encUserDetailsFromFile.Replace("{transactionStatus}", TransactionStatus); encUserDetailsFromFile = encUserDetailsFromFile.Replace("{Code}", Code); encUserDetailsFromFile = encUserDetailsFromFile.Replace("{InvoiceNumber}", InvoiceNumber); encUserDetailsFromFile = encUserDetailsFromFile.Replace("{Office}", Office); encUserDetailsFromFile = encUserDetailsFromFile.Replace("{TranDate}", TranDate); #region CT_ChangeOffice webTest.BeginTransaction(WebBTPrefix + "ChangeOffice"); WebRequestPrefix = "CO_"; webTest.BeginTransaction(WebRequestPrefix + "webservices_session"); WebTestRequest request2 = new WebTestRequest((webTest.Context["AccountingURL"].ToString() + "/webservices/session.asmx")); request2.Timeout = 60; request2.Method = "POST"; request2.Headers.Add(new WebTestRequestHeader("Content-Type", "text/xml; charset=utf-8")); request2.Headers.Add(new WebTestRequestHeader("SOAPAction", "\"http://www.twinfield.com/SelectCompany\"")); StringHttpBody request2Body = new StringHttpBody(); request2Body.ContentType = "text/xml; charset=utf-8"; request2Body.InsertByteOrderMark = false; request2Body.BodyString = @"<?xml version=""1.0"" encoding=""utf-8""?><soap:Envelope xmlns:soap=""http://schemas.xmlsoap.org/soap/envelope/"" xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns:xsd=""http://www.w3.org/2001/XMLSchema""><soap:Header><Header xmlns=""http://www.twinfield.com/""><SessionID>" + SessionID + @"</SessionID><CompanyId xsi:nil=""true"" /></Header></soap:Header><soap:Body><SelectCompany xmlns=""http://www.twinfield.com/""><company>" + threadData.CompanyName + "</company></SelectCompany></soap:Body></soap:Envelope>"; request2.Body = request2Body; yield return(request2); request2 = null; webTest.EndTransaction(WebRequestPrefix + "webservices_session"); webTest.EndTransaction(WebBTPrefix + "ChangeOffice"); #endregion Thread.Sleep(2000); #region CT_CreateTransactionXML webTest.BeginTransaction(WebBTPrefix + "CreateTransactionXML"); WebRequestPrefix = "CTX_"; webTest.BeginTransaction(WebRequestPrefix + "webservices_processxml"); WebTestRequest request3 = new WebTestRequest((webTest.Context["AccountingURL"].ToString() + "/webservices/processxml.asmx")); request3.Timeout = 60; request3.Method = "POST"; request3.Headers.Add(new WebTestRequestHeader("Content-Type", "text/xml; charset=utf-8")); request3.Headers.Add(new WebTestRequestHeader("SOAPAction", "\"http://www.twinfield.com/ProcessXmlString\"")); StringHttpBody request3Body = new StringHttpBody(); request3Body.ContentType = "text/xml; charset=utf-8"; request3Body.InsertByteOrderMark = false; request3Body.BodyString = @"<?xml version=""1.0"" encoding=""utf-8""?><soap:Envelope xmlns:soap=""http://schemas.xmlsoap.org/soap/envelope/"" xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns:xsd=""http://www.w3.org/2001/XMLSchema""><soap:Header><Header xmlns=""http://www.twinfield.com/""><SessionID>" + SessionID + @"</SessionID><CompanyId xsi:nil=""true""/></Header></soap:Header><soap:Body><ProcessXmlString xmlns=""http://www.twinfield.com/""><xmlRequest>" + encUserDetailsFromFile + "</xmlRequest></ProcessXmlString></soap:Body></soap:Envelope>"; request3.Body = request3Body; yield return(request3); request3 = null; webTest.EndTransaction(WebRequestPrefix + "webservices_processxml"); webTest.EndTransaction(WebBTPrefix + "CreateTransactionXML"); #endregion Thread.Sleep(2000); if ((Convert.ToInt32(webTest.Context["iterationNo"]) % Convert.ToInt32(webTest.Context["maxiterationNo"])) == 0) { foreach (var request in webTest.Logout_WebAPI(threadData, objPlugin)) { yield return(request); } //RTMonitor.Write(Color.Green, "User Logout: " + threadData.UserName + " LogOutTime: " + DateTime.Now + "\r\n"); Thread.Sleep(2000); } }
public IEnumerator <WebTestRequest> GetRequestEnumerator(TwinfieldDBTenant DBTenant, string userDictionaryKey, WebTestRequestPlugin objPlugin) { var WebBTPrefix = TwinfieldScenarioPrefix.RT_ + DBTenant.ToString() + "_"; _textContext = webTest.Context; _textContext.TryGetValue("doLogin", out doLogin); _textContext.TryGetValue("UserId", out virtualuserId); SharedThreadData threadData; #region DoLogin if (Convert.ToBoolean(doLogin)) { webTest.Context.CookieContainer = new System.Net.CookieContainer(); try { localDictionary = CustomDS.Instance.GetNextRowTwinfield(DBTenant, TwinfieldScenarioName.ReadTransaction); threadData = new SharedThreadData(Convert.ToInt32(virtualuserId), this.TestContext); threadData.UserName = localDictionary["UserName"]; threadData.Tenant = localDictionary["DBTenant"]; threadData.CustomerName = localDictionary["CustomerName"]; threadData.hasFullAccess = localDictionary["hasFullAccess"]; threadData.Password = AssemblyLoad.Password; threadData.ScenarioPrefix = WebBTPrefix; CustomDS.Instance.Save_ReadTransaction_UserData(Convert.ToInt32(virtualuserId), threadData, DBTenant); Logger.WriteGeneralLogUser(TwinfieldScenarioName.ReadTransaction + " : " + DBTenant + " : LoggedIn : " + virtualuserId); } catch (Exception ex) { Logger.WriteGeneralLog("Input Data not fetched for:" + TwinfieldScenarioName.ReadTransaction); throw new Exception("Error in reading data for " + TwinfieldScenarioName.ReadTransaction + " : " + ex.Message); } if (threadData.hasFullAccess == "0") { foreach (var request in webTest.Login_WebAPI(threadData, objPlugin)) { yield return(request); } } else { foreach (var request in webTest.Login_WebAPI(threadData, objPlugin)) { yield return(request); } } //RTMonitor.Write(Color.Green, "Create Invoice Login User: "******"with iteration no :" + threadData.iterationCount + " LoginTime: " + DateTime.Now + "\r\n"); CustomDS.Instance.Save_ReadTransaction_UserData(Convert.ToInt32(virtualuserId), threadData, DBTenant); //Logger.WriteGeneralLog("Create Invoice : Vuser - " + Convert.ToInt32(virtualuserId).ToString() + " Logged In"); } else { try { threadData = CustomDS.Instance.Get_ReadTransaction_UserData(Convert.ToInt32(virtualuserId), DBTenant); Logger.WriteGeneralLogUser(TwinfieldScenarioName.ReadTransaction + " : " + DBTenant + " : NotLoggedIn : " + virtualuserId); } catch (Exception ex) { Logger.WriteGeneralLog("Input Data not saved for :" + TwinfieldScenarioName.ReadTransaction); throw new Exception("Error in getting data for " + TwinfieldScenarioName.ReadTransaction + " : " + ex.Message); } } #endregion DoLogin WebBTPrefix = threadData.ScenarioPrefix; string WebRequestPrefix = ""; string SessionID = webTest.Context["SessionID"].ToString(); string UserDetailsFromFile = System.IO.File.ReadAllText("ReadTransactionData.txt"); string encUserDetailsFromFile = HttpUtility.HtmlEncode(UserDetailsFromFile); string FromDate = DateTime.Now.AddYears(-5).ToString("yyyy/MM"); string ToDate = DateTime.Now.ToString("yyyy/MM"); //Replacing the XML file contents to have the dynamic data encUserDetailsFromFile = encUserDetailsFromFile.Replace("{FromDate}", FromDate); encUserDetailsFromFile = encUserDetailsFromFile.Replace("{ToDate}", ToDate); string ReadData = @"<?xml version=""1.0"" encoding=""utf-8""?><soap:Envelope xmlns:soap=""http://schemas.xmlsoap.org/soap/envelope/"" xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns:xsd=""http://www.w3.org/2001/XMLSchema""><soap:Header><Header xmlns=""http://www.twinfield.com/""><SessionID>" + SessionID + @"</SessionID><CompanyId xsi:nil=""true"" /></Header></soap:Header><soap:Body><ProcessXmlString xmlns=""http://www.twinfield.com/""><xmlRequest>" + encUserDetailsFromFile + "</xmlRequest></ProcessXmlString></soap:Body></soap:Envelope>"; Thread.Sleep(2000); #region RT_ReadTransactionXML webTest.BeginTransaction(WebBTPrefix + "RT_ReadTransactionXML"); WebRequestPrefix = "RTX_"; webTest.BeginTransaction(WebRequestPrefix + "webservices_processxml"); WebTestRequest request2 = new WebTestRequest((webTest.Context["AccountingURL"].ToString() + "/webservices/processxml.asmx")); request2.Timeout = 60; request2.Method = "POST"; request2.Headers.Add(new WebTestRequestHeader("Content-Type", "text/xml; charset=utf-8")); request2.Headers.Add(new WebTestRequestHeader("SOAPAction", "\"http://www.twinfield.com/ProcessXmlString\"")); StringHttpBody request2Body = new StringHttpBody(); request2Body.ContentType = "text/xml; charset=utf-8"; request2Body.InsertByteOrderMark = false; request2Body.BodyString = ReadData; #region BodySTring //"<?xml version=\"1.0\" encoding=\"utf-8\"?><soap:Envelope xmlns:soap=\"http://schemas.x" + // "mlsoap.org/soap/envelope/\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\"><soap:Header><Header xmlns=\"http:/" + // "/www.twinfield.com/\"><SessionID>" + SessionID + "</SessionID>" + // "<CompanyId xsi:nil=\"true\" /></Header></soap:Header><soap:Body><ProcessXmlString" + // "xmlns=\"http://www.twinfield.com/\"><xmlRequest><columns code=\"020\">\n&" + // "lt;column id=\"1\">\n<field>fin.trs.head.yearperiod</field>" + // "\n<label>Period</label>\n<visible>true</vis" + // "ible>\n<ask>true</ask>\n<operator>between&l" + // "t;/operator>\n<from>2001/01</from>\n<to>201" + // "8/08</to>\n<finderparam></finderparam>\n</colu" + // "mn>\n<column id=\"2\">\n<field>fin.trs.head.code</f" + // "ield>\n<label>Transaction type</label>\n<visib" + // "le>true</visible>\n<ask>true</ask>\n<ope" + // "rator>equal</operator>\n<from></from>\n<" + // "to></to>\n<finderparam>hidden=1</finderparam>\n" + // "</column>\n<column id=\"3\">\n<field>fin.trs.head." + // "shortname</field>\n<label>Name</label>\n<vi" + // "sible>true</visible>\n<ask>false</ask>\n<" + // ";operator>none</operator>\n<from></from>\n&" + // "lt;to></to>\n<finderparam></finderparam>\n<" + // "/column>\n<column id=\"4\">\n<field>fin.trs.head.numbe" + // "r</field>\n<label>Trans. no.</label>\n<visi" + // "ble>true</visible>\n<ask>true</ask>\n<op" + // "erator>between</operator>\n<from></from>\n&" + // "lt;to></to>\n<finderparam></finderparam>\n<" + // "/column>\n<column id=\"5\">\n<field>fin.trs.head.statu" + // "s</field>\n<label>Status</label>\n<visible&" + // "gt;true</visible>\n<ask>true</ask>\n<operat" + // "or>equal</operator>\n<from>normal</from>\n&" + // "lt;to></to>\n<finderparam></finderparam>\n<" + // "/column>\n<column id=\"6\">\n<field>fin.trs.head.date&" + // "lt;/field>\n<label>Trans.date</label>\n<visib" + // "le>true</visible>\n<ask>true</ask>\n<ope" + // "rator>between</operator>\n<from></from>\n&l" + // "t;to></to>\n<finderparam></finderparam>\n</" + // "column>\n<column id=\"7\">\n<field>fin.trs.head.inpdat" + // "e</field>\n<label>Date of entry</label>\n<v" + // "isible>false</visible>\n<ask>true</ask>\n&l" + // "t;operator>between</operator>\n<from></from>\n" + // "<to></to>\n<finderparam></finderparam>\n" + // "</column>\n<column id=\"8\">\n<field>fin.trs.head.m" + // "odified</field>\n<label>Modification date</label>\n" + // "<visible>false</visible>\n<ask>true</ask>\n" + // "<operator>between</operator>\n<from></from&" + // "gt;\n<to></to>\n<finderparam></finderparam&" + // "gt;\n</column>\n<column id=\"9\">\n<field>fin." + // "trs.line.dim1</field>\n<label>General ledger</label>\n" + // "<visible>true</visible>\n<ask>true</ask>" + // "\n<operator>between</operator>\n<from></fro" + // "m>\n<to></to>\n<finderparam></finderpara" + // "m>\n</column>\n<column id=\"10\">\n<field>f" + // "in.trs.line.dim2</field>\n<label>Cust./supp.</label>\n " + // "<visible>true</visible>\n<ask>true</ask>" + // "\n<operator>between</operator>\n<from></fro" + // "m>\n<to></to>\n<finderparam></finderpara" + // "m>\n</column>\n<column id=\"11\">\n<field>f" + // "in.trs.line.dim3</field>\n<label>Project</label>\n" + // "<visible>true</visible>\n<ask>true</ask>\n" + // "<operator>between</operator>\n<from></from>" + // ";\n<to></to>\n<finderparam></finderparam>" + // ";\n</column>\n<column id=\"12\">\n<field>fin.t" + // "rs.head.curcode</field>\n<label>Currency</label>\n " + // "<visible>true</visible>\n<ask>true</ask>\n " + // "<operator>equal</operator>\n<from></from>\n" + // "<to></to>\n<finderparam></finderparam>\n" + // "</column>\n<column id=\"13\">\n<field>fin.trs" + // ".line.valuesigned</field>\n<label>Value</label>\n" + // "<visible>true</visible>\n<ask>true</ask>\n" + // "<operator>between</operator>\n<from></from>" + // "\n<to></to>\n<finderparam></finderparam>" + // "\n</column>\n<column id=\"14\">\n<field>fin.tr" + // "s.line.basevaluesigned</field>\n<label>Euro</label>\n" + // "<visible>true</visible>\n<ask>true</ask>\n" + // "<operator>between</operator>\n<from></from" + // ">\n<to></to>\n<finderparam></finderparam" + // ">\n</column>\n<column id=\"15\">\n<field>fi" + // "n.trs.line.repvaluesigned</field>\n<label></label>\n " + // "<visible>false</visible>\n<ask>false</ask>" + // "\n<operator>between</operator>\n<from></fro" + // "m>\n<to></to>\n<finderparam></finderpara" + // "m>\n</column>\n<column id=\"16\">\n<field>f" + // "in.trs.line.invnumber</field>\n<label>Invoice no.</label&" + // "gt;\n<visible>true</visible>\n<ask>true</as" + // "k>\n<operator>equal</operator>\n<from></" + // "from>\n<to></to>\n<finderparam></finderp" + // "aram>\n</column>\n<column id=\"17\">\n<field&g" + // "t;fin.trs.head.user</field>\n<label>User</label>\n" + // "<visible>false</visible>\n<ask>true</ask>\n " + // "<operator>equal</operator>\n<from></from>" + // "\n<to></to>\n<finderparam></finderparam>" + // "\n</column>\n<column id=\"18\">\n<field>fin.tr" + // "s.head.inpdate</field>\n<label>Date of entry</label>\n " + // "<visible>true</visible>\n<ask>false</ask>" + // ";\n<operator>none</operator>\n<from></from&" + // "gt;\n<to></to>\n<finderparam></finderparam&" + // "gt;\n</column>\n<column id=\"19\">\n<field>fin" + // ".trs.line.description</field>\n<label>Description</label&" + // "gt;\n<visible>true</visible>\n<ask>false</a" + // "sk>\n<operator>none</operator>\n<from></" + // "from>\n<to></to>\n<finderparam></finderp" + // "aram>\n</column>\n<column id=\"20\">\n<field&g" + // "t;fin.trs.head.browseregime</field>\n<label>Regime</label" + // ">\n<visible>true</visible>\n<ask>true</a" + // "sk>\n<operator>equal</operator>\n<from><" + // "/from>\n<to></to>\n<finderparam></finder" + // "param>\n</column>\n</columns></xmlRequest></ProcessXmlStri" + // "ng></soap:Body></soap:Envelope>"; #endregion request2.Body = request2Body; yield return(request2); request2 = null; webTest.EndTransaction(WebRequestPrefix + "webservices_processxml"); webTest.EndTransaction(WebBTPrefix + "RT_ReadTransactionXML"); #endregion Thread.Sleep(2000); if ((Convert.ToInt32(webTest.Context["iterationNo"]) % Convert.ToInt32(webTest.Context["maxiterationNo"])) == 0) { foreach (var request in webTest.Logout_WebAPI(threadData, objPlugin)) { yield return(request); } //RTMonitor.Write(Color.Green, "User Logout: " + threadData.UserName + " LogOutTime: " + DateTime.Now + "\r\n"); Thread.Sleep(2000); } }
public Task <HttpHandlerResponse> Call(HttpApiRequest request) { var webRequest = WebRequest.CreateHttp(request.Url.ToString()); webRequest.AutomaticDecompression = DecompressionMethods.Deflate | DecompressionMethods.GZip; webRequest.Method = request.Method.ToString(); if (request.Proxy != null) { webRequest.Proxy = request.Proxy; } foreach (var header in request.Headers) { switch (header.Name) { case "User-Agent": webRequest.UserAgent = header.Values.Single(); break; case "Accept": webRequest.Accept = header.Values.Single(); break; case "Content-Type": webRequest.ContentType = header.Values.Single(); break; default: webRequest.Headers.Add(header.Name, string.Join(",", header.Values)); break; } } var requestWriteTime = new Stopwatch(); requestWriteTime.Start(); if (request.Body != null) { var requestStream = webRequest.GetRequestStream(); var stream = request.Body.Accept(new ContentCreator()); stream.CopyTo(requestStream); requestStream.Close(); } else if (request.Method != HttpMethod.Get && request.Method != HttpMethod.Head) { var requestStream = webRequest.GetRequestStream(); requestStream.Close(); } HttpWebResponse response; try { response = (HttpWebResponse)webRequest.GetResponse(); } catch (WebException e) when(e.Response != null) { response = (HttpWebResponse)e.Response; } requestWriteTime.Stop(); var responseHeaders = new List <HttpHeader>(); HttpBody responseBody = null; responseHeaders.AddRange(response.Headers.AllKeys.Select(x => new HttpHeader(x, response.Headers[x].Split(',')))); var responseReadTime = new Stopwatch(); responseReadTime.Start(); var responseStream = response.GetResponseStream(); switch (request.ResponseContentTypeOverride ?? response.ContentType.Split(';')[0]) { case "application/json": var jsonString = Encoding.UTF8.GetString(responseStream.ReadToEnd()); var json = !string.IsNullOrEmpty(jsonString) ? JToken.Parse(jsonString) : null; // Hack to workaround silly servers that send a content type and a 204 if (json != null) { responseBody = new JsonHttpBody(json); } break; case "application/x-www-form-urlencoded": throw new NotSupportedException(); // var stream = await message.Content.ReadAsStreamAsync(); // body = FormParser.ParseForm(stream); // break; case "text/plain": case "text/html": case "": var text = Encoding.UTF8.GetString(responseStream.ReadToEnd()); responseBody = new StringHttpBody(text); break; case "application/octet-stream": var stream = new MemoryStream(); responseStream.CopyTo(stream); stream.Position = 0; responseBody = new StreamHttpBody(stream); break; } responseStream.Close(); responseReadTime.Stop(); var result = new HttpApiResponse(response.StatusCode, responseBody, responseHeaders, response.ResponseUri.ToString()); return(Task.FromResult(new HttpHandlerResponse(result, requestWriteTime.Elapsed, responseReadTime.Elapsed))); }
public override IEnumerator <WebTestRequest> GetRequestEnumerator() { if (Context.ValidationLevel >= ValidationLevel.High) { var responseTimeValidationRule = new ValidationRuleRequestTime() { MaxRequestTime = 1000, }; ValidateResponse += new EventHandler <ValidationEventArgs>(responseTimeValidationRule.Validate); var responseTimeThresholdValidationRule = new ValidationRuleResponseTimeGoal() { Tolerance = 15D, }; ValidateResponseOnPageComplete += new EventHandler <ValidationEventArgs>(responseTimeThresholdValidationRule.Validate); } var webTestRequest = new WebTestRequest("http://jwdotnetcore.azurewebsites.net/api/customers") { Method = "POST", }; webTestRequest.PostRequest += WebTestRequest_PostRequest; var orderItem = new Faker <OrderItem>() .RuleFor(oi => oi.SerialNumber, p => p.Finance.Iban()) .RuleFor(oi => oi.Title, p => p.Commerce.Product()) .RuleFor(oi => oi.Description, p => p.Lorem.Sentences(5)) .RuleFor(oi => oi.Cost, p => p.Random.Double(1, 100)) .RuleFor(oi => oi.Quantity, p => p.Random.Int(1, 10)); var order = new Faker <Order>() .RuleFor(oi => oi.OrderDate, p => p.Date.Between(DateTime.Now.AddYears(-1), DateTime.Now)) .RuleFor(oi => oi.OrderItems, (faker) => { return(orderItem.Generate(faker.Random.Int(1, 100))); }); var address = new Faker <Address>() .RuleFor(a => a.AddressLine1, p => p.Address.StreetAddress()) .RuleFor(a => a.AddressLine2, p => p.Address.BuildingNumber()) .RuleFor(a => a.City, p => p.Address.City()) .RuleFor(a => a.State, p => p.Address.StateAbbr()) .RuleFor(a => a.ZipCode, p => p.Address.ZipCode()); var customer = new Faker <Customer>() .RuleFor(c => c.FirstName, p => p.Name.FirstName()) .RuleFor(c => c.LastName, p => p.Name.LastName()) .RuleFor(c => c.BirthDate, p => p.Date.Between(DateTime.Now.AddYears(-80), DateTime.Now.AddYears(-18))) .RuleFor(c => c.Address, (faker) => { return(address.Generate()); }) .RuleFor(c => c.Orders, (faker) => { return(order.Generate(faker.Random.Int(1, 10))); }) .Generate(); var json = JsonConvert.SerializeObject(customer); var body = new StringHttpBody { ContentType = "application/json", InsertByteOrderMark = false, BodyString = json, }; webTestRequest.Body = body; yield return(webTestRequest); webTestRequest = null; }
public static MultipartHttpBody ParseMultipart(HttpListenerRequest request) { var extraData = request.ContentType .Split(';') .Skip(1) .Select(x => x.Trim().Split('=')) .ToDictionary(x => x[0], x => x[1].StartsWith("\"") ? x[1].Substring(1, x[1].Length - 2) : x[1]); var boundary = "--" + extraData["boundary"]; var input = new MemoryStream(); var position = 0L; request.InputStream.CopyTo(input); var buffer = input.ToArray(); var result = new MultipartHttpBody(); // var s2 = new StreamReader(new MemoryStream(buffer)).ReadToEnd(); var boundaryBytes = Encoding.UTF8.GetBytes(boundary); var boundaryLine = ReadLine(buffer, ref position); if (boundaryLine != boundary) throw new Exception($"Expected boundary but found: {boundaryLine}"); while (true) { string name = null; string fileName = null; string contentType = null; for (var line = ReadLine(buffer, ref position); line != ""; line = ReadLine(buffer, ref position)) { int colonIndex = line.IndexOf(':'); var headerName = line.Substring(0, colonIndex); var headerValue = line.Substring(colonIndex + 2); switch (headerName) { case "Content-Disposition": { var header = ContentDispositionHeaderValue.Parse(headerValue); name = header.Name; fileName = header.FileName; break; } case "Content-Type": { var header = MediaTypeHeaderValue.Parse(headerValue); contentType = header.MediaType; break; } } } var endBoundary = IndexOf(buffer, position, boundaryBytes); var dataBuffer = ReadBuffer(buffer, ref position, endBoundary - position); Func<string> getText = () => { var s = Encoding.UTF8.GetString(dataBuffer); // s = s.Substring(0, s.Length - 2); return s; }; HttpBody body; switch (contentType) { case "text/plain": body = new StringHttpBody(getText()); break; case "application/json": body = new JsonHttpBody(JToken.Parse(getText())); break; case "application/octet-stream": body = new ByteArrayHttpBody { Data = dataBuffer }; break; default: throw new Exception($"Unsupported media type: {contentType}"); } result.Data[name] = new MultipartData { FileName = fileName, Body = body }; var endBoundaryLine = ReadLine(buffer, ref position); if (endBoundaryLine == boundaryLine + "--") break; if (endBoundaryLine != boundaryLine) throw new Exception($"Expected ending boundary but found: {boundaryLine}"); } return result; }
public override IEnumerator <WebTestRequest> GetRequestEnumerator() { // this.Context.Add("URL", "https://mc-mcdele4eznqtkydvq5s.azurewebsites.net"); // this.Context.Add("URL", "https://localhost:44365"); // this.Context.Add("auth", "a34bojp73bq3k"); var baseURL = (string)this.Context["URL"]; var auth = (string)this.Context["auth"]; var contextOptions = new[] { "Young", "Old" }; var rnd = new Random(); var expectedAction = rnd.Next(0, 2); var age = contextOptions[expectedAction]; expectedAction++; // actions are 1-based //while (true) { WebTestRequest request1 = new WebTestRequest($"{baseURL}/API/Policy"); request1.Method = "POST"; request1.Headers.Add(new WebTestRequestHeader("Accept", "application/json, text/javascript, */*; q=0.01")); request1.Headers.Add(new WebTestRequestHeader("X-Requested-With", "XMLHttpRequest")); request1.Headers.Add(new WebTestRequestHeader("auth", auth)); StringHttpBody request1Body = new StringHttpBody(); request1Body.ContentType = "application/json; charset=utf-8"; request1Body.InsertByteOrderMark = false; request1Body.BodyString = JsonConvert.SerializeObject(new { Features = Enumerable.Range(1, 1000).Select(_ => rnd.NextDouble()).ToArray() }); request1.Body = request1Body; request1.ExtractValues += Request1_ExtractValues; yield return(request1); request1 = null; var conditionalRule1 = new ProbabilisticConditional { SuccessProbability = 0.01f }; // = new ResponseConditional //{ // ExpectedAction = expectedAction, // InconsistencyProbability = 0.2f //}; this.BeginCondition(conditionalRule1); if (this.ExecuteConditionalRule(conditionalRule1)) { WebTestRequest request2 = new WebTestRequest($"{baseURL}/API/Reward/"); request2.Method = "POST"; request2.Headers.Add(new WebTestRequestHeader("Accept", "*/*")); request2.Headers.Add(new WebTestRequestHeader("X-Requested-With", "XMLHttpRequest")); request2.Headers.Add(new WebTestRequestHeader("auth", auth)); request2.QueryStringParameters.Add("eventId", "{{EventId}}", false, false); StringHttpBody request2Body = new StringHttpBody(); request2Body.ContentType = "application/json; charset=utf-8"; request2Body.InsertByteOrderMark = false; request2Body.BodyString = "1"; // reward request2.Body = request2Body; yield return(request2); request2 = null; } this.EndCondition(conditionalRule1); } }
/// <summary> /// Gets the test results. /// </summary> /// <param name="method">The method.</param> /// <param name="urlWithQueryString">The URL with query string.</param> /// <param name="requestHttpVersion">The request HTTP version.</param> /// <param name="requestHeaders">The request headers.</param> /// <param name="requestBody">The request body.</param> /// <param name="response">The response.</param> /// <returns></returns> public static string GetTestResults(string method, string urlWithQueryString, string requestHttpVersion, WebTestRequestHeaderCollection requestHeaders, StringHttpBody requestBody, WebTestResponse response) { string methodAndUrlWithQueryString = method + " " + urlWithQueryString + " " + "HTTP/" + requestHttpVersion; string reqHeaders = GetRequestHeader(requestHeaders); string reqBody = GetRequestStringBody(requestBody); string respHeaders = GetResponseHeader(response); string respBody = GetResponseStringBody(response); string finalResult = ">>> REQUEST <<<\n" + methodAndUrlWithQueryString + "\n" + reqHeaders + "\n" + reqBody + "\n\n>>> RESPONSE <<<\n" + respHeaders + "\n" + respBody; return(finalResult); }
public IEnumerator <WebTestRequest> GetRequestEnumerator(TwinfieldDBTenant DBTenant, string userDictionaryKey, WebTestRequestPlugin objPlugin) { var WebBTPrefix = TwinfieldScenarioPrefix.ETBR_ + DBTenant.ToString() + "_"; _textContext = webTest.Context; _textContext.TryGetValue("doLogin", out doLogin); _textContext.TryGetValue("UserId", out virtualuserId); SharedThreadData threadData; #region DoLogin if (Convert.ToBoolean(doLogin)) { webTest.Context.CookieContainer = new System.Net.CookieContainer(); try { localDictionary = CustomDS.Instance.GetNextRowTwinfield(DBTenant, TwinfieldScenarioName.ExtendedTBReport); threadData = new SharedThreadData(Convert.ToInt32(virtualuserId), this.TestContext); threadData.UserName = localDictionary["UserName"]; threadData.Tenant = localDictionary["DBTenant"]; threadData.CustomerName = localDictionary["CustomerName"]; threadData.hasFullAccess = localDictionary["hasFullAccess"]; threadData.Password = AssemblyLoad.Password; threadData.ScenarioPrefix = WebBTPrefix; CustomDS.Instance.Save_ExtendedTBReport_UserData(Convert.ToInt32(virtualuserId), threadData, DBTenant); Logger.WriteGeneralLogUser(TwinfieldScenarioName.ExtendedTBReport + " : " + DBTenant + " : LoggedIn : " + virtualuserId); } catch (Exception ex) { Logger.WriteGeneralLog("Input Data not fetched for:" + TwinfieldScenarioName.ExtendedTBReport); throw new Exception("Error in reading data for " + TwinfieldScenarioName.ExtendedTBReport + " : " + ex.Message); } if (threadData.hasFullAccess == "0") { foreach (var request in webTest.LaunchLogin(threadData, objPlugin)) { yield return(request); } } else { foreach (var request in webTest.LaunchLogin_FullAccess(threadData, objPlugin)) { yield return(request); } } //RTMonitor.Write(Color.Green, "Create Invoice Login User: "******"with iteration no :" + threadData.iterationCount + " LoginTime: " + DateTime.Now + "\r\n"); CustomDS.Instance.Save_ExtendedTBReport_UserData(Convert.ToInt32(virtualuserId), threadData, DBTenant); //Logger.WriteGeneralLog("Create Invoice : Vuser - " + Convert.ToInt32(virtualuserId).ToString() + " Logged In"); } else { try { threadData = CustomDS.Instance.Get_ExtendedTBReport_UserData(Convert.ToInt32(virtualuserId), DBTenant); Logger.WriteGeneralLogUser(TwinfieldScenarioName.ExtendedTBReport + " : " + DBTenant + " : NotLoggedIn : " + virtualuserId); } catch (Exception ex) { Logger.WriteGeneralLog("Input Data not saved for :" + TwinfieldScenarioName.ExtendedTBReport); throw new Exception("Error in getting data for " + TwinfieldScenarioName.ExtendedTBReport + " : " + ex.Message); } } #endregion DoLogin WebBTPrefix = threadData.ScenarioPrefix; string WebRequestPrefix = ""; #region Report-tab webTest.BeginTransaction(WebBTPrefix + "ReportTab"); WebRequestPrefix = "RT_"; webTest.BeginTransaction(WebRequestPrefix + "en-GB_reports_reports.html"); WebTestRequest request135 = new WebTestRequest((webTest.Context["TwfcndURL"].ToString() + "/" + threadData.BuildVersion + "/en-GB/reports/reports.html")); request135.Headers.Add(new WebTestRequestHeader("Accept", "application/json, text/plain, */*;version=latest")); request135.Headers.Add(new WebTestRequestHeader("Referer", (webTest.Context["AccountingURL"].ToString() + "/UI/"))); yield return(request135); request135 = null; webTest.EndTransaction(WebRequestPrefix + "en-GB_reports_reports.html"); webTest.BeginTransaction(WebRequestPrefix + "api_accessoverview"); WebTestRequest request136 = new WebTestRequest((webTest.Context["AccountingURL"].ToString() + "/api/accessoverview")); request136.Method = "OPTIONS"; request136.Headers.Add(new WebTestRequestHeader("Accept", "application/vnd.twinfield+json;version=latest")); request136.Headers.Add(new WebTestRequestHeader("Referer", (webTest.Context["AccountingURL"].ToString() + "/UI/"))); StringHttpBody request136Body = new StringHttpBody(); request136Body.ContentType = ""; request136Body.InsertByteOrderMark = false; request136Body.BodyString = ""; request136.Body = request136Body; yield return(request136); request136 = null; webTest.EndTransaction(WebRequestPrefix + "api_accessoverview"); webTest.BeginTransaction(WebRequestPrefix + "desktop_view_cr-dashboard-sub-section-tile.htm"); WebTestRequest request137 = new WebTestRequest((webTest.Context["TwfcndURL"].ToString() + "/" + threadData.BuildVersion + "/en-GB/_components/framework/desktop/view/cr-dashboard-sub-section-tile.htm" + "l")); request137.Headers.Add(new WebTestRequestHeader("Accept", "application/json, text/plain, */*;version=latest")); request137.Headers.Add(new WebTestRequestHeader("Referer", (webTest.Context["AccountingURL"].ToString() + "/UI/"))); yield return(request137); request137 = null; webTest.EndTransaction(WebRequestPrefix + "desktop_view_cr-dashboard-sub-section-tile.htm"); webTest.BeginTransaction(WebRequestPrefix + "framework_desktop_view_cr-basic-group-tile.html"); WebTestRequest request138 = new WebTestRequest((webTest.Context["TwfcndURL"].ToString() + "/" + threadData.BuildVersion + "/en-GB/_components/framework/desktop/view/cr-basic-group-tile.html")); request138.Headers.Add(new WebTestRequestHeader("Accept", "application/json, text/plain, */*;version=latest")); request138.Headers.Add(new WebTestRequestHeader("Referer", (webTest.Context["AccountingURL"].ToString() + "/UI/"))); yield return(request138); request138 = null; webTest.EndTransaction(WebRequestPrefix + "framework_desktop_view_cr-basic-group-tile.html"); webTest.BeginTransaction(WebRequestPrefix + "framework_desktop_view_cr-links-tile.html"); WebTestRequest request139 = new WebTestRequest((webTest.Context["TwfcndURL"].ToString() + "/" + threadData.BuildVersion + "/en-GB/_components/framework/desktop/view/cr-links-tile.html")); request139.Headers.Add(new WebTestRequestHeader("Accept", "application/json, text/plain, */*;version=latest")); request139.Headers.Add(new WebTestRequestHeader("Referer", (webTest.Context["AccountingURL"].ToString() + "/UI/"))); yield return(request139); request139 = null; webTest.EndTransaction(WebRequestPrefix + "framework_desktop_view_cr-links-tile.html"); //WebTestRequest request140 = new WebTestRequest((webTest.Context["AccountingURL"].ToString() + "/api/sales/tasks")); //request140.Headers.Add(new WebTestRequestHeader("Accept", "application/vnd.twinfield+json;version=latest")); //request140.Headers.Add(new WebTestRequestHeader("Referer", (webTest.Context["AccountingURL"].ToString() + "/UI/"))); //yield return request140; //request140 = null; webTest.BeginTransaction(WebRequestPrefix + "api_reports"); WebTestRequest reques148 = new WebTestRequest((webTest.Context["AccountingURL"].ToString() + "/api/reports")); reques148.Method = "OPTIONS"; reques148.Headers.Add(new WebTestRequestHeader("Accept", "application/vnd.twinfield+json;version=latest")); reques148.Headers.Add(new WebTestRequestHeader("Referer", (webTest.Context["AccountingURL"].ToString() + "/UI/"))); StringHttpBody reques148Body = new StringHttpBody(); reques148Body.ContentType = ""; reques148Body.InsertByteOrderMark = false; reques148Body.BodyString = ""; reques148.Body = reques148Body; yield return(reques148); reques148 = null; webTest.EndTransaction(WebRequestPrefix + "api_reports"); webTest.BeginTransaction(WebRequestPrefix + "api_reports_audittrails"); WebTestRequest reques149 = new WebTestRequest((webTest.Context["AccountingURL"].ToString() + "/api/reports/audittrails")); reques149.ThinkTime = 1; reques149.Method = "OPTIONS"; reques149.Headers.Add(new WebTestRequestHeader("Accept", "application/vnd.twinfield+json;version=latest")); reques149.Headers.Add(new WebTestRequestHeader("Referer", (webTest.Context["AccountingURL"].ToString() + "/UI/"))); StringHttpBody reques149Body = new StringHttpBody(); reques149Body.ContentType = ""; reques149Body.InsertByteOrderMark = false; reques149Body.BodyString = ""; reques149.Body = reques149Body; yield return(reques149); reques149 = null; webTest.EndTransaction(WebRequestPrefix + "api_reports_audittrails"); //WebTestRequest request141 = new WebTestRequest((webTest.Context["AccountingURL"].ToString() + "/api/notifications")); //request141.Headers.Add(new WebTestRequestHeader("Accept", "application/vnd.twinfield+json;version=latest")); //request141.Headers.Add(new WebTestRequestHeader("Referer", (webTest.Context["AccountingURL"].ToString() + "/UI/"))); //request141.QueryStringParameters.Add("since", threadData.CreatedDate, false, false); //yield return request141; //request141 = null; webTest.EndTransaction(WebBTPrefix + "ReportTab"); #endregion Thread.Sleep(2000); #region report icon webTest.BeginTransaction(WebBTPrefix + "ClickOnReportIcon"); WebRequestPrefix = "RI_"; //WebTestRequest request142 = new WebTestRequest((webTest.Context["AccountingURL"].ToString() + "/UI/")); //request142.ExpectedResponseUrl = (webTest.Context["AccountingURL"].ToString() + "/UI/#/Reports/Categories"); //yield return request142; //request142 = null; webTest.BeginTransaction(WebRequestPrefix + "en-GB_home_classic_classic.html"); WebTestRequest request143 = new WebTestRequest((webTest.Context["TwfcndURL"].ToString() + "/" + threadData.BuildVersion + "/en-GB/home/classic/classic.html")); request143.Headers.Add(new WebTestRequestHeader("Accept", "application/json, text/plain, */*;version=latest")); request143.Headers.Add(new WebTestRequestHeader("Referer", (webTest.Context["AccountingURL"].ToString() + "/UI/"))); yield return(request143); request143 = null; webTest.EndTransaction(WebRequestPrefix + "en-GB_home_classic_classic.html"); webTest.BeginTransaction(WebRequestPrefix + "reporting"); WebTestRequest request144 = new WebTestRequest((webTest.Context["AccountingURL"].ToString() + "/reporting/")); request144.Headers.Add(new WebTestRequestHeader("Referer", (webTest.Context["AccountingURL"].ToString() + "/UI/"))); yield return(request144); request144 = null; webTest.EndTransaction(WebRequestPrefix + "reporting"); //WebTestRequest request145 = new WebTestRequest((webTest.Context["AccountingURL"].ToString() + "/api/sales/tasks")); //request145.Headers.Add(new WebTestRequestHeader("Accept", "application/vnd.twinfield+json;version=latest")); //request145.Headers.Add(new WebTestRequestHeader("Referer", (webTest.Context["AccountingURL"].ToString() + "/UI/"))); //yield return request145; //request145 = null; //WebTestRequest request146 = new WebTestRequest((webTest.Context["AccountingURL"].ToString() + "/api/notifications")); //request146.Headers.Add(new WebTestRequestHeader("Accept", "application/vnd.twinfield+json;version=latest")); //request146.Headers.Add(new WebTestRequestHeader("Referer", (webTest.Context["AccountingURL"].ToString() + "/UI/"))); //request146.QueryStringParameters.Add("since", threadData.CreatedDate, false, false); //yield return request146; //request146 = null; webTest.EndTransaction(WebBTPrefix + "ClickOnReportIcon"); #endregion Thread.Sleep(2000); #region General Ledger click webTest.BeginTransaction(WebBTPrefix + "GeneralLedgerClick"); WebRequestPrefix = "GLC_"; webTest.BeginTransaction(WebRequestPrefix + "reporting_reportlist.aspx"); WebTestRequest request147 = new WebTestRequest((webTest.Context["AccountingURL"].ToString() + "/reporting/reportlist.aspx")); request147.Headers.Add(new WebTestRequestHeader("Referer", (webTest.Context["AccountingURL"].ToString() + "/reporting/"))); request147.QueryStringParameters.Add("category", "MSC", false, false); //code for General Ledger report category yield return(request147); request147 = null; webTest.EndTransaction(WebRequestPrefix + "reporting_reportlist.aspx"); //WebTestRequest request148 = new WebTestRequest((webTest.Context["AccountingURL"].ToString() + "/api/notifications")); //request148.Headers.Add(new WebTestRequestHeader("Accept", "application/vnd.twinfield+json;version=latest")); //request148.Headers.Add(new WebTestRequestHeader("Referer", (webTest.Context["AccountingURL"].ToString() + "/UI/"))); //request148.QueryStringParameters.Add("since", threadData.CreatedDate, false, false); //yield return request148; //request148 = null; webTest.EndTransaction(WebBTPrefix + "GeneralLedgerClick"); #endregion Thread.Sleep(2000); #region Extended Trial Balance webTest.BeginTransaction(WebBTPrefix + "ExtendedTrialBalance"); WebRequestPrefix = "ETB_"; //WebTestRequest request149 = new WebTestRequest((webTest.Context["AccountingURL"].ToString() + "/api/notifications")); //request149.Headers.Add(new WebTestRequestHeader("Accept", "application/vnd.twinfield+json;version=latest")); //request149.Headers.Add(new WebTestRequestHeader("Referer", (webTest.Context["AccountingURL"].ToString() + "/UI/"))); //request149.QueryStringParameters.Add("since", threadData.CreatedDate, false, false); //yield return request149; //request149 = null; webTest.BeginTransaction(WebRequestPrefix + "reporting_prompts.aspx"); WebTestRequest request150 = new WebTestRequest((webTest.Context["AccountingURL"].ToString() + "/reporting/prompts.aspx")); request150.Headers.Add(new WebTestRequestHeader("Referer", (webTest.Context["AccountingURL"].ToString() + "/reporting/reportlist.aspx?category=MSC"))); request150.QueryStringParameters.Add("report", "ETB", false, false); request150.QueryStringParameters.Add("category", "MSC", false, false); request150.QueryStringParameters.Add("reportid", "0", false, false); ExtractHiddenFields extractionRule3 = new ExtractHiddenFields(); extractionRule3.Required = true; extractionRule3.HtmlDecode = true; extractionRule3.ContextParameterName = "1"; request150.ExtractValues += new EventHandler <ExtractionEventArgs>(extractionRule3.Extract); ExtractText extractionRule2 = new ExtractText(); extractionRule2.StartsWith = "name=\"__ncforminfo\" value=\""; extractionRule2.EndsWith = "\"/></FORM>"; extractionRule2.Index = 0; extractionRule2.IgnoreCase = false; extractionRule2.UseRegularExpression = false; extractionRule2.HtmlDecode = true; extractionRule2.Required = false; extractionRule2.ContextParameterName = "NcformInfo"; request150.ExtractValues += new EventHandler <ExtractionEventArgs>(extractionRule2.Extract); ExtractText extractionRule4 = new ExtractText(); extractionRule4.StartsWith = "chkOS_Office_"; extractionRule4.EndsWith = "\" ID=\"chkOS_Office"; extractionRule4.Index = 0; extractionRule4.IgnoreCase = false; extractionRule4.UseRegularExpression = false; extractionRule4.HtmlDecode = true; extractionRule4.Required = false; extractionRule4.ContextParameterName = "CompanyName"; request150.ExtractValues += new EventHandler <ExtractionEventArgs>(extractionRule4.Extract); yield return(request150); request150 = null; webTest.EndTransaction(WebRequestPrefix + "reporting_prompts.aspx"); webTest.EndTransaction(WebBTPrefix + "ExtendedTrialBalance"); #endregion Thread.Sleep(2000); #region Click next webTest.BeginTransaction(WebBTPrefix + "ClickNext"); WebRequestPrefix = "CN_"; webTest.BeginTransaction(WebRequestPrefix + "reporting_prompts.aspx_1"); WebTestRequest request152 = new WebTestRequest((webTest.Context["AccountingURL"].ToString() + "/reporting/prompts.aspx")); request152.Method = "POST"; request152.ExpectedResponseUrl = (webTest.Context["AccountingURL"].ToString() + "/reporting/report.aspx?category=MSC&report=ETB&reportid=0&tempxml="); request152.Headers.Add(new WebTestRequestHeader("Referer", (webTest.Context["AccountingURL"].ToString() + "/reporting/prompts.aspx?report=ETB&category=MSC&reportid=0"))); request152.QueryStringParameters.Add("category", "MSC", false, false); request152.QueryStringParameters.Add("report", "ETB", false, false); request152.QueryStringParameters.Add("reportid", "0", false, false); FormPostHttpBody request152Body = new FormPostHttpBody(); request152Body.FormPostParameters.Add("hdnButtonPushed", "view"); request152Body.FormPostParameters.Add("subreportsDropdown", "0"); request152Body.FormPostParameters.Add("HierarchyLevel", ""); request152Body.FormPostParameters.Add("HierarchyLevel_Name", ""); request152Body.FormPostParameters.Add("HierarchyLevel_HiddenStatus", webTest.Context["$HIDDEN1.HierarchyLevel_HiddenStatus"].ToString()); request152Body.FormPostParameters.Add("HierarchyLevel_Levels", "0"); request152Body.FormPostParameters.Add("radOfficeSelector", "Current"); request152Body.FormPostParameters.Add("chkOS_Office_" + webTest.Context["CompanyName"].ToString(), ""); request152Body.FormPostParameters.Add("HierarchyNode", ""); request152Body.FormPostParameters.Add("HierarchyNode_Name", ""); request152Body.FormPostParameters.Add("HierarchyNode_HiddenStatus", webTest.Context["$HIDDEN1.HierarchyNode_HiddenStatus"].ToString()); request152Body.FormPostParameters.Add("YearPeriod", "2017/00"); request152Body.FormPostParameters.Add("YearPeriod_Name", ""); request152Body.FormPostParameters.Add("YearPeriod_HiddenStatus", webTest.Context["$HIDDEN1.YearPeriod_HiddenStatus"].ToString()); request152Body.FormPostParameters.Add("YearPeriod_To", "2017/12"); request152Body.FormPostParameters.Add("YearPeriod_To_Name", ""); request152Body.FormPostParameters.Add("GeneralLedgerAccountType_Type_0", "BAS"); request152Body.FormPostParameters.Add("GeneralLedgerAccountType_Type_1", "PNL"); request152Body.FormPostParameters.Add("GeneralLedgerAccountType", ""); request152Body.FormPostParameters.Add("GeneralLedgerAccountType_Name", ""); request152Body.FormPostParameters.Add("GeneralLedgerAccountType_HiddenStatus", webTest.Context["$HIDDEN1.GeneralLedgerAccountType_HiddenStatus"].ToString()); request152Body.FormPostParameters.Add("GeneralLedgerAccountType_To", ""); request152Body.FormPostParameters.Add("GeneralLedgerAccountType_To_Name", ""); request152Body.FormPostParameters.Add("RelationCostCentreType", ""); request152Body.FormPostParameters.Add("RelationCostCentreType_Name", ""); request152Body.FormPostParameters.Add("RelationCostCentreType_HiddenStatus", webTest.Context["$HIDDEN1.RelationCostCentreType_HiddenStatus"].ToString()); request152Body.FormPostParameters.Add("RelationCostCentreType_To", ""); request152Body.FormPostParameters.Add("RelationCostCentreType_To_Name", ""); request152Body.FormPostParameters.Add("ProjectAssetType", ""); request152Body.FormPostParameters.Add("ProjectAssetType_Name", ""); request152Body.FormPostParameters.Add("ProjectAssetType_HiddenStatus", webTest.Context["$HIDDEN1.ProjectAssetType_HiddenStatus"].ToString()); request152Body.FormPostParameters.Add("ProjectAssetType_To", ""); request152Body.FormPostParameters.Add("ProjectAssetType_To_Name", ""); request152Body.FormPostParameters.Add("ActivityType", ""); request152Body.FormPostParameters.Add("ActivityType_Name", ""); request152Body.FormPostParameters.Add("ActivityType_HiddenStatus", webTest.Context["$HIDDEN1.ActivityType_HiddenStatus"].ToString()); request152Body.FormPostParameters.Add("ActivityType_To", ""); request152Body.FormPostParameters.Add("ActivityType_To_Name", ""); request152Body.FormPostParameters.Add("SubanalyseOn_locked", webTest.Context["$HIDDEN1.SubanalyseOn_locked"].ToString()); request152Body.FormPostParameters.Add("TransactionStatus1", "1"); request152Body.FormPostParameters.Add("TransactionStatus2", "2"); request152Body.FormPostParameters.Add("Precision", "1"); request152Body.FormPostParameters.Add("ShowNonAttachedAccounts", ""); //request152Body.FormPostParameters.Add("__ncforminfo", webTest.Context["NcformInfo"].ToString()); request152.Body = request152Body; ExtractText tempxml = new ExtractText(); tempxml.StartsWith = "tempxml="; tempxml.EndsWith = "\""; tempxml.Index = 0; tempxml.IgnoreCase = false; tempxml.UseRegularExpression = false; tempxml.HtmlDecode = true; tempxml.Required = false; tempxml.ContextParameterName = "tempxml"; request152.ExtractValues += new EventHandler <ExtractionEventArgs>(tempxml.Extract); yield return(request152); request152 = null; webTest.EndTransaction(WebRequestPrefix + "reporting_prompts.aspx_1"); //WebTestRequest request153 = new WebTestRequest((webTest.Context["AccountingURL"].ToString() + "/api/notifications")); //request153.Headers.Add(new WebTestRequestHeader("Accept", "application/vnd.twinfield+json;version=latest")); //request153.Headers.Add(new WebTestRequestHeader("Referer", (webTest.Context["AccountingURL"].ToString() + "/UI/"))); //request153.QueryStringParameters.Add("since", threadData.CreatedDate, false, false); //yield return request153; //request153 = null; webTest.EndTransaction(WebBTPrefix + "ClickNext"); #endregion Thread.Sleep(2000); #region Export Click webTest.BeginTransaction(WebBTPrefix + "ExportClick"); WebRequestPrefix = "EC_"; webTest.BeginTransaction(WebRequestPrefix + "reporting_export.aspx"); WebTestRequest request154 = new WebTestRequest((webTest.Context["AccountingURL"].ToString() + "/reporting/export.aspx")); request154.Headers.Add(new WebTestRequestHeader("Referer", (webTest.Context["AccountingURL"].ToString() + "/reporting/report.aspx?category=MSC&report=ETB&reportid=0&tempxml=" + webTest.Context["tempxml"].ToString()))); request154.QueryStringParameters.Add("category", "MSC", false, false); request154.QueryStringParameters.Add("report", "ETB", false, false); request154.QueryStringParameters.Add("reportid", "0", false, false); request154.QueryStringParameters.Add("tempxml", webTest.Context["tempxml"].ToString(), false, false); ExtractText extraction2 = new ExtractText(); extraction2.StartsWith = "name=\"__ncforminfo\" value=\""; extraction2.EndsWith = "\"/>"; extraction2.IgnoreCase = false; extraction2.UseRegularExpression = false; extraction2.Required = false; extraction2.ExtractRandomMatch = false; extraction2.Index = 0; extraction2.HtmlDecode = true; extraction2.SearchInHeaders = false; extraction2.ContextParameterName = "__ncforminfo"; request154.ExtractValues += new EventHandler <ExtractionEventArgs>(extraction2.Extract); yield return(request154); request154 = null; webTest.EndTransaction(WebRequestPrefix + "reporting_export.aspx"); webTest.EndTransaction(WebBTPrefix + "ExportClick"); #endregion Thread.Sleep(2000); #region Next on export page webTest.BeginTransaction(WebBTPrefix + "ClickNextOnExportPage"); WebRequestPrefix = "CNOEP_"; webTest.BeginTransaction(WebRequestPrefix + "reporting_export.aspx_1"); WebTestRequest request155 = new WebTestRequest((webTest.Context["AccountingURL"].ToString() + "/reporting/export.aspx")); request155.Method = "POST"; request155.Headers.Add(new WebTestRequestHeader("Referer", (webTest.Context["AccountingURL"].ToString() + "/reporting/export.aspx?category=MSC&report=ETB&reportid=0&tempxml=" + webTest.Context["tempxml"].ToString()))); request155.QueryStringParameters.Add("category", "MSC", false, false); request155.QueryStringParameters.Add("report", "ETB", false, false); request155.QueryStringParameters.Add("reportid", "0", false, false); request155.QueryStringParameters.Add("tempxml", webTest.Context["tempxml"].ToString(), false, false); FormPostHttpBody request155Body = new FormPostHttpBody(); request155Body.FormPostParameters.Add("lstReportTypes", "2"); request155Body.FormPostParameters.Add("PdfPageBreakAfterGroup", "-1"); request155Body.FormPostParameters.Add("Orientation", "0"); request155Body.FormPostParameters.Add("FontSize", "8"); request155Body.FormPostParameters.Add("FontSize_To", "12"); request155Body.FormPostParameters.Add("Footer", ""); request155Body.FormPostParameters.Add("btnExport.x", "Next >"); //request155Body.FormPostParameters.Add("__ncforminfo", __ncforminfo); request155.Body = request155Body; yield return(request155); request155 = null; webTest.EndTransaction(WebRequestPrefix + "reporting_export.aspx_1"); webTest.EndTransaction(WebBTPrefix + "ClickNextOnExportPage"); #endregion Thread.Sleep(2000); #region file manager webTest.BeginTransaction(WebBTPrefix + "FileManager"); WebRequestPrefix = "FM_"; webTest.BeginTransaction(WebRequestPrefix + "fileman_fileman.aspx"); WebTestRequest request156 = new WebTestRequest((webTest.Context["AccountingURL"].ToString() + "/fileman/fileman.aspx")); request156.Headers.Add(new WebTestRequestHeader("Referer", (webTest.Context["AccountingURL"].ToString() + "/reporting/export.aspx?category=MSC&report=ETB&reportid=0&tempxml=" + webTest.Context["tempxml"].ToString()))); yield return(request156); request156 = null; webTest.EndTransaction(WebRequestPrefix + "fileman_fileman.aspx"); //WebTestRequest request157 = new WebTestRequest((webTest.Context["AccountingURL"].ToString() + "/api/notifications")); //request157.Headers.Add(new WebTestRequestHeader("Accept", "application/vnd.twinfield+json;version=latest")); //request157.Headers.Add(new WebTestRequestHeader("Referer", (webTest.Context["AccountingURL"].ToString() + "/UI/"))); //request157.QueryStringParameters.Add("since", threadData.CreatedDate, false, false); //yield return request157; //request157 = null; webTest.EndTransaction(WebBTPrefix + "FileManager"); #endregion Thread.Sleep(4000); #region Reports click webTest.BeginTransaction(WebBTPrefix + "ReportsClick"); WebRequestPrefix = "RC_"; webTest.BeginTransaction(WebRequestPrefix + "fileman_fileman.aspx_1"); WebTestRequest request158 = new WebTestRequest((webTest.Context["AccountingURL"].ToString() + "/fileman/fileman.aspx")); request158.Headers.Add(new WebTestRequestHeader("Referer", (webTest.Context["AccountingURL"].ToString() + "/fileman/fileman.aspx"))); request158.QueryStringParameters.Add("folder", ".%5cReports", false, false); ExtractText extractionRule1 = new ExtractText(); extractionRule1.StartsWith = "event,this,'file',"; extractionRule1.EndsWith = ",'Extended"; extractionRule1.Index = 0; extractionRule1.IgnoreCase = false; extractionRule1.UseRegularExpression = false; extractionRule1.HtmlDecode = true; extractionRule1.Required = true; extractionRule1.ContextParameterName = "FileID"; request158.ExtractValues += new EventHandler <ExtractionEventArgs>(extractionRule1.Extract); yield return(request158); request158 = null; webTest.EndTransaction(WebRequestPrefix + "fileman_fileman.aspx_1"); //WebTestRequest request159 = new WebTestRequest((webTest.Context["AccountingURL"].ToString() + "/api/notifications")); //request159.Headers.Add(new WebTestRequestHeader("Accept", "application/vnd.twinfield+json;version=latest")); //request159.Headers.Add(new WebTestRequestHeader("Referer", (webTest.Context["AccountingURL"].ToString() + "/UI/"))); //request159.QueryStringParameters.Add("since", threadData.CreatedDate, false, false); //yield return request159; //request159 = null; webTest.EndTransaction(WebBTPrefix + "ReportsClick"); #endregion Thread.Sleep(2000); #region Report download webTest.BeginTransaction(WebBTPrefix + "ReportDownload"); WebRequestPrefix = "RD_"; webTest.BeginTransaction(WebRequestPrefix + "fileman_download.aspx"); WebTestRequest request160 = new WebTestRequest((webTest.Context["AccountingURL"].ToString() + "/fileman/download.aspx")); request160.Headers.Add(new WebTestRequestHeader("Referer", (webTest.Context["AccountingURL"].ToString() + "/fileman/fileman.aspx?folder=.%5cReports"))); request160.QueryStringParameters.Add("fileid", webTest.Context["FileID"].ToString(), false, false); yield return(request160); request160 = null; webTest.EndTransaction(WebRequestPrefix + "fileman_download.aspx"); //WebTestRequest request161 = new WebTestRequest((webTest.Context["AccountingURL"].ToString() + "/api/notifications")); //request161.Headers.Add(new WebTestRequestHeader("Accept", "application/vnd.twinfield+json;version=latest")); //request161.Headers.Add(new WebTestRequestHeader("Referer", (webTest.Context["AccountingURL"].ToString() + "/UI/"))); //request161.QueryStringParameters.Add("since", threadData.CreatedDate, false, false); //yield return request161; //request161 = null; webTest.EndTransaction(WebBTPrefix + "ReportDownload"); #endregion Thread.Sleep(2000); if ((Convert.ToInt32(webTest.Context["iterationNo"]) % Convert.ToInt32(webTest.Context["maxiterationNo"])) == 0) { foreach (var request in webTest.Logout(threadData, objPlugin)) { yield return(request); } //RTMonitor.Write(Color.Green, "User Logout: " + threadData.UserName + " LogOutTime: " + DateTime.Now + "\r\n"); Thread.Sleep(2000); } }
public override IEnumerator <WebTestRequest> GetRequestEnumerator() { MyMethod(); WebTestRequest request1 = new WebTestRequest("http://autotests.pmf2-gos.pmpractice.ru/asyst/page/GoalHierarhy"); request1.Headers.Add(new WebTestRequestHeader("Referer", "http://autotests.pmf2-gos.pmpractice.ru/asyst/page/index")); WebTestRequest request1Dependent1 = new WebTestRequest("http://autotests.pmf2-gos.pmpractice.ru/asyst/view/GoalViewHierarhy"); request1Dependent1.Method = "POST"; request1Dependent1.Headers.Add(new WebTestRequestHeader("Accept", "application/json, text/javascript, */*; q=0.01")); request1Dependent1.Headers.Add(new WebTestRequestHeader("X-Requested-With", "XMLHttpRequest")); request1Dependent1.Headers.Add(new WebTestRequestHeader("Referer", "http://autotests.pmf2-gos.pmpractice.ru/asyst/page/GoalHierarhy")); StringHttpBody request1Dependent1Body = new StringHttpBody(); request1Dependent1Body.ContentType = ""; request1Dependent1Body.InsertByteOrderMark = false; request1Dependent1Body.BodyString = ""; request1Dependent1.Body = request1Dependent1Body; request1.DependentRequests.Add(request1Dependent1); WebTestRequest request1Dependent2 = new WebTestRequest("http://autotests.pmf2-gos.pmpractice.ru/asyst/api/admin/saveStats"); request1Dependent2.Method = "POST"; request1Dependent2.Headers.Add(new WebTestRequestHeader("Accept", "application/json, text/javascript, */*; q=0.01")); request1Dependent2.Headers.Add(new WebTestRequestHeader("X-Requested-With", "XMLHttpRequest")); request1Dependent2.Headers.Add(new WebTestRequestHeader("Referer", "http://autotests.pmf2-gos.pmpractice.ru/asyst/page/GoalHierarhy")); FormPostHttpBody request1Dependent2Body = new FormPostHttpBody(); request1Dependent2Body.FormPostParameters.Add("", "{\"page\":\"http://autotests.pmf2-gos.pmpractice.ru/asyst/page/GoalHierarhy\",\"pageTi" + "tle\":\"Иерархия целей\",\"type\":\"asystPage\",\"action\":\"open\"}"); request1Dependent2.Body = request1Dependent2Body; request1.DependentRequests.Add(request1Dependent2); WebTestRequest request1Dependent3 = new WebTestRequest("http://autotests.pmf2-gos.pmpractice.ru/asyst/datasource/page/GoalHierarhy/LEFTME" + "NU_data"); request1Dependent3.Method = "POST"; request1Dependent3.Headers.Add(new WebTestRequestHeader("Accept", "application/json, text/javascript, */*; q=0.01")); request1Dependent3.Headers.Add(new WebTestRequestHeader("X-Requested-With", "XMLHttpRequest")); request1Dependent3.Headers.Add(new WebTestRequestHeader("Referer", "http://autotests.pmf2-gos.pmpractice.ru/asyst/page/GoalHierarhy")); FormPostHttpBody request1Dependent3Body = new FormPostHttpBody(); request1Dependent3Body.FormPostParameters.Add("", "{}"); request1Dependent3.Body = request1Dependent3Body; request1.DependentRequests.Add(request1Dependent3); WebTestRequest request1Dependent4 = new WebTestRequest("http://autotests.pmf2-gos.pmpractice.ru/asyst/api/admin/getZimbarList"); request1Dependent4.Method = "POST"; request1Dependent4.Headers.Add(new WebTestRequestHeader("Accept", "application/json, text/javascript, */*; q=0.01")); request1Dependent4.Headers.Add(new WebTestRequestHeader("X-Requested-With", "XMLHttpRequest")); request1Dependent4.Headers.Add(new WebTestRequestHeader("Referer", "http://autotests.pmf2-gos.pmpractice.ru/asyst/page/GoalHierarhy")); FormPostHttpBody request1Dependent4Body = new FormPostHttpBody(); request1Dependent4Body.FormPostParameters.Add("", "{}"); request1Dependent4.Body = request1Dependent4Body; request1.DependentRequests.Add(request1Dependent4); WebTestRequest request1Dependent5 = new WebTestRequest("http://autotests.pmf2-gos.pmpractice.ru/asyst/api/file/getFilesInfo/"); request1Dependent5.Method = "POST"; request1Dependent5.Headers.Add(new WebTestRequestHeader("Accept", "application/json, text/javascript, */*; q=0.01")); request1Dependent5.Headers.Add(new WebTestRequestHeader("X-Requested-With", "XMLHttpRequest")); request1Dependent5.Headers.Add(new WebTestRequestHeader("Referer", "http://autotests.pmf2-gos.pmpractice.ru/asyst/page/GoalHierarhy")); FormPostHttpBody request1Dependent5Body = new FormPostHttpBody(); request1Dependent5Body.FormPostParameters.Add("", "{\"classname\":\"User\",\"id\":100060}"); request1Dependent5.Body = request1Dependent5Body; request1.DependentRequests.Add(request1Dependent5); WebTestRequest request1Dependent6 = new WebTestRequest("http://autotests.pmf2-gos.pmpractice.ru/asyst/api/dataset/foresightTour"); request1Dependent6.Method = "POST"; request1Dependent6.Headers.Add(new WebTestRequestHeader("Accept", "application/json, text/javascript, */*; q=0.01")); request1Dependent6.Headers.Add(new WebTestRequestHeader("X-Requested-With", "XMLHttpRequest")); request1Dependent6.Headers.Add(new WebTestRequestHeader("Referer", "http://autotests.pmf2-gos.pmpractice.ru/asyst/page/GoalHierarhy")); FormPostHttpBody request1Dependent6Body = new FormPostHttpBody(); request1Dependent6Body.FormPostParameters.Add("", "{\"UserLang\":\"RU\"}"); request1Dependent6.Body = request1Dependent6Body; request1.DependentRequests.Add(request1Dependent6); WebTestRequest request1Dependent7 = new WebTestRequest("http://autotests.pmf2-gos.pmpractice.ru/asyst/api/board"); request1Dependent7.Headers.Add(new WebTestRequestHeader("Accept", "application/json, text/javascript, */*; q=0.01")); request1Dependent7.Headers.Add(new WebTestRequestHeader("X-Requested-With", "XMLHttpRequest")); request1Dependent7.Headers.Add(new WebTestRequestHeader("Referer", "http://autotests.pmf2-gos.pmpractice.ru/asyst/page/GoalHierarhy")); request1Dependent7.QueryStringParameters.Add("", "{+%22action%22+:+%22checkUnread%22}", false, false); request1Dependent7.QueryStringParameters.Add("_", "1551356551723", false, false); request1.DependentRequests.Add(request1Dependent7); yield return(request1); request1 = null; }
public override IEnumerator <WebTestRequest> GetRequestEnumerator() { // Initialize validation rules that apply to all requests in the WebTest if ((this.Context.ValidationLevel >= Microsoft.VisualStudio.TestTools.WebTesting.ValidationLevel.Low)) { ValidateResponseUrl validationRule1 = new ValidateResponseUrl(); this.ValidateResponse += new EventHandler <ValidationEventArgs>(validationRule1.Validate); } if ((this.Context.ValidationLevel >= Microsoft.VisualStudio.TestTools.WebTesting.ValidationLevel.Low)) { ValidationRuleResponseTimeGoal validationRule2 = new ValidationRuleResponseTimeGoal(); validationRule2.Tolerance = 0D; this.ValidateResponseOnPageComplete += new EventHandler <ValidationEventArgs>(validationRule2.Validate); } WebTestRequest request1 = new WebTestRequest("http://api.bing.com/qsml.aspx"); request1.ExpectedResponseUrl = "https://api.bing.com/qsml.aspx?query=h&maxwidth=32765&rowheight=20§ionHeight=" + "160&FORM=IESS02&market=en-GB"; request1.QueryStringParameters.Add("query", "h", false, false); request1.QueryStringParameters.Add("maxwidth", "32765", false, false); request1.QueryStringParameters.Add("rowheight", "20", false, false); request1.QueryStringParameters.Add("sectionHeight", "160", false, false); request1.QueryStringParameters.Add("FORM", "IESS02", false, false); request1.QueryStringParameters.Add("market", "en-GB", false, false); yield return(request1); request1 = null; WebTestRequest request2 = new WebTestRequest("http://api.bing.com/qsml.aspx"); request2.ExpectedResponseUrl = "https://api.bing.com/qsml.aspx?query=ht&maxwidth=32765&rowheight=20§ionHeight" + "=160&FORM=IESS02&market=en-GB"; request2.QueryStringParameters.Add("query", "ht", false, false); request2.QueryStringParameters.Add("maxwidth", "32765", false, false); request2.QueryStringParameters.Add("rowheight", "20", false, false); request2.QueryStringParameters.Add("sectionHeight", "160", false, false); request2.QueryStringParameters.Add("FORM", "IESS02", false, false); request2.QueryStringParameters.Add("market", "en-GB", false, false); yield return(request2); request2 = null; WebTestRequest request3 = new WebTestRequest("http://api.bing.com/qsml.aspx"); request3.ExpectedResponseUrl = "https://api.bing.com/qsml.aspx?query=htt&maxwidth=32765&rowheight=20§ionHeigh" + "t=160&FORM=IESS02&market=en-GB"; request3.QueryStringParameters.Add("query", "htt", false, false); request3.QueryStringParameters.Add("maxwidth", "32765", false, false); request3.QueryStringParameters.Add("rowheight", "20", false, false); request3.QueryStringParameters.Add("sectionHeight", "160", false, false); request3.QueryStringParameters.Add("FORM", "IESS02", false, false); request3.QueryStringParameters.Add("market", "en-GB", false, false); yield return(request3); request3 = null; WebTestRequest request4 = new WebTestRequest("http://api.bing.com/qsml.aspx"); request4.ExpectedResponseUrl = "https://api.bing.com/qsml.aspx?query=http&maxwidth=32765&rowheight=20§ionHeig" + "ht=160&FORM=IESS02&market=en-GB"; request4.QueryStringParameters.Add("query", "http", false, false); request4.QueryStringParameters.Add("maxwidth", "32765", false, false); request4.QueryStringParameters.Add("rowheight", "20", false, false); request4.QueryStringParameters.Add("sectionHeight", "160", false, false); request4.QueryStringParameters.Add("FORM", "IESS02", false, false); request4.QueryStringParameters.Add("market", "en-GB", false, false); yield return(request4); request4 = null; WebTestRequest request5 = new WebTestRequest("http://api.bing.com/qsml.aspx"); request5.ExpectedResponseUrl = "https://api.bing.com/qsml.aspx?query=https&maxwidth=32765&rowheight=20§ionHei" + "ght=160&FORM=IESS02&market=en-GB"; request5.QueryStringParameters.Add("query", "https", false, false); request5.QueryStringParameters.Add("maxwidth", "32765", false, false); request5.QueryStringParameters.Add("rowheight", "20", false, false); request5.QueryStringParameters.Add("sectionHeight", "160", false, false); request5.QueryStringParameters.Add("FORM", "IESS02", false, false); request5.QueryStringParameters.Add("market", "en-GB", false, false); yield return(request5); request5 = null; WebTestRequest request6 = new WebTestRequest("http://api.bing.com/qsml.aspx"); request6.ExpectedResponseUrl = "https://api.bing.com/qsml.aspx?query=https%3A&maxwidth=32765&rowheight=20§ion" + "Height=160&FORM=IESS02&market=en-GB"; request6.QueryStringParameters.Add("query", "https%3A", false, false); request6.QueryStringParameters.Add("maxwidth", "32765", false, false); request6.QueryStringParameters.Add("rowheight", "20", false, false); request6.QueryStringParameters.Add("sectionHeight", "160", false, false); request6.QueryStringParameters.Add("FORM", "IESS02", false, false); request6.QueryStringParameters.Add("market", "en-GB", false, false); yield return(request6); request6 = null; WebTestRequest request7 = new WebTestRequest("http://api.bing.com/qsml.aspx"); request7.ThinkTime = 5; request7.ExpectedResponseUrl = "https://api.bing.com/qsml.aspx?query=https%3A%2F&maxwidth=524&rowheight=20§io" + "nHeight=160&FORM=IESS02&market=en-GB"; request7.QueryStringParameters.Add("query", "https%3A%2F", false, false); request7.QueryStringParameters.Add("maxwidth", "524", false, false); request7.QueryStringParameters.Add("rowheight", "20", false, false); request7.QueryStringParameters.Add("sectionHeight", "160", false, false); request7.QueryStringParameters.Add("FORM", "IESS02", false, false); request7.QueryStringParameters.Add("market", "en-GB", false, false); yield return(request7); request7 = null; WebTestRequest request8 = new WebTestRequest("https://www.startpage.com/"); WebTestRequest request8Dependent1 = new WebTestRequest("https://www.startpage.com/font/ProximaNova-Reg-webfont.eot"); request8Dependent1.Headers.Add(new WebTestRequestHeader("Referer", "https://www.startpage.com/")); request8Dependent1.QueryStringParameters.Add("", "", false, false); request8.DependentRequests.Add(request8Dependent1); WebTestRequest request8Dependent2 = new WebTestRequest("https://www.startpage.com/font/ProximaNova-Bold-webfont.eot"); request8Dependent2.Headers.Add(new WebTestRequestHeader("Referer", "https://www.startpage.com/")); request8Dependent2.QueryStringParameters.Add("", "", false, false); request8.DependentRequests.Add(request8Dependent2); WebTestRequest request8Dependent3 = new WebTestRequest("https://www.startpage.com/font/ProximaNovaSoft-Regular-webfont.eot"); request8Dependent3.Headers.Add(new WebTestRequestHeader("Referer", "https://www.startpage.com/")); request8Dependent3.QueryStringParameters.Add("", "", false, false); request8.DependentRequests.Add(request8Dependent3); WebTestRequest request8Dependent4 = new WebTestRequest("https://www.startpage.com/font/Arimo-Regular-webfont.eot"); request8Dependent4.Headers.Add(new WebTestRequestHeader("Referer", "https://www.startpage.com/")); request8Dependent4.QueryStringParameters.Add("", "", false, false); request8.DependentRequests.Add(request8Dependent4); ExtractHiddenFields extractionRule1 = new ExtractHiddenFields(); extractionRule1.Required = true; extractionRule1.HtmlDecode = true; extractionRule1.ContextParameterName = "1"; request8.ExtractValues += new EventHandler <ExtractionEventArgs>(extractionRule1.Extract); yield return(request8); request8 = null; WebTestRequest request9 = new WebTestRequest("https://www.startpage.com/pelp"); request9.ThinkTime = 7; request9.Headers.Add(new WebTestRequestHeader("Referer", "https://www.startpage.com/")); request9.QueryStringParameters.Add("ct", "1500642519915", false, false); request9.QueryStringParameters.Add("tzo", "60", false, false); request9.QueryStringParameters.Add("uw", "1920", false, false); request9.QueryStringParameters.Add("uh", "1080", false, false); request9.QueryStringParameters.Add("bw", "1658", false, false); request9.QueryStringParameters.Add("bh", "986", false, false); request9.QueryStringParameters.Add("ln", "english_uk", false, false); request9.QueryStringParameters.Add("pt", "hp", false, false); request9.QueryStringParameters.Add("nc", "1500642519915", false, false); yield return(request9); request9 = null; WebTestRequest request10 = new WebTestRequest("https://www.startpage.com/do/search"); request10.Method = "POST"; request10.Headers.Add(new WebTestRequestHeader("Referer", "https://www.startpage.com/")); FormPostHttpBody request10Body = new FormPostHttpBody(); request10Body.FormPostParameters.Add("hmb", "1"); request10Body.FormPostParameters.Add("cat", this.Context["$HIDDEN1.cat"].ToString()); request10Body.FormPostParameters.Add("cmd", this.Context["$HIDDEN1.cmd"].ToString()); request10Body.FormPostParameters.Add("language", this.Context["$HIDDEN1.language"].ToString()); request10Body.FormPostParameters.Add("engine0", this.Context["$HIDDEN1.engine0"].ToString()); request10Body.FormPostParameters.Add("query", "visual studio"); request10Body.FormPostParameters.Add("abp", this.Context["$HIDDEN1.abp"].ToString()); request10Body.FormPostParameters.Add("t", this.Context["$HIDDEN1.t"].ToString()); request10Body.FormPostParameters.Add("nj", "0"); request10Body.FormPostParameters.Add("pg", "4"); request10.Body = request10Body; WebTestRequest request10Dependent1 = new WebTestRequest("https://www.startpage.com/font/ProximaNova-Reg-webfont.eot"); request10Dependent1.Headers.Add(new WebTestRequestHeader("Referer", "https://www.startpage.com/do/search")); request10Dependent1.QueryStringParameters.Add("", "", false, false); request10.DependentRequests.Add(request10Dependent1); WebTestRequest request10Dependent2 = new WebTestRequest("https://www.ixquick.com/do/instantanswers/iaservice"); request10Dependent2.Method = "POST"; request10Dependent2.Headers.Add(new WebTestRequestHeader("Accept", "application/json, text/javascript, */*; q=0.01")); request10Dependent2.Headers.Add(new WebTestRequestHeader("Referer", "https://www.startpage.com/do/search")); StringHttpBody request10Dependent2Body = new StringHttpBody(); request10Dependent2Body.ContentType = "text/plain; charset=utf-8"; request10Dependent2Body.InsertByteOrderMark = false; request10Dependent2Body.BodyString = "{\"iats\":\"MTUwMDY0MjUyNg==\",\"slang\":\"english_uk\",\"iatoken\":\"bfc441011001ff15b14708" + "3c3063ccdb\",\"iasp\":\"fe15cd12102f343cc2b86f9da2d8906d\",\"lang\":\"english_uk\",\"query" + "\":\"visual+studio\",\"gl\":\"uk\",\"tz\":-60}"; request10Dependent2.Body = request10Dependent2Body; request10.DependentRequests.Add(request10Dependent2); WebTestRequest request10Dependent3 = new WebTestRequest("https://www.startpage.com/font/ProximaNova-Bold-webfont.eot"); request10Dependent3.Headers.Add(new WebTestRequestHeader("Referer", "https://www.startpage.com/do/search")); request10Dependent3.QueryStringParameters.Add("", "", false, false); request10.DependentRequests.Add(request10Dependent3); WebTestRequest request10Dependent4 = new WebTestRequest("https://www.startpage.com/font/Arimo-Regular-webfont.eot"); request10Dependent4.Headers.Add(new WebTestRequestHeader("Referer", "https://www.startpage.com/do/search")); request10Dependent4.QueryStringParameters.Add("", "", false, false); request10.DependentRequests.Add(request10Dependent4); WebTestRequest request10Dependent5 = new WebTestRequest("https://www.startpage.com/gp/wg/afs/ads"); request10Dependent5.Headers.Add(new WebTestRequestHeader("Referer", "https://www.startpage.com/do/search")); request10Dependent5.QueryStringParameters.Add("q", "visual%20studio", false, false); request10Dependent5.QueryStringParameters.Add("lo", "false", false, false); request10Dependent5.QueryStringParameters.Add("adpage", "1", false, false); request10Dependent5.QueryStringParameters.Add("adrep", "3", false, false); request10Dependent5.QueryStringParameters.Add("gl", "uk", false, false); request10Dependent5.QueryStringParameters.Add("r", "m", false, false); request10Dependent5.QueryStringParameters.Add("fexp", "21404%2C17300002", false, false); request10Dependent5.QueryStringParameters.Add("client", "startpage", false, false); request10Dependent5.QueryStringParameters.Add("channel", "english_uk%2Bgerman_test%2Benglish_us_test%2Benglish_us_test-ct%2Bgeo_br%2Bct%2Bb" + "rowser_ie%2Ba_low", false, false); request10Dependent5.QueryStringParameters.Add("hl", "en", false, false); request10Dependent5.QueryStringParameters.Add("adtest", "off", false, false); request10Dependent5.QueryStringParameters.Add("adsafe", "medium", false, false); request10Dependent5.QueryStringParameters.Add("type", "0", false, false); request10Dependent5.QueryStringParameters.Add("oe", "UTF-8", false, false); request10Dependent5.QueryStringParameters.Add("ie", "UTF-8", false, false); request10Dependent5.QueryStringParameters.Add("jsei", "4", false, false); request10Dependent5.QueryStringParameters.Add("format", "p3%7Cn3", false, false); request10Dependent5.QueryStringParameters.Add("ad", "n3p3", false, false); request10Dependent5.QueryStringParameters.Add("nocache", "7211500642527918", false, false); request10Dependent5.QueryStringParameters.Add("num", "0", false, false); request10Dependent5.QueryStringParameters.Add("output", "uds_ads_only", false, false); request10Dependent5.QueryStringParameters.Add("v", "3", false, false); request10Dependent5.QueryStringParameters.Add("adlh", "on", false, false); request10Dependent5.QueryStringParameters.Add("adext", "as1%2Csr1", false, false); request10Dependent5.QueryStringParameters.Add("bsl", "10", false, false); request10Dependent5.QueryStringParameters.Add("u_his", "2", false, false); request10Dependent5.QueryStringParameters.Add("u_tz", "60", false, false); request10Dependent5.QueryStringParameters.Add("dt", "1500642527920", false, false); request10Dependent5.QueryStringParameters.Add("u_w", "1920", false, false); request10Dependent5.QueryStringParameters.Add("u_h", "1080", false, false); request10Dependent5.QueryStringParameters.Add("biw", "1658", false, false); request10Dependent5.QueryStringParameters.Add("bih", "986", false, false); request10Dependent5.QueryStringParameters.Add("psw", "1658", false, false); request10Dependent5.QueryStringParameters.Add("psh", "986", false, false); request10Dependent5.QueryStringParameters.Add("frm", "0", false, false); request10Dependent5.QueryStringParameters.Add("uio", "uv3cs1vp1af2da1sr1sl1lHff2st16sd14sv14va1lo0lt22ld19--", false, false); request10Dependent5.QueryStringParameters.Add("jsv", "15041", false, false); request10Dependent5.QueryStringParameters.Add("rurl", "https%3A%2F%2Fwww.startpage.com%2Fdo%2Fsearch", false, false); request10Dependent5.QueryStringParameters.Add("referer", "https%3A%2F%2Fwww.startpage.com%2F", false, false); request10.DependentRequests.Add(request10Dependent5); WebTestRequest request10Dependent6 = new WebTestRequest("https://www.startpage.com/do/get_zeroclick_info"); request10Dependent6.Method = "POST"; request10Dependent6.Headers.Add(new WebTestRequestHeader("Accept", "*/*")); request10Dependent6.Headers.Add(new WebTestRequestHeader("X-Requested-With", "XMLHttpRequest")); request10Dependent6.Headers.Add(new WebTestRequestHeader("Referer", "https://www.startpage.com/do/search")); FormPostHttpBody request10Dependent6Body = new FormPostHttpBody(); request10Dependent6Body.FormPostParameters.Add("wkt", "54576p6n636q397n62325n3058315n7063335668624639546448566o6157383q"); request10Dependent6Body.FormPostParameters.Add("ln", "english_uk"); request10Dependent6Body.FormPostParameters.Add("iasp", "fe15cd12102f343cc2b86f9da2d8906d"); request10Dependent6Body.FormPostParameters.Add("iats", "MTUwMDY0MjUyNg=="); request10Dependent6Body.FormPostParameters.Add("iatoken", "773a38b09d80fadbc288bc70da8d5558"); request10Dependent6.Body = request10Dependent6Body; request10.DependentRequests.Add(request10Dependent6); WebTestRequest request10Dependent7 = new WebTestRequest("https://www.startpage.com/gp/wg/afs/ads/i/iframe.html"); request10Dependent7.Headers.Add(new WebTestRequestHeader("Referer", "https://www.startpage.com/do/search")); request10.DependentRequests.Add(request10Dependent7); WebTestRequest request10Dependent8 = new WebTestRequest("https://www.startpage.com/font/ProximaNovaSoft-Regular-webfont.eot"); request10Dependent8.Headers.Add(new WebTestRequestHeader("Referer", "https://www.startpage.com/do/search")); request10Dependent8.QueryStringParameters.Add("", "", false, false); request10.DependentRequests.Add(request10Dependent8); ExtractHiddenFields extractionRule2 = new ExtractHiddenFields(); extractionRule2.Required = true; extractionRule2.HtmlDecode = true; extractionRule2.ContextParameterName = "1"; request10.ExtractValues += new EventHandler <ExtractionEventArgs>(extractionRule2.Extract); yield return(request10); request10 = null; WebTestRequest request11 = new WebTestRequest("https://www.startpage.com/elp"); request11.Headers.Add(new WebTestRequestHeader("Referer", "https://www.startpage.com/do/search")); request11.QueryStringParameters.Add("ct", "1500642528242", false, false); request11.QueryStringParameters.Add("tzo", "60", false, false); request11.QueryStringParameters.Add("uw", "1920", false, false); request11.QueryStringParameters.Add("uh", "1080", false, false); request11.QueryStringParameters.Add("bw", "1658", false, false); request11.QueryStringParameters.Add("bh", "986", false, false); request11.QueryStringParameters.Add("ln", "english_uk", false, false); request11.QueryStringParameters.Add("nc", "1500642528242", false, false); yield return(request11); request11 = null; WebTestRequest request12 = new WebTestRequest("https://s7-eu5.startpage.com/pelp"); request12.Headers.Add(new WebTestRequestHeader("Referer", "https://www.startpage.com/do/search")); request12.QueryStringParameters.Add("ct", "1500642528243", false, false); request12.QueryStringParameters.Add("tzo", "60", false, false); request12.QueryStringParameters.Add("uw", "1920", false, false); request12.QueryStringParameters.Add("uh", "1080", false, false); request12.QueryStringParameters.Add("bw", "1658", false, false); request12.QueryStringParameters.Add("bh", "986", false, false); request12.QueryStringParameters.Add("ln", "english_uk", false, false); request12.QueryStringParameters.Add("pt", "rs", false, false); request12.QueryStringParameters.Add("nc", "1500642528243", false, false); yield return(request12); request12 = null; WebTestRequest request13 = new WebTestRequest("https://s7-eu5.startpage.com/do//rel_ser"); request13.Headers.Add(new WebTestRequestHeader("Accept", "text/html, */*; q=0.01")); request13.Headers.Add(new WebTestRequestHeader("Referer", "https://www.startpage.com/do/search")); request13.QueryStringParameters.Add("format", "html", false, false); request13.QueryStringParameters.Add("qid", this.Context["$HIDDEN1.qid"].ToString(), false, false); request13.QueryStringParameters.Add("lui", "english_uk", false, false); request13.QueryStringParameters.Add("ssr", "0", false, false); request13.QueryStringParameters.Add("with_date", "", false, false); request13.QueryStringParameters.Add("src", "", false, false); request13.QueryStringParameters.Add("nj", this.Context["$HIDDEN1.nj"].ToString(), false, false); request13.QueryStringParameters.Add("hmb", this.Context["$HIDDEN1.hmb"].ToString(), false, false); yield return(request13); request13 = null; WebTestRequest request14 = new WebTestRequest("https://www.startpage.com/font/Arimo-Bold-webfont.eot"); request14.Headers.Add(new WebTestRequestHeader("Referer", "https://www.startpage.com/do/search")); request14.QueryStringParameters.Add("", "", false, false); yield return(request14); request14 = null; WebTestRequest request15 = new WebTestRequest("https://www.visualstudio.com/"); yield return(request15); request15 = null; WebTestRequest request16 = new WebTestRequest("https://www.visualstudio.com/"); WebTestRequest request16Dependent1 = new WebTestRequest("https://logx.optimizely.com/log/event"); request16Dependent1.Method = "POST"; request16Dependent1.Headers.Add(new WebTestRequestHeader("Referer", "https://www.visualstudio.com/")); StringHttpBody request16Dependent1Body = new StringHttpBody(); request16Dependent1Body.ContentType = "text/plain;charset=UTF-8"; request16Dependent1Body.InsertByteOrderMark = false; request16Dependent1Body.BodyString = @"{""eventId"":""6e94b2e7-8379-4a3d-888c-f4faae3630d8"",""anonymizeIP"":true,""timestamp"":1500642531280,""revision"":""1635"",""clientEngine"":""js"",""clientVersion"":""0.64.0"",""projectId"":""6189442473"",""accountId"":""3698060313"",""activationId"":""63f58b86-af3b-41e4-bb88-bbf1736ad0f6"",""sessionId"":""9c7049d3-939f-41f5-aebe-d5789944435a"",""visitorId"":""oeu1484573729623r0.603002459923891"",""eventFeatures"":[],""eventMetrics"":[],""relatedEvents"":[],""layerStates"":[],""userFeatures"":[{""id"":null,""type"":""first_session"",""name"":"""",""shouldIndex"":true,""value"":true},{""id"":null,""type"":""browserId"",""name"":"""",""shouldIndex"":true,""value"":""ie""},{""id"":null,""type"":""device"",""name"":"""",""shouldIndex"":true,""value"":""desktop""},{""id"":null,""type"":""source_type"",""name"":"""",""shouldIndex"":true,""value"":""direct""},{""id"":null,""type"":""currentTimestamp"",""name"":"""",""shouldIndex"":true,""value"":1500642531279},{""id"":null,""type"":""offset"",""name"":"""",""shouldIndex"":true,""value"":-60}],""activeViews"":[],""isGlobalHoldback"":false,""eventType"":""client_activation"",""eventName"":""client_activation""}"; request16Dependent1.Body = request16Dependent1Body; request16.DependentRequests.Add(request16Dependent1); WebTestRequest request16Dependent2 = new WebTestRequest("https://logx.optimizely.com/log/decision"); request16Dependent2.Method = "POST"; request16Dependent2.Headers.Add(new WebTestRequestHeader("Referer", "https://www.visualstudio.com/")); StringHttpBody request16Dependent2Body = new StringHttpBody(); request16Dependent2Body.ContentType = "text/plain;charset=UTF-8"; request16Dependent2Body.InsertByteOrderMark = false; request16Dependent2Body.BodyString = @"{""decisionId"":""80099425-f8bd-46d7-be75-3df3e8f0b69e"",""anonymizeIP"":true,""timestamp"":1500642531291,""revision"":""1635"",""clientEngine"":""js"",""clientVersion"":""0.64.0"",""projectId"":""6189442473"",""accountId"":""3698060313"",""layerId"":""8462336156"",""activationId"":""63f58b86-af3b-41e4-bb88-bbf1736ad0f6"",""sessionId"":""9c7049d3-939f-41f5-aebe-d5789944435a"",""visitorId"":""oeu1484573729623r0.603002459923891"",""decisionTicket"":{""audiences"":[],""bucketingId"":""oeu1484573729623r0.603002459923891""},""decision"":{""experimentId"":""8458796028"",""variationId"":""8466137646"",""isLayerHoldback"":false},""userFeatures"":[{""id"":null,""type"":""first_session"",""name"":"""",""shouldIndex"":true,""value"":true},{""id"":null,""type"":""browserId"",""name"":"""",""shouldIndex"":true,""value"":""ie""},{""id"":null,""type"":""device"",""name"":"""",""shouldIndex"":true,""value"":""desktop""},{""id"":null,""type"":""source_type"",""name"":"""",""shouldIndex"":true,""value"":""direct""},{""id"":null,""type"":""currentTimestamp"",""name"":"""",""shouldIndex"":true,""value"":1500642531287},{""id"":null,""type"":""offset"",""name"":"""",""shouldIndex"":true,""value"":-60}],""isGlobalHoldback"":false}"; request16Dependent2.Body = request16Dependent2Body; request16.DependentRequests.Add(request16Dependent2); WebTestRequest request16Dependent3 = new WebTestRequest("https://www.visualstudio.com/wp-content/uploads/2016/03/segoeui-1.eot"); request16Dependent3.Headers.Add(new WebTestRequestHeader("Referer", "https://www.visualstudio.com/")); request16Dependent3.QueryStringParameters.Add("", "", false, false); request16.DependentRequests.Add(request16Dependent3); WebTestRequest request16Dependent4 = new WebTestRequest("https://www.visualstudio.com/wp-content/uploads/2016/06/latest-1.eot"); request16Dependent4.Headers.Add(new WebTestRequestHeader("Referer", "https://www.visualstudio.com/")); request16Dependent4.QueryStringParameters.Add("", "", false, false); request16.DependentRequests.Add(request16Dependent4); WebTestRequest request16Dependent5 = new WebTestRequest("https://www.visualstudio.com/wp-content/themes/Avada/assets/fonts/fontawesome/fon" + "tawesome-webfont.eot"); request16Dependent5.Headers.Add(new WebTestRequestHeader("Referer", "https://www.visualstudio.com/")); request16Dependent5.QueryStringParameters.Add("", "", false, false); request16.DependentRequests.Add(request16Dependent5); WebTestRequest request16Dependent6 = new WebTestRequest("https://assets.onestore.ms/cdnfiles/external/mwf/long/v1/v1.23.2/fonts/MWFMDL2.wo" + "ff"); request16Dependent6.Headers.Add(new WebTestRequestHeader("Referer", "https://www.visualstudio.com/")); request16.DependentRequests.Add(request16Dependent6); WebTestRequest request16Dependent7 = new WebTestRequest("https://fonts.googleapis.com/css"); request16Dependent7.Headers.Add(new WebTestRequestHeader("Referer", "https://www.visualstudio.com/")); request16Dependent7.QueryStringParameters.Add("family", "Source+Sans+Pro:200%7CMS-Font-Segoe-Regular:400%7CMS-Font-Segoe:400", false, false); request16.DependentRequests.Add(request16Dependent7); WebTestRequest request16Dependent8 = new WebTestRequest("https://app.vssps.visualstudio.com/_apis/connectionData"); request16Dependent8.ExpectedResponseUrl = @"https://app.vssps.visualstudio.com/_signin?realm=app.vssps.visualstudio.com&reply_to=https%3A%2F%2Fapp.vssps.visualstudio.com%2F_apis%2FconnectionData%3F_%3D1500642531390&redirect=1&mkt=en-GB&context=eyJodCI6MywiaGlkIjoiYTVjYTM1ZWItMTQ4ZS00Y2NkLWJiYjMtZDMxNTc2ZDc1OTU4IiwicXMiOnt9LCJyciI6IiIsInZoIjoiIiwiY3YiOiIiLCJjcyI6IiJ90#ctx=eyJTaWduSW5Db29raWVEb21haW5zIjpbImh0dHBzOi8vbG9naW4ubWljcm9zb2Z0b25saW5lLmNvbSIsImh0dHBzOi8vbG9naW4ubWljcm9zb2Z0b25saW5lLmNvbSJdfQ2"; request16Dependent8.Headers.Add(new WebTestRequestHeader("Accept", "*/*")); request16Dependent8.Headers.Add(new WebTestRequestHeader("Referer", "https://www.visualstudio.com/")); request16Dependent8.QueryStringParameters.Add("_", "1500642531390", false, false); request16.DependentRequests.Add(request16Dependent8); WebTestRequest request16Dependent9 = new WebTestRequest("https://fonts.gstatic.com/s/sourcesanspro/v10/toadOcfmlt9b38dHJxOBGMa9awK0IKUjIWA" + "BZIchFI8.woff"); request16Dependent9.ThinkTime = 1; request16Dependent9.Headers.Add(new WebTestRequestHeader("Referer", "https://www.visualstudio.com/")); request16.DependentRequests.Add(request16Dependent9); yield return(request16); request16 = null; WebTestRequest request17 = new WebTestRequest("https://a3698060313.cdn.optimizely.com/client_storage/a3698060313.html"); request17.Headers.Add(new WebTestRequestHeader("Referer", "https://www.visualstudio.com/")); yield return(request17); request17 = null; WebTestRequest request18 = new WebTestRequest("https://a3698060313.cdn.optimizely.com/client_storage/a3698060313.html"); yield return(request18); request18 = null; WebTestRequest request19 = new WebTestRequest("https://bam.nr-data.net/1/b0106f4dcd"); request19.Encoding = System.Text.Encoding.GetEncoding("iso-8859-1"); request19.Headers.Add(new WebTestRequestHeader("Referer", "https://www.visualstudio.com/")); request19.QueryStringParameters.Add("a", "17441482", false, false); request19.QueryStringParameters.Add("v", "1039.bef6007", false, false); request19.QueryStringParameters.Add("to", "YFFQNhYCV0RYVBEKWlkbcwEQClZZFgZVUxhAXVYWDA%3D%3D", false, false); request19.QueryStringParameters.Add("rst", "1330", false, false); request19.QueryStringParameters.Add("ref", "https://www.visualstudio.com/", false, false); request19.QueryStringParameters.Add("ap", "1753", false, false); request19.QueryStringParameters.Add("be", "318", false, false); request19.QueryStringParameters.Add("fe", "1276", false, false); request19.QueryStringParameters.Add("dc", "880", false, false); request19.QueryStringParameters.Add("af", "err,xhr,stn,ins,spa", false, false); request19.QueryStringParameters.Add("perf", @"%7B%22timing%22:%7B%22of%22:1500642530984,%22n%22:0,%22f%22:0,%22dn%22:0,%22dne%22:0,%22c%22:0,%22ce%22:0,%22rq%22:126,%22rp%22:127,%22rpe%22:142,%22dl%22:127,%22di%22:855,%22ds%22:856,%22de%22:1141,%22dc%22:1274,%22l%22:1276,%22le%22:1324%7D,%22navigation%22:%7B%7D%7D", false, false); request19.QueryStringParameters.Add("at", "TBZTQF4YREo%3D", false, false); request19.QueryStringParameters.Add("jsonp", "NREUM.setToken", false, false); yield return(request19); request19 = null; WebTestRequest request20 = new WebTestRequest("https://app.vssps.visualstudio.com/_apis/profile/profiles/me"); request20.ExpectedResponseUrl = @"https://app.vssps.visualstudio.com/_signin?realm=app.vssps.visualstudio.com&reply_to=https%3A%2F%2Fapp.vssps.visualstudio.com%2F_apis%2Fprofile%2Fprofiles%2Fme%3F_%3D1500642531391&redirect=1&mkt=en-GB&context=eyJodCI6MywiaGlkIjoiYTVjYTM1ZWItMTQ4ZS00Y2NkLWJiYjMtZDMxNTc2ZDc1OTU4IiwicXMiOnt9LCJyciI6IiIsInZoIjoiIiwiY3YiOiIiLCJjcyI6IiJ90#ctx=eyJTaWduSW5Db29raWVEb21haW5zIjpbImh0dHBzOi8vbG9naW4ubWljcm9zb2Z0b25saW5lLmNvbSIsImh0dHBzOi8vbG9naW4ubWljcm9zb2Z0b25saW5lLmNvbSJdfQ2"; request20.Headers.Add(new WebTestRequestHeader("Accept", "*/*")); request20.Headers.Add(new WebTestRequestHeader("Referer", "https://www.visualstudio.com/")); request20.QueryStringParameters.Add("_", "1500642531391", false, false); yield return(request20); request20 = null; WebTestRequest request21 = new WebTestRequest("https://logx.optimizely.com/log/event"); request21.Method = "POST"; request21.Headers.Add(new WebTestRequestHeader("Referer", "https://www.visualstudio.com/")); StringHttpBody request21Body = new StringHttpBody(); request21Body.ContentType = "text/plain;charset=UTF-8"; request21Body.InsertByteOrderMark = false; request21Body.BodyString = "{\"eventId\":\"6f190896-14cc-42e0-a236-2d46232b0661\",\"anonymizeIP\":true,\"timestamp\":" + "1500642532388,\"revision\":\"1635\",\"clientEngine\":\"js\",\"clientVersion\":\"0.64.0\",\"pr" + "ojectId\":\"6189442473\",\"accountId\":\"3698060313\",\"activationId\":\"63f58b86-af3b-41e" + "4-bb88-bbf1736ad0f6\",\"sessionId\":\"9c7049d3-939f-41f5-aebe-d5789944435a\",\"visitor" + "Id\":\"oeu1484573729623r0.603002459923891\",\"eventFeatures\":[{\"id\":null,\"shouldInde" + "x\":true,\"type\":\"view_category\",\"name\":\"\",\"value\":\"other\"}],\"eventMetrics\":[],\"re" + "latedEvents\":[],\"layerStates\":[{\"layerId\":\"8462336156\",\"revision\":\"1635\",\"decisi" + "onTicket\":{\"audiences\":[],\"bucketingId\":\"oeu1484573729623r0.603002459923891\"},\"d" + "ecision\":{\"experimentId\":\"8458796028\",\"variationId\":\"8466137646\",\"isLayerHoldbac" + "k\":false},\"decisionActivationId\":\"63f58b86-af3b-41e4-bb88-bbf1736ad0f6\",\"decisio" + "nSessionId\":\"9c7049d3-939f-41f5-aebe-d5789944435a\",\"decisionEventId\":\"80099425-f" + "8bd-46d7-be75-3df3e8f0b69e\",\"decisionTimestamp\":1500642531289,\"actionTriggered\":" + "true,\"actionSessionId\":\"9c7049d3-939f-41f5-aebe-d5789944435a\",\"actionActivationI" + "d\":\"63f58b86-af3b-41e4-bb88-bbf1736ad0f6\",\"actionTimestamp\":1500642531290}],\"use" + "rFeatures\":[{\"id\":null,\"type\":\"first_session\",\"name\":\"\",\"shouldIndex\":true,\"valu" + "e\":true},{\"id\":null,\"type\":\"browserId\",\"name\":\"\",\"shouldIndex\":true,\"value\":\"ie\"" + "},{\"id\":null,\"type\":\"device\",\"name\":\"\",\"shouldIndex\":true,\"value\":\"desktop\"},{\"i" + "d\":null,\"type\":\"source_type\",\"name\":\"\",\"shouldIndex\":true,\"value\":\"direct\"},{\"id" + "\":null,\"type\":\"currentTimestamp\",\"name\":\"\",\"shouldIndex\":true,\"value\":1500642531" + "287},{\"id\":null,\"type\":\"offset\",\"name\":\"\",\"shouldIndex\":true,\"value\":-60}],\"acti" + "veViews\":[{\"viewId\":\"8285676958\",\"activatedTimestamp\":1500642531287,\"viewFeature" + "s\":[{\"id\":null,\"shouldIndex\":true,\"type\":\"view_category\",\"name\":\"\",\"value\":\"othe" + "r\"}]},{\"viewId\":\"8292452861\",\"activatedTimestamp\":1500642531296,\"viewFeatures\":[" + "{\"id\":null,\"shouldIndex\":true,\"type\":\"view_category\",\"name\":\"\",\"value\":\"other\"}]" + "},{\"viewId\":\"8326220607\",\"activatedTimestamp\":1500642531297,\"viewFeatures\":[{\"id" + "\":null,\"shouldIndex\":true,\"type\":\"view_category\",\"name\":\"\",\"value\":\"other\"}]}],\"" + "isGlobalHoldback\":false,\"eventEntityId\":\"8285676958\",\"eventType\":\"view_activated" + "\",\"eventName\":\"8285676958\"}"; request21.Body = request21Body; yield return(request21); request21 = null; WebTestRequest request22 = new WebTestRequest("https://logx.optimizely.com/log/event"); request22.Method = "POST"; request22.Headers.Add(new WebTestRequestHeader("Referer", "https://www.visualstudio.com/")); StringHttpBody request22Body = new StringHttpBody(); request22Body.ContentType = "text/plain;charset=UTF-8"; request22Body.InsertByteOrderMark = false; request22Body.BodyString = "{\"eventId\":\"08d6d39c-1fde-439e-9707-28d6ddb1fb78\",\"anonymizeIP\":true,\"timestamp\":" + "1500642532394,\"revision\":\"1635\",\"clientEngine\":\"js\",\"clientVersion\":\"0.64.0\",\"pr" + "ojectId\":\"6189442473\",\"accountId\":\"3698060313\",\"activationId\":\"63f58b86-af3b-41e" + "4-bb88-bbf1736ad0f6\",\"sessionId\":\"9c7049d3-939f-41f5-aebe-d5789944435a\",\"visitor" + "Id\":\"oeu1484573729623r0.603002459923891\",\"eventFeatures\":[{\"id\":null,\"shouldInde" + "x\":true,\"type\":\"view_category\",\"name\":\"\",\"value\":\"other\"}],\"eventMetrics\":[],\"re" + "latedEvents\":[],\"layerStates\":[{\"layerId\":\"8462336156\",\"revision\":\"1635\",\"decisi" + "onTicket\":{\"audiences\":[],\"bucketingId\":\"oeu1484573729623r0.603002459923891\"},\"d" + "ecision\":{\"experimentId\":\"8458796028\",\"variationId\":\"8466137646\",\"isLayerHoldbac" + "k\":false},\"decisionActivationId\":\"63f58b86-af3b-41e4-bb88-bbf1736ad0f6\",\"decisio" + "nSessionId\":\"9c7049d3-939f-41f5-aebe-d5789944435a\",\"decisionEventId\":\"80099425-f" + "8bd-46d7-be75-3df3e8f0b69e\",\"decisionTimestamp\":1500642531289,\"actionTriggered\":" + "true,\"actionSessionId\":\"9c7049d3-939f-41f5-aebe-d5789944435a\",\"actionActivationI" + "d\":\"63f58b86-af3b-41e4-bb88-bbf1736ad0f6\",\"actionTimestamp\":1500642531290}],\"use" + "rFeatures\":[{\"id\":null,\"type\":\"first_session\",\"name\":\"\",\"shouldIndex\":true,\"valu" + "e\":true},{\"id\":null,\"type\":\"browserId\",\"name\":\"\",\"shouldIndex\":true,\"value\":\"ie\"" + "},{\"id\":null,\"type\":\"device\",\"name\":\"\",\"shouldIndex\":true,\"value\":\"desktop\"},{\"i" + "d\":null,\"type\":\"source_type\",\"name\":\"\",\"shouldIndex\":true,\"value\":\"direct\"},{\"id" + "\":null,\"type\":\"currentTimestamp\",\"name\":\"\",\"shouldIndex\":true,\"value\":1500642531" + "287},{\"id\":null,\"type\":\"offset\",\"name\":\"\",\"shouldIndex\":true,\"value\":-60}],\"acti" + "veViews\":[{\"viewId\":\"8285676958\",\"activatedTimestamp\":1500642531287,\"viewFeature" + "s\":[{\"id\":null,\"shouldIndex\":true,\"type\":\"view_category\",\"name\":\"\",\"value\":\"othe" + "r\"}]},{\"viewId\":\"8292452861\",\"activatedTimestamp\":1500642531296,\"viewFeatures\":[" + "{\"id\":null,\"shouldIndex\":true,\"type\":\"view_category\",\"name\":\"\",\"value\":\"other\"}]" + "},{\"viewId\":\"8326220607\",\"activatedTimestamp\":1500642531297,\"viewFeatures\":[{\"id" + "\":null,\"shouldIndex\":true,\"type\":\"view_category\",\"name\":\"\",\"value\":\"other\"}]}],\"" + "isGlobalHoldback\":false,\"eventEntityId\":\"8292452861\",\"eventType\":\"view_activated" + "\",\"eventName\":\"8292452861\"}"; request22.Body = request22Body; yield return(request22); request22 = null; WebTestRequest request23 = new WebTestRequest("https://logx.optimizely.com/log/event"); request23.Method = "POST"; request23.Headers.Add(new WebTestRequestHeader("Referer", "https://www.visualstudio.com/")); StringHttpBody request23Body = new StringHttpBody(); request23Body.ContentType = "text/plain;charset=UTF-8"; request23Body.InsertByteOrderMark = false; request23Body.BodyString = "{\"eventId\":\"9ee484c2-e829-40df-be02-b4d1bd7ac93b\",\"anonymizeIP\":true,\"timestamp\":" + "1500642532399,\"revision\":\"1635\",\"clientEngine\":\"js\",\"clientVersion\":\"0.64.0\",\"pr" + "ojectId\":\"6189442473\",\"accountId\":\"3698060313\",\"activationId\":\"63f58b86-af3b-41e" + "4-bb88-bbf1736ad0f6\",\"sessionId\":\"9c7049d3-939f-41f5-aebe-d5789944435a\",\"visitor" + "Id\":\"oeu1484573729623r0.603002459923891\",\"eventFeatures\":[{\"id\":null,\"shouldInde" + "x\":true,\"type\":\"view_category\",\"name\":\"\",\"value\":\"other\"}],\"eventMetrics\":[],\"re" + "latedEvents\":[],\"layerStates\":[{\"layerId\":\"8462336156\",\"revision\":\"1635\",\"decisi" + "onTicket\":{\"audiences\":[],\"bucketingId\":\"oeu1484573729623r0.603002459923891\"},\"d" + "ecision\":{\"experimentId\":\"8458796028\",\"variationId\":\"8466137646\",\"isLayerHoldbac" + "k\":false},\"decisionActivationId\":\"63f58b86-af3b-41e4-bb88-bbf1736ad0f6\",\"decisio" + "nSessionId\":\"9c7049d3-939f-41f5-aebe-d5789944435a\",\"decisionEventId\":\"80099425-f" + "8bd-46d7-be75-3df3e8f0b69e\",\"decisionTimestamp\":1500642531289,\"actionTriggered\":" + "true,\"actionSessionId\":\"9c7049d3-939f-41f5-aebe-d5789944435a\",\"actionActivationI" + "d\":\"63f58b86-af3b-41e4-bb88-bbf1736ad0f6\",\"actionTimestamp\":1500642531290}],\"use" + "rFeatures\":[{\"id\":null,\"type\":\"first_session\",\"name\":\"\",\"shouldIndex\":true,\"valu" + "e\":true},{\"id\":null,\"type\":\"browserId\",\"name\":\"\",\"shouldIndex\":true,\"value\":\"ie\"" + "},{\"id\":null,\"type\":\"device\",\"name\":\"\",\"shouldIndex\":true,\"value\":\"desktop\"},{\"i" + "d\":null,\"type\":\"source_type\",\"name\":\"\",\"shouldIndex\":true,\"value\":\"direct\"},{\"id" + "\":null,\"type\":\"currentTimestamp\",\"name\":\"\",\"shouldIndex\":true,\"value\":1500642531" + "287},{\"id\":null,\"type\":\"offset\",\"name\":\"\",\"shouldIndex\":true,\"value\":-60}],\"acti" + "veViews\":[{\"viewId\":\"8285676958\",\"activatedTimestamp\":1500642531287,\"viewFeature" + "s\":[{\"id\":null,\"shouldIndex\":true,\"type\":\"view_category\",\"name\":\"\",\"value\":\"othe" + "r\"}]},{\"viewId\":\"8292452861\",\"activatedTimestamp\":1500642531296,\"viewFeatures\":[" + "{\"id\":null,\"shouldIndex\":true,\"type\":\"view_category\",\"name\":\"\",\"value\":\"other\"}]" + "},{\"viewId\":\"8326220607\",\"activatedTimestamp\":1500642531297,\"viewFeatures\":[{\"id" + "\":null,\"shouldIndex\":true,\"type\":\"view_category\",\"name\":\"\",\"value\":\"other\"}]}],\"" + "isGlobalHoldback\":false,\"eventEntityId\":\"8326220607\",\"eventType\":\"view_activated" + "\",\"eventName\":\"8326220607\"}"; request23.Body = request23Body; yield return(request23); request23 = null; WebTestRequest request24 = new WebTestRequest("https://bam.nr-data.net/events/1/b0106f4dcd"); request24.Method = "POST"; request24.Headers.Add(new WebTestRequestHeader("Referer", "https://www.visualstudio.com/")); request24.QueryStringParameters.Add("a", "17441482", false, false); request24.QueryStringParameters.Add("v", "1039.bef6007", false, false); request24.QueryStringParameters.Add("to", "YFFQNhYCV0RYVBEKWlkbcwEQClZZFgZVUxhAXVYWDA%3D%3D", false, false); request24.QueryStringParameters.Add("rst", "1604", false, false); request24.QueryStringParameters.Add("ref", "https://www.visualstudio.com/", false, false); StringHttpBody request24Body = new StringHttpBody(); request24Body.ContentType = "text/plain"; request24Body.InsertByteOrderMark = false; request24Body.BodyString = "bel.3;1,2,,18e,18e,ai,\'initialPageLoad,\'https://www.visualstudio.com/,1,1,,,,1cp," + "!!;a,\'TBZTQF4YREo=;2,,kb,gx,6,2,\'GET,5n,\'app.vssps.visualstudio.com:443,\'/_apis/" + "connectionData,,aeo,;b,!!!!,,,,!,3i,1,f,-f,k8,1,7x,3p,2,1c"; request24.Body = request24Body; yield return(request24); request24 = null; }