简短的错误描述:
Ms.Dynamics.Performance.CreateUsers.exe
从 PerfSDK 抛出错误
在https://mytest.sandbox.operations.dynamics.com/Services/AxUserManagement/Service.svc/ws2007FedHttp上没有可以接受消息的端点监听。
长错误描述:
我已经从 XML 记录创建了一个单用户 C# 测试,并使用 PerfSDK 成功运行它,如PerfSDK 和使用 Visual Studio Online指南的多用户测试的第一部分中所述。
如实验室第二部分所述,我在运行多用户负载测试时遇到问题。上面的链接似乎是描述如何从单用户测试创建多用户测试以及如何使用 Visual Studio Online 在沙盒环境中运行它的唯一在线资源。我还观看了一些视频,例如测量和改进 Microsoft Dynamics AX 性能的工具、性能工具等,但没有一个视频像上面的文章那样详细地解释了需要采取的所有步骤。
我做了以下事情:
- 使用Dynamics 365 for Operations中的任务记录器创建场景的记录。
- 使用文件夹中的
PerfSDKSample
项目在 Visual Studio 中录制创建 C# 性能测试 。PerfSDK
- 遵循文章中的所有“使用 Perf SDK 运行单用户性能测试的步骤” ;
- 构建解决方案并从测试资源管理器成功运行我的测试:Internet Explorer 打开启动并重放我记录的场景。
注意:我使用 DEV 环境usnconeboxax1aos.cloud.onebox.dynamics.com进行测试。CloudEnvironment.Config
当我尝试在(沙箱,例如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 Online 门户https://app.vssps.visualstudio.com/profile/view启动了 Visual Studio
- 我修改了TestSetup方法如下:
单用户测试设置:
public void TestSetup()
{
SetupData();
_userContext = new UserContext(UserManagement.AdminUser);
Client = DispatchedClient.DefaultInstance;
Client.ForceEditMode = false;
Client.Company = "GB01";
Client.Open();
}
多用户测试设置:
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();
}
- 我将 HostName 设置
CloudEnvironment.Config
为沙盒 URL,例如mysandbox.sandbox.operations.dynamics.com。 - 登录到沙盒机器并安装我之前为单用户测试生成的证书。
- 以之前在 DEV 中更新的相同方式更新沙盒机器上的 wif.config,并重新启动 IIS。
- 在解决方案资源管理器中双击
vsonline.testsettings
并使用上面文章中推荐的设置(针对我的证书和测试场景进行了相应修改)。 - 从解决方案资源管理器中打开
SampleLoadTest.loadtest
并调整它以仅使用我在测试混合节点中的测试,减少测试持续时间和用户数。 - 运行负载测试。
负载测试以一些错误结束。第一个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 机器上成功运行(在usnconeboxax1aos.cloud.onebox.dynamics.com中创建了许多测试 AX 用户),当设置沙箱环境 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.PrivateInvoke(MessageData& msgData, Int32 type) 在 MS .Dynamics.TestTools.CloudCommonTestUtilities.AxUserManagementServiceReference.IAxUserManagement.EnumUsers() 在 MS.Dynamics.TestTools.CloudCommonTestUtilities.Authentication.UserManagement.PopulateAxUsers() 在 MS.Dynamics.TestTools.CloudCommonTestUtilities.Authentication.UserManagement..cctor() ---内部异常堆栈跟踪结束 --- 在 MS.Dynamics.TestTools.CloudCommonTestUtilities.Authentication.UserManagement.get_AdminUser() 在 MS。