對性能測試更快處理大量的測試數據參數

發表于:2012-04-06來源:IBM作者:Bharath Raj點擊數: 標簽:性能測試
在運行時測試使用系統內存以測試數據參數 如果處理的是非常大的數據匯,對于每種類型的測試數據記錄的數量是 100,000,帶有特定的模式,更好地使用通用代碼,邏輯建立在模式的基礎之上,將腳本中的運行時數據參數化

  在運行時測試使用系統內存以測試數據參數

  如果處理的是非常大的數據匯,對于每種類型的測試數據記錄的數量是 100,000,帶有特定的模式,更好地使用通用代碼,邏輯建立在模式的基礎之上,將腳本中的運行時數據參數化,而不是創建一個數據匯。數據匯 就是包含測試數據的一個文件。它需要從工作臺機器上轉移至代理,并且代理使用文件中的測試數據在運行時讀取。這些讀取操作涉及到高通過請求期間的繁重 I/O 活動,導致操作系統對 CPU 過度使用。

  在這個事件中,您不能使用性能測試軟件來獲得需要數量的高通過負載,因為這會“阻塞”系統資源,并成為運行性能測試的一個瓶頸。為了完全緩和該 I/O 活動,您可以使用測試腳本之中的通用代碼,通過快速地計算來生成數據(基于邏輯),而數據是從物理內存之中存儲和讀取的。物理內存讀取/寫入操作要比硬盤上的操作更為快捷,所以這可以有效地提高負載生成請求的總體性能。

  范例:從系統內存之中生成數據匯

  考慮一個簡單的范例,一個網絡程序的用戶名需要進行參數測試。如果用戶的數量是 100,000 或者更多。那么您最好使用一個公共的模式來執行邏輯,來對每一次迭代生成一個用戶名 ID。按照這里描述的步驟來實施 –

  識別一個公共的模式

  讓我們說所有的用戶名以詞語 username 開始,接著是一個數字。例如:username1,username2,username3。

  創建一個新的測試變量,并將它的值初始化為 Username1,如圖 1 所示:

  打開測試腳本。

  點擊 Test Variables 部分并將其展開。

  注意 Test Variables 部分下面所列出的測試變量。如果沒有,當 Test Variables 被選中時點擊 Add。

  點擊 Variable Declaration 這樣您就可以添加一個新的變量了。

  圖 1. 在 Rational Performance Tester 中創建一個新的測試變量

Test Contents 視圖,選中的 Variable Declaration

  圖 2. 注意您可以將一個測試變量初始化為一個文本或者數據匯值

只是在需要時初始化用戶名變量

  創建通用代碼

  登錄到程序之后在載人的頁面上創建一個通用代碼,然后將代碼清單 1 之中的代碼粘貼到通用代碼類之中的 exec 方法中。

  清單 1. 通用代碼之中的 Exec 方法

				
public String exec(ITestExecutionServices tes, String[] args) {
	
  /**
  * This code snippet obtains the previously used username for logging into the 
    application and increments it by 1 to get the next username in the test data 
  */
	
  String number = "";
	
  /**
  * The assumption here is that all usernames begin with the word - "Username" and 
    has '8' characters in it.
  * Variable "number" is the value 'n' for 'nth' user or nth row of the data pool or can 
    be also thought of as the 'nth' iteration of the test
  */
	
  for (int i=0;i<((args[0].length())-8);i++)
  {
    number+=Character.toString(args[0].charAt(8+i));
  }
  int num = Integer.parseInt(number);
  num++;
	
  return "Username"+Integer.toString(num);
	
  /**
  * This returns the username appended with the next value of 'n' in the 'nth' iteration
  */
}

  在 Custom Code – Select Arguments 窗口之中,Test Variables 之下,選中 Username_Variable 以添加它作為該通用代碼之中的論斷,如圖 3 所示。

  圖 3.添加 Username 變量作為通用代碼之上的論斷

選擇的 Username_Variable 復選框

  登錄之后,在載人頁面的數據匯變量列表之中選擇 Username 變量,然后按照圖 4 之中所顯示的進行編輯:

  選擇顯示 Username 變量的頁面作為測試數據。提示: 另外一種探明 Username 變量是否是測試數據的方式,就是查看其顏色模式。Rational Performance Tester 軟件中運行時進行參數化變量所采用的顏色代碼是綠色。

  在測試數據表下選擇用戶名變量。

  點擊 Substitute 按鈕并在顯示的選項列表之中選擇 Custom code。

  圖 4. 在不輸出通用代碼的情況下替換用戶名變量

使用代碼輸出替換 Username 變量

  插入 Variable assignment 來向通用代碼分配變量(見于圖 5)。在測試腳本之中必須重復使用測試變量。這意味著需要使用新值來更新它的值,不管何時執行邏輯都可以。您可以按照下面的步驟來更新值:

  執行時選擇將會更改測試變量的通用代碼。

  點擊 Insert,選擇 Variable Assignment。

  圖 5. 分配給通用代碼的 Username 變量

從下列菜單之中選擇的 Variable Assignment

  從列表的選項之中選擇 Username_Variable,并通過點擊 DataSource Value 單選按鈕,并選擇提供選項之中的通用代碼,來設置 Username_Variable 以輸出通用代碼。

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97