如果處理的是非常大的數據匯,對于每種類型的測試數據記錄的數量是 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 中創建一個新的測試變量
圖 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 變量,然后按照圖 4 之中所顯示的進行編輯:
選擇顯示 Username 變量的頁面作為測試數據。提示: 另外一種探明 Username 變量是否是測試數據的方式,就是查看其顏色模式。Rational Performance Tester 軟件中運行時進行參數化變量所采用的顏色代碼是綠色。
在測試數據表下選擇用戶名變量。
點擊 Substitute 按鈕并在顯示的選項列表之中選擇 Custom code。
圖 4. 在不輸出通用代碼的情況下替換用戶名變量
插入 Variable assignment 來向通用代碼分配變量(見于圖 5)。在測試腳本之中必須重復使用測試變量。這意味著需要使用新值來更新它的值,不管何時執行邏輯都可以。您可以按照下面的步驟來更新值:
執行時選擇將會更改測試變量的通用代碼。
點擊 Insert,選擇 Variable Assignment。
圖 5. 分配給通用代碼的 Username 變量
從列表的選項之中選擇 Username_Variable,并通過點擊 DataSource Value 單選按鈕,并選擇提供選項之中的通用代碼,來設置 Username_Variable 以輸出通用代碼。
原文轉自:http://www.anti-gravitydesign.com