Udostępnij za pośrednictwem


Porady: tworzenie wtyczki testu obciążenia

Można utworzyć wtyczkę testu obciążenia, aby uruchamiać kod w różnym czasie, podczas uruchomienia testu obciążenia.Wtyczkę tworzy się aby rozszerzyć lub zmodyfikować wbudowaną funkcjonalność testu obciążenia.Można na przykład napisać kod wtyczki testu obciążenia, aby ustawiał lub modyfikował wzorzec testu obciążenia, podczas uruchomienia testu obciążenia.Aby to zrobić, należy utworzyć klasę, która dziedziczy interfejs ILoadTestPlugin.Ta klasa musi implementować metodę Initialize tego interfejsu.Aby uzyskać więcej informacji, zobacz ILoadTestPlugin.

[!UWAGA]

Możesz również utworzyć wtyczki do testów wydajności sieci Web.Aby uzyskać więcej informacji, zobacz Porady: tworzenie wtyczki testu wydajności sieci Web.

Wymagania

  • Visual Studio Ultimate

Aby utworzyć wtyczkę testu obciążenia, przy użyciu programu Visual C#

  1. Otwórz projekt testu wydajności sieci Web i obciążenia zawierający test wydajności sieci Web.

    Aby uzyskać więcej informacji, zobacz Porady: tworzenie i konfigurowanie projektów testów dla testów automatycznych.

  2. Dodaj test obciążenia do projektu testu i skonfiguruj go tak, aby uruchamiał test wydajności sieci Web.

    Aby uzyskać więcej informacji, zobacz [wycofane] Tworzenie testów obciążenia.

  3. W Eksploratorze rozwiązań kliknij prawym przyciskiem myszy na rozwiązaniu i wybierz Dodaj, a następnie wybierz Nowy projekt.

    Wyświetlane jest okno dialogowe Dodaj nowy projekt.

  4. W obszarze Zainstalowane szablony zaznacz Visual C#.

  5. Z listy szablonów wybierz opcję Biblioteka klas.

  6. W polu tekstowym Nazwa wpisz nazwę dla swojej klasy.

  7. Wybierz przycisk OK.

  8. Do Eksploratora rozwiązań zostanie dodany nowy projekt biblioteki klas, a nowa klasa pojawi się w Edytorze kodu.

  9. W Eksploratorze rozwiązań kliknij prawym przyciskiem myszy folder Odwołania w nowym projekcie biblioteki klas i wybierz Dodaj odwołanie.

  10. Wyświetlane jest okno dialogowe Dodaj odwołanie.

  11. Wybierz kartę .NET, przewiń w dół, a następnie wybierz Microsoft.VisualStudio.QualityTools.LoadTestFramework.

  12. Wybierz przycisk OK.

    Odwołanie do Microsoft.VisualStudio.QualityTools.LoadTestFramework jest dodawane do folderu Odwołanie w Eksploratorze rozwiązań.

  13. W Eksploratorze rozwiązań kliknij prawym przyciskiem myszy najwyższy węzeł projektu testu wydajność sieci Web i obciążenia, który zawiera test obciążenia, do którego chcesz dodać wtyczkę testu obciążenia i wybierz Dodaj odwołanie.

  14. Zostanie wyświetlone okno dialogowe Dodaj odwołanie.

  15. Wybierz kartę Projekty i wybierz Projekt biblioteki klas.

  16. Wybierz przycisk OK.

  17. W edytorze kodu, dodaj instrukcję using dla przestrzeni nazw Microsoft.VisualStudio.TestTools.LoadTesting.

  18. Zaimplementuj interfejs ILoadTestPlugin dla klasy, która została utworzona w projekcie Biblioteka klas.Aby uzyskać przykładową implementację, zobacz następującą sekcję Przykład.

  19. Po napisaniu kodu, skompiluj nowy projekt.

  20. Kliknij prawym przyciskiem myszy najwyższy węzeł testu obciążenia, a następnie wybierz Dodaj wtyczkę testu obciążenia.

    Zostanie wyświetlone okno dialogowe Dodaj wtyczkę testu obciążenia.

  21. Pod Wybierz wtyczkę wybierz klasę wtyczki testu obciążenia.

  22. W okienku Właściwości wybranych wtyczek ustaw początkowe wartości dla wtyczki do używania w czasie wykonywania.

    [!UWAGA]

    Dla danej wtyczki możesz udostępnić dowolnie wiele właściwości; wystarczy, żeby były publiczne, możliwe do ustawienia i typu podstawowego, takiego jak liczba całkowita, wartość logiczna lub ciąg.Możesz również zmienić właściwości wtyczki testu wydajności sieci Web później, przy użyciu okna Właściwości.

  23. Wybierz przycisk OK.

    Wtyczka jest dodawana do folderu Wtyczki testu obciążenia.

    Informacje dotyczące przestrogiPrzestroga

    Możesz otrzymać błąd podobny do następującego po uruchomieniu testu wydajności sieci Web lub testu obciążenia, który korzysta z Twojej wtyczki:

    Request failed: Exception in <plug-in> event: Could not load file or assembly '<"Plug-in name".dll file>, Version=<n.n.n.n>, Culture=neutral, PublicKeyToken=null' or one of its dependencies.The system cannot find the file specified.

    Dzieje się tak jeśli wprowadzasz zmiany kodu w dowolnych wtyczkach i tworzysz nową wersję biblioteki DLL (Version=0.0.0.0), ale wtyczka nadal odwołuje się do oryginalnej wersji wtyczki.Aby naprawić ten problem, wykonaj następujące kroki:

    1. W projekcie testu wydajności sieci Web i testu obciążenia pojawi się ostrzeżenie w odwołaniach.Usuń i ponownie dodaj odwołanie do biblioteki DLL dodatku plug-in.

    2. Usuń dodatek plug-in z testu lub odpowiedniej lokalizacji, a następnie dodaj go ponownie.

Przykład

Poniższy kod pokazuje wtyczkę testu obciążenia, która uruchamia niestandardowy kod, po wystąpieniu zdarzenia LoadTestFinished.Jeśli ten kod jest uruchamiany przez agenta testowego, na komputerze zdalnym a agent testowy test nie ma usługi localhost SMTP, test obciążenia pozostanie w stanie "In progress", ponieważ otworzy się okno komunikatu.

[!UWAGA]

Poniższy kod wymaga dodania odwołania do System.Windows.Forms.

using System;
using Microsoft.VisualStudio.TestTools.LoadTesting;
using System.Net.Mail;
using System.Windows.Forms;

namespace LoadTestPluginTest
{
    public class MyLoadTestPlugin : ILoadTestPlugin
    {
        LoadTest myLoadTest;

        public void Initialize(LoadTest loadTest)
        {
            myLoadTest = loadTest;
            myLoadTest.LoadTestFinished += new
                EventHandler(myLoadTest_LoadTestFinished);
        }

        void myLoadTest_LoadTestFinished(object sender, EventArgs e)
        {
            try
            {
                // place custom code here
                MailAddress MyAddress = new MailAddress("someone@example.com");
                MailMessage MyMail = new MailMessage(MyAddress, MyAddress);
                MyMail.Subject = "Load Test Finished -- Admin Email";
                MyMail.Body = myLoadTest..Name + " has finished.";

                SmtpClient MySmtpClient = new SmtpClient("localhost");
                MySmtpClient.Send(MyMail);
            }

            catch (SmtpException ex)
            {
                MessageBox.Show(ex.InnerException.Message +
                    ".\r\nMake sure you have a valid SMTP.", "LoadTestPlugin", MessageBoxButtons.OK, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1);
            }
        }
    }
} 

Osiem zdarzeń jest skojarzonych z testem obciążenia, który może być obsługiwany we wtyczce testu obciążenia, aby uruchomić niestandardowy kod z testem obciążenia.Następująca lista wydarzeń zawiera wydarzenia, które dostarczając dostęp do różnych okresów przebiegu testu obciążenia:

Zobacz też

Zadania

Porady: tworzenie wtyczki testu wydajności sieci Web

Informacje

ILoadTestPlugin

Inne zasoby

Tworzenie niestandardowych kodów i wtyczek dla testów obciążeń