Dynamics 365 for Operations中的性能测试 - 无端点监听

时间:2017-06-21 17:04:03

标签: performance-testing load-testing dynamics-365-operations

简短错误说明:

来自PerfSDK的

Ms.Dynamics.Performance.CreateUsers.exe会抛出错误

  

https://mytest.sandbox.operations.dynamics.com/Services/AxUserManagement/Service.svc/ws2007FedHttp没有可以接受该消息的端点。

长错误描述:

我已经从XML记录中创建了一个用户C#测试,并成功运行PerfSDK,如 PerfSDK and multiuser testing with Visual Studio Online 指南的第一部分所述。

我在运行多用户负载测试时遇到问题,如实验第二部分所述。上面的链接似乎是在线描述如何从单用户测试创建多用户测试的唯一资源,以及如何使用Visual Studio Online在沙箱环境中运行它。我还观看了一些视频,例如Tools to Measure and Improve Microsoft Dynamics AX PerformancePerformance Tools等,但没有一个视频解释了与上述文章一样详细的所有步骤。< / p>

我做了以下事情:

  1. Dynamics 365中创建了使用任务记录器的方案记录 对于运营
  2. 使用。在Visual Studio中录制创建C#perf测试 来自PerfSDKSample文件夹的PerfSDK项目。
  3. 遵循所有使用Perf运行单用户性能测试的步骤 SDK&#39;来自article;
  4. 构建解决方案并成功从Test Explorer运行我的测试: Internet Explorer打开并重播我的场景 记录了。
  5. 注意:我使用DEV环境usnconeboxax1aos.cloud.onebox.dynamics.com进行测试。当我尝试在CloudEnvironment.Config(沙箱,例如mysandbox.sandbox.operations.dynamics.com)中使用其他主机名时,单用户测试失败并显示以下错误消息

      

    System.TypeInitializationException:&#39; MS.Dynamics.TestTools.CloudCommonTestUtilities.Authentication.UserManagement&#39;的类型初始值设定项。抛出一个例外。 ---&GT; System.ServiceModel.EndpointNotFoundException:https://mysandbox.sandbox.operations.dynamics.com/Services/AxUserManagement/Service.svc/ws2007FedHttp没有可以接受该消息的端点。这通常是由错误的地址或SOAP操作引起的。有关更多详细信息,请参阅InnerException(如果存在)。 ---&GT; System.Net.WebException:远程服务器返回错误:(404)Not Found ..

    1. 对于多用户测试,我从Visual Studio启动了Visual Studio 在线门户网站https://app.vssps.visualstudio.com/profile/view
    2. 我修改了TestSetup方法如下:
    3. 单用户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中的HostName设置为沙箱网址,例如mysandbox.sandbox.operations.dynamics.com
      2. 登录沙盒计算机并安装我之前为单用户测试生成的证书。
      3. 更新了沙箱机器上的wif.config,方法与先前在DEV中更新的方式相同,并重新启动了IIS。
      4. 在解决方案资源管理器中双击vsonline.testsettings并使用上面article中建议的设置(相应地针对我的证书和测试方案进行了修改)。
      5. 从解决方案资源管理器中打开SampleLoadTest.loadtest并将其调整为仅在Test Mix节点中使用我的测试,缩短测试持续时间和用户数。
      6. 运行负载测试。
      7. 负载测试以一些错误结束。第一个 TestError 与上面提到的相同:

          

        初始化方法MS.Dynamics.Performance.Application.TaskRecorder.GenJnlBase.TestSetup抛出异常。 System.TypeInitializationException:System.TypeInitializationException:&#39; MS.Dynamics.TestTools.CloudCommonTestUtilities.Authentication.UserManagement&#39;的类型初始值设定项。抛出一个例外。 ---&GT; System.ServiceModel.EndpointNotFoundException:https://mysandbox.sandbox.operations.dynamics.com/Services/AxUserManagement/Service.svc/ws2007FedHttp没有可以接受该消息的端点。这通常是由错误的地址或SOAP操作引起的。有关更多详细信息,请参阅InnerException(如果存在)。 ---&GT; System.Net.WebException:远程服务器返回错误:(404)Not Found ..

        1. 最后,即使我能够成功地在我的DEV计算机上运行Ms.Dynamics.Performance.CreateUsers.exe(在usnconeboxax1aos.cloud.onebox.dynamics.com中创建了许多测试AX用户),但在{{1}中设置了沙箱环境URL },CloudEnvironment.Config失败,错误错误
        2.   

          C:\ PerfSDK&gt; Ms.Dynamics.Performance.CreateUsers.exe 3 GB01   失败,出现以下错误:   System.TypeInitializationException:&#39; MS.Dynamics.TestTools.CloudCommonTestUtilities.Authentication.UserManagement&#39;的类型初始值设定项。抛出一个例外。 ---&GT; 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&amp; 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.Dynamics.Performance.CreateUsers.Program.Main(String [] args)

1 个答案:

答案 0 :(得分:0)

根据walkthrough

  

如果您有启用ARR的环境,即您有2个端点,例如   这样:

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

您需要在CloudEnvironment.Config中输入两个端点

     

endpoints

可以通过指定正确的SOAP主机名来解决no endpoint listening错误,例如

<ExecutionConfigurations Key="HostName" Value="mysandbox.sandbox.operations.dynamics.com" />
<ExecutionConfigurations Key="SoapHostName" Value="mysandboxaossoap.sandbox.operations.dynamics.com" />