Как обработать конфликт параллелизма для веб-тестов, пытающихся получить доступ к добавленному элементу - PullRequest
0 голосов
/ 07 февраля 2020

У меня есть веб-тест, где я делаю POST-запрос request1 для добавления элемента, а затем request2 для удаления того же элемента. При запуске я получаю следующую ошибку.

Оператор хранения, вставки или удаления затронул неожиданное количество строк (0). Объекты могут быть изменены или удалены с момента загрузки объектов. См. http://go.microsoft.com/fwlink/?LinkId=472540 для получения информации о понимании и обработке оптимистических c исключений параллелизма.

Возможно, удалите выполнение запроса до того, как добавление будет завершено в БД. Как я могу решить это? код ниже.

public override IEnumerator<WebTestRequest> GetRequestEnumerator()
    {
        WebTestRequest request1 = new WebTestRequest("https://XXXXX/XX");
        request1.ThinkTime = 1;
        request1.ReportingName = "Add Item";
        request1.ExpectedHttpStatusCode = 200;
        request1.Headers.Add(new WebTestRequestHeader("Authorization", token));
        request1.Method = "POST";


        FormPostHttpBody request1Body = new FormPostHttpBody();
        request1Body.FormPostParameters.Add("AId", "1");
        request1Body.FormPostParameters.Add("groupId", "1");

        request1.Body = request1Body;

        yield return request1;
        request1 = null;



        WebTestRequest request2 = new WebTestRequest("https://XXXXX/XX");
        request2.ThinkTime = 1;
        request2.ReportingName = "Remove Item";
        request2.ExpectedHttpStatusCode = 200;
        request2.Headers.Add(new WebTestRequestHeader("Authorization", token));
        request1.Method = "POST";

        FormPostHttpBody request2Body = new FormPostHttpBody();
        request2Body.FormPostParameters.Add("AId", "1");
        request2Body.FormPostParameters.Add("groupId", "1");

        request2.Body = request2Body;

        yield return request2;
        request2 = null;
    }
...