loadrunner性能測試步驟

性能測試過程分為4個階段:設計、構建、執行、分析/診斷/調節具體的工作流程如下圖

?

  設計  >  構建  >  執行   >  分析/診斷/調節

收集要求    設置測試環境 基準測試    診斷瓶頸

設計測試策略  記錄測試腳本 ?性能測試     調整配置

定義業務流程  創建測試方案 ?可擴展性測試   量化改善

定義系統工作量        報告生成

?

以上4個階段的任務如下:

1、設計階段定義待測試的業務流程、業務的平均處理量、業務處理量的最高峰值、組合業務流程、系統的整體用戶和響應時間目標。

2、構建階段涉及設置和配置測試系統及基礎設施、使用自動化性能測試解決方案構建測試腳本和負載方案。

3、執行階段包括運行負載方案和測量系統性能。

4、分析、診斷和調節階段主要測量系統性能并使負載測試進入下一級別,重點查找問題原因以幫助開發工程師迅速解決問題,并實時調節系統參數以提高性能。

下面對這4個階段進行詳細的描述。

一、設計階段

可以將需要關注的問題分為4個方面,即業務需求、技術需求、系統要求和團隊要求。業務要求需通過業務分析師或最終用戶收集。一個全面的業務要求應該考慮以下問題:

1、應用程序情況:創建系統使用演示,讓性能測試團隊從整體上了解應用程序如何被使用。

2、業務流程列表:創建關鍵業務流程列表,以使用反映最終用戶在系統上執行的活動。

3、業務流程操作列表:創建word文檔,以便詳細記錄每個業務流程的正確步驟。

4、交易列表:匯編業務流程中需要負載測量(如“登錄”,“轉移資金”等)的關鍵活動的列表。

5、業務流程圖:創建業務流程圖,以便描繪業務流程的分支情況。

技術要求應該通過系統管理員和數據庫管理員進行收集并確認。一個全面的技術要求應該考慮以下問題:

1、環境預排工作:與系統或基礎設施團隊開展測試架構的預排工作。

2、系統范圍會議:舉行會議來討論系統的哪些部分應該排除在測試流程外,并達成一致見解。

3、生產圖:創建生產基礎設備的圖表,以標記出從QA遷移到生產過程中可能影響性能的因素。

收集系統的要求至關重要,這些是管控負載測試流程通過/未通過狀態的系統高級目標,這些通常與來自業務的經理合作而達成一致的,一個全面的系統要求應該考慮以下問題:

1、系統在正常和高峰期必須支持的用戶數量為多少?

2、系統每秒必須處理的交易量是多少?常用的一種估算方法為80~20原理法。

3、對于所有的關鍵業務交易,可接受的最低和最高的響應時間是多少?

4、用戶社區如何連接到系統?

5、生產中需要承載的系統工作量如何?交易組合如何?

6、自后是團隊要求階段,需要確定性能測試團隊成員。提前收集完整的業務、技術、系統和團隊要求,是有效和成功地進行負載測試的基礎。

二、構建階段

在構建階段,需要將設計階段所確定的業務流程和工作量轉變為可用來推動可重復、真實負載的自動化組件。可以從兩個方面來關注:自動化設置和環境設置。

(1)自動化設置包括一系列由性能工程師執行的序列任務。

1)制作腳本。將存檔的業務流程記錄到自動化腳本中。

2)交易。插入計時器來產生業務所需要的邏輯計時。

3)參數化。用數據池來代替所有的輸入數據(如登錄用戶名和密碼),以便每個虛擬用戶使用唯一的數據訪問應用程序。

4)方案。通過為不同的用戶組分配不同的腳本、連接和用戶行為來創建生產工作量。

5)監視。確定要監視哪些負載服務器或機器。

(2)環境設置包括組裝硬件、軟件和數據,這些都是執行成功及真實負載測試所必需的,這可能要與系統人員、DBA、操作人員和業務團隊協作。環境設置中最主要的是準備數據,數據來源有兩種方式:一是歷史事件;二是創建數據。

歷史數據即是將真實存在的數據,只需要從數據庫抽取出來即可。

創建數據則是測試過程中通過一些方法生成批量數據,制作數據的方法通常包括ultraedit結合EXCEL制作數據、數據庫、shell編程和Java編程等。所有創建的數據都應該滿足數據模型的要求,否則數據在調用過程中會產生錯誤。

構建階段的最終結果是得到一套自動化方案,可在配置好的可用環境中隨意執行。

3、執行階段

常見的幾類負載測試如下:

1、基線測試。用戶驗證系統及其周圍的環境是否在合理的技術參數下運行。性能測試僅運行5~10名用戶來對最終用戶交易性能進行基線測試,這些測試應該在性能測試流程的開始和結束時執行,以測量絕對響應時間的提高量。

2、性能測試。可模擬環境中的負載,從而提高有關系統可處理多少用戶的信息,這些測試應該模擬平均和高峰時的生產用量,它們應該使用真實的用戶行為(如思考時間)、調制解調器模擬和多個瀏覽器類型,以獲得最高的準備度,應該運行所有的監視程序和診斷程序,以便于工作最大限度地了解系統的性能降低和瓶頸。

3、基準測試。用于在理想的情況下測量和比較每種機器類型、環境或應用程序版本的性能,這些測試時系統進行了可擴展測試后運行的,旨在了解不同架構的性能影響。

4、滲入測試。其目的在于長時間在負載下運行系統,從而檢驗系統的性能狀況。

5、峰值測試。其目的在于模擬一段時間內系統上的峰值負載,以便幫助演示應用程序和底層硬件能夠在合理的時間內處理高負荷。

四、分析、診斷、調節階段

在監控、分析、診斷和調節過程中可以獲取大量的信息:

1、監控。性能測試過程中監控可顯示基礎設備每個層上所發生的一切,同時會更清晰地提供有關測試中的數據庫服務器、web服務器、應用程序服務器、單個應用程序或流程的信息。監控可快速獲取有價值的信息,如應用程序服務器的處理器(CPU)只能支持150名用戶并發,遠低于目標值。

2、分析。完成負載測試后,可將各種指標(如虛擬用戶、CPU或服務器CPU)關聯起來,以獲取有關應用程序行為不端的其他信息。

3、診斷。高效的性能測試解決方案應該向性能工程師提供有關層、組件、SQL語句是如何影響負載條件業務流程整體性能的單個統一視圖,性能工程師應該能夠看到有最終用戶交易所接觸到的所有組件,然后確定各組件使用的處理時間及調用次數。有了這些信息就可以針對web服務器、應用程序和數據服務器瓶頸進行調優。

4、許多企業都在應用程序部署前、中和后3個階段進行自動化性能測試。有些自動化性能測試解決方案可系統的識別并分離基礎實施性能瓶頸,然后通過修改系統配置設定來解決它們,通過反復解決基礎設施瓶頸,可以不斷改進配置。

轉載于:https://www.cnblogs.com/zhangyublogs/p/4909482.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/272806.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/272806.shtml
英文地址,請注明出處:http://en.pswp.cn/news/272806.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Asp.Net生命周期的詳解

一.Asp.Net頁面生命周期的概念當我們在瀏覽器地址欄中輸入網址,回車查看頁面時,這時會向服務器端IIS)發送一個request請求,服務器就會判斷發送過來的請求頁面,當完全識別 TTP頁面處理程序類后,A…

java chain_java 8中 predicate chain的使用

java 8中 predicate chain的使用簡介Predicate是一個FunctionalInterface,代表的方法需要輸入一個參數,返回boolean類型。通常用在stream的filter中,表示是否滿足過濾條件。boolean test(T t);基本使用我們先看下在stream的filter中怎么使用P…

前段技術學習計劃

資料: 著作權歸作者所有。 商業轉載請聯系作者獲得授權,非商業轉載請注明出處。 作者:陳禹魯 鏈接:http://www.zhihu.com/question/19809484/answer/35544452 來源:知乎 第一本,入門 《Head first HTML&…

指針的概念

在C語言中,內存單元的地址稱為指針,專門用來存放地址的變量,有時對地址,指針和指針變量不區分,統稱指針。(地址指針) 一般情況下,最前面的存儲類型通常會省略 指針在說明的同時&…

整理一些提高C#編程性能的技巧

1、使用StringBuilder代替使用string 連接符 ""說明:String類對象是不可變的(只讀),一旦創建該對象,就不能修改該對象的值。對象String對象的重新賦值,本質上是重新創建了一個String對象并將新的…

python爬知識星球付費數據_用python爬取知識星球

去年我們做過一個叫「學長問答」的社群活動,里面沉淀了大量有價值的互動信息,后來因為各種原因終止了。今天和涂騰聊起來,覺得這些信息就這么沉寂了太浪費。所以就試著用python爬取了知識星球的內容。這個過程又學習了一些新的知識&#xff0…

HTML學習(1)

1、縮寫和首字母縮寫<abbr><acronym> <abbr title"etcetera">etc.</abbr> <acronym title"World Wide Web">WWW</acronym> 2、塊引用&#xff08;短&#xff09; <p>A: <q>B</q>C</p> 顯示結…

常用的7個SQl優化技巧

作為程序員經常和數據庫打交道的時候還是非常頻繁的&#xff0c;掌握住一些Sql的優化技巧還是非常有必要的。下面列出一些常用的SQl優化技巧&#xff0c;感興趣的朋友可以了解一下。1、注意通配符中Like的使用以下寫法會造成全表的掃描&#xff0c;例如&#xff1a;select id,n…

toolbar java_Java ToolBar.layout方法代碼示例

import org.eclipse.swt.widgets.ToolBar; //導入方法依賴的package包/類protected ToolBar createToolbar() {final ToolBar t new ToolBar(composite, SWT.FLAT | SWT.LEFT | SWT.HORIZONTAL | SWT.WRAP);final GridData d new GridData(SWT.FILL, SWT.TOP, false, false);…

Visual Studio常用的快捷鍵整理

微軟的開發工具Visual Studio作為DoNet開發者來說是必備神器&#xff0c;該開發工具內置了很多的開發快捷鍵&#xff0c;熟悉了這些開發快捷鍵&#xff0c;對于程序員來說事半功倍&#xff0c;所以在這里整理一下&#xff0c;版本是vs2012以上&#xff0c;目前小編列出了自己覺…

win7旗艦版6l打印機咋安驅動_在w7旗艦版上怎么安裝HPlaserjet6L打印機?

您好&#xff0c;感謝您選擇惠普產品。首先6L產品只有并口線&#xff0c;但是現在win 7 電腦基本都沒有并口&#xff0c;有可能是您使用了轉接usb設備&#xff0c;但是產品在出廠的時候會對產品作測試&#xff0c;測試的結果是不建議使用轉接設備或者是延長設備&#xff0c;以免…

收集一些工作中常用的經典SQL語句

作為一枚程序員來說和數據庫打交道是不可避免的&#xff0c;現收集一下工作中常用的SQL語句&#xff0c;希望能給大家帶來一些幫助&#xff0c;當然可能不全面&#xff0c;歡迎補充&#xff01;1、執行插入語句&#xff0c;獲取自動生成的遞增的ID值INSERT INTO SysRole (RoleN…

ascii modbus vc源碼_MODBUS ASCII及MODBUS RTU通訊

代碼片段和文件信息using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;using System.IO.Ports;//串口using…

Asp.Net操作Cookie總結

一、什么是Cookie&#xff1f;Cookie是存儲在客戶端文件系統的文本文件或客戶端瀏覽器對話的內存中的少量數據。它主要用來跟蹤數據設置&#xff0c;例如&#xff1a;當我們要訪問一個網站網頁的時候&#xff0c;用戶請求網頁時&#xff0c;應用程序可能會首先檢查此用戶是否已…

java GUI怎么輸入_在Swing中創建Java GUI以進行表單輸入

好吧,我已經瀏覽了整個互聯網,但卻未能找到這個問題的答案,所以也許有人可以提供一些見解.我正在開發一個相對簡單的Java應用程序,它將取代目前用于系統訪問請求的Word文檔.它旨在允許表單輸入新的員工雇用信息 – 名稱,所需的訪問權限等.所以這是我的問題.嘗試使用所有文本字段…

Net中Session的用法

一、什么是Session&#xff1f;簡單來說&#xff0c;就是用戶與網站服務器建立的一個連接&#xff0c;服務器分配給一個編號。當一臺WWW服務器運行時&#xff0c;可能有若干用戶正在瀏覽運行在這臺服務器上的網站。當用戶首次與這臺WWW服務器創建連接的時候&#xff0c;它就和這…

關于Json的總結

一、什么是Json&#xff1f;JSON(JavaScript Object Notation) 是一種輕量級的數據交換格式。它使得人們很容易的進行閱讀和編寫。同時也方便了機器進行解析和生成。它是基于 JavaScript Programming Language , Standard ECMA-262 3rd Edition - December 1999的一個子集。 JS…

java 整數溢出檢測,Java如何處理整數下溢和溢出以及如何檢查它?

How does Java handle integer underflows and overflows?Leading on from that, how would you check/test that this is occurring?解決方案If it overflows, it goes back to the minimum value and continues from there. If it underflows, it goes back to the maximum…

console 程序隨系統啟動及隱藏當前程序窗口

應業務需求&#xff0c;程序需要與系統啟動而自動運行&#xff0c;故加入以下代碼&#xff0c;保存成 .bat文件 &#xff0c;雙擊執行即可 reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run" /v HuazhuPushRecord /t reg_sz /d "your…

Linq用法筆記

一、什么是Linq?LINQ即Language Integrated Query(語言集成查詢)&#xff0c;LINQ是集成到C#和Visual Basic.NET這些語言中用于提供查詢數據能力的一個新特性。LINQ是一種用來進行數據訪問的編程模型&#xff0c;Linq可以用相同的語法訪問不同的數據源&#xff0c;比如xml、數…