Gewusst wie: Erstellen eines Auslastungstest-Plug-Ins
Dieses Thema gilt für folgende Anwendungsbereiche:
Visual Studio Ultimate |
Visual Studio Premium |
Visual Studio Professional |
Visual Studio Express |
---|---|---|---|
Sie können ein Auslastungstest-Plug-In erstellen, um während des Auslastungstests Code zu verschiedenen Zeitpunkten auszuführen. Mithilfe von erstellten Plug-Ins können die integrierten Funktionen des Auslastungstests erweitert oder bearbeitet werden. Sie können z. B. Code für ein Auslastungstest-Plug-In schreiben, um während der Ausführung des Auslastungstests das Testmuster festzulegen oder zu bearbeiten. Hierzu müssen Sie eine Klasse erstellen, die von der ILoadTestPlugin-Schnittstelle erbt. Diese Klasse muss die Initialize-Methode dieser Schnittstelle implementieren. Weitere Informationen finden Sie unter ILoadTestPlugin.
Tipp
Sie können auch Plug-Ins für Webleistungstests erstellen. Weitere Informationen finden Sie unter Gewusst wie: Erstellen eines Webleistungstest-Plug-Ins.
So erstellen Sie ein Auslastungstest-Plug-In mit Visual C#
Öffnen Sie ein Testprojekt, das einen Webleistungstest enthält.
Weitere Informationen finden Sie unter Gewusst wie: Erstellen und Konfigurieren von Testprojekten für automatisierte Tests.
Fügen Sie dem Testprojekt einen Auslastungstest hinzu, und konfigurieren Sie ihn für die Ausführung eines Webleistungstests.
Weitere Informationen finden Sie unter Gewusst wie: Erstellen eines neuen Auslastungstests mit dem neuen Auslastungstest-Assistenten.
Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf die Projektmappe, und klicken Sie auf Hinzufügen und dann auf Neues Projekt.
Das Dialogfeld Neues Projekt hinzufügen wird angezeigt.
Wählen Sie unter Installierte Vorlagen den Eintrag Visual C# aus.
Wählen Sie in der Liste der Vorlagen den Eintrag Klassenbibliothek aus.
Geben Sie im Textfeld Name einen Namen für die Klasse ein.
Klicken Sie auf OK.
Dem Projektmappen-Explorer wird das neue Klassenbibliotheksprojekt hinzugefügt, und die neue Klasse wird im Code-Editor angezeigt.
Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf den Ordner Verweise in der neuen Klassenbibliothek, und wählen Sie Verweis hinzufügen aus.
Das Dialogfeld Verweis hinzufügen wird angezeigt.
Klicken Sie auf die Registerkarte .NET, führen Sie einen Bildlauf nach unten durch, und wählen Sie dann Microsoft.VisualStudio.QualityTools.LoadTestFramework aus.
Klicken Sie auf OK.
Dem Ordner Verweis im Projektmappen-Explorer wird der Verweis auf Microsoft.VisualStudio.QualityTools.LoadTestFramework hinzugefügt.
Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf den obersten Knoten des Testprojekts, das den Auslastungstest enthält, zu dem Sie das Auslastungstest-Plug-In hinzufügen möchten. Wählen Sie dann Verweis hinzufügen aus.
Das Dialogfeld Verweis hinzufügen wird angezeigt.
Klicken Sie auf die Registerkarte Projekte, und wählen Sie das Klassenbibliotheksprojekt aus.
Klicken Sie auf OK.
Fügen Sie im Code-Editor eine using-Anweisung für den Microsoft.VisualStudio.TestTools.LoadTesting-Namespace hinzu.
Implementieren Sie die ILoadTestPlugin-Schnittstelle für die Klasse, die im Klassenbibliotheksprojekt erstellt wurde. Beachten Sie hierzu die Beispielimplementierung im folgenden Abschnitt.
Nachdem Sie den Code verfasst haben, erstellen Sie das neue Projekt.
Klicken Sie mit der rechten Maustaste auf den obersten Knoten des Auslastungstests, und klicken Sie anschließend auf Auslastungstest-Plug-In hinzufügen.
Das Dialogfeld Auslastungstest-Plug-In hinzufügen wird angezeigt.
Wählen Sie unter Plug-In auswählen die Klasse des Auslastungstest-Plug-Ins aus.
Legen Sie im Bereich Eigenschaften für das ausgewählte Plug-In die Anfangswerte fest, die das Plug-In zur Laufzeit verwenden soll.
Tipp
Sie können beliebig viele Plug-In-Eigenschaften verfügbar machen. Die Eigenschaften müssen dazu lediglich öffentlich, festlegbar und von einem Basistyp (z. B. "Integer", "Boolean" oder "String") sein. Sie können die Eigenschaften des Webleistungstest-Plug-Ins auch zu einem späteren Zeitpunkt im Eigenschaftenfenster ändern.
Klicken Sie auf OK.
Das Plug-In wird dem Ordner Auslastungstest-Plug-Ins hinzugefügt.
Warnung
Möglicherweise erhalten Sie einen Fehler wie den folgenden, wenn Sie einen Webleistungstest oder einen Auslastungstest ausführen, der das Plug-In verwendet:
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.
Ein solcher Fehler wird verursacht, wenn Sie an einem der Plug-Ins Codeänderungen vornehmen und eine neue DLL-Version (Version=0.0.0.0) erstellen, während das Plug-In weiterhin auf die ursprüngliche Plug-In-Version verweist. Um dieses Problem zu beheben, führen Sie folgende Schritte aus:
-
Im Testprojekt wird in Verweisen eine Warnung angezeigt. Entfernen Sie den Verweis auf die Plug-In-DLL, und fügen Sie ihn wieder hinzu.
-
Entfernen Sie das Plug-In aus dem Test oder vom entsprechenden Speicherort, und fügen Sie es dann wieder hinzu.
-
Beispiel
Im folgenden Code wird ein Auslastungstest-Plug-In dargestellt, das nach dem Auftreten eines LoadTestFinished-Ereignisses benutzerdefinierten Code ausführt. Wenn dieser Code auf einem Test-Agent auf einem Remotecomputer ausgeführt wird und der Test-Agent nicht über einen localhost-SMTP-Dienst verfügt, wird für den Auslastungstest der Status "In Bearbeitung" beibehalten, und es wird eine Meldung angezeigt.
Tipp
Für den folgenden Code müssen Sie einen Verweis auf System.Windows.Forms hinzufügen.
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);
}
}
}
}
Es gibt acht Ereignisse, die bei einem Auslastungstest auftreten und im Auslastungstest-Plug-In behandelt werden können, um benutzerdefinierten Code während eines Auslastungstests auszuführen. Im Folgenden werden die Ereignisse aufgelistet, die einen Zugriff auf verschiedene Phasen des Auslastungstestlaufs ermöglichen:
Siehe auch
Aufgaben
Gewusst wie: Erstellen eines Webleistungstest-Plug-Ins
Referenz
Weitere Ressourcen
Erstellen und Verwenden von benutzerdefinierten Plug-Ins für Auslastungs- und Webleistungstests