[英]Web browser Control in Stress Test in C#
我是一名測試人員,我創建了一個簡單的應用程序,使用C#(.Net Version = 3.5)中的Web瀏覽器控件加載網頁。 這是我的代碼
public class WebBrowserClass
{
private System.Windows.Forms.WebBrowser myBrowser = new System.Windows.Forms.WebBrowser();
public static int counter = 0;
public WebBrowserClass(int w, int h)
{
myBrowser.ScriptErrorsSuppressed = false;
myBrowser.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(myBrowser_DocumentCompleted);
myBrowser.Width = w;
myBrowser.Height = h;
}
public void navigate(string myURL)
{
myBrowser.Navigate(myURL);
}
private void myBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
using (Bitmap bitmap = new Bitmap(myBrowser.Width, myBrowser.Height))
{
System.Threading.Thread.Sleep(1000);
myBrowser.DrawToBitmap(bitmap, new Rectangle(0, 0, myBrowser.Width, myBrowser.Height));
using (MemoryStream stream = new MemoryStream())
{
bitmap.Save(stream, System.Drawing.Imaging.ImageFormat.Png);
byte[] bytes = stream.ToArray();
if (!Directory.Exists("c:\\AnonymousStressTest"))
Directory.CreateDirectory("c:\\AnonymousStressTest");
bitmap.Save("c:\\AnonymousStressTest\\" + DateTime.Now.ToShortDateString().Replace("/", "-") + " " + DateTime.Now.ToLongTimeString().Replace(":", " ") + ".png");
counter++;
}
}
}
}
WebBrowserClass在我創建10-20對象時工作正常,但是當我大量使用該類時,最多會出現500個對象問題。 在開始壓力測試工作正常,但在中間或接近結束時,此消息開始顯示“導航到網頁已被取消”。
當給出網頁的網址時,它會加載並重定向到另一個網頁。
請注意,防火牆在服務器和客戶端計算機上都處於關閉狀態。 此壓力測試應用程序在客戶端計算機上運行。
如何避免“導航到網頁被取消”。 ?
除非你真的需要一個真正的瀏覽器控件(它還加載所有圖像,css文件並運行JavaScript),你應該真正使用HttpClient
而不是Web瀏覽器控件,因為它更具可伸縮性,你可以在控制台應用程序中運行它或作為一個網站或雲中使用的內存和資源更少。
否則,您可以嘗試增加Internet Explorer的最大連接數我編輯以下注冊表項:
HKEY_CURRENT_USER\Software\Policies\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_MAXCONNECTIONSPER1_0SERVER
HKEY_CURRENT_USER\Software\Policies\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_MAXCONNECTIONSPER1_0SERVER
比如下面的截圖:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.