Тестирование производительности в Dynamics 365 для операций - без прослушивания конечной точки

Краткое описание ошибки:

Ms.Dynamics.Performance.CreateUsers.exe из PerfSDK выдает ошибку

Не было прослушивания конечной точки по адресу https://mytest.sandbox.operations.dynamics.com/Services/AxUserManagement/Service.svc/ws2007FedHttp который мог принять сообщение.

Длинное описание ошибки:

Я создал однопользовательский тест C# из записи XML и успешно запустил его с PerfSDK, как описано в первой части PerfSDK и многопользовательском тестировании с руководством по Visual Studio Online.

У меня проблемы с запуском многопользовательских нагрузочных тестов, как описано во второй части лабораторной работы. Ссылка выше, кажется, является единственным ресурсом онлайн, описывающим, как многопользовательский тест может быть создан из однопользовательского теста и как Visual Studio Online может использоваться для его запуска в среде песочницы. Я также посмотрел несколько видеороликов, таких как " Инструменты для измерения и улучшения производительности Microsoft Dynamics AX", " Инструменты для повышения производительности" и т. П., Но ни одно из них не объясняет все шаги, которые необходимо выполнить, так подробно, как в предыдущей статье.

Я сделал следующее:

  1. Создана запись сценария с помощью средства записи задач в Dynamics 365 для операций.
  2. Создан C# perf тест из записи в Visual Studio с использованием PerfSDKSample проект из PerfSDK папка.
  3. Выполнены все "Шаги по запуску однопользовательского теста производительности с Perf SDK" из статьи;
  4. Построил решение и успешно запустил мой тест из Test Explorer: Internet Explorer открыл запуск и воспроизведение сценария, который я записал.

Примечание. Для тестирования я использовал среду DEV https://usnconeboxax1aos.cloud.onebox.dynamics.com/. Когда я попытался использовать другое имя хоста в CloudEnvironment.Config (песочница, например https://mysandbox.sandbox.operations.dynamics.com/), однопользовательский тест завершился неудачно со следующим сообщением об ошибке:

System.TypeInitializationException: инициализатор типа для "MS.Dynamics.TestTools.CloudCommonTestUtilities.Authentication.UserManagement" вызвал исключение. ---> System.ServiceModel.EndpointNotFoundException: не было прослушивания конечной точки по адресу https://mysandbox.sandbox.operations.dynamics.com/Services/AxUserManagement/Service.svc/ws2007FedHttp который мог принять сообщение. Это часто вызвано неправильным адресом или действием SOAP. Смотрите InnerException, если имеется, для более подробной информации. ---> System.Net.WebException: удаленный сервер возвратил ошибку: (404) Not Found..

  1. Для многопользовательского тестирования я запустил Visual Studio с интернет-портала Visual Studio https://app.vssps.visualstudio.com/profile/view
  2. Я изменил метод TestSetup следующим образом:

Однопользовательский TestSetup:

public void TestSetup()
{
    SetupData();
    _userContext = new UserContext(UserManagement.AdminUser);
    Client = DispatchedClient.DefaultInstance;
    Client.ForceEditMode = false;
    Client.Company = "GB01";
    Client.Open();
}

Многопользовательский TestSetup:

public void TestSetup()
{
    var testroot = System.Environment.GetEnvironmentVariable("DeploymentDir");
    if (string.IsNullOrEmpty(testroot))
    {
        testroot = System.IO.Directory.GetCurrentDirectory();
    }
    Environment.SetEnvironmentVariable("testroot", testroot);
    if (this.TestContext != null)
    {
        timerProvider = new TimerProvider(this.TestContext);
    }
    SetupData();
    _userContext = new UserContext(UserManagement.AdminUser);
    Client = new DispatchedClientHelper().GetClient();
    Client.ForceEditMode = false;
    Client.Company = "GB01";
    Client.Open();
}
  1. Я установил имя хоста в CloudEnvironment.Config на URL песочницы, например, https://mysandbox.sandbox.operations.dynamics.com/.
  2. Войдите на компьютер с песочницей и установите сертификат, который я сгенерировал ранее для однопользовательского тестирования.
  3. Обновил wif.config на компьютере с песочницей так же, как он был обновлен ранее в DEV, и перезапустил IIS.
  4. Двойной щелчок vsonline.testsettings в обозревателе решений и использовал параметры, рекомендованные в приведенной выше статье (соответственно измененные для моего сертификата и сценария тестирования).
  5. открытый SampleLoadTest.loadtest из Solution Explorer и настроил его для использования только моего теста в узле Test Mix, уменьшил продолжительность теста и количество пользователей.
  6. Запустите нагрузочный тест.

Нагрузочный тест завершился с несколькими ошибками. Первый TestError такой же, как указано выше:

Метод инициализации MS.Dynamics.Performance.Application.TaskRecorder.GenJnlBase.TestSetup вызвал исключение. System.TypeInitializationException: System.TypeInitializationException: инициализатор типа для "MS.Dynamics.TestTools.CloudCommonTestUtilities.Authentication.UserManagement" вызвал исключение. ---> System.ServiceModel.EndpointNotFoundException: не было прослушивания конечной точки по адресу https://mysandbox.sandbox.operations.dynamics.com/Services/AxUserManagement/Service.svc/ws2007FedHttp который мог принять сообщение. Это часто вызвано неправильным адресом или действием SOAP. Смотрите InnerException, если имеется, для более подробной информации. ---> System.Net.WebException: удаленный сервер возвратил ошибку: (404) Not Found..

  1. Наконец, хотя я был в состоянии бежать Ms.Dynamics.Performance.CreateUsers.exe на моем компьютере DEV (несколько тестовых пользователей AX были созданы в https://usnconeboxax1aos.cloud.onebox.dynamics.com/), когда URL-адрес среды песочницы был задан в CloudEnvironment.Config, Ms.Dynamics.Performance.CreateUsers.exe не удалось с той же ошибкой:

C: \ PerfSDK> Ms.Dynamics.Performance.CreateUsers.exe 3 GB01 Сбой при следующей ошибке: System.TypeInitializationException: инициализатор типа для "MS.Dynamics.TestTools.CloudCommonTestUtilities.Authentication.UserManagement" вызвал исключение. ---> System.ServiceModel.EndpointNotFoundException: не было прослушивания конечной точки по адресу https://mytest.sandbox.operations.dynamics.com/Services/AxUserManagement/Service.svc/ws2007FedHttp которая могла бы принять сообщение. Это часто вызвано неправильным адресом или действием SOAP. Смотрите InnerException, если имеется, для более подробной информации.... Возникло исключение в [0]: в System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg) в System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32).Dynamics.TestTools.CloudCommonTestUtilities.AxUserManagementServiceReference.IAxUserManagement.EnumUsers() в MS.Dynamics.TestTools.CloudCommonTestUtilities.Authentication.UserManagement.PopestAxagement.Un Конец внутренней трассировки стека исключений --- в MS.Dynamics.TestTools.CloudCommonTestUtilities.Authentication.UserManagement.get_AdminUser() в MS.Dynamics.Performance.CreateUsers.Program.Main(String[] args)

1 ответ

Решение

По прохождению,

Если у вас есть среда с поддержкой ARR, то есть у вас есть 2 конечные точки, подобные этой:

  • apr-arr8aossoap.axcloud.test.dynamics.com
  • apr-arr8aos.axcloud.test.dynamics.com

Вам нужно будет ввести обе конечные точки в CloudEnvironment.Config

конечные точки

no endpoint listening ошибку можно устранить, указав правильное имя хоста SOAP, например,

<ExecutionConfigurations Key="HostName" Value="mysandbox.sandbox.operations.dynamics.com" />
<ExecutionConfigurations Key="SoapHostName" Value="mysandboxaossoap.sandbox.operations.dynamics.com" />
Другие вопросы по тегам