阿里前端測(cè)試領(lǐng)域大牛深扒萬字測(cè)試武功秘籍
前言
作者曾經(jīng)有幸在國內(nèi)最大的電信設(shè)備供應(yīng)商工作過一段時(shí)間,其間聽一些資深老員工講過-個(gè)故事。這個(gè)故事可以被當(dāng)做笑話來聽,不過笑笑之后卻總也忘不掉。話說20 世紀(jì)90年代初的某一天,國內(nèi)第一臺(tái)自主研發(fā)的大型固話交換機(jī),終于千呼萬喚地“閃亮”登場(chǎng)了。于是乎,這家公司馬上向用戶大力推銷這款設(shè)備,但是用戶提出了一個(gè)很實(shí)際的問題,徹底難住了這家公司。問題很簡(jiǎn)單,就是需要一份性能測(cè)試報(bào)告來證明這臺(tái)設(shè)備真能支持宣稱的話務(wù)容量。那時(shí)候還沒有成熟的電信領(lǐng)域性能測(cè)試工具,該怎么辦呢﹖幸好有聰明的領(lǐng)導(dǎo)想出了一個(gè)中國式的解決辦法。
某天下午,全公司的員工都放下了手頭的工作,每人懷抱一部老式電話機(jī)(還要靠轉(zhuǎn)盤來撥號(hào)),等領(lǐng)導(dǎo)倒數(shù)“三、二、一”后集體打電話。據(jù)說當(dāng)時(shí)人數(shù)不夠,達(dá)不到用戶要求的通話量,甚至出現(xiàn)了一個(gè)人操作兩部電話機(jī)的情況。作者沒能一睹當(dāng)時(shí)的盛況,一直深感遺憾。
幸好科學(xué)技術(shù)發(fā)展到今天,已經(jīng)有了多款成熟的性能測(cè)試工具,否則測(cè)試人員一定會(huì)發(fā)瘋。試想當(dāng)前的電信交換機(jī)話務(wù)容量早已翻了不知多少倍,如果還要靠人海戰(zhàn)術(shù)去測(cè)試,即使全公司的員工雙手雙腳去操作電話機(jī),也肯定是忙不過來的。測(cè)試人員應(yīng)該為測(cè)試技術(shù)的飛速發(fā)展而感到歡心鼓舞。那么現(xiàn)在是否就可以高枕無憂了﹖答案是否定的。當(dāng)前測(cè)試人員面臨的問題不再是有沒有性能測(cè)試工具,而是有沒有合適的性能測(cè)試工具。
第一章 性能測(cè)試

性能測(cè)試是通過自動(dòng)化的測(cè)試工具模擬多種正常峰值及異常負(fù)載條件來對(duì)系統(tǒng)的各項(xiàng)性能指標(biāo)進(jìn)行測(cè)試。負(fù)載測(cè)試和壓力測(cè)試都屬于性能測(cè)試,兩者可以結(jié)合進(jìn)行。通過負(fù)載測(cè)試,確定在各種工作負(fù)載下系統(tǒng)的性能,目標(biāo)是當(dāng)負(fù)載逐漸增加時(shí),測(cè)試系統(tǒng)各項(xiàng)性能指標(biāo)的變化情況。壓力測(cè)試是通過確定一個(gè)系統(tǒng)的瓶頸或者不能接受的性能點(diǎn),來獲得系統(tǒng)能提供的最大服務(wù)級(jí)別的測(cè)試。如圖1-1所示為一個(gè)典型的性能測(cè)試曲線。
第二章 JMeter基礎(chǔ)知識(shí)
Apache JMeter是100%的Java桌面應(yīng)用程序,用于對(duì)軟件做壓力測(cè)試。它最初被設(shè)計(jì)用于Web應(yīng)用測(cè)試,但后來擴(kuò)展到其他測(cè)試領(lǐng)域。另外,JMeter能夠?qū)?yīng)用程序做功能/回歸測(cè)試,通過創(chuàng)建帶有斷言的腳本來驗(yàn)證被測(cè)程序返回了期望的結(jié)果。為了保證最大限度的靈活性,JMeter 允許使用正則表達(dá)式創(chuàng)建斷言。
Apache JMeter可以用于對(duì)靜態(tài)和動(dòng)態(tài)資源〔文件、Servlet、Perl腳本、Java對(duì)象、數(shù)據(jù)庫和查詢、FTP服務(wù)器等)的性能進(jìn)行測(cè)試。它可以用于對(duì)服務(wù)器、網(wǎng)絡(luò)或?qū)ο竽M繁重的負(fù)載來測(cè)試它們的強(qiáng)度或分析不同壓力類型下的整體性能。測(cè)試人員可以使用它做性能圖形分析或者測(cè)試服務(wù)器/腳本/對(duì)象在大并發(fā)負(fù)載下的表現(xiàn)。

第三章 WEB性能測(cè)試腳本錄制與開發(fā)
測(cè)試計(jì)劃描述了JMeter運(yùn)行時(shí)將會(huì)執(zhí)行的--系列步驟。一個(gè)完整的測(cè)試計(jì)劃會(huì)包含一個(gè)或多個(gè)線程組、邏輯控制器、采樣器、監(jiān)聽器、定時(shí)器、斷言和配置元件。

第四章 數(shù)據(jù)庫性能測(cè)試腳本開發(fā)
本節(jié)主要介紹如何創(chuàng)建一個(gè)簡(jiǎn)單的測(cè)試計(jì)劃用于測(cè)試數(shù)據(jù)庫服務(wù)器。在本節(jié)中測(cè)試人員會(huì)創(chuàng)建10個(gè)并發(fā)用戶,而每個(gè)并發(fā)用戶會(huì)發(fā)送兩個(gè)SQL請(qǐng)求到數(shù)據(jù)庫服務(wù)器。另外,每個(gè)用戶都會(huì)運(yùn)行測(cè)試3遍。因此,總共發(fā)送的測(cè)試數(shù)目是(10 并發(fā)用戶)×(2 請(qǐng)求)×(重復(fù)3遍)=60 JDBC 請(qǐng)求。要構(gòu)建這一測(cè)試計(jì)劃,測(cè)試人員需要使用到的測(cè)試元件包括:線程組(ThreadGroup)、JDBC請(qǐng)求(JDBC Request)、圖形結(jié)果(Graph Results)。
第五章 FTP性能測(cè)試腳本開發(fā)
FTP是 File Transfer Protocol(文件傳輸協(xié)議)的英文簡(jiǎn)稱,而中文簡(jiǎn)稱為“文傳協(xié)議”,用于在Internet 上控制文件的雙向傳輸。同時(shí),它也是一個(gè)應(yīng)用程序(Application)。用戶可以通過它把自己的PC與世界各地所有運(yùn)行FTP協(xié)議的服務(wù)器相連,訪問服務(wù)器上的大量程序和信息.FTP的主要作用就是讓用戶連接一個(gè)遠(yuǎn)程計(jì)算機(jī)(這些計(jì)算機(jī)上運(yùn)行著FTP服務(wù)器程序),查看遠(yuǎn)程計(jì)算機(jī)上有哪些文件,然后把文件從遠(yuǎn)程計(jì)算機(jī)上復(fù)制到本地計(jì)算機(jī),或把本地計(jì)算機(jī)的文件傳送到遠(yuǎn)程計(jì)算機(jī)上去。

第六章 LDAP性能測(cè)試腳本開發(fā)
本節(jié)將主要介紹LDAP的基本概念、適用范圍及LDAP相對(duì)于關(guān)系數(shù)據(jù)庫的優(yōu)勢(shì)和劣勢(shì)。另外還將介紹一些LDAP的簡(jiǎn)單實(shí)例,幫助讀者建立對(duì)LDAP的感性認(rèn)識(shí),為后續(xù)掌握LDAP性能測(cè)試的方法打下基礎(chǔ)。LDAP是輕量目錄訪問協(xié)議,英文全稱是Lightweight Directory Access Protocol,一般都簡(jiǎn)稱為L(zhǎng)DAP。它是基于X.500標(biāo)準(zhǔn)的,但更簡(jiǎn)單并且可以根據(jù)需要定制。與X.500不同,LDAP支持TCP/P協(xié)議,這對(duì)訪問Internet來說是必需的。LDAP的核心規(guī)范在RFC中都有定義,所有與LDAP相關(guān)的RFC都可以在LDAPman RFC網(wǎng)頁中找到。一個(gè)簡(jiǎn)單的LDAP組件配置案例,如圖6-1所示。

第七章 WebService性能測(cè)試腳本開發(fā)
Web Service是由企業(yè)發(fā)布的完成其特定商務(wù)需求的在線應(yīng)用服務(wù),其他公司或應(yīng)用軟件能過Internet 來訪問并使用這項(xiàng)在線服務(wù)。它是一種構(gòu)建應(yīng)用程序的普遍模型,可以在任何支絡(luò)通信的操作系統(tǒng)中實(shí)施運(yùn)行;它是一種新的Web應(yīng)用程序分支,是自包含、自描述、模約應(yīng)用,可以發(fā)布、定位、通過Web調(diào)用。Web Service是一個(gè)應(yīng)用組件,它邏輯性地為應(yīng)用程序提供數(shù)據(jù)與服務(wù)。各應(yīng)用程序通過網(wǎng)絡(luò)協(xié)議和規(guī)定的一些標(biāo)準(zhǔn)數(shù)據(jù)格式(Http、、Soap)來訪問web Service,通過Web Service內(nèi)部執(zhí)行得到所需結(jié)果。Web Service可以從簡(jiǎn)單請(qǐng)求到復(fù)雜商務(wù)處理的任何功能。一旦部署以后,其他Web Service應(yīng)用程序可以發(fā)調(diào)用它部署的服務(wù)。如圖7-1所示是一個(gè) Web Service的典型例子。

第八章 JMS性能測(cè)試腳本開發(fā)
JMS即Java消息服務(wù)(Java Message Service),應(yīng)用程序接口是一個(gè)Java平臺(tái)中關(guān)于面向消息中間件(MOM)的API,用于在兩個(gè)應(yīng)用程序之間或分布式系統(tǒng)中發(fā)送消息,進(jìn)行異步通信。Java消息服務(wù)是一個(gè)與具體平臺(tái)無關(guān)的API,絕大多數(shù)MOM提供商都對(duì)JMS提供支持。



第九章 服務(wù)器監(jiān)控測(cè)試腳本開發(fā)
在本節(jié)中,作者將會(huì)介紹如何創(chuàng)建一個(gè)測(cè)試計(jì)劃來監(jiān)控Web服務(wù)器。服務(wù)器監(jiān)控功能對(duì)于壓力測(cè)試和系統(tǒng)管理都非常有用。在壓力測(cè)試工作中,服務(wù)器監(jiān)控功能可以提供關(guān)于服務(wù)器性能的額外信息,這能幫助JMeter用戶直觀地看到服務(wù)器性能與系統(tǒng)響應(yīng)時(shí)長(zhǎng)之間的關(guān)系。作為一個(gè)系統(tǒng)管理工具,服務(wù)器監(jiān)控功能可以通過一個(gè)控制臺(tái)監(jiān)控多個(gè)服務(wù)器。JMeter服務(wù)器監(jiān)控功能是專門針對(duì)Tomcat 5 的 status servlet設(shè)計(jì)的。從理論上來說,任何支持JMX (JavaManagement Extension)的servlet容器都能部署該servlet,以提供同樣的監(jiān)控信息。

受限于篇幅如有需要后臺(tái)私信領(lǐng)取