2012-05-17 12 views
22

मैं सिग्नलआर हब-आधारित एप्लिकेशन का परीक्षण करने के लिए उपयोग की जाने वाली कुछ अलग-अलग विधियों को जानना चाहता हूं।सिग्नलआर हब एप्लिकेशन का परीक्षण करने का सबसे अच्छा तरीका क्या है?

उत्तर

9

संक्षेप में पर कुछ मार्गदर्शन है।

मेरे मामले में, मेरे पास एक न्यूजफीड हब है जो उपयोगकर्ता की प्रोफ़ाइल आईडी के आधार पर क्लाइंट-विशिष्ट डेटा को व्यंजन करता है। मेरे टेस्ट केस में, मैं प्रोफाइल आईडी (इस मामले में 6000) का एक गुच्छा लोड करता हूं, क्लाइंट-विशिष्ट कनेक्शन आईडी और प्रोफाइल आईडी के साथ JoinNewsfeed() नामक एक हब विधि का आह्वान करता हूं। हर 100ms एक नया कनेक्शन स्थापित किया जाता है।

[TestMethod] 
    public void TestJoinNewsfeedHub() 
    { 
     int successfulConnections = 0; 

     // get profile ID's 
     memberService = new MemberServiceClient(); 
     List<int> profileIDs = memberService.GetProfileIDs(6000).ToList<int>(); 

     HubConnection hubConnection = new HubConnection(HUB_URL); 
     IHubProxy newsfeedHub = hubConnection.CreateProxy("NewsfeedHub"); 


     foreach (int profileID in profileIDs) 
     { 
      hubConnection.Start().Wait(); 
      //hubConnection = EstablishHubConnection(); 
      newsfeedHub.Invoke<string>("JoinNewsfeed", hubConnection.ConnectionId, profileID).ContinueWith(task2 => 
      { 
       if (task2.IsFaulted) 
       { 
        System.Diagnostics.Debug.Write(String.Format("An error occurred during the method call {0}", task2.Exception.GetBaseException())); 
       } 
       else 
       { 
        successfulConnections++; 
        System.Diagnostics.Debug.Write(String.Format("Successfully called MethodOnServer: {0}", successfulConnections)); 

       } 
      }); 

      Thread.Sleep(100); 

     } 

     Assert.IsNotNull(newsfeedHub); 
    } 

प्रदर्शन मेट्रिक्स सूचीबद्ध here सर्वर पर चाल करें। यह सुनिश्चित करने के लिए कि एक ग्राहक वास्तव में जुड़ा हुआ है और सर्वर पर क्लाइंट ऑब्जेक्ट को पॉप्युलेट करने की प्रक्रिया सफलतापूर्वक पूरी हो चुकी है, मेरे पास एक सर्वर-साइड विधि है जो क्लाइंट-साइड फ़ंक्शन को कनेक्ट क्लाइंट से व्युत्पन्न कनेक्टेड क्लाइंट की संख्या और सूची के साथ आमंत्रित करती है संग्रह।

1

मैंने सिग्नलआर पर अधिक प्रदर्शन परीक्षण नहीं किया है, लेकिन परियोजना क्लाइंट लोड उत्पन्न करने के लिए एक उपयोगी टूल - Crank प्रदान करता है।

परियोजना विकि भी अगर, केन्द्रों का उपयोग कर का उपयोग कर नेट ग्राहक पर्याप्त होगा, उपयोगी performance counters and settings

+6

मेरी समझ से, क्रैंक हब्स के साथ उपयोग के लिए नहीं है। और कुछ? – ElHaix

+1

@ मॉर्गन: आपका क्रैंक लिंक टूटा हुआ है ... – billy

8

@ElHaix मैंने अपने स्वयं के परीक्षणों में जो देखा है उससे आपकी विधि एक नया कनेक्शन नहीं बना रही है, लेकिन मौजूदा कनेक्शन का पुन: उपयोग कर रही है। जैसा कि आप प्रोफाइल आईडी के संग्रह पर लूप करते हैं, आपको यह देखना चाहिए कि hubConnection.ConnectionID वही रहता है। नया कनेक्शन बनाने के लिए आपको फोरच लूप के अंदर हबकनेक्शन का एक उदाहरण बनाना होगा।

 int successfulConnections = 0; 
     const int loopId = 10; 

     Console.WriteLine("Starting..."); 
     for (int i = 1; i <= loopId; i++) 
     { 
      Console.WriteLine("loop " + i); 

      var hubConnection = new HubConnection(HUB_URL); 
      IHubProxy chatHub = hubConnection.CreateProxy(HUB_NAME); 

      Console.WriteLine("Starting connection"); 
      hubConnection.Start().Wait(); 
      Console.WriteLine("Connection started: " + hubConnection.ConnectionId); 

      chatHub.Invoke("Register", "testroom").ContinueWith(task2 => 
      { 
       if (task2.IsFaulted) 
       { 
        Console.WriteLine(String.Format("An error occurred during the method call {0}", task2.Exception.GetBaseException())); 
       } 
       else 
       { 
        Console.WriteLine("Connected: " + hubConnection.ConnectionId); 
        successfulConnections++; 
       } 
      }); 

      Thread.Sleep(1000); 
     } 
+0

आपने कौन से पैकेज जोड़े हैं? – RredCat

3

क्रैंक केवल परीक्षण PersistenConnections लेकिन जब से तुम SignalR हब ही परीक्षण करने के लिए देख रहे हैं, तो आप Tresi उपयोग कर सकते हैं कर सकते हैं। हालांकि यह एक वाणिज्यिक आवेदन है। यहाँ कैसे प्रदर्शन परीक्षण इस तरह के बनाया गया/सेक रूप HTTPWebRequests के लिए भार

  1. Gradually Incrementing Load
  2. Burst Load

प्रदर्शन काउंटर सेटिंग्स के विभिन्न प्रकार के लिए आयोजित किया जाता है पर कुछ लिंक कर रहे हैं, लोड परीक्षण के निष्पादन के दौरान निरस्त/सेक, औसत लाइफटाइम आदि प्रदर्शित होते हैं। यह भी अन्य गणना मीट्रिक दिखाती है जैसे प्रवाह/उपयोगकर्ता नीचे दिखाया आवेदन

enter image description here

0

आभासी उपयोगकर्ता निर्माण (बहु सूत्रण) के लिए गैटलिंग उपकरण का उपयोग कर अपनी खुद की स्क्रिप्ट बनाने और जावा signalr ग्राहक का उपयोग का स्क्रीनशॉट है। अगर आप जानना चाहते हैं कि जावा या स्कैला में लिखी गई अपनी कस्टम स्क्रिप्ट को आभासी उपयोगकर्ताओं को गेट करने के लिए कैसे लिखना है, तो कृपया टिप्पणी में निर्दिष्ट करें। मुझे बताएं कि क्या आप सिग्नल प्रदर्शन परीक्षण के लिए परीक्षण योजना चाहते हैं क्योंकि यह परीक्षण करने में महत्वपूर्ण बिंदु है।

संबंधित मुद्दे