亚洲好骚综合-亚洲黄色录像-亚洲黄色网址-亚洲黄色网址大全-99久久99久久-99久久99久久精品国产

您的位置:軟件測試 > 開源軟件測試 > 開源性能測試工具 > Jmeter
使用 JMeter 完成常用的壓力測試
作者:網絡轉載 發布時間:[ 2012/12/3 14:26:54 ] 推薦標簽:

本文介紹了 JMeter 相關的基本概念。并以 JMeter 為例,介紹了使用它來完成常用的三種類型服務器,即 Web 服務器、數據庫服務器和消息中間件,壓力測試的方法、步驟以及注意事項。

講到測試,人們腦海中首先浮現的是針對軟件正確性的測試,即常說的功能測試。但是軟件僅僅只是功能正確是不夠的。在實際開發中,還有其它的非功能因素也起著決定性的因素,例如軟件的響應速度。影響軟件響應速度的因素有很多,有些是因為算法不夠高效;還有些可能受用戶并發數的影響。

在眾多類型的軟件測試中,壓力測試正是以軟件響應速度為測試目標,尤其是針對在較短時間內大量并發用戶的訪問時,軟件的抗壓能力。本文以 JMeter 為例,介紹了如何使用它來完成常用的壓力測試:Web 測試、數據庫測試和 JMS 測試。

概述

JMeter 早是為了測試 Tomcat 的前身 JServ 的執行效率而誕生的。到目前為止,它的新版本是2.1.1,它的測試能力也不再僅僅只局限于對于Web服務器的測試,而是涵蓋了數據庫、JMS、Web Service、LDAP等多種對象的測試能力。在新的 2.1.1 中,它還提供了對于 JUNIT 的測試。

JMeter 的安裝非常簡單,從官方網站上下載,解壓之后即可使用。運行命令在%JMETER_HOME%/bin 下,對于 Windows 用戶來說,命令是 jmeter.bat。運行前請檢查JMeter 的文檔,查看是否具備相關的運行條件。對于新版(即2.1.1),需要JDK的版本要求是JDK 1.4。

JMeter 的主要測試組件總結如下:

1. 測試計劃是使用 JMeter 進行測試的起點,它是其它 JMeter 測試元件的容器。

2. 線程組代表一定數量的并發用戶,它可以用來模擬并發用戶發送請求。實際的請求內容在Sampler中定義,它被線程組包含。

3. 監聽器負責收集測試結果,同時也被告知了結果顯示的方式。

4. 邏輯控制器可以自定義JMeter發送請求的行為邏輯,它與Sampler結合使用可以模擬復雜的請求序列。

5. 斷言可以用來判斷請求響應的結果是否如用戶所期望的。它可以用來隔離問題域,即在確保功能正確的前提下執行壓力測試。這個限制對于有效的測試是非常有用的。

6. 配置元件維護Sampler需要的配置信息,并根據實際的需要會修改請求的內容。

7. 前置處理器和后置處理器負責在生成請求之前和之后完成工作。前置處理器常常用來修改請求的設置,后置處理器則常常用來處理響應的數據。

8. 定時器負責定義請求之間的延遲間隔。

JMeter的使用非常的容易,在 ONJava.com 上的文章 Using JMeter 提供了一個非常好的入門。

常用測試

壓力測試不同于功能測試,軟件的正確性并不是它的測試重點。它所看重的是軟件的執行效率,尤其是短時間內訪問用戶數爆炸性增長時軟件的響應速度,壓力測試往往是在功能測試之后進行的。在實際的開發過程中,軟件潛在的效率瓶頸一般都是那些可能有多個用戶同時訪問的節點。

目前 Java EE 的平臺下開發的軟件來說,這種節點通常可能是:Web 服務器、數據庫服務器和 JMS 服務器。它們都是請求主要發生的地點,請求頻率較其它的節點要高,而且處于請求序列的關鍵路徑之上。如果它們效率無法提高的話,對于整個軟件的效率有致命的影響。而且在這些節點上一般都會發生較大規模的數據交換,有時其中還包含有業務邏輯處理,它們正是在進行壓力測試時首先需要考慮的。

本文以這三種節點為例,介紹如何使用 JMeter 來完成針對于它們的壓力測試。

Web 服務器

對于大多數的項目來說,并不會自行開發一個Web服務器,因此Web服務器壓力測試的對象實際是--發布到Web服務器中的軟件。簡單的Web測試計劃只需要三個 JMeter 的測試元件,如下圖:

其中:

    在線程組中定義線程數、產生線程發生的時間和測試循環次數。
    在http請求中定義服務器、端口、協議和方法、請求路徑等。
    表格監聽器負責收集和顯示結果。

這種設置對于包含了安全機制的 web 應用是不夠的,典型的 web 應用一般都會:

1. 有一個登錄頁,它是整個應用的入口。當用戶登錄之后,應用會將用戶相關的安全信息放到 session 中。

2. 有一個 filter,它攔截請求,檢查每個請求相關的 session 中是否包含有用戶安全信息。如果沒有,那么請求被重定向到登錄頁,要求用戶提供安全信息。

在這種配置下應用上面的測試計劃,那么除了登錄頁之外的其它請求都將因為缺少用戶安全信息,而使請求實際定位到登錄頁。如果不加斷言,那么在監聽器看來所有的請求都是成功。而實際上,這些請求終都沒有到達它們應該去的地方。顯然,這種測試結果不是我們所期望的。

為了成功的測試,至少有2種方法:

    方法一,去掉程序的安全設置,如filter,使得不需要用戶安全信息也能訪問受限內容;
    方法二,不修改程序,使用JMeter提供的"Http URL重寫修飾符"或"Http Cookie管理器"。

對于第一種方法,有其局限性:

    需要修改程序配置,如去掉web.xml中關于安全filter的設置。需要維護多個版本的web.xml,如壓力測試和功能測試分別各自的web.xml,增加了維護成本,而且有可能會在測試之后忘記將web.xml修改回來。
    對于一些需要用戶安全信息的頁面無能為力,如某些業務審計操作需要用戶安全信息來記錄。因為缺少這樣的信息,注定了測試的失敗。如果解決為了這個問題進一步的修改程序,那么因為存在多個版本的程序,那么其維護難度將大大增加。

雖然,第二種方法配置難度增加了,但是它不用修改程序。而且還可將測試計劃保存成文件,以便重復使用。因此,選用第二種方法是較為理想的做法。下面以一個簡化的例子說明使用方法二的配置步驟。

上一頁123下一頁
軟件測試工具 | 聯系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網站地圖
滬ICP備07036474 2003-2017 版權所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd
主站蜘蛛池模板: 一本大道大臿蕉香蕉网站 | 日本视频中文字幕一区二区 | 午夜激情一区 | 亚洲一级高清在线中文字幕 | 久久久国产视频 | 黄网址在线观看 | 日韩精品久久久免费观看夜色 | 久久久男女野外野战 | 亚洲精品午夜aaa级久久久久 | 久久这里只精品99re免费 | 午夜一级做a爰片久久毛片 午夜一级免费视频 | 中国孕妇孕交xxx | 国产在线精品一区二区三区 | 1769老司机人人精品视频 | 精品国产成人高清在线 | 在线观看国产欧美 | 天天黄视频 | 欧美另类xx | 福利视频黄 | 欧美日韩视频在线 | 美女视频很黄很暴黄是免费的 | 免费狼人久久香蕉网 | 在线观看片成人免费视频 | 色视频网站在线观看 | 久久久这里只有免费精品2018 | 欧美成人黄色片 | 女人被男人扒开狂躁视频 | 日日添天天做天天爱 | 羞羞视频在线观看 | www.日韩三级 | 黄漫画黄网站在线观看 | 久久国产一级毛片一区二区 | 日日碰狠狠添天天爽对白 | 五月天中文在线 | 国产一区二区在线视频观看 | 国产精品三级一区二区 | 国产黄大片在线观看视频 | 99艾草视频在线播放 | 成人免费看黄网址 | 第一页在线 | 亚洲综合香蕉 |