基于應(yīng)用服務(wù)器的測(cè)試_第1頁(yè)
基于應(yīng)用服務(wù)器的測(cè)試_第2頁(yè)
基于應(yīng)用服務(wù)器的測(cè)試_第3頁(yè)
基于應(yīng)用服務(wù)器的測(cè)試_第4頁(yè)
基于應(yīng)用服務(wù)器的測(cè)試_第5頁(yè)
已閱讀5頁(yè),還剩41頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、Zhu.KerryG朱少民朱少民Kerry Zhu軟件測(cè)試方法和技術(shù)軟件測(cè)試方法和技術(shù)第第2版版第第9章章 基于應(yīng)用服務(wù)器的測(cè)試基于應(yīng)用服務(wù)器的測(cè)試第第9章章 基于應(yīng)用服務(wù)器的測(cè)試基于應(yīng)用服務(wù)器的測(cè)試9.1 基于Web服務(wù)器應(yīng)用的測(cè)試9.2 基于數(shù)據(jù)庫(kù)應(yīng)用服務(wù)器的測(cè)試9.3 基于Java EE應(yīng)用服務(wù)器的測(cè)試Zhu.K9.1 基于基于Web服務(wù)器應(yīng)用的測(cè)試服務(wù)器應(yīng)用的測(cè)試n9.1.1 Web服務(wù)器功能測(cè)試n9.1.2 Web安全性測(cè)試n9.1.3 Web性能測(cè)試n9.1.4 性能測(cè)試工具FloodZhu.K9.1.1 Web服務(wù)器的功能測(cè)試服務(wù)器的功能測(cè)試nGETnOPTIONSnHEADnP

2、OSTnPUTnDELETEnTRACEnCONNECT Zhu.K正則表達(dá)式正則表達(dá)式Zhu.K常用的常用的Web元素功能測(cè)試元素功能測(cè)試n頁(yè)面鏈接n頁(yè)面是否存在n頁(yè)面是否正確n設(shè)計(jì)腳本n不同的腳本語(yǔ)言n相同的腳本語(yǔ)言在不同瀏覽器中的表現(xiàn)nWeb圖形n表單Zhu.K9.1.2 Web服務(wù)器的安全測(cè)試服務(wù)器的安全測(cè)試n登錄、身份驗(yàn)證n超時(shí)、Cookie和Sessionn輸入驗(yàn)證(防止腳本語(yǔ)言)n數(shù)據(jù)加密、SSL (安全套接字)nSQL注入nXSSn日志文件n目錄Zhu.K跨站點(diǎn)攻擊(跨站點(diǎn)攻擊(XSS)nReflected XSSnStored XSSnDOM-based XSSZhu.Kht

3、tp://index.php/Cross-site_Scripting_(XSS)9.1.3 Web服務(wù)器的性能測(cè)試服務(wù)器的性能測(cè)試n基于Web應(yīng)用系統(tǒng)的在線用戶和響應(yīng)時(shí)間來(lái)度量系統(tǒng)性能,n基于Web應(yīng)用系統(tǒng)的吞吐量和響應(yīng)時(shí)間來(lái)度量系統(tǒng)性能Zhu.K/benchmarks.html#webApache性能測(cè)試工具性能測(cè)試工具abWeb服務(wù)器性能測(cè)試要點(diǎn)服務(wù)器性能測(cè)試要點(diǎn)n如何確定在線用戶數(shù)量呢?n由于時(shí)間和資源限制,不可能對(duì)Web應(yīng)用系統(tǒng)的所有功能進(jìn)行性能測(cè)試,而是根據(jù)業(yè)務(wù)的實(shí)際操作情況和技術(shù)的角度來(lái)分析,選擇關(guān)鍵業(yè)務(wù)n如果是基于在

4、線用戶的性能測(cè)試需求,可以將錄制腳本時(shí)記錄的思考時(shí)間作為基準(zhǔn),以此將思考時(shí)間設(shè)置成一定范圍內(nèi)的隨機(jī)值。基于吞吐量的性能測(cè)試需求,可以把思考時(shí)間設(shè)置為零Zhu.KWeb站點(diǎn)經(jīng)驗(yàn)點(diǎn)滴站點(diǎn)經(jīng)驗(yàn)點(diǎn)滴n在執(zhí)行客戶端并發(fā)性能測(cè)試的過(guò)程中,需要同時(shí)監(jiān)控?cái)?shù)據(jù)庫(kù)服務(wù)器、Web服務(wù)器以及網(wǎng)絡(luò)資源等使用情況,以便對(duì)系統(tǒng)的性能做全面評(píng)估 n錄制腳本和手工編寫(xiě)腳本相結(jié)合 n設(shè)置數(shù)據(jù)池,實(shí)現(xiàn)變量加載n業(yè)務(wù)批量執(zhí)行 Zhu.KWeb站點(diǎn)經(jīng)驗(yàn)點(diǎn)滴站點(diǎn)經(jīng)驗(yàn)點(diǎn)滴n模擬用戶數(shù)的遞增 n合理設(shè)置交易之間時(shí)間間隔 n模擬IP地址變量的技術(shù) n超時(shí)(timeout)的設(shè)置 n并發(fā)用戶連續(xù)執(zhí)行交易數(shù)的設(shè)置 5.錯(cuò)誤處理Zhu.KWeb站點(diǎn)

5、經(jīng)驗(yàn)點(diǎn)滴站點(diǎn)經(jīng)驗(yàn)點(diǎn)滴n利用QALoad的ActiveData技術(shù)n采用復(fù)合交易測(cè)試方案n盡量將執(zhí)行負(fù)載測(cè)試的機(jī)器合理分布 n并發(fā)用戶數(shù)量極限點(diǎn)n加壓機(jī)器的CPU使用率也有必要監(jiān)控 n設(shè)置并發(fā)點(diǎn) nHTML與URL錄制方式Zhu.K9.1.4 性能測(cè)試工具性能測(cè)試工具FloodZhu.KApache HTTP工程包含了一個(gè)名為HTTPD-Test的子工程Apache的通用測(cè)試工具包,它包含了不少測(cè)試工具而其中Flood(/test/flood/)是人們經(jīng)常使用的一個(gè)Web性能測(cè)試工具具體操作具體操作n安裝n設(shè)置設(shè)置Floodn實(shí)例實(shí)例n擴(kuò)展擴(kuò)展Zhu.

6、K9.2 基于基于Web服務(wù)器應(yīng)用的測(cè)試服務(wù)器應(yīng)用的測(cè)試n9.2.1 數(shù)據(jù)庫(kù)服務(wù)器性能測(cè)試數(shù)據(jù)庫(kù)服務(wù)器性能測(cè)試n9.2.2 數(shù)據(jù)庫(kù)并發(fā)控制測(cè)試數(shù)據(jù)庫(kù)并發(fā)控制測(cè)試Zhu.K了解數(shù)據(jù)庫(kù)服務(wù)器了解數(shù)據(jù)庫(kù)服務(wù)器9.2.1 數(shù)據(jù)庫(kù)服務(wù)器性能測(cè)試數(shù)據(jù)庫(kù)服務(wù)器性能測(cè)試n大數(shù)據(jù)量測(cè)試:10萬(wàn)、100萬(wàn)、千萬(wàn)條記錄n大容量測(cè)試:某些字段存儲(chǔ)10M、100M、1G等大體積數(shù)據(jù)。 Zhu.K數(shù)據(jù)庫(kù)性能測(cè)試過(guò)程和策略數(shù)據(jù)庫(kù)性能測(cè)試過(guò)程和策略(1)n理解測(cè)試需求理解測(cè)試需求: 是校驗(yàn)測(cè)試還是基準(zhǔn)測(cè)試? 是單個(gè)用戶大數(shù)據(jù)量測(cè)試還是多個(gè)用戶并發(fā)測(cè)試? 什么地方是可能的性能瓶頸? 可能是哪個(gè)方面的性能測(cè)試? (應(yīng)用程序or系

7、統(tǒng)參數(shù)or Schema對(duì)象)n選擇測(cè)試工具選擇測(cè)試工具 頁(yè)面級(jí)的輔助測(cè)試工具: JMeter, Webload etc 第三方監(jiān)控程序: 如DB Flash, 或者有些通過(guò)log文件, 來(lái)監(jiān)控動(dòng)態(tài)的訪問(wèn)路徑, 高占用的進(jìn)程,會(huì)話和SQL語(yǔ)句Zhu.K 自定義或者常用的命令, 來(lái)動(dòng)態(tài)監(jiān)控和獲取執(zhí)行SQL, PL-SQL所需要的時(shí)間, 占用的CPU和內(nèi)存資源. 數(shù)據(jù)庫(kù)系統(tǒng)本身的性能工具包, 如在Oracle中使用的Explain Plan, AutoTrace, PKPROF以及Statspack.n設(shè)計(jì)測(cè)試場(chǎng)景以及測(cè)試腳本設(shè)計(jì)測(cè)試場(chǎng)景以及測(cè)試腳本 數(shù)據(jù)量設(shè)計(jì)或加載. 測(cè)試環(huán)境建立和測(cè)試過(guò)程分析

8、 測(cè)試腳本設(shè)計(jì)n收集數(shù)據(jù)和分析結(jié)果收集數(shù)據(jù)和分析結(jié)果 性能瓶頸參數(shù) 優(yōu)化和對(duì)比Zhu.K數(shù)據(jù)庫(kù)性能測(cè)試過(guò)程和策略數(shù)據(jù)庫(kù)性能測(cè)試過(guò)程和策略(2)Oracle數(shù)據(jù)庫(kù)性能測(cè)試數(shù)據(jù)庫(kù)性能測(cè)試nOracle系統(tǒng)性能測(cè)試的目標(biāo)系統(tǒng)性能測(cè)試的目標(biāo):n模擬數(shù)據(jù)庫(kù)系統(tǒng)的數(shù)據(jù)負(fù)載模擬數(shù)據(jù)庫(kù)系統(tǒng)的數(shù)據(jù)負(fù)載,操作操作,偵測(cè)和獲取性能測(cè)試偵測(cè)和獲取性能測(cè)試數(shù)據(jù)數(shù)據(jù), 幫助開(kāi)發(fā)和幫助開(kāi)發(fā)和DBA來(lái)優(yōu)化和調(diào)整數(shù)據(jù)庫(kù)或者應(yīng)用程來(lái)優(yōu)化和調(diào)整數(shù)據(jù)庫(kù)或者應(yīng)用程序序.n最終的結(jié)果是獲取更快的數(shù)據(jù)庫(kù)響應(yīng)速度或者更高吞度最終的結(jié)果是獲取更快的數(shù)據(jù)庫(kù)響應(yīng)速度或者更高吞度能力能力.nOracle系統(tǒng)性能測(cè)試的本質(zhì)系統(tǒng)性能測(cè)試的本質(zhì)n硬件硬件

9、 (CPU, Memory, I/O競(jìng)爭(zhēng)等競(jìng)爭(zhēng)等)n系統(tǒng)配置系統(tǒng)配置 (SGA/PGA)n應(yīng)用程序應(yīng)用程序(SQL, PL-SQL)n網(wǎng)絡(luò)連接網(wǎng)絡(luò)連接Zhu.KOralce系統(tǒng)性能測(cè)試的范圍系統(tǒng)性能測(cè)試的范圍n應(yīng)用程序調(diào)優(yōu)應(yīng)用程序調(diào)優(yōu)-For Application developer SQL語(yǔ)句測(cè)試調(diào)優(yōu)語(yǔ)句測(cè)試調(diào)優(yōu) Thin, OCI測(cè)試測(cè)試nSchema 對(duì)象調(diào)優(yōu)對(duì)象調(diào)優(yōu)-For Database developer Schema(表表,索引索引,存儲(chǔ)過(guò)程存儲(chǔ)過(guò)程)設(shè)計(jì)設(shè)計(jì) PL-SQL語(yǔ)句和調(diào)用語(yǔ)句和調(diào)用 數(shù)據(jù)復(fù)制數(shù)據(jù)復(fù)制n系統(tǒng)參數(shù)調(diào)優(yōu)系統(tǒng)參數(shù)調(diào)優(yōu)-For DBA 內(nèi)存內(nèi)存/CPU/I/

10、O競(jìng)爭(zhēng)競(jìng)爭(zhēng)/網(wǎng)絡(luò)網(wǎng)絡(luò) SGA配置配置 動(dòng)態(tài)表空間估計(jì)動(dòng)態(tài)表空間估計(jì) 分區(qū)表分區(qū)表,索引設(shè)計(jì)索引設(shè)計(jì)Zhu.K數(shù)據(jù)庫(kù)測(cè)試工具數(shù)據(jù)庫(kù)測(cè)試工具 -AUTOTRACEcommand:set autotrace ontraceonlyoff;SQL select * from wbxsite;3091 rows selected.Execution Plan- 0 SELECT STATEMENT Optimizer=CHOOSE (Cost=4 Card=2489 Bytes=17 4230) 1 0 TABLE ACCESS (FULL) OF WBXSITE (Cost=4 Card=2489 B

11、ytes=1 74230)Statistics- 680 recursive calls 0 db block gets 375 consistent gets 0 physical reads 0 redo size 196696 bytes sent via SQL*Net to client 2765 bytes received via SQL*Net from client 208 SQL*Net roundtrips to/from client 6 sorts (memory) 0 sorts (disk) 3091 rows processedZhu.KnSQL / -the

12、data was from buffer cache, but not hard parse.3091 rows selected.Execution Plan- 0 SELECT STATEMENT Optimizer=CHOOSE (Cost=4 Card=2489 Bytes=17 4230) 1 0 TABLE ACCESS (FULL) OF WBXSITE (Cost=4 Card=2489 Bytes=1 74230)Statistics- 0 recursive calls 0 db block gets 245 consistent gets 0 physical reads

13、 0 redo size 196696 bytes sent via SQL*Net to client 2765 bytes received via SQL*Net from client 208 SQL*Net roundtrips to/from client 0 sorts (memory) 0 sorts (disk) 3091 rows processedSQL 數(shù)據(jù)庫(kù)測(cè)試工具數(shù)據(jù)庫(kù)測(cè)試工具 -AUTOTRACEZhu.KnEXPLAIN PLANnRunning explain plan and show output:nExplain plan for Statement;n

14、?/rdbms/admin/utlxpls.sql - Shows plan table output for serial processingn?/rdbms/admin/utlxplp.sql - Shows plan table output with parallel execution columnsnAnalyze plannOptimizer modenScan modenRecursive callsnRedo sizes數(shù)據(jù)庫(kù)測(cè)試工具數(shù)據(jù)庫(kù)測(cè)試工具 (Contd)Zhu.K數(shù)據(jù)庫(kù)測(cè)試工具數(shù)據(jù)庫(kù)測(cè)試工具 (Contd)nStatspacknInstall packagenCo

15、nnect as sysdbanRun ?/rdbms/admin/spcreate sql, to create all required tables, packages, user and grant privilege.nSpecify 3 required parameters: user password, tablespace and temp tablespace, it is better to create independent tablespace and temp tablespace for this schema.nUsing statspacknconnect

16、as perfstats.nEXECUTE statspack.snap; (after this process finished, we can see a set of data had been generated to perfstats. STATS$SYSSTAT, by SNAP_IDm this means, system snapshot had been generated by executing this package.nAn integer snap_id will be returned, we can get it by SMART calling, or f

17、rom latest SNAP_ID from table STATS$SYSSTAT.nRunning the Statspack Reportnconnect as perfstats.nExecute sql: ?/rdbms/admin/spreportnSpecify 3 parameters: start snapshot ID, end snapshot ID and report name (default is sp_xx_yy.lis in current path).Or batch define and run by define begine_snap, end_sn

18、ap, report_name before run sql.Zhu.KOracle故障診斷故障診斷利用故障診斷的方法(Oracle DB Side Transactions by SQL Stage)可以將SQL語(yǔ)句執(zhí)行過(guò)程中的時(shí)間劃分為四部分:n解析時(shí)間(Parse Time)n執(zhí)行時(shí)間(Execute Time)n讀取時(shí)間(Fetch Time)n其他時(shí)間(Other Time),例如綁定時(shí)間(bind time)。 Zhu.KOracle故障診斷故障診斷nSQL執(zhí)行時(shí)間分解Zhu.K數(shù)據(jù)庫(kù)服務(wù)器典型性能問(wèn)題數(shù)據(jù)庫(kù)服務(wù)器典型性能問(wèn)題n數(shù)據(jù)庫(kù)服務(wù)器性能問(wèn)題及原因分析 n單一類(lèi)型事務(wù)響應(yīng)時(shí)間

19、過(guò)長(zhǎng) n數(shù)據(jù)庫(kù)服務(wù)器負(fù)載 n糟糕的數(shù)據(jù)庫(kù)設(shè)計(jì) n事務(wù)粒度過(guò)大 n批任務(wù)對(duì)普通用戶性能的影響 n并發(fā)處理能力差 n鎖沖突嚴(yán)重 n資源鎖定造成的數(shù)據(jù)庫(kù)事務(wù)超時(shí) n數(shù)據(jù)庫(kù)死鎖 數(shù)據(jù)庫(kù)服務(wù)器典型性能問(wèn)題數(shù)據(jù)庫(kù)服務(wù)器典型性能問(wèn)題數(shù)據(jù)庫(kù)性能問(wèn)題的一般解決辦法 n監(jiān)視性能相關(guān)數(shù)據(jù);n定位資源占用較大的事務(wù)并做出必要的優(yōu)化或調(diào)整;n定位鎖沖突,修改鎖沖突發(fā)生嚴(yán)重的應(yīng)用邏輯;n對(duì)規(guī)模較大的數(shù)據(jù)或者無(wú)法通過(guò)一般優(yōu)化解決的鎖沖突進(jìn)行分布。Oracle與提高性能有關(guān)的特性與提高性能有關(guān)的特性 n索引n并行執(zhí)行n簇與散列簇n分區(qū)n多線程服務(wù)器n同時(shí)讀取多塊數(shù)據(jù) Oracle配置的關(guān)鍵參數(shù)配置的關(guān)鍵參數(shù) nMAX_DSP

20、ATCHERS:這個(gè)參數(shù)指定了系統(tǒng)允許同時(shí)進(jìn)行的調(diào)度進(jìn)程的最大數(shù)量。nMAX_SHARED_SERVERS:這個(gè)參數(shù)指定了系統(tǒng)允許同時(shí)進(jìn)行的共享服務(wù)器進(jìn)程的最大數(shù)量。如果系統(tǒng)中出現(xiàn)的人為死鎖過(guò)于頻繁,那么管理員應(yīng)該增大這個(gè)參數(shù)的值。nPARALLEL_ADAPTIVE_MULTI_USER:當(dāng)這個(gè)參數(shù)的值為T(mén)RUE時(shí),系統(tǒng)將啟動(dòng)一個(gè)能提高使用并行執(zhí)行的多用戶系統(tǒng)性能的自適應(yīng)算法。這個(gè)算法將根據(jù)查詢(xún)開(kāi)始時(shí)的系統(tǒng)負(fù)載自動(dòng)降低查詢(xún)請(qǐng)求的并行度。Oracle配置的關(guān)鍵參數(shù)配置的關(guān)鍵參數(shù) nPARLLEL_MIN_SERVERS:這個(gè)參數(shù)指定了實(shí)例并行執(zhí)行進(jìn)程的最小數(shù)量。其值就是實(shí)例啟動(dòng)時(shí)Oracle創(chuàng)建的并行執(zhí)行進(jìn)程數(shù)。nPARLLEL_THREADS_PER_CPU:這個(gè)參數(shù)指定了實(shí)例默認(rèn)的并行度和并行自適應(yīng)以及負(fù)載平衡算法。它指明了并行執(zhí)行過(guò)程中一個(gè)CPU能處理的進(jìn)程或線程數(shù)。nPARTITION_VIEW_ENABLED:這個(gè)參數(shù)指定了優(yōu)化器是否使用分區(qū)視圖。Oracle推薦用戶使用分區(qū)表(這是在Oracle8之后引入的)而不是分區(qū)視圖。分區(qū)視圖只是為了提供Oracle的后向兼容性。nREVOVERY_PARALLELISM:這個(gè)參數(shù)指定了恢復(fù)數(shù)據(jù)庫(kù)系統(tǒng)時(shí)使用的進(jìn)程數(shù)。 9.2.2 數(shù)據(jù)庫(kù)并發(fā)控

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論