se invio una richiesta e mi aspetto che la risposta arrivi tramite SignalR, è possibile testarla utilizzando un LoadTest o PerformanceTest in Visual Studio?WebTest per SignalR possibile?
risposta
Il modo migliore per caricare il test di un'applicazione SignalR è costruire sullo crank project incluso nella sorgente.
Si tratta di una soluzione semplice rampa costruita con il client .NET, ma è relativamente facile da modificare per chiamare qualsiasi metodo hub desiderata e di analizzare le risposte.
si può sempre collegare lo Studio Visual Profiler per IIS esprimere esempio per ottenere dati dettagliati profiling, se necessario.
Risposta breve: Sì
ho fatto più volte in CodedWebTests ma sarebbe anche possibile fare in un WebTest dichiarativa. È possibile utilizzare un gestore di eventi PreWebTest personalizzato per creare il client signalR e connettersi al proprio hub SignalR. Che cosa si sceglie di fare con la notifica signalR è a voi, ma a me piace salvarlo nel WebTestContext e di visualizzare sullo schermo i risultati del test con il metodo AddCommentToResult.
Il metodo seguente crea un hubConnection richiama la funzione "addToGroup" sull'hub e quindi dice al client cosa fare quando riceve un messaggio.
using Microsoft.AspNet.SignalR.Client;
public class SignalRPlugin : WebtTestPlugin
{
public override void PreWebTest(object sender, PreWebTestEventArgs e)
{
var hubConnection = new HubConnection("yourSignalRUrl");
var hubProxy = hubConnection.CreateHubProxy("notifications");
hubConnection.Start().Wait();
hubProxy.Invoke("addToGroup", "me");
hubProxy.On<string>("message", s =>
{
e.Webtest.AddCommentToResult(s);
e.Webtest.Context.Add("signalRMessages", s);
});
}
}
Utilizzarlo collegando il gestore di eventi nel costruttore di test.
public MyWebTest()
{
PreWebTest += new SignalRPlugin().PreWebTest;
}
Poi una volta che hai i messaggi signalR è possibile utilizzare una regola di convalida personalizzato per convalidare che la risposta è stata ricevuta. Basta fare un ciclo while controllando il WebTestContext per la chiave "signalRMessages". Ti suggerisco caldamente di aggiungere una funzione di timeout in modo da non aspettare per sempre se i messaggi non arrivano mai.
L'altra opzione se stai scrivendo CodedWebTests è creare un metodo WaitForNotifications che fondamentalmente fa la stessa cosa della convalida regola. Il vantaggio di questo è che è possibile utilizzare una regola di estrazione per ottenere i dati fuori l'ultima risposta e quindi utilizzare tali dati a convalidare i tuoi messaggi signalR. Se hai ancora bisogno di fallire un test nel vostro WaitForNotification metodo di utilizzo WebTest.InternalSetOutcome (Outcome.Fail);
- 1. Genera file .webtest senza utilizzare Visual Studio
- 2. Differenza tra django-webtest e selenio
- 3. Client Java per connettersi a SignalR?
- 4. è possibile lo streaming di video con SignalR?
- 5. implement signalR senza jquery
- 6. SignalR Typenamehandling
- 7. SignalR e HTTPS
- 8. Individuazione dell'errore reale in un errore test di Webtest
- 9. Overload SignalR Hub
- 10. SignalR e HttpContext/Session
- 11. Registrazione eccezioni SignalR?
- 12. Il modello ARM webtest alertrule non riesce con ResourceNotFound
- 13. Qualche esempio per mvc6 con signalr?
- 14. database di polling SignalR per gli aggiornamenti
- 15. Come posso generare documentazione API per SignalR
- 16. GAE: test di download di BLOB con testbed e webtest
- 17. Test di caricamento dell'immagine con Django e Webtest
- 18. SignalR - Gestione utenti disconnessi
- 19. Consegna garantita in SignalR
- 20. OWIN + SignalR + Autofac
- 21. SignalR con crittografia simmetrica
- 22. signalR web farm
- 23. SignalR su web mobile?
- 24. SignalR: disconnessione client
- 25. SIGNALR HttpContext.Current è null
- 26. SignalR: use camel case
- 27. SignalR & require.js configurazione
- 28. SignalR Proprietà Timeout
- 29. SignalR su domini
- 30. Angular 2 e SignalR