Sdílet prostřednictvím


Jak: vytvoření vlastní HTTP subjekt Editor pro Editor webové Test výkonu

Můžete vytvořit vlastní editor obsahu, který umožňuje upravovat obsah řetězce text nebo binární subjekt obsah požadavek webové služby, například SOAP, odpočinek, asmx, wcf RIA a jiných typů požadavků webové služby.

Existují dva typy editorů, které mohou implementovat:

Tato rozhraní jsou obsaženy v Microsoft.VisualStudio.TestTools.WebTesting oboru názvů.

Požadavky

  • Visual Studio Ultimate

Vytvoření projektu knihovny ovládacích prvků Windows

Vytvořit uživatelský ovládací prvek pomocí projektu knihovny ovládacích prvků Windows

  1. V Visual Studio Ultimatedále soubor nabídce zvolte Nový a potom vyberte projektu.

    Zobrazí se dialogové okno Nový projekt.

  2. Podle Nainstalované šablony, vyberte buď jazyka Visual Basic nebo Visual C# závislosti na vašich preferencích programování a pak vyberte volbu Windows.

    [!POZNÁMKA]

    Tento příklad používá Visual C#.

  3. V seznamu šablon vyberte Knihovna ovládacích prvků model Windows Forms.

  4. Do textového pole Název zadejte název, například MessageEditorsa zvolte OK.

    [!POZNÁMKA]

    V tomto příkladu MessageEditors.

    Projekt je přidán do nové řešení a UserControl s názvem UserControl1.cs je zobrazen v návrháři.

  5. Z nástrojů, v oblasti Běžné ovládací prvky kategorie, přetáhněte RichTextBox na povrch UserControl1.

  6. Zvolte piktogram akce (Inteligentní značka – piktogram) v pravém horním rohu RichTextBox ovládací prvek a potom vybrat a Ukotvit v nadřazeném kontejneru.

  7. V okně Průzkumník řešení klikněte pravým tlačítkem myši projektu model Windows Forms knihovny a vyberte Vlastnosti.

  8. V dialogovém okně Vlastnosti, vyberte aplikace kartu.

  9. V cílové rozhraní rozevíracího seznamu vyberte rozhraní.NET Framework 4.

  10. Zobrazí se dialogové okno Změnit cílový rámec.

  11. Zvolte Ano.

  12. V okně Průzkumník řešení klikněte pravým tlačítkem myši odkazy uzlu a vyberte Přidat odkaz na.

  13. Zobrazí se dialogové okno Přidat odkaz.

  14. Zvolte. NET karta, přejděte dolů a vyberte Microsoft.VisualStudio.QualityTools.WebTestFramework a pak zvolte OK.

  15. Pokud Návrhář zobrazení je stále otevřen v okně Průzkumník řešení, klepněte pravým tlačítkem UserControl1.cs a potom vyberte Návrhář zobrazení.

  16. Na návrhové ploše, klikněte pravým tlačítkem myši a vyberte Zobrazit kód.

  17. (Volitelné) Změňte název třídy a konstruktoru z UserControl1 smysluplný název, například MessageEditorControl:

    [!POZNÁMKA]

    Příklad používá MessageEditorControl.

    namespace MessageEditors
    {
        public partial class MessageEditorControl : UserControl
        {
            public MessageEditorControl()
            {
                InitializeComponent();
            }
        }
    }
    
  18. Přidejte následující vlastnosti umožňující získání a nastavení textu v RichTextBox1.IStringHttpBodyEditorPlugin Rozhraní pomocí EditString a IBinaryHttpBodyEditorPlugin EditByteArray použije:

            public String EditString
            {
                get
                {
                    return this.richTextBox1.Text;
                }
                set
                {
                    this.richTextBox1.Text = value;
                }
            }
    
    public byte[] EditByteArray
            {
                get
                {
                    return System.Convert.FromBase64String(richTextBox1.Text);
                }
                set
                {
                    richTextBox1.Text = System.Convert.ToBase64String(value, 0, value.Length);
                }
            }
    

Přidání třídy pro projekt Knihovna ovládacích prvků systému Windows

Přidání třídy do projektu.Se použije k provedení IStringHttpBodyEditorPlugin a IBinaryHttpBodyEditorPlugin rozhraní.

Přehled kódu v tomto postupu

MessageEditorControl UserControl který byl vytvořen v předchozí proceduře je vytvořena jako messageEditorControl:

private MessageEditorControl messageEditorControl

V dialogovém okně modulu plug-in, který je vytvořen pomocí je hostitelem messageEditorControl instance CreateEditor metoda.Kromě toho messageEditorControl na RichTextBox je naplněn obsah IHttpBody.Vytvoření modulu plug-in nelze však dojít, pokud není SupportsContentType vrátí true.V případě tohoto editoru SupportsContentType vrátí true -li ContentType v IHttpBody obsahuje "xml".

Po dokončení úprav řetězec subjektu a kliknutí uživatele OK v dialogovém okně modulu plug-in GetNewValue je volána pro získání upravený text jako řetězec a aktualizace Řetězec textu v požadavku v editoru výkonu testovací Web.

Chcete-li vytvořit třídu a implementovat rozhraní kód IStringHttpBodyEditorPlugin

  1. V okně Průzkumník řešení klikněte pravým tlačítkem myši na projekt Knihovna ovládacích prvků model Windows Forms a vyberte Přidat novou položku.

  2. Zobrazí se dialogové okno Přidat novou položku.

  3. Vyberte třídy.

  4. V název text zadejte smysluplný název třídy, například MessageEditorPlugins.

  5. Zvolte možnost Přidat.

    Class1 je přidána do projektu a předkládány v editoru kódu.

  6. V editoru kódu přidejte následující pomocí příkazu:

    using Microsoft.VisualStudio.TestTools.WebTesting;
    
  7. Napište nebo zkopírujte následující kód k vytvoření instance třídy XmlMessageEditor z IStringHttpBodyEditorPlugin rozhraní a zavést požadované metody:

        /// <summary>
        /// Editor for generic text based hierarchical messages such as XML and JSON.
        /// </summary>
        public class XmlMessageEditor : IStringHttpBodyEditorPlugin
        {
            public XmlMessageEditor()
            {
            }
    
            /// <summary>
            /// Determine if this plugin supports the content type.
            /// </summary>
            /// <param name="contentType">The content type to test.</param>
            /// <returns>Returns true if the plugin supports the specified content type.</returns>
            public bool SupportsContentType(string contentType)
            {
                return contentType.ToLower().Contains("xml");
            }
    
            /// <summary>
            /// Create a UserControl to edit the specified bytes.  
            /// This control will be hosted in the
            /// plugin dialog which provides OK and Cancel buttons.
            /// </summary>
            /// <param name="contentType">The content type of the BinaryHttpBody.</param>
            /// <param name="initialValue">The bytes to edit.  The bytes are the payload of a BinaryHttpBody.</param>
            /// <returns>A UserControl capable of displaying and editing the byte array value of the specified content type.</returns>
            public object CreateEditor(string contentType, string initialValue)
            {
                messageEditorControl = new MessageEditorControl();
                messageEditorControl.EditString = initialValue;
                return this.messageEditorControl;
            }
    
            /// <summary>
            /// Gets the edited bytes after the OK button is clicked on the plugin dialog.
            /// </summary>
            public string GetNewValue()
            {
                return messageEditorControl.EditString;
            }
    
            private MessageEditorControl messageEditorControl;
        }
    

Do třídy přidat IBinaryHttpBodyEditorPlugin

Implementovat rozhraní IBinaryHttpBodyEditorPlugin.

Přehled kódu v tomto postupu

Provádění kódu IBinaryHttpBodyEditorPlugin rozhraní je podobný IStringHttpBodyEditorPlugin zahrnuté v předchozí proceduře.Binární verze však používá pole bajtů zpracovat binární data namísto řetězce.

MessageEditorControl UserControl vytvořené v prvním postupu je vytvořena jako messageEditorControl:

private MessageEditorControl messageEditorControl

V dialogovém okně modulu plug-in, který je vytvořen pomocí je hostitelem messageEditorControl instance CreateEditor metoda.Kromě toho messageEditorControl na RichTextBox je naplněn obsah IHttpBody.Vytvoření modulu plug-in nelze však dojít, pokud není SupportsContentType vrátí true.V případě tohoto editoru SupportsContentType vrátí true -li ContentType v IHttpBody obsahuje "msbin1".

Po dokončení úprav řetězec subjektu a kliknutí uživatele OK v dialogovém okně modulu plug-in GetNewValue je volána pro získání upravený text jako řetězec a aktualizace BinaryHttpBody.Data v požadavku v editoru výkonu testovací Web.

Chcete-li přidat IBinaryHttpBodyEditorPlugin do třídy

  • Napište nebo zkopírujte následující kód ve třídě XmlMessageEditor přidali v předchozím postupu k vytvoření instance třídy Msbin1MessageEditor z IBinaryHttpBodyEditorPlugin rozhraní a zavést požadované metody:

    /// <summary>
        /// Editor for MSBin1 content type (WCF messages)
        /// </summary>
        public class Msbin1MessageEditor : IBinaryHttpBodyEditorPlugin
        {
            /// <summary>
            /// 
            /// </summary>
            public Msbin1MessageEditor()
            {
            }
    
            /// <summary>
            /// Determine if this plugin supports a content type.
            /// </summary>
            /// <param name="contentType">The content type to test.</param>
            /// <returns>Returns true if the plugin supports the specified content type.</returns>
            public bool SupportsContentType(string contentType)
            {
                return contentType.ToLower().Contains("msbin1");
            }
    
            /// <summary>
            /// Create a UserControl to edit the specified bytes.  This control will be hosted in the
            /// plugin dialog which provides OK and Cancel buttons.
            /// </summary>
            /// <param name="contentType">The content type of the BinaryHttpBody.</param>
            /// <param name="initialValue">The bytes to edit.  The bytes are the payload of a BinaryHttpBody.</param>
            /// <returns>A UserControl capable of displaying and editing the byte array value of the specified content type.</returns>
            public object CreateEditor(string contentType, byte[] initialValue)
            {
                messageEditorControl = new MessageEditorControl();
                messageEditorControl.EditByteArray = initialValue;
                return messageEditorControl;
            }
    
            /// <summary>
            /// Gets the edited bytes after the OK button is clicked on the plugin dialog.
            /// </summary>
            public byte[] GetNewValue()
            {
                return messageEditorControl.EditByteArray;
            }
    
            private MessageEditorControl messageEditorControl;
            private object originalMessage;
        }
    

Vytvářejte a nasazujte Plug-Ins

Chcete-li vytvářet a zavádět výsledné knihovny dll pro IStringHttpBodyEditorPlugin a IBinaryHttpBodyEditorPlugin

  1. V nabídce Build zvolte sestavení < název projektu knihovny ovládacích prvků formulářů Windows >.

  2. Ukončete Visual Studio Ultimate.

    [!POZNÁMKA]

    Je třeba ukončit všechny instance Visual Studio Ultimate Chcete-li zajistit, že soubor knihovny dll není zamknutá před zkopírováním.

  3. Zkopírujte výsledný soubor DLL ze složky bin\debug projekty (například MessageEditors.dll) do %ProgramFiles%\Microsoft Visual Studio 11.0\Common7\IDE\PrivateAssemblies\WebTestPlugins.

  4. Spusťte nástroj Visual Studio Ultimate.

    Soubor knihovny DLL mají být registrovány s Visual Studio Ultimate.

Zkontrolujte moduly pomocí testu výkonu webu

Chcete-li otestovat plug-ins

  1. Vytvořte projekt testů.

  2. Vytvořte Web výkon testování a zadejte adresu URL v prohlížeči webové služby, například http://dev.virtualearth.NET/WebServices/V1/metadata/searchservice/dev.virtualearth.NET.WebServices.v1.Search.WSDL.

  3. Po dokončení nahrávání v Web výkon Test editoru, rozbalte položku požadavek webové služby a vyberte buď Řetězec textu nebo Binární tělo.

  4. V okně Vlastnosti vyberte řetězec text nebo binární subjektu a zvolte tři tečky (...).

    Upravit Data tělo HTTP zobrazí dialogové okno.

  5. Nyní můžete upravovat data a klepněte na tlačítko OK.Tím se spustí použitelné metody GetNewValue Chcete-li aktualizovat obsah IHttpBody.

Probíhá kompilace kódu

  • Ověřte, zda Targeted rámec pro projekt Knihovna ovládacích prvků systému Windows 4.5 rozhraní .NET Framework.Ve výchozím nastavení cíl projektů knihovny ovládacího prvku Windows .NET Framework 4.5 klienta rámec, který neumožní zařazení odkazu na Microsoft.VisualStudio.QualityTools.WebTestFramework.

    Další informace naleznete v tématu Stránce aplikace Project Designer (C#).

Viz také

Úkoly

Jak: vytvořit požadavek na úrovni modulu Plug-In

Jak: vytvořit vlastní pravidlo pro extrakci pro Test výkonnosti webové

Jak: vytvoření vlastní ověřovací pravidlo pro Test výkonnosti webové

Jak: vytvoření zkušební zatížení modul Plug-In

Jak: vytvoření Test výkonu kódované webové

Jak: Vytvoření doplňku Visual Studio pro prohlížeč webových Test výkonu výsledky

Referenční dokumentace

IStringHttpBodyEditorPlugin

CreateEditor

SupportsContentType

GetNewValue

IBinaryHttpBodyEditorPlugin

CreateEditor

SupportsContentType

GetNewValue

IHttpBody

ContentType

UserControl

RichTextBox

Další zdroje

Vytvoření a použití vlastní moduly plug-in pro zatížení a webové testy výkonu