Exemple #1
0
        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;
        }
Exemple #3
0
        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);
        }
Exemple #5
0
        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;
        }
Exemple #7
0
            public Stream VisitStringBody(StringHttpBody body)
            {
                var result = new MemoryStream(Encoding.UTF8.GetBytes(body.Text));

                result.Position = 0;
                return(result);
            }
Exemple #8
0
        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;
        }
Exemple #10
0
        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);
        }
Exemple #11
0
        /// <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);
        }
Exemple #12
0
        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;
        }
Exemple #16
0
        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;
        }
Exemple #17
0

        
        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;
        }
Exemple #21
0
        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;
        }
Exemple #22
0
        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);
            }
        }
Exemple #24
0
        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>&lt;columns code=\"020\"&gt;\n&" +
            //		"lt;column id=\"1\"&gt;\n&lt;field&gt;fin.trs.head.yearperiod&lt;/field&gt;" +
            //		"\n&lt;label&gt;Period&lt;/label&gt;\n&lt;visible&gt;true&lt;/vis" +
            //		"ible&gt;\n&lt;ask&gt;true&lt;/ask&gt;\n&lt;operator&gt;between&l" +
            //		"t;/operator&gt;\n&lt;from&gt;2001/01&lt;/from&gt;\n&lt;to&gt;201" +
            //		"8/08&lt;/to&gt;\n&lt;finderparam&gt;&lt;/finderparam&gt;\n&lt;/colu" +
            //		"mn&gt;\n&lt;column id=\"2\"&gt;\n&lt;field&gt;fin.trs.head.code&lt;/f" +
            //		"ield&gt;\n&lt;label&gt;Transaction type&lt;/label&gt;\n&lt;visib" +
            //		"le&gt;true&lt;/visible&gt;\n&lt;ask&gt;true&lt;/ask&gt;\n&lt;ope" +
            //		"rator&gt;equal&lt;/operator&gt;\n&lt;from&gt;&lt;/from&gt;\n&lt;" +
            //		"to&gt;&lt;/to&gt;\n&lt;finderparam&gt;hidden=1&lt;/finderparam&gt;\n" +
            //		"&lt;/column&gt;\n&lt;column id=\"3\"&gt;\n&lt;field&gt;fin.trs.head." +
            //		"shortname&lt;/field&gt;\n&lt;label&gt;Name&lt;/label&gt;\n&lt;vi" +
            //		"sible&gt;true&lt;/visible&gt;\n&lt;ask&gt;false&lt;/ask&gt;\n&lt" +
            //		";operator&gt;none&lt;/operator&gt;\n&lt;from&gt;&lt;/from&gt;\n&" +
            //		"lt;to&gt;&lt;/to&gt;\n&lt;finderparam&gt;&lt;/finderparam&gt;\n&lt;" +
            //		"/column&gt;\n&lt;column id=\"4\"&gt;\n&lt;field&gt;fin.trs.head.numbe" +
            //		"r&lt;/field&gt;\n&lt;label&gt;Trans. no.&lt;/label&gt;\n&lt;visi" +
            //		"ble&gt;true&lt;/visible&gt;\n&lt;ask&gt;true&lt;/ask&gt;\n&lt;op" +
            //		"erator&gt;between&lt;/operator&gt;\n&lt;from&gt;&lt;/from&gt;\n&" +
            //		"lt;to&gt;&lt;/to&gt;\n&lt;finderparam&gt;&lt;/finderparam&gt;\n&lt;" +
            //		"/column&gt;\n&lt;column id=\"5\"&gt;\n&lt;field&gt;fin.trs.head.statu" +
            //		"s&lt;/field&gt;\n&lt;label&gt;Status&lt;/label&gt;\n&lt;visible&" +
            //		"gt;true&lt;/visible&gt;\n&lt;ask&gt;true&lt;/ask&gt;\n&lt;operat" +
            //		"or&gt;equal&lt;/operator&gt;\n&lt;from&gt;normal&lt;/from&gt;\n&" +
            //		"lt;to&gt;&lt;/to&gt;\n&lt;finderparam&gt;&lt;/finderparam&gt;\n&lt;" +
            //		"/column&gt;\n&lt;column id=\"6\"&gt;\n&lt;field&gt;fin.trs.head.date&" +
            //		"lt;/field&gt;\n&lt;label&gt;Trans.date&lt;/label&gt;\n&lt;visib" +
            //		"le&gt;true&lt;/visible&gt;\n&lt;ask&gt;true&lt;/ask&gt;\n&lt;ope" +
            //		"rator&gt;between&lt;/operator&gt;\n&lt;from&gt;&lt;/from&gt;\n&l" +
            //		"t;to&gt;&lt;/to&gt;\n&lt;finderparam&gt;&lt;/finderparam&gt;\n&lt;/" +
            //		"column&gt;\n&lt;column id=\"7\"&gt;\n&lt;field&gt;fin.trs.head.inpdat" +
            //		"e&lt;/field&gt;\n&lt;label&gt;Date of entry&lt;/label&gt;\n&lt;v" +
            //		"isible&gt;false&lt;/visible&gt;\n&lt;ask&gt;true&lt;/ask&gt;\n&l" +
            //		"t;operator&gt;between&lt;/operator&gt;\n&lt;from&gt;&lt;/from&gt;\n" +
            //		"&lt;to&gt;&lt;/to&gt;\n&lt;finderparam&gt;&lt;/finderparam&gt;\n" +
            //		"&lt;/column&gt;\n&lt;column id=\"8\"&gt;\n&lt;field&gt;fin.trs.head.m" +
            //		"odified&lt;/field&gt;\n&lt;label&gt;Modification date&lt;/label&gt;\n" +
            //		"&lt;visible&gt;false&lt;/visible&gt;\n&lt;ask&gt;true&lt;/ask&gt;\n" +
            //		"&lt;operator&gt;between&lt;/operator&gt;\n&lt;from&gt;&lt;/from&" +
            //		"gt;\n&lt;to&gt;&lt;/to&gt;\n&lt;finderparam&gt;&lt;/finderparam&" +
            //		"gt;\n&lt;/column&gt;\n&lt;column id=\"9\"&gt;\n&lt;field&gt;fin." +
            //		"trs.line.dim1&lt;/field&gt;\n&lt;label&gt;General ledger&lt;/label&gt;\n" +
            //		"&lt;visible&gt;true&lt;/visible&gt;\n&lt;ask&gt;true&lt;/ask&gt;" +
            //		"\n&lt;operator&gt;between&lt;/operator&gt;\n&lt;from&gt;&lt;/fro" +
            //		"m&gt;\n&lt;to&gt;&lt;/to&gt;\n&lt;finderparam&gt;&lt;/finderpara" +
            //		"m&gt;\n&lt;/column&gt;\n&lt;column id=\"10\"&gt;\n&lt;field&gt;f" +
            //		"in.trs.line.dim2&lt;/field&gt;\n&lt;label&gt;Cust./supp.&lt;/label&gt;\n " +
            //		"&lt;visible&gt;true&lt;/visible&gt;\n&lt;ask&gt;true&lt;/ask&gt;" +
            //		"\n&lt;operator&gt;between&lt;/operator&gt;\n&lt;from&gt;&lt;/fro" +
            //		"m&gt;\n&lt;to&gt;&lt;/to&gt;\n&lt;finderparam&gt;&lt;/finderpara" +
            //		"m&gt;\n&lt;/column&gt;\n&lt;column id=\"11\"&gt;\n&lt;field&gt;f" +
            //		"in.trs.line.dim3&lt;/field&gt;\n&lt;label&gt;Project&lt;/label&gt;\n" +
            //		"&lt;visible&gt;true&lt;/visible&gt;\n&lt;ask&gt;true&lt;/ask&gt;\n" +
            //		"&lt;operator&gt;between&lt;/operator&gt;\n&lt;from&gt;&lt;/from&gt" +
            //		";\n&lt;to&gt;&lt;/to&gt;\n&lt;finderparam&gt;&lt;/finderparam&gt" +
            //		";\n&lt;/column&gt;\n&lt;column id=\"12\"&gt;\n&lt;field&gt;fin.t" +
            //		"rs.head.curcode&lt;/field&gt;\n&lt;label&gt;Currency&lt;/label&gt;\n     " +
            //		"&lt;visible&gt;true&lt;/visible&gt;\n&lt;ask&gt;true&lt;/ask&gt;\n   " +
            //		"&lt;operator&gt;equal&lt;/operator&gt;\n&lt;from&gt;&lt;/from&gt;\n" +
            //		"&lt;to&gt;&lt;/to&gt;\n&lt;finderparam&gt;&lt;/finderparam&gt;\n" +
            //		"&lt;/column&gt;\n&lt;column id=\"13\"&gt;\n&lt;field&gt;fin.trs" +
            //		".line.valuesigned&lt;/field&gt;\n&lt;label&gt;Value&lt;/label&gt;\n" +
            //		"&lt;visible&gt;true&lt;/visible&gt;\n&lt;ask&gt;true&lt;/ask&gt;\n" +
            //		"&lt;operator&gt;between&lt;/operator&gt;\n&lt;from&gt;&lt;/from&gt;" +
            //		"\n&lt;to&gt;&lt;/to&gt;\n&lt;finderparam&gt;&lt;/finderparam&gt;" +
            //		"\n&lt;/column&gt;\n&lt;column id=\"14\"&gt;\n&lt;field&gt;fin.tr" +
            //		"s.line.basevaluesigned&lt;/field&gt;\n&lt;label&gt;Euro&lt;/label&gt;\n" +
            //		"&lt;visible&gt;true&lt;/visible&gt;\n&lt;ask&gt;true&lt;/ask&gt;\n" +
            //		"&lt;operator&gt;between&lt;/operator&gt;\n&lt;from&gt;&lt;/from" +
            //		"&gt;\n&lt;to&gt;&lt;/to&gt;\n&lt;finderparam&gt;&lt;/finderparam" +
            //		"&gt;\n&lt;/column&gt;\n&lt;column id=\"15\"&gt;\n&lt;field&gt;fi" +
            //		"n.trs.line.repvaluesigned&lt;/field&gt;\n&lt;label&gt;&lt;/label&gt;\n   " +
            //		"&lt;visible&gt;false&lt;/visible&gt;\n&lt;ask&gt;false&lt;/ask&gt;" +
            //		"\n&lt;operator&gt;between&lt;/operator&gt;\n&lt;from&gt;&lt;/fro" +
            //		"m&gt;\n&lt;to&gt;&lt;/to&gt;\n&lt;finderparam&gt;&lt;/finderpara" +
            //		"m&gt;\n&lt;/column&gt;\n&lt;column id=\"16\"&gt;\n&lt;field&gt;f" +
            //		"in.trs.line.invnumber&lt;/field&gt;\n&lt;label&gt;Invoice no.&lt;/label&" +
            //		"gt;\n&lt;visible&gt;true&lt;/visible&gt;\n&lt;ask&gt;true&lt;/as" +
            //		"k&gt;\n&lt;operator&gt;equal&lt;/operator&gt;\n&lt;from&gt;&lt;/" +
            //		"from&gt;\n&lt;to&gt;&lt;/to&gt;\n&lt;finderparam&gt;&lt;/finderp" +
            //		"aram&gt;\n&lt;/column&gt;\n&lt;column id=\"17\"&gt;\n&lt;field&g" +
            //		"t;fin.trs.head.user&lt;/field&gt;\n&lt;label&gt;User&lt;/label&gt;\n" +
            //		"&lt;visible&gt;false&lt;/visible&gt;\n&lt;ask&gt;true&lt;/ask&gt;\n  " +
            //		"&lt;operator&gt;equal&lt;/operator&gt;\n&lt;from&gt;&lt;/from&gt;" +
            //		"\n&lt;to&gt;&lt;/to&gt;\n&lt;finderparam&gt;&lt;/finderparam&gt;" +
            //		"\n&lt;/column&gt;\n&lt;column id=\"18\"&gt;\n&lt;field&gt;fin.tr" +
            //		"s.head.inpdate&lt;/field&gt;\n&lt;label&gt;Date of entry&lt;/label&gt;\n " +
            //		"&lt;visible&gt;true&lt;/visible&gt;\n&lt;ask&gt;false&lt;/ask&gt" +
            //		";\n&lt;operator&gt;none&lt;/operator&gt;\n&lt;from&gt;&lt;/from&" +
            //		"gt;\n&lt;to&gt;&lt;/to&gt;\n&lt;finderparam&gt;&lt;/finderparam&" +
            //		"gt;\n&lt;/column&gt;\n&lt;column id=\"19\"&gt;\n&lt;field&gt;fin" +
            //		".trs.line.description&lt;/field&gt;\n&lt;label&gt;Description&lt;/label&" +
            //		"gt;\n&lt;visible&gt;true&lt;/visible&gt;\n&lt;ask&gt;false&lt;/a" +
            //		"sk&gt;\n&lt;operator&gt;none&lt;/operator&gt;\n&lt;from&gt;&lt;/" +
            //		"from&gt;\n&lt;to&gt;&lt;/to&gt;\n&lt;finderparam&gt;&lt;/finderp" +
            //		"aram&gt;\n&lt;/column&gt;\n&lt;column id=\"20\"&gt;\n&lt;field&g" +
            //		"t;fin.trs.head.browseregime&lt;/field&gt;\n&lt;label&gt;Regime&lt;/label" +
            //		"&gt;\n&lt;visible&gt;true&lt;/visible&gt;\n&lt;ask&gt;true&lt;/a" +
            //		"sk&gt;\n&lt;operator&gt;equal&lt;/operator&gt;\n&lt;from&gt;&lt;" +
            //		"/from&gt;\n&lt;to&gt;&lt;/to&gt;\n&lt;finderparam&gt;&lt;/finder" +
            //		"param&gt;\n&lt;/column&gt;\n&lt;/columns&gt;</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);
            }
        }
Exemple #25
0
        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)));
        }
Exemple #26
0
        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;
        }
Exemple #27
0
        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;
        }
Exemple #28
0
        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);
            }
        }
Exemple #29
0
        /// <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);
        }
Exemple #30
0
        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;
        }
Exemple #32
0
        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&sectionHeight=" +
                                           "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&sectionHeight" +
                                           "=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&sectionHeigh" +
                                           "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&sectionHeig" +
                                           "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&sectionHei" +
                                           "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&section" +
                                           "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&sectio" +
                                           "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;
        }