2015-01-16 2 views
0

Я пытаюсь записать приложение с высокой пропускной способностью .net (4.5.2) в Load Runner 12.01, но я получаю следующие ошибки. кто-то может помочьLoad Runner .Net - Найден неопределенный объект типа

namespace Script { 
    using LoadRunner; 
    using Mercury.LoadRunner.DotNetProtocol.Replay; 
    using OM.EXIGO.SGUI; 
    using OM.EXIGO.SGUI.WscServicesAPI; 
    using OM.EXIGO.SGUI.WsCUsersAndRolesAPI; 
    using Script.Accessors; 
    using System; 
    using System.Data; 
    using System.Net; 


    public partial class VuserClass { 

     public virtual int Action() { 
      lr.think_time(11); 
      lr.log("Event 1: new NetworkCredential();"); 
      NetworkCredential_1 = new NetworkCredential(); 
      lr.log("Event 2: NetworkCredential_1.UserName = \"NEWUSERT1\";"); 
      NetworkCredential_1.UserName = "CITI20T1"; 
      lr.log("Event 3: NetworkCredential_1.Password = \"passowrd1234\";"); 
      NetworkCredential_1.Password = "passowrd1234"; 
      lr.log("Event 4: new AssemblyWithVersionDS();"); 
      AssemblyWithVersionDS_1 = new AssemblyWithVersionDS(); 
      lr.log("Event 5: AssemblyWithVersionDS_1.AssemblyWithVersionDT;"); 
      AssemblyWithVersionDTDataTable_1 = AssemblyWithVersionDS_1.AssemblyWithVersionDT; 
      // Table AssemblyWithVersionDTDataTable_1 is empty 
      lr.log("Event 6: AssemblyWithVersionDTDataTable_1.AddAssemblyWithVersionDTRow(\"OM.EXIGO.d" 
+ 
       "ll\", \"2.7.1.1498\");"); 
      AssemblyWithVersionDTRow_1 = AssemblyWithVersionDTDataTable_1.AddAssemblyWithVersionDTRow("OM.EXIGO.dll", "2.7.1.1498"); 
      lr.log("Event 7: NetworkCredential_1.UserName;"); 
      StringRetVal = NetworkCredential_1.UserName; 
      #warning: Code Generation Error 
      // Found an undefined object of type System.Xml.XmlTextWriter. Assigning it the name writer_1. 
      // Suggested solution: adding both this type, in assembly System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, to the filter 
      // and/or any other types that return instances of this one. 
      // Note: This script will not compile as is. 
      lr.log("Event 8: new DataSet_Accessor(AssemblyWithVersionDS_1).WriteXml(writer_1);"); 
      new DataSet_Accessor(AssemblyWithVersionDS_1).WriteXml(writer_1); 
      #warning: Code Generation Warning 
      // Note: writer_1 is not included in the recording filter. 
      // Its state may have changed since it was last detected. 
      #warning: Code Generation Error 
      // Found an undefined object of type OM.EXIGO.SGUI.WscServicesAPI.AssemblyWithVersionDS. Assigning it the name AssemblyWithVersionDS_2. 
      // Suggested solution: adding both this type, in assembly SGUIWebReferences, Version=2.7.1.0, Culture=neutral, PublicKeyToken=8941f02d31442b70, to the filter 
      // and/or any other types that return instances of this one. 
      // Note: This script will not compile as is. 
      lr.log("Event 9: new DataSet_Accessor(AssemblyWithVersionDS_2).WriteXml(writer_1);"); 
      new DataSet_Accessor(AssemblyWithVersionDS_2).WriteXml(writer_1); 
      lr.log("Event 10: NetworkCredential_1.GetCredential(new Uri(\"https://testdomain.com/HEXAPIRelease5/SGServiceA/CServicesAPI.asmx\"), \"digest\");"); 
      NetworkCredential_1 = NetworkCredential_1.GetCredential(new Uri("https://testdomain.com/HEXAPIRelease5/SGServiceA/CServicesAPI.asmx"), "digest"); 
      lr.log("Event 11: NetworkCredential_1.GetCredential(new Uri(\"https://testdomain.com/HEXAPIRelease5/SGServiceA/CServicesAPI.asmx\"), \"basic\");"); 
      NetworkCredential_1 = NetworkCredential_1.GetCredential(new Uri("https://testdomain.com/HEXAPIRelease5/SGServiceA/CServicesAPI.asmx"), "basic"); 
      lr.log("Event 12: new AssemblyWithVersionDS();"); 
      AssemblyWithVersionDS_3 = new AssemblyWithVersionDS(); 
      #warning: Code Generation Error 
      // Found an undefined object of type System.Xml.XmlTextReader. Assigning it the name reader_1. 
      // Suggested solution: adding both this type, in assembly System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, to the filter 
      // and/or any other types that return instances of this one. 
      // Note: This script will not compile as is. 
      lr.log("Event 13: new DataSet_Accessor(AssemblyWithVersionDS_3).ReadXml(reader_1);"); 
      new DataSet_Accessor(AssemblyWithVersionDS_3).ReadXml(reader_1); 

Вот недостающие библиотеки, которые Load runner жалуется во время компиляции. *

* 

// Found an undefined object of type System.Xml.XmlTextWriter. Assigning it the name writer_1. 
// Found an undefined object of type OM.EXIGO.SGUI.WscServicesAPI.AssemblyWithVersionDS. Assigning it the name AssemblyWithVersionDS_2. 
// Found an undefined object of type System.Xml.XmlTextReader. Assigning it the name reader_1. 

*

*

Я добавил к csproj DLLs файл, и я получил прибл 1000 ошибок. Пожалуйста, дайте мне знать, если вы хотите, чтобы я отправил несколько ошибок. Как проверить, использую ли я правильную инфраструктуру .net?

Как я могу устранить эти ошибки?

Благодаря Шри

ответ

0

Вы используете .NET рекордер! Удачи!

При добавлении ссылки на проект C# есть две вещи, чтобы проверить:

  1. Проект упоминание о DLL.
  2. Код ссылается на пространство имен.

В XmlTextWriter и XmlTextReader объектов являются частью платформы .NET и как жить в System.Xml пространства имен.

Убедитесь, что ваш проект имеет ссылку на файл System.Xml.dll.

Добавит, что пространство имен с помощью высказывания:

using System.Xml; 

AssemplyWithVersionDS класса выглядит третья сторона. Его пространство имен - OM.EXIGO.SGUI.WscServiceAPI, которое вы уже указали в заявлении using. Проверьте пространство имен, и класс находится там, где вы указали в своем проекте. Вы можете сделать это с помощью декомпилятора или проводника объектов Visual Studio.


непрошеного совет

Попытка понять рекордер .NET и его настройку фильтра, вероятно, равен, если не больше, чем усилия, чтобы понять клиентское приложение API с сервером.

Узнайте, что API и как клиент использует его. Прочтите исходный код приложения. Попросите разработчиков объяснить исходный код.

Составьте проект самостоятельно, ссылаясь на тот же API. Вы сможете сделать это гораздо меньше строк кода, чем рекордер. Это будет легче понять и поддерживать.

Смежные вопросы