Тестирование производительности в 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", " Инструменты для повышения производительности" и т. П., Но ни одно из них не объясняет все шаги, которые необходимо выполнить, так подробно, как в предыдущей статье.
Я сделал следующее:
- Создана запись сценария с помощью средства записи задач в Dynamics 365 для операций.
- Создан C# perf тест из записи в Visual Studio с использованием
PerfSDKSample
проект изPerfSDK
папка. - Выполнены все "Шаги по запуску однопользовательского теста производительности с Perf SDK" из статьи;
- Построил решение и успешно запустил мой тест из 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..
- Для многопользовательского тестирования я запустил Visual Studio с интернет-портала Visual Studio https://app.vssps.visualstudio.com/profile/view
- Я изменил метод 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();
}
- Я установил имя хоста в
CloudEnvironment.Config
на URL песочницы, например, https://mysandbox.sandbox.operations.dynamics.com/. - Войдите на компьютер с песочницей и установите сертификат, который я сгенерировал ранее для однопользовательского тестирования.
- Обновил wif.config на компьютере с песочницей так же, как он был обновлен ранее в DEV, и перезапустил IIS.
- Двойной щелчок
vsonline.testsettings
в обозревателе решений и использовал параметры, рекомендованные в приведенной выше статье (соответственно измененные для моего сертификата и сценария тестирования). - открытый
SampleLoadTest.loadtest
из Solution Explorer и настроил его для использования только моего теста в узле Test Mix, уменьшил продолжительность теста и количество пользователей. - Запустите нагрузочный тест.
Нагрузочный тест завершился с несколькими ошибками. Первый 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..
- Наконец, хотя я был в состоянии бежать
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" />