国产自产第一-国产自产对白一区-国产自产精品-国产自产区44页-国产自产在线-国产自产自拍-国产自产自拍视频-国产自精品

金喜正规买球

Loadrunner案例:某通信企業(yè)Web業(yè)務(wù)系統(tǒng)的性能測試

原創(chuàng)|行業(yè)資訊|編輯:龔雪|2016-06-07 11:57:26.000|閱讀 2031 次

概述:本文主要為大家講述一則Loadrunner案例,關(guān)于某省電信公司的業(yè)務(wù)系統(tǒng)的性能測試。

# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>

相關(guān)鏈接:

項(xiàng)目背景

該案例是某通信企業(yè)Web業(yè)務(wù)系統(tǒng)的性能測試。該Web業(yè)務(wù)系統(tǒng)用于管理企業(yè)的備品和備件,包括對(duì)網(wǎng)絡(luò)設(shè)備的庫存管理、庫存流轉(zhuǎn)、備品備件的查詢統(tǒng)計(jì)等功能。其中庫存管理、備品備件查詢等功能主要是對(duì)數(shù)據(jù)庫的增、刪、改、查操作,庫存流轉(zhuǎn)則主要體現(xiàn)為工作流的實(shí)現(xiàn)。

該系統(tǒng)的主要用戶是通信企業(yè)的備品備件管理人員,通過該系統(tǒng),管理人員能夠?qū)ΜF(xiàn)有的備品備件庫數(shù)據(jù)進(jìn)行查詢、更新,也可以通過該系統(tǒng)提供的業(yè)務(wù)流程完成備品備件的出庫和入庫操作。

對(duì)系統(tǒng)的測試在系統(tǒng)上線時(shí)進(jìn)行,主要目的是驗(yàn)證系統(tǒng)的性能能否達(dá)到用戶要求。

性能測試工具Loadrunner

點(diǎn)擊下載

項(xiàng)目特點(diǎn)

該項(xiàng)目基于J2EE實(shí)現(xiàn),采用Tomcat作為應(yīng)用服務(wù)器,架構(gòu)上使用Struts+EJB+Herbinate,在業(yè)務(wù)上實(shí)現(xiàn)了多個(gè)流轉(zhuǎn)的流程。

該系統(tǒng)是一個(gè)典型的J2EE應(yīng)用,從性能測試的角度來說,具有很強(qiáng)的代表性。從技術(shù)的角度來說,該系統(tǒng)使用了驗(yàn)證碼方式防止對(duì)系統(tǒng)口令的暴力破解和可能的內(nèi)部SPAM,由于現(xiàn)在越來越多的系統(tǒng)都采用驗(yàn)證碼方式提高系統(tǒng)的安全性,因此在對(duì)本案例的描述中也特別給出了針對(duì)這種驗(yàn)證碼的性能測試解決方案。

該系統(tǒng)的網(wǎng)絡(luò)環(huán)境和設(shè)備相對(duì)簡單,網(wǎng)絡(luò)環(huán)境是企業(yè)內(nèi)部的千兆網(wǎng)絡(luò),基本不可能對(duì)系統(tǒng)性能造成影響;設(shè)備方面,采用一臺(tái)UNIX服務(wù)器作為數(shù)據(jù)庫服務(wù)器,一臺(tái)UNIX服務(wù)器作為應(yīng)用服務(wù)器。

該系統(tǒng)是一個(gè)以人機(jī)交互為主的系統(tǒng),因此,對(duì)系統(tǒng)性能的體現(xiàn)主要通過響應(yīng)時(shí)間來給出。

由于Web應(yīng)用采用的協(xié)議單一(HTTP和HTTPS協(xié)議),因此特別適合用商業(yè)的性能測試工具(如LoadRunner)來輔助進(jìn)行測試,本案例的描述中重點(diǎn)結(jié)合LoadRunner的使用,描述了在項(xiàng)目性能測試中用LoadRunner等工具進(jìn)行測試的方法。

性能測試過程

本節(jié)描述性能測試的全過程,根據(jù)本書第5章的性能測試過程描述,按照PTGM模型分別對(duì)性能測試的各階段進(jìn)行闡述。

測試前期準(zhǔn)備

在了解該項(xiàng)目的基本狀況之后,首先開始測試前期準(zhǔn)備工作。

1.系統(tǒng)基礎(chǔ)功能驗(yàn)證

本案例中描述的性能測試安排在功能驗(yàn)收測試之后,因此在性能測試中不需要額外安排基礎(chǔ)功能驗(yàn)證。

2.組建測試團(tuán)隊(duì)

根據(jù)該項(xiàng)目的具體情況,建立一個(gè)5人的團(tuán)隊(duì)負(fù)責(zé)本次測試工作。由于該系統(tǒng)的設(shè)備環(huán)境和網(wǎng)絡(luò)環(huán)境相對(duì)簡單,因此沒有特別在團(tuán)隊(duì)中包括系統(tǒng)工程師,團(tuán)隊(duì)的5個(gè)成員中,1名是數(shù)據(jù)庫工程師,1名是性能測試設(shè)計(jì)和分析人員,3名是性能測試開發(fā)和實(shí)施人員。

在測試開始之前,根據(jù)對(duì)項(xiàng)目的了解,預(yù)計(jì)該系統(tǒng)的性能測試難點(diǎn)主要在測試設(shè)計(jì)和測試腳本實(shí)現(xiàn)階段,由于系統(tǒng)協(xié)議單一,架構(gòu)相對(duì)比較簡單,且有合適的商業(yè)工具可以直接使用,因此在測試工具方面不需要投入太多的精力。

3.測試工具需求確認(rèn)

考慮到系統(tǒng)測試的要求,確定的測試工具需求如下:

  • 支持HTTP/HTTPS協(xié)議層上的測試。
  • 能監(jiān)控UNIX服務(wù)器的主要性能計(jì)數(shù)器值,如服務(wù)器的內(nèi)存使用狀況、CPU使用狀況、磁盤I/O情況等。
  • 能監(jiān)控Windows服務(wù)器的主要性能計(jì)數(shù)器,如服務(wù)器的內(nèi)存使用狀況、CPU使用狀況、磁盤I/O情況、進(jìn)程的內(nèi)存使用情況等。
  • 支持對(duì)Oracle數(shù)據(jù)庫的主要性能計(jì)數(shù)器值進(jìn)行監(jiān)控。
  • 支持對(duì)Tomcat應(yīng)用服務(wù)器的JVM內(nèi)存使用狀況進(jìn)行監(jiān)控。

4.測試工具需求確認(rèn)

性能預(yù)備測試用于對(duì)系統(tǒng)建立直觀的認(rèn)識(shí),在正式開始測試之前體驗(yàn)性地使用了本系統(tǒng)的主要功能,根據(jù)體驗(yàn),系統(tǒng)的所有操作均能在4秒之內(nèi)完成,響應(yīng)時(shí)間相對(duì)較長的是登錄過程。

測試工具引入

根據(jù)測試前期準(zhǔn)備確定的測試工具需求,目前市面上的性能測試工具基本都能夠支持這些需求,唯一有困難的是“監(jiān)控Tomcat應(yīng)用服務(wù)器的JVM使用狀況”,基本上所有的商業(yè)工具都不支持該需求。

最終確定的測試工具包括兩個(gè)方面的內(nèi)容:采用LoadRunner工具作為主要的性能測試工具;對(duì)Tomcat的JVM使用狀況的監(jiān)控通過自行開發(fā)工具來實(shí)現(xiàn)。

測試計(jì)劃

測試計(jì)劃階段需要分析用戶活動(dòng),確定系統(tǒng)的性能目標(biāo)。

1.性能測試領(lǐng)域分析

根據(jù)對(duì)項(xiàng)目背景的了解,本性能測試要解決的主要問題為:驗(yàn)證系統(tǒng)是否達(dá)到了預(yù)期的性能指標(biāo)。

這些內(nèi)容對(duì)應(yīng)于第2章中給出的能力驗(yàn)證應(yīng)用領(lǐng)域。進(jìn)一步根據(jù)第2章的內(nèi)容,本測試可用的性能測試方法包括PerformanceTesting和StressTesting方法。

2.用戶活動(dòng)剖析與業(yè)務(wù)建模

本案例描述系統(tǒng)的建模主要通過用戶活動(dòng)建模和業(yè)務(wù)建模來體現(xiàn)和進(jìn)行。

根據(jù)對(duì)被測系統(tǒng)的使用用戶進(jìn)行書面的問卷調(diào)查,在問卷基礎(chǔ)上進(jìn)行分析,可以得到如表1所示的典型用戶活動(dòng)分析列表。

表1

注:①“實(shí)際使用用戶數(shù)量”是針對(duì)一個(gè)具體的業(yè)務(wù)模塊的,此處給出的數(shù)據(jù)是對(duì)某個(gè)具體業(yè)務(wù)模塊的估算。本案例中,通信企業(yè)實(shí)際使用該系統(tǒng)的人數(shù)約為1000人,但考慮到選取的“1天”的考察時(shí)間范圍,每個(gè)模塊每天的使用者為20~200人不等。

 ②“業(yè)務(wù)發(fā)生數(shù)”是根據(jù)書面的用戶調(diào)查方式獲取的,具體方法是將用戶的平均業(yè)務(wù)發(fā)生數(shù)乘以用戶數(shù)。

表1初步描述了用戶對(duì)各業(yè)務(wù)系統(tǒng)的使用情況,可以以此為基礎(chǔ)來進(jìn)一步分析用戶場景,并據(jù)此設(shè)計(jì)相應(yīng)的測試方案和用例,業(yè)務(wù)場景的分析與企業(yè)的實(shí)際業(yè)務(wù)模式相關(guān)。

在對(duì)用戶活動(dòng)進(jìn)行建模的過程中,還得到了以下數(shù)據(jù):

  1. 平均每天使用該系統(tǒng)的總用戶數(shù)約為600。
  2. 平均每個(gè)用戶的loginsession時(shí)間為4小時(shí)(也就是說,平均每個(gè)用戶在8小時(shí)時(shí)間內(nèi)有4小時(shí)處于“使用系統(tǒng)”的狀態(tài))。
  3. 平均每個(gè)用戶在loginsession的時(shí)間范圍內(nèi)進(jìn)行500個(gè)業(yè)務(wù)操作。

根據(jù)以上數(shù)據(jù),可以用第1章給出的公式進(jìn)行計(jì)算:

并發(fā)用戶數(shù):600×4/8=300

吞吐量:300×500/(4×60×60)=10,單位是頁面瀏覽數(shù)/秒(PageView/sec)。

有了這些數(shù)據(jù)就可以進(jìn)行測試場景的設(shè)計(jì)了。

在分析了用戶的行為之后,為了給測試腳本開發(fā)提供依據(jù),還需要對(duì)每個(gè)業(yè)務(wù)的操作過程進(jìn)行描述。在本案例中,以“庫存流轉(zhuǎn)―審批”為例,對(duì)業(yè)務(wù)操作進(jìn)行描述。

“庫存流轉(zhuǎn)——審批”業(yè)務(wù)步驟描述如下:

  1. 用戶單擊“審批”鏈接,進(jìn)入審批頁面,頁面顯示所有等待審批的申請(qǐng)單。
  2. 用戶選中所有顯示審批單中的第一張審批單,單擊“審批通過”按鈕。
  3. 系統(tǒng)在頁面上反饋“審批通過”信息。

從表1中可以看到,該系統(tǒng)的主要業(yè)務(wù)集中在庫存流轉(zhuǎn)流程相關(guān)的活動(dòng)上,因?yàn)檫@些活動(dòng)都圍繞流轉(zhuǎn)進(jìn)行,在業(yè)務(wù)場景設(shè)計(jì)時(shí)必須考慮流程之間的交互性。

另外,“導(dǎo)入備件Excel文件”業(yè)務(wù)的發(fā)生頻率和實(shí)際使用的用戶數(shù)量都不大,但由于每次的導(dǎo)入操作均會(huì)導(dǎo)入大量的數(shù)據(jù),導(dǎo)入過程中系統(tǒng)承受的壓力很大,因此在設(shè)計(jì)場景時(shí)有必要單獨(dú)考慮該場景。

3.確定性能目標(biāo)

本性能測試的應(yīng)用領(lǐng)域已被確定為能力驗(yàn)證,在確定性能目標(biāo)時(shí),主要圍繞這個(gè)方面確定。

本項(xiàng)目是一個(gè)開發(fā)項(xiàng)目,從需求和設(shè)計(jì)中可以獲得關(guān)于該系統(tǒng)性能目標(biāo)的描述。根據(jù)需求和設(shè)計(jì)文檔,該系統(tǒng)的性能約束在文檔中的表達(dá)如下:

  1. 系統(tǒng)的頁面響應(yīng)時(shí)間不超過10秒。
  2. 需要評(píng)估導(dǎo)入備件Excel文件對(duì)系統(tǒng)性能的影響,如果該操作影響其他業(yè)務(wù),需給出建議。
  3. 系統(tǒng)能夠穩(wěn)定運(yùn)行。

在這些描述中,第(1)條是比較清晰的性能需求描述;第(2)條實(shí)際描述的并不是需求,而是希望在性能測試中安排對(duì)“導(dǎo)入”操作的性能表現(xiàn)的測試;第(3)條描述的是用戶的性能要求,但不夠明確。

經(jīng)過多次溝通,最終確定的明確的性能需求如下:

系統(tǒng)在典型數(shù)據(jù)量情況下,頁面響應(yīng)時(shí)間不超過10秒:典型數(shù)據(jù)量定義為當(dāng)前系統(tǒng)的所有備件規(guī)模的靜態(tài)數(shù)據(jù)和半年的流轉(zhuǎn)數(shù)據(jù)。

  1. 系統(tǒng)在典型數(shù)據(jù)量情況下,頁面響應(yīng)時(shí)間不超過10秒:典型數(shù)據(jù)量定義為當(dāng)前系統(tǒng)的所有備件規(guī)模的靜態(tài)數(shù)據(jù)和半年的流轉(zhuǎn)數(shù)據(jù)。
  2. 系統(tǒng)能夠在高于實(shí)際系統(tǒng)運(yùn)行壓力1倍的壓力情況下,持續(xù)穩(wěn)定工作72小時(shí):持續(xù)穩(wěn)定工作定義為在系統(tǒng)運(yùn)行期間,系統(tǒng)的可用資源不會(huì)出現(xiàn)持續(xù)性地減少,用戶響應(yīng)速度沒有顯著變化。

除了這兩個(gè)直接從文檔中反映的系統(tǒng)性能需求,根據(jù)和用戶、項(xiàng)目經(jīng)理等的溝通,另外確定的其他性能目標(biāo)包括:

  1. 評(píng)估典型規(guī)模的Excel備件文件導(dǎo)入時(shí)對(duì)系統(tǒng)性能的影響:評(píng)估內(nèi)容包括兩個(gè)方面,一個(gè)方面是對(duì)典型規(guī)模的Excel文件(考慮到系統(tǒng)實(shí)際的備件數(shù)據(jù)規(guī)模,選擇一個(gè)20MB、包含50000條數(shù)據(jù)記錄的Excel文件)進(jìn)行導(dǎo)入時(shí)的效率評(píng)估;另一方面是通過組合場景,判斷導(dǎo)入操作對(duì)其他操作的影響。
  2. 在頁面響應(yīng)時(shí)間要求10秒的情況下,找到系統(tǒng)能夠承受的最大用戶數(shù)量:該要求可以給用戶提供一個(gè)可擴(kuò)展性的參考。

表2給出了分析整理后的性能需求描述。

表2

對(duì)能力驗(yàn)證應(yīng)用領(lǐng)域來說,本測試需要重點(diǎn)關(guān)注的是業(yè)務(wù)的響應(yīng)時(shí)間、各服務(wù)器的資源使用狀況,結(jié)合性能測試需求,性能目標(biāo)可以定義如下:

  1. 在典型用戶數(shù)量要求的情況下,服務(wù)器CPU平均使用率不高于75%,內(nèi)存使用率不高于75%。
  2. 在穩(wěn)定性測試的壓力情況下,服務(wù)器CPU平均使用率不高于95%,內(nèi)存使用率不高于90%。

4.制定測試時(shí)間計(jì)劃

本案例采用商業(yè)性能測試工具LoadRunner進(jìn)行測試,由于本案例涉及較多的流程交互等內(nèi)容,因此重點(diǎn)集中在如何設(shè)計(jì)和實(shí)現(xiàn)合理的性能測試腳本,這需要消耗較多的時(shí)間和人力資源。

另外,測試結(jié)果的分析也需要安排足夠的時(shí)間進(jìn)行。本案例的測試時(shí)間計(jì)劃安排如表3所示。

表3

測試設(shè)計(jì)與開發(fā)

測試設(shè)計(jì)與開發(fā)包括測試環(huán)境設(shè)計(jì)、測試場景設(shè)計(jì)、測試用例設(shè)計(jì)和測試輔助工具開發(fā)多個(gè)活動(dòng)。對(duì)本案例而言,測試場景關(guān)注用戶以何種方式使用本系統(tǒng),以場景來體現(xiàn)性能測試的目的和目標(biāo)。

1.測試環(huán)境設(shè)計(jì)

本性能測試需要驗(yàn)證系統(tǒng)在實(shí)際生產(chǎn)部署環(huán)境上的性能,因此,選擇盡可能接近實(shí)際生產(chǎn)環(huán)境的環(huán)境來進(jìn)行測試。由于本測試的環(huán)境就是實(shí)際的生產(chǎn)環(huán)境,因此在環(huán)境設(shè)計(jì)上,沒有太多需要考慮的內(nèi)容。

最終確定的測試環(huán)境如表4所示。

表2給出了用作測試的基礎(chǔ)數(shù)據(jù)量?;A(chǔ)數(shù)據(jù)量的計(jì)算方法在前兩個(gè)案例中都有描述,在此不再重復(fù)。

表4

2.測試場景設(shè)計(jì)

結(jié)合表1的和表2可以很容易地為該案例給出需要的測試場景。

根據(jù)上面給出的數(shù)據(jù),設(shè)定的總并發(fā)用戶數(shù)為300,按照業(yè)務(wù)模塊訪問用戶數(shù)比例給定VU分配比例,為了達(dá)到10PageView/sec的吞吐量,每個(gè)VU的操作之間間隔應(yīng)該為300/10=30秒。

根據(jù)調(diào)查的結(jié)果,我們確定了幾個(gè)典型的測試場景,如表5所示。

表5-1

表5-2

3.測試用例設(shè)計(jì)

確定測試場景之后,原有的業(yè)務(wù)操作描述可以更進(jìn)一步完善為可映射為腳本的測試用例描述。

在本案例中,可以將用戶業(yè)務(wù)操作形成更詳細(xì)的用例步驟。例如,“審批”業(yè)務(wù)可以描述如下:

用例編號(hào):TC_XXXX_XX-1

用例條件:用戶已登錄,登錄用于具有審批的權(quán)限

用戶步驟和驗(yàn)證方法:

  1. 用戶單擊“庫存流轉(zhuǎn)”鏈接,進(jìn)入庫存流轉(zhuǎn)頁面。
    【驗(yàn)證】頁面出現(xiàn)“庫存流轉(zhuǎn)”提示字符串。
  2. 用戶在頁面左側(cè)樹視圖上單擊“審批”鏈接,進(jìn)入審批頁面。
    【驗(yàn)證】頁面上出現(xiàn)“申請(qǐng)單列表”提示字符串。
  3. 用戶在頁面給出的等待審批的申請(qǐng)單列表中選擇最上方的一個(gè),單擊“審批”按鈕,進(jìn)入審批頁面。
    【驗(yàn)證】給出選中審批單信息,頁面上出現(xiàn)被選中審批單的編號(hào)。
  4. 用戶輸入審批信息,單擊“通過”按鈕。
    【驗(yàn)證】頁面上出現(xiàn)“審批通過”提示字符串

從該用例的描述可以看到,在每個(gè)操作步驟之后,都給出了相應(yīng)的驗(yàn)證手段。對(duì)性能測試來說,驗(yàn)證手段同樣關(guān)鍵。性能測試工具(如LoadRunner等)在性能測試過程中為了VU的效率,一般只通過HTTP返回的HTTPCode判斷請(qǐng)求是否成功,對(duì)于典型的如HTTP500、HTTP404等錯(cuò)誤,LoadRunner能夠判斷,但如果采用了自定義錯(cuò)誤頁面,或是返回了表示異常狀態(tài)的頁面,LoadRunner便不能發(fā)現(xiàn)。

基于以上原因,通常需要在腳本中添加一些用于驗(yàn)證返回頁面是否正確的代碼,最常用的方法是判斷頁面中是否存在特定的字符串。因此,在每個(gè)用例中都描述了每個(gè)步驟結(jié)果的驗(yàn)證方法。

4.腳本和輔助工具的開發(fā)

本案例采用LoadRunner作為性能測試工具,下面通過該案例首先介紹LoadRunner在性能測試中的一般應(yīng)用步驟,然后重點(diǎn)說明在性能測試過程中遇到的問題和解決方法,依次演示LoadRunner使用中的一些技巧和技術(shù)。

(1)LoadRunner的性能測試過程。

用LoadRunner工具輔助進(jìn)行性能測試,一般包括錄制和調(diào)試腳本、設(shè)置場景、運(yùn)行場景、收集結(jié)果并分析4個(gè)活動(dòng)。

錄制和調(diào)試腳本活動(dòng)使用LoadRunner的VirtualUserGenerator應(yīng)用(下文中簡稱為VUGenerator)完成,運(yùn)行該應(yīng)用,選擇合適的錄制協(xié)議,打開被測應(yīng)用的客戶端程序(對(duì)B/S應(yīng)用,客戶端程序就是瀏覽器),按照預(yù)期即可進(jìn)行錄制。LoadRunner錄制的腳本中體現(xiàn)的是客戶端和服務(wù)器之間的通信數(shù)據(jù)以及相互的交互關(guān)系。

腳本的錄制依據(jù)事先分析出的用戶活動(dòng)和案例。按照測試用例設(shè)計(jì)中給出的具體操作描述,打開VUGenerator工具,輸入應(yīng)用的起始URL,根據(jù)用例描述執(zhí)行操作,錄制腳本。LoadRunner針對(duì)Web應(yīng)用錄制的腳本默認(rèn)分為vuser_init、Action和vuser_end3段,其中,vuser_init和vuser_end段只在腳本運(yùn)行時(shí)執(zhí)行一次,而Action段的執(zhí)行次數(shù)由腳本或場景的RuntimeSetting控制。一般來說,在錄制腳本時(shí),會(huì)把Login和Logout的步驟分別放在vuser_init和vuserend段中,而把針對(duì)業(yè)務(wù)的操作步驟放在Action段中。

VUGenerator同時(shí)提供了對(duì)腳本調(diào)試的良好支持。腳本錄制完成后,需要經(jīng)過一個(gè)仔細(xì)的調(diào)試階段才能保證腳本確實(shí)準(zhǔn)確無誤地反映了計(jì)劃中的測試意圖。調(diào)試過程中經(jīng)常進(jìn)行的操作是參數(shù)化、關(guān)聯(lián)和調(diào)試輸出。

設(shè)置場景活動(dòng)由LoadRunner的Controller工具支持。運(yùn)行Controller工具,根據(jù)測試設(shè)計(jì)中確定的典型測試場景(見表1),將不同的腳本按照?qǐng)鼍爸性O(shè)計(jì)的比例分配到一個(gè)場景中。并且,測試場景中還需要根據(jù)設(shè)計(jì)的典型場景中的“性能計(jì)數(shù)器”項(xiàng)目,設(shè)置需要進(jìn)行監(jiān)控的性能計(jì)數(shù)器內(nèi)容。圖1描述的是根據(jù)表5設(shè)計(jì)的“系統(tǒng)應(yīng)用典型場景1”實(shí)施的場景。

圖1

場景設(shè)置涉及的細(xì)節(jié)內(nèi)容較多,除了在該場景中分配執(zhí)行各腳本的VU數(shù)量外,還需要根據(jù)測試設(shè)計(jì)添加需要增加的性能計(jì)數(shù)器(見圖2),最后,特別需要關(guān)注的是針對(duì)腳本的RuntimeSetting設(shè)置(見圖3),例如,表5給出的“典型場景1”中描述了需要每個(gè)腳本Action部分迭代100次,這就需要在Controller的設(shè)置中給出每個(gè)腳本的迭代次數(shù)設(shè)置。

圖2

圖3

運(yùn)行場景活動(dòng)相對(duì)簡單,單擊Run頁面中的StartScenario按鈕,Controller就會(huì)自動(dòng)開始運(yùn)行場景,并在ScenarioStatus中顯示運(yùn)行時(shí)的信息。

收集結(jié)果并分析活動(dòng)需要Analysis應(yīng)用的支持,Analysis應(yīng)用可以被獨(dú)立啟動(dòng),也可以從Controller程序中調(diào)用。從Controller程序中調(diào)用時(shí),Analysis應(yīng)用直接讀取本Controller當(dāng)前場景運(yùn)行時(shí)的信息。圖4給出了Analysis應(yīng)用運(yùn)行時(shí)的界面。

圖4

Analysis應(yīng)用能夠根據(jù)用戶設(shè)定的性能計(jì)數(shù)器生成各種性能報(bào)表。不過,Analysis最多也只能起到輔助進(jìn)行性能測試分析的作用,要對(duì)性能測試的結(jié)果進(jìn)行分析,還要依靠測試分析者的經(jīng)驗(yàn)、技能和對(duì)系統(tǒng)的了解。

(2)錄制“登錄”腳本。

針對(duì)該應(yīng)用錄制登錄腳本時(shí),驗(yàn)證碼是一個(gè)首要的困難。

驗(yàn)證碼是在進(jìn)行登錄或內(nèi)容提交時(shí),頁面上隨機(jī)出現(xiàn)的人工可識(shí)別但機(jī)器不可識(shí)別的驗(yàn)證字符串(一般是采用背景、扭曲等方式產(chǎn)生的圖片),要求登錄或提交內(nèi)容的同時(shí)輸入,如果驗(yàn)證碼輸入錯(cuò)誤,則不允許進(jìn)行要求的操作。

本案例中的被測系統(tǒng)使用了驗(yàn)證碼技術(shù),其要求輸入驗(yàn)證碼的頁面內(nèi)容如圖5所示。

驗(yàn)證碼可以有效防止采用機(jī)器猜測方法對(duì)口令的刺探,目前己經(jīng)被許多Internet或Intranet應(yīng)用接受為標(biāo)準(zhǔn)的實(shí)現(xiàn)方式。但對(duì)性能測試來說,驗(yàn)證碼卻帶來了很大的問題。因?yàn)轵?yàn)證碼具有阻止通過自動(dòng)工具嘗試的特性,因此,對(duì)于本質(zhì)上也是自動(dòng)化工具的性能測試工具,驗(yàn)證碼同樣具有相當(dāng)?shù)耐Α?/p>

圖5

具體到本案例系統(tǒng),在錄制腳本時(shí),LoadRunner可以錄制用戶輸入的“用戶名”、“密碼”和“驗(yàn)證碼”信息,但在回放時(shí),由于要求的驗(yàn)證碼與錄制時(shí)的驗(yàn)證碼不可能相同,因此回放必然會(huì)失敗。

為使性能測試能夠順利進(jìn)行,需要采用某種方法解決上述問題。在筆者的實(shí)際工作中,通常使用下面3種方法解決該問題。

第1種方法是最容易想到的方法——在被測系統(tǒng)中暫時(shí)屏蔽驗(yàn)證功能,也就是說,為性能測試臨時(shí)修改應(yīng)用,在應(yīng)用中屏蔽驗(yàn)證碼(也就是說,無論用戶輸入的是什么驗(yàn)證碼,應(yīng)用都認(rèn)為其是正確的)。

這種方法最容易實(shí)現(xiàn),對(duì)性能測試結(jié)果也不會(huì)有太大的影響。這種方式去掉了“驗(yàn)證驗(yàn)證碼正確性”這個(gè)環(huán)節(jié),從理論上來說,測試得到的結(jié)果與存在“驗(yàn)證驗(yàn)證碼正確性”環(huán)節(jié)的應(yīng)用系統(tǒng)存在細(xì)微的差異,不過考慮到此環(huán)節(jié)一般不會(huì)成為系統(tǒng)性能瓶頸,因此認(rèn)為這種處理方式對(duì)性能測試結(jié)果沒有太大的影響。

這種方法對(duì)于處于未上線狀態(tài)或在受控的測試環(huán)境中運(yùn)行的系統(tǒng)非常適用,但對(duì)于已經(jīng)實(shí)際上線運(yùn)行的系統(tǒng)來說,這種方法有一個(gè)明顯的問題:屏蔽驗(yàn)證功能會(huì)對(duì)己經(jīng)在線運(yùn)行的業(yè)務(wù)造成非常大的安全性風(fēng)險(xiǎn)。

因此,我們建議在受控的測試環(huán)境中采用該方法,但對(duì)于已上線的系統(tǒng)來說,不推薦使用該方法。

第2種方法是在第1種方法的基礎(chǔ)上稍微進(jìn)行一些改進(jìn)。

第1種方法的主要問題是安全性問題,為了應(yīng)對(duì)對(duì)在線系統(tǒng)安全性的威脅但在其中留一個(gè)“后門”——設(shè)定一個(gè)“萬,可以在修改程序時(shí)不取消驗(yàn)證,能驗(yàn)證碼”,只要用戶輸入該“萬能驗(yàn)證碼”,應(yīng)用就認(rèn)為驗(yàn)證通過,否則,還是按照原先的驗(yàn)證方式進(jìn)行驗(yàn)證。

這種方式仍然存在安全性問題,但由于可以通過管理手段將“萬能驗(yàn)證碼”控制在一個(gè)較小的范圍內(nèi),而且只在性能測試期間保留這個(gè)“后門,基本上可以看作是可靠的。

相對(duì)第1種方法來說,這種方法在安全性方面進(jìn)行了改進(jìn),在能夠通過管理手段控制“萬能驗(yàn)證碼”范圍的情況下,該方法不失為一種簡單易行且相對(duì)安全的方法。

第3種方法采用更進(jìn)一步的方法來處理驗(yàn)證碼的問題。

LoadRunner能夠調(diào)用外部的DLL或組件接口,考慮到這個(gè)特性可以根據(jù)“驗(yàn)證碼驗(yàn)證”的實(shí)現(xiàn),寫一個(gè)獲取驗(yàn)證碼的動(dòng)態(tài)庫,在測試腳本中調(diào)用其接口即可。關(guān)于如何在LoadRunner中使用外部DLL,參見本書第11章的內(nèi)容。

在使用以上驗(yàn)證碼處理的方法時(shí),特別要注意,如果針對(duì)的是己上線運(yùn)行的實(shí)際系統(tǒng),無論用哪種方法,測試完成后,都必須立刻將應(yīng)用恢復(fù),并對(duì)系統(tǒng)進(jìn)行一次安全審計(jì),以免在測試期間被他人入侵。

在本案例中,采用第2種方法來解決驗(yàn)證碼帶來的問題。

以下是腳本中與登錄相關(guān)的部分代碼:

圖6-1

圖6-2

這段腳本中灰色背景的粗斜體內(nèi)容就是修改系統(tǒng)實(shí)現(xiàn)后留下的“后門”,其中,5847是在代碼中控制的一個(gè)“萬能驗(yàn)證碼”,主要用戶輸入該驗(yàn)證碼,系統(tǒng)就認(rèn)為驗(yàn)證通過。

細(xì)心的讀者還會(huì)發(fā)現(xiàn),這段代碼已經(jīng)經(jīng)過了關(guān)聯(lián)處理,其中粗斜體標(biāo)識(shí)的內(nèi)容就是關(guān)聯(lián)產(chǎn)生的參數(shù)內(nèi)容。這段代碼的關(guān)聯(lián)是通過LoadRunner的“自動(dòng)關(guān)聯(lián)”方式實(shí)現(xiàn)的,具體實(shí)現(xiàn)方法請(qǐng)見第11章。

解決了驗(yàn)證碼和登錄時(shí)關(guān)聯(lián)的問題后,登錄腳本還需要處理的另一個(gè)問題就是針對(duì)輸入的用戶名和口令進(jìn)行參數(shù)化處理,本案例中共使用了10組不同的用戶名和口令組合。對(duì)用戶名和口令實(shí)現(xiàn)參數(shù)化的具體步驟請(qǐng)見第11章。

(3)錄制“新建申請(qǐng)單”腳本。

錄制“新建申請(qǐng)單”腳本需要首先按照設(shè)計(jì)中該用例的操作步驟進(jìn)行錄制,以下是按照“新建申請(qǐng)單”用例步驟進(jìn)行錄制后生成的部分腳本代碼。

圖7

從腳本中可以看到,腳本中給出了申請(qǐng)的發(fā)起時(shí)間和到期時(shí)間,為了使腳本具有更好的適應(yīng)性,我們決定將這兩個(gè)時(shí)間分別以“當(dāng)前時(shí)間”和“當(dāng)前時(shí)間的前4天”進(jìn)行替代,這需要對(duì)腳本進(jìn)行參數(shù)化操作。在VUGenerator中,選中需要參數(shù)化的內(nèi)容(兩個(gè)時(shí)間),從右鍵菜單中選擇Replacewithaparameter命令,在出現(xiàn)的對(duì)話框中設(shè)定參數(shù)類型為Date/Time,設(shè)置時(shí)間格式為適合的格式,如圖8所示。

設(shè)置到期時(shí)間時(shí),需要將參數(shù)在當(dāng)前時(shí)間的基礎(chǔ)上再增加4天。圖9所示為設(shè)置到期時(shí)間的對(duì)話框,要注意其中設(shè)置的Offsetparameterby選項(xiàng)。

另外,為了便于直觀地識(shí)別數(shù)據(jù)是在哪次操作時(shí)插入的,在新建申請(qǐng)單時(shí)將“備注”的內(nèi)容修改為“test-”+“當(dāng)前時(shí)間”(當(dāng)前時(shí)間精確到秒)。

圖8

圖9

參數(shù)化修改完成后的腳本代碼如下:

圖10

除了參數(shù)化之外,在腳本中還需要體現(xiàn)“驗(yàn)證返回結(jié)果是否正確”,驗(yàn)證返回結(jié)果是否正確通過LoadRunner提供的web_eg_find函數(shù)實(shí)現(xiàn)。該函數(shù)的原型是:

圖11

在腳本中加入該函數(shù)可以根據(jù)頁面是否存在指定的文本等來驗(yàn)證系統(tǒng)處理的正確性。在用例設(shè)計(jì)時(shí)我們給出了“審批”業(yè)務(wù)的用例,其中包括的每個(gè)“驗(yàn)證”點(diǎn)都可以用這種方式來處理。例如,對(duì)給出的“【驗(yàn)證】頁面上出現(xiàn)‘申請(qǐng)單:列表’提示字符串”要求,可以在指定的發(fā)送請(qǐng)求的語句后添加下面的語句來驗(yàn)證:

Web_reg_find("Text=申請(qǐng)表:列表",LAST);

該語句可以驗(yàn)證返回的頁面上是否包含“申請(qǐng)表:列表”文本內(nèi)容。

(4)錄制“審批”腳本。

“審批”涉及到“流程”的概念,測試場景中要求一部分用戶“新建”申請(qǐng)單,另一部分用戶對(duì)已有的申請(qǐng)單進(jìn)行“審批”操作。錄制腳本時(shí),假設(shè)錄制了對(duì)某一條己有的申請(qǐng)單的“審批”,在回放時(shí),如果指定的申請(qǐng)單已經(jīng)被處理,則腳本的處理就會(huì)出錯(cuò)。

圖12給出了審批時(shí)能看到的待審批申請(qǐng)單列表,在性能測試過程中,每個(gè)VU看到的列表都會(huì)有所不同,為了使性能測試時(shí)每個(gè)VU都能夠順利執(zhí)行(處理待審批的申請(qǐng)單),必須在腳本中約定申請(qǐng)單的處理規(guī)則。為簡單起見,我們約定的規(guī)則是“每個(gè)VU都只處理當(dāng)前未被處理申請(qǐng)單列表中的第一條記錄”。

圖12

為了實(shí)現(xiàn)這個(gè)規(guī)則,必須對(duì)錄制后的腳本進(jìn)行一些處理。未處理的錄制生成腳本的相關(guān)部分代碼如下:

圖13

/*?jiǎng)幼?——單擊指定的審批單記錄,給出審批單的詳細(xì)信息,允許用戶對(duì)其進(jìn)行審批*/

圖14

/*?jiǎng)幼?——填寫審批單后進(jìn)行提交,提交為"通過審批"*/

圖15

以上代碼中的數(shù)字“20051223004”表明了要處理的記錄的ID。動(dòng)作2和動(dòng)作3都使用了唯一標(biāo)識(shí)審批單記錄的ID(數(shù)字20051223004)來對(duì)指定的審批單操作,那么,這個(gè)審批單的ID是從哪里得到的呢?

注意動(dòng)作1,該動(dòng)作返回當(dāng)前所有可被處理的審批單列表,幾乎可以肯定,用于標(biāo)識(shí)審批單ID的數(shù)字是作為該動(dòng)作的響應(yīng)返回給我們的。在VUGenerator中切換到TreeView視圖(單擊工具欄中的ViewTree按鈕),選擇ServerResponse選項(xiàng)卡,可以看到圖16所示的結(jié)果。

將圖16顯示的信息與圖15進(jìn)行對(duì)比,圖15是瀏覽器呈現(xiàn)的頁面,而圖16給出的則是該頁面的對(duì)象信息和以文本方式顯示的HTML內(nèi)容。

圖16左側(cè)樹型的3個(gè)radio:appids節(jié)點(diǎn)對(duì)應(yīng)于圖15顯示的3條待處理審批單。而且,從右側(cè)顯示的HTML文本內(nèi)容來看,這個(gè)Radio的value就是在后續(xù)腳本中需要使用到的用作ID的數(shù)值。

圖16

根據(jù)約定的規(guī)則,只要求每個(gè)VU處理第一條未審批的記錄,這樣問題就轉(zhuǎn)變成了一個(gè)典型的關(guān)聯(lián)問題―如何從動(dòng)作1返回的HTML文本中獲取到第一條未審批記錄的value值。

本書的第11章詳細(xì)描述了相關(guān)的內(nèi)容,對(duì)Web應(yīng)用的性能測試腳本而言,主要的關(guān)聯(lián)函數(shù)是web_reg_save_param函數(shù)。該函數(shù)必須放在產(chǎn)生需要獲取關(guān)聯(lián)內(nèi)容的語句之前(在本案例中,要放置在“動(dòng)作1”的語句之前),其原型是:

圖17

其中,第一個(gè)參數(shù)是關(guān)聯(lián)操作獲取的內(nèi)容保存的變量;最后一個(gè)參數(shù)是LAST;中間的參數(shù)描述了約束要獲取關(guān)聯(lián)內(nèi)容的各種屬性。指定關(guān)聯(lián)屬性時(shí),必須指定“左邊界”和“右邊界”,視情況還可指定其他屬性。對(duì)本案例來說,需要進(jìn)行關(guān)聯(lián)的內(nèi)容在返回的HTML文本中,文本內(nèi)容為:

圖18

需要通過關(guān)聯(lián)操作獲取的內(nèi)容是“20051223004",可以選取左邊界為“value="”,右邊界為“"”。考慮到返回的HTML文本中能夠與選取的左邊界與右邊界匹配的內(nèi)容較多,因此還需要通過ORD屬性指明具體的需要關(guān)聯(lián)的內(nèi)容位置。

最終關(guān)聯(lián)處理完成后的腳本代碼片斷如下:

圖19

添加的web_reg_save_param語句表明,需要關(guān)聯(lián)的內(nèi)容存在于下一個(gè)Request為“"”返回的HTML內(nèi)容的BODY中,該內(nèi)容左邊界為“value="”,右邊界,在這個(gè)HTML內(nèi)容的BODY中,我們想要通過關(guān)聯(lián)獲取的內(nèi)容順序排在第4個(gè)出現(xiàn)符合約束條件的位置。

(5)錄制其他腳本

錄制其他腳本的過程相對(duì)比較簡單,主要的技術(shù)細(xì)節(jié)和難點(diǎn)都在上幾個(gè)腳本的錄制過程中進(jìn)行了詳細(xì)描述,在此不再贅述。

測試執(zhí)行與管理

在測試執(zhí)行與管理之前的過程和活動(dòng)中,己經(jīng)明確規(guī)劃了本性能測試的環(huán)境、場景和腳本,在本過程中,只需要按照前面階段的要求,將測試場景和腳本進(jìn)行部署,然后執(zhí)行測試并記錄結(jié)果即可。

建立測試環(huán)境

建立測試環(huán)境只需要按照測試設(shè)計(jì)中設(shè)計(jì)的環(huán)境設(shè)計(jì)內(nèi)容部署測試環(huán)境。部署測試環(huán)境的工作一般由團(tuán)隊(duì)中的系統(tǒng)工程師完成,可以采用CheckList幫助進(jìn)行測試環(huán)境的部署。

表6給出了一個(gè)CheckList的示例。

表6

部署測試腳本和測試場景

根據(jù)設(shè)定的性能測試場景,在LoadRunner工具中對(duì)其進(jìn)行部署,部署過程請(qǐng)參考本書的第11章。

多學(xué)兩招:

本案例共設(shè)定了5個(gè)場景和多個(gè)業(yè)務(wù)用例(腳本)。在場景和用例較多時(shí),如果對(duì)其管理不善,常常會(huì)導(dǎo)致測試過程中的麻煩。因此,在實(shí)際測試過程中,一般使用具有一定意義的場景和腳本名稱標(biāo)識(shí)不同的場景和腳本。

例如,在本案例的測試過程中,使用“測試項(xiàng)目名稱_場景名稱”的方式為LoadRunner中的場景文件命名;使用“測試項(xiàng)目名稱_業(yè)務(wù)名稱_特殊說明”為LoadRunner中的腳本命名。這樣在后續(xù)的測試過程中,可以很容易地根據(jù)場景和腳本的名稱識(shí)別出場景和腳本的用途。

執(zhí)行測試和記錄結(jié)果

本性能測試中使用LoadRunner作為性能測試工具,性能指標(biāo)的數(shù)據(jù)主要通過LoadRunner的Monitor等獲得,因此主要通過LoadRunner來記錄數(shù)據(jù)。唯一例外的是針對(duì)Tomcat的服務(wù)器狀態(tài)監(jiān)控,這部分通過Tomcat提供的StatusSeverlet進(jìn)行監(jiān)控,監(jiān)控得到的數(shù)據(jù)保存在本地文件中,通過Excel進(jìn)行處理并以圖表的方式呈現(xiàn)。

用LoadRunner執(zhí)行測試非常簡單,只需要通過Controller的GUI界面就可以完成執(zhí)行和監(jiān)控工作。這部分的具體內(nèi)容請(qǐng)參考本書的第11章。對(duì)Tomca秒獲取一次數(shù)據(jù)t使用的JVM進(jìn)行監(jiān)控通過Tomcat的statusservelet實(shí)現(xiàn),每5,獲取的數(shù)據(jù)保存在文本文件中。

但在實(shí)際的性能測試過程中,由于一些設(shè)置等問題,有時(shí)候會(huì)遇到執(zhí)行出錯(cuò)的情況。典型的情況是腳本在單獨(dú)回放時(shí)沒有任何問題,但部署到場景中執(zhí)行時(shí)卻出現(xiàn)一些奇怪的錯(cuò)誤。

本案例的執(zhí)行過程中就出現(xiàn)了這樣的情況。設(shè)定好測試場景并開始執(zhí)行后,從Controller的界面上可以看到“HTTP404:CannotfindpageXXXX”的錯(cuò)誤信息。剛看到這個(gè)問題時(shí)覺得特別奇怪,因?yàn)?在回放的過程中沒有出現(xiàn)過這樣的錯(cuò)誤,而且,從計(jì)數(shù)上看,通過的Transaction一共只有500個(gè),除去200個(gè)vuser_init和vuser_end的Transaction,通過的只有300個(gè),也就是說,每個(gè)腳本都只有第一次迭代的執(zhí)行是正確的。

仔細(xì)檢查WebServer的日志,發(fā)現(xiàn)該日志中有多個(gè)訪問timeout.jsp的記錄,詢問開發(fā)人員得知,session超時(shí)后才會(huì)訪問這個(gè)頁面。首先排除了由于迭代之間的等待時(shí)間過長導(dǎo)致超時(shí)的可能,隨后經(jīng)過仔細(xì)分析,覺得問題產(chǎn)生的原因可能與LoadRunner的設(shè)置有關(guān)。

HTTP協(xié)議本身是非面向連接的無狀態(tài)的協(xié)議,為了適應(yīng)Web應(yīng)用需要的交互特性,一般需要使用sessionid來標(biāo)識(shí)一些會(huì)話中的各個(gè)request和response為了保留住sessionid,一般的做法是用hiddenfield、cookie或是在URL上附加sessionid來解決,我們懷疑本題的出現(xiàn)與sessionid的處理相關(guān)。

查看LR記錄的頁面訪問數(shù)據(jù)(見圖20),可以看到,在ClientRequest中附帶了JSESSIONID的信息,可見,該應(yīng)用是用cookie解決sessionid的問題的。

圖20

接下來,可以大膽猜測,出現(xiàn)問題的原因可能是在兩次迭代之間LR清除了cookie,這就使在第一次迭代時(shí)應(yīng)用操作成功,但在隨后的執(zhí)行中由于不存在sessionid的標(biāo)識(shí),使后續(xù)的操作全部失敗。

檢查腳本RuntimeSetting的設(shè)置(見圖21),果然Simulateanewuseroneachiteration選項(xiàng)被選中。LoadRunner的Manual里對(duì)Simulateanewuseroneachiteration選項(xiàng)的解釋是:“選中該選項(xiàng)后,LoadRunner在每次迭代時(shí)清除當(dāng)前的上下文。”iteration選項(xiàng)的解釋是:“選中該選項(xiàng)后,LoadRunner在每次迭代時(shí)清除當(dāng)前的上下文。”

圖21

取消選中該選項(xiàng),重新運(yùn)行Controller中的場景,結(jié)果正常。

多學(xué)兩招:

上面描述的問題是由sessionid引起的,更準(zhǔn)確地說,是因?yàn)閼?yīng)用要支持session而導(dǎo)致應(yīng)用使用了一些特殊的處理方法引起的。那么,究竟什么是session,session一般在程序中以何種方式存在呢?

首先說一下session的起源。

HTTP協(xié)議本身是無狀態(tài)的,這與HTTP協(xié)議本來的目的是相符的,客戶端只需要簡單地向服務(wù)器請(qǐng)求下載某些文件,無論是客戶端還是服務(wù)器都記錄彼此過去的行為,每一次請(qǐng)求之間都是獨(dú)立的。

然而,對(duì)目前的大部分Web應(yīng)用來說,“無狀態(tài)”導(dǎo)致許多應(yīng)用都不得不花費(fèi)大量的精力記錄用戶的操作步驟,人們很快發(fā)現(xiàn),如果能夠提供一些按需生成的動(dòng)態(tài)信息,會(huì)使Web變得更加有用,這種需求一方面迫使HTML逐步添加了表單、腳本、DOM等客戶端行為,另一方面在服務(wù)器端則出現(xiàn)了CGI規(guī)范以響應(yīng)客戶端的動(dòng)態(tài)請(qǐng)求,作為傳輸載體的HTTP協(xié)議也添加了文件上載、cookie這些特性。其中cookie的作用就是為了解決HTTP協(xié)議無狀態(tài)的缺陷所作出的努力。至于后來出現(xiàn)的session機(jī)制則是又一種在客戶端與服務(wù)器之間保持狀態(tài)的解決方案。下面用幾個(gè)例子來描述一下cookie和session機(jī)制之間的區(qū)別與聯(lián)系。假設(shè)在一個(gè)快餐廳有累計(jì)消費(fèi)滿200元返50元的優(yōu)惠,為了能夠準(zhǔn)確地返給用戶正確的金額,可以有這樣幾種方案:

(1)該店的店員很厲害,能記住每位顧客的累計(jì)消費(fèi)金額,只要顧客一走進(jìn)快餐廳,店員就知道該怎么對(duì)待了。這種做法就是協(xié)議本身支持狀態(tài)。

(2)發(fā)給顧客一張卡片,上面記錄著消費(fèi)的數(shù)量,一般還有一個(gè)有效期限。每次消費(fèi)時(shí),如果顧客出示這張卡片,則此次消費(fèi)就會(huì)與以前或以后的消費(fèi)聯(lián)系起來。這種做法就是在客戶端保持狀態(tài)。

(3)發(fā)給顧客一張會(huì)員卡,除了卡號(hào)之外什么信息也不記錄,每次消費(fèi)時(shí),如果顧客出示該卡片,店員則在店里的記錄本上找到該卡號(hào)對(duì)應(yīng)的記錄并添加一些消費(fèi)信息。這種做法就是在服務(wù)器端保持狀態(tài)。

由于HTTP協(xié)議是無狀態(tài)的,而出于種種考慮也不希望其成為有狀態(tài)的,因此,后面兩種方案就成為現(xiàn)實(shí)的選擇。具體來說,cookie機(jī)制采用的是在客戶端保持狀態(tài)的方案,而session機(jī)制采用的是在服務(wù)器端保持狀態(tài)的方案。同時(shí)也看到,由于采用服務(wù)器端保持狀態(tài)的方案在客戶端也需要保存一個(gè)標(biāo)識(shí),所以session機(jī)制可能需要借助于cookie機(jī)制來達(dá)到保存標(biāo)識(shí)的目的。

session機(jī)制是一種服務(wù)器端的機(jī)制,服務(wù)器使用一種類似于散列表的結(jié)構(gòu)(也可能就是使用散列表)來保存信息。

當(dāng)程序需要為某個(gè)客戶端的請(qǐng)求創(chuàng)建一個(gè)session時(shí),服務(wù)器首先檢查這個(gè)客戶端的請(qǐng)求里是否已包含了一個(gè)session標(biāo)識(shí)——sessionid,如果包含,則說明以前已經(jīng)為此客戶端創(chuàng)建過session,服務(wù)器就按照sessionid把這個(gè)session檢索出來使用(如果檢索不到,可能會(huì)新建一個(gè));如果不包含,則為此客戶端創(chuàng)建一個(gè)session并且生成一個(gè)與此session相關(guān)聯(lián)的sessionid,sessionid的值應(yīng)該是一個(gè)既不會(huì)重復(fù),又不容易被找到規(guī)律以仿造的字符串,該sessionid將在本次響應(yīng)中返回給客戶端保存。

保存sessionid的方式可以采用cookie,這樣在交互過程中,瀏覽器可以自動(dòng)按照規(guī)則把這個(gè)標(biāo)識(shí)發(fā)送給服務(wù)器。一般將cookie,設(shè)定為類似于SESSIONID的名稱,如weblogic對(duì)于Web應(yīng)用程序生成的cookie,JSESSIONID=ByOK3vjFD75aPnrF7C2HmdnV6QZcEbzWoWiBYEnLerjQ99zWpBng!-145788764,該cookie的名字就是JSESSIONID。

測試分析

測試執(zhí)行完成后,通過LoadRunner的Analysis模塊,可以對(duì)測試過程中得到的性能數(shù)據(jù)進(jìn)行分析。

針對(duì)場景1、場景2、場景3的基礎(chǔ)性能分析

在進(jìn)行性能分析時(shí),首先可以檢查Analysis模塊提供的SummaryReport。下面以系統(tǒng)應(yīng)用典型場景1為例進(jìn)行分析。

圖22給出了該場景運(yùn)行后的SummaryReport。

圖22

從圖22可以看出,整個(gè)測試過程中我們所關(guān)心的各業(yè)務(wù)(備件信息、查詢、申請(qǐng)表和登錄)的響應(yīng)時(shí)間均超過了性能需求中定義的10秒,因此從總體來說,本系統(tǒng)沒有達(dá)到性能要求。

到此為止,已經(jīng)得出了總體的結(jié)論,但是,性能測試結(jié)果的分析過程還遠(yuǎn)遠(yuǎn)沒有結(jié)束。因?yàn)槲覀兊哪康牟⒉粌H僅要得出“系統(tǒng)是否滿足預(yù)期的性能要求”這樣一個(gè)結(jié)論,還應(yīng)該給出更加具有建設(shè)性的意見和建議。

例如,還需要考慮:性能是在什么時(shí)候開始變壞的?性能可能的瓶頸在哪里?

為此,我們首先關(guān)注性能測試過程中業(yè)務(wù)的執(zhí)行成功比例。圖23給出了所有事務(wù)執(zhí)行情況的柱狀圖。

圖23

從圖23可以看到,所有的事務(wù)執(zhí)行都為成功,也就是說,測試結(jié)果基本可信。另外,從SummaryReport中的HTTP返回碼統(tǒng)計(jì)圖(見圖24)中可以看到,大部分的HTTP返回碼都是200和302,這說明應(yīng)用在HTTP返回層面上是成功的,少部分的404返回碼通過對(duì)日志的檢查,可以確認(rèn)是由于部分圖片文件缺失引起的,而這部分圖片文件的缺失是在開發(fā)過程中造成的,并不影響應(yīng)用本身的正確性,也不影響應(yīng)用性能測試結(jié)果的有效性。

圖24

確認(rèn)測試結(jié)果的有效性之后,接下來對(duì)應(yīng)用的性能表現(xiàn)進(jìn)行初步的分析。

圖25給出了“申請(qǐng)單”業(yè)務(wù)的“RunningVuser-AverageTransactionResponseTime關(guān)聯(lián)曲線,從該關(guān)聯(lián)圖可以看出,應(yīng)用系統(tǒng)的性能隨著RunningVusers數(shù)量的變化有一個(gè)明顯的變化趨勢(shì)。

圖25

多學(xué)兩招:

LoadRunner的Analysis應(yīng)用默認(rèn)并不會(huì)為每個(gè)事務(wù)生成RunningVusers-AverageTransactionResponseTime圖形,該圖形需要用戶通過Analysis應(yīng)用提供的功能自行生成。

具體的操作步驟如下:

  1. 選中RunningVusers頁面,在圖形上單擊鼠標(biāo)右鍵,選擇MergeGraph命令。
  2. 從彈出的對(duì)話框中選擇AverageTransactionResponseTime,從Merge類型中選擇Correlate,單擊OK按鈕。
  3. Analysis應(yīng)用會(huì)打開一個(gè)新的頁面,該頁面顯示RunningVusers-AverageTransactionResponseTime曲線。

在圖25中,排除那些明顯的離散點(diǎn),Vuser的數(shù)量從0至150增加時(shí),各事務(wù)的性能表現(xiàn)基本保持穩(wěn)定;當(dāng)Vuser的數(shù)量從150至200增加時(shí),事務(wù)的響應(yīng)時(shí)間呈緩慢的線性增長狀態(tài);當(dāng)Vuser的數(shù)量超過200時(shí),事務(wù)的響應(yīng)時(shí)間急劇增加。

根據(jù)本書第1章中描述的性能下降曲線分析法可以知道,150個(gè)用戶為最佳狀態(tài)下的最大并發(fā)用戶數(shù)。從圖中可以看到,當(dāng)Vuser增長到180時(shí),基本上所有事務(wù)的響應(yīng)時(shí)間都在10秒以內(nèi),因此,根據(jù)需求和性能下降曲線分析法,可以得出以下結(jié)論:

  1. 在系統(tǒng)應(yīng)用典型場景1條件下,被測系統(tǒng)在180個(gè)并發(fā)用戶訪問的情況下事務(wù)響應(yīng)時(shí)間小于10秒。
  2. Vuser為200是該系統(tǒng)性能表現(xiàn)的拐點(diǎn)。
  3. “申請(qǐng)單”事務(wù)是性能相對(duì)最差的事務(wù)。

為了確定影響性能的主要因素,我們采用同樣的方法得到RunningVusers-UNIXResources關(guān)聯(lián)曲線。圖26給出了兩臺(tái)服務(wù)器的CPU使用狀況和RunningVusers的關(guān)聯(lián)曲線。

圖26

從圖26可以看到,當(dāng)Vuser超過110時(shí),應(yīng)用服務(wù)器的CPU使用率就已經(jīng)超過了預(yù)期的75%,而將應(yīng)用服務(wù)器和數(shù)據(jù)庫服務(wù)器的CPU使用率進(jìn)行對(duì)比發(fā)現(xiàn),數(shù)據(jù)庫服務(wù)器的CPU使用率一直都很低。由此可見,應(yīng)用服務(wù)器的CPU應(yīng)該是系統(tǒng)性能的瓶頸之一。

同樣,兩臺(tái)服務(wù)器的內(nèi)存使用狀況和RunningVusers的關(guān)聯(lián)曲線也可用于比較,在本案例中,經(jīng)過比較發(fā)現(xiàn),在整個(gè)性能測試過程中,兩臺(tái)服務(wù)器的內(nèi)存使用都沒有超過可用內(nèi)存的70%,由此可見,可用內(nèi)存并不是性能瓶頸之一。

對(duì)應(yīng)用服務(wù)器來說,在性能測試中,除了關(guān)注服務(wù)器的內(nèi)存使用狀況外,一個(gè)更重要的需要關(guān)注的內(nèi)容是JVM內(nèi)存的使用狀況。

圖27給出了應(yīng)用服務(wù)器的JVM內(nèi)存使用情況。

圖27

多學(xué)兩招:

圖27并非LoadRunner的Analysis應(yīng)用生成的報(bào)表,而是將數(shù)據(jù)文件經(jīng)過Excel處理后得到的曲線圖形。

在本案例中,由于采用的應(yīng)用服務(wù)器是Tomcat5,LoadRunner不能直接支持對(duì)該應(yīng)用服務(wù)器JVM內(nèi)存使用狀況的獲取,因此我們自行編寫了一個(gè)小程序,通過Tomcat5提供的Servelet獲取JVM使用信息并將其寫入本地文件中。測試結(jié)束后,將生成的本地文件用Excel進(jìn)行處理,得到的就是圖27所示的曲線圖。

從圖27可以看到,在整個(gè)測試過程中,應(yīng)用服務(wù)器的JVM可用內(nèi)存處于相對(duì)充裕的狀況,應(yīng)該說JVM的可用內(nèi)存不是性能瓶頸。但需要注意的是,JVM的內(nèi)存使用呈現(xiàn)出鋸齒狀的波動(dòng),很可能在代碼中存在產(chǎn)生了過多的臨時(shí)對(duì)象等情況。

其他的場景可以采用類似的方法進(jìn)行分析。分析表明,在測試方案中計(jì)劃的3個(gè)不同場景均存在同系統(tǒng)應(yīng)用典型場景1類似的情況。

針對(duì)場景1、場景2、場景3的頁面分析

通過以上分析,可以基本解了應(yīng)用的性能能力以及影響性能的系統(tǒng)瓶頸。在接下來的分析過程中,我們還希望了解到底哪個(gè)頁面在測試過程中的性能表現(xiàn)最差,表現(xiàn)差的具體原因是什么。

LoadRunner的Analysis應(yīng)用提供了對(duì)頁面進(jìn)行分解(breakdown)分析的輔助功能。下面以“申請(qǐng)單”事務(wù)為例,說明對(duì)頁面進(jìn)行breakdown分析的方法和過程。

在AverageTransactionResponseTime頁面上單擊鼠標(biāo)右鍵,從彈出的菜單中選擇ShowTransactionBreakDownTree命令,此時(shí)Analysis應(yīng)用的左側(cè)會(huì)出現(xiàn)一個(gè)TransactionBreakdown樹型窗口,窗口中顯示所有事務(wù)的樹型列表(見圖28)。

圖28

在該列表上雙擊需要關(guān)注的事務(wù),則可以打開一個(gè)新的WebBreakdown頁面(見圖29)。

圖29

從圖29可以看到,左側(cè)的Breakdown列表中列出了每個(gè)事務(wù)所包含的頁面請(qǐng)求動(dòng)作,而對(duì)于每個(gè)頁面請(qǐng)求動(dòng)作,用戶可以從DownloadTimeBreakdown、ComponentBreakdown(overtime)、DownloadTimeBreakdown(overtime)和TimetoFirstBufferBreakdown(overtime)4個(gè)不同的角度來對(duì)一個(gè)請(qǐng)求的響應(yīng)進(jìn)行分析。

從分析的角度來說,首先會(huì)關(guān)注每個(gè)請(qǐng)求響應(yīng)所花費(fèi)的時(shí)間,從而找出幾個(gè)最關(guān)鍵的請(qǐng)求(頁面),然后對(duì)其進(jìn)行更詳細(xì)的分析。以本案例來說,考察“申請(qǐng)單”事務(wù),//server:7001/bill/worklist.jsp?rd=0.5476723708419389請(qǐng)求的響應(yīng)花費(fèi)了最長的響應(yīng)時(shí)間。圖30給出了其響應(yīng)時(shí)間的曲線。

圖30

對(duì)這個(gè)具體的請(qǐng)求,可以首先從ComponentBreakdown(overtime)圖表上看返回頁面的每個(gè)組件所花費(fèi)的具體時(shí)間。具體方法是選中ComponentBreakdown(overtime)單選按鈕。

圖31給出了進(jìn)行ComponentBreakdown(overtime)分解后的曲線圖形。

圖31

結(jié)合圖30和圖31可以很清楚地看到,在性能測試執(zhí)行到45分鐘左右時(shí),返回頁面的幾個(gè)部件的響應(yīng)時(shí)間都非常長,最為典型的是tool_del.gif、done_click_bg.gif等圖片文件。而從DownloadTimeBreakdown圖形中可以看到(見圖32),這些圖片都非常小(小于1KB),而且這些圖片的平均downloadtime都很短,只在45分鐘附近才出現(xiàn)響應(yīng)時(shí)間急劇增長的情況。

圖32

從這里基本可以斷定,引起這些圖片響應(yīng)時(shí)間過長的問題應(yīng)該在于系統(tǒng)的吞吐量受到了限制,由于我們關(guān)注的部件是靜態(tài)的圖片文件,也就是說,該問題主要是由于應(yīng)用服務(wù)器在該時(shí)刻處理靜態(tài)文件時(shí)的吞吐量受到限制而引起的。

為了進(jìn)一步驗(yàn)證我們的結(jié)論,在TimetoFirstBufferBreakdown(overtime)的圖形中(見圖33)可以看到,在45分鐘左右,請(qǐng)求tool_del.gif文件的所有的時(shí)間消耗都是Servertime。

圖33

結(jié)合整個(gè)測試過程的RunningVusers、HitsperSecond以及Throughput的曲線(見圖34),可以看到,在45分鐘左右,RunningVusers保持在高水平上,但此時(shí)的吞吐量有一個(gè)明顯的變低的趨勢(shì),說明此時(shí)應(yīng)用服務(wù)器已經(jīng)遇到了瓶頸,而且,該瓶頸表現(xiàn)在請(qǐng)求的靜態(tài)文件的響應(yīng)時(shí)間顯著變長。

根據(jù)這些分析,基本可以得出以下結(jié)論和建議:

  1. 在測試進(jìn)行到45分鐘時(shí),系統(tǒng)遇到了一個(gè)明顯的性能瓶頸,該瓶頸的表現(xiàn)是響應(yīng)時(shí)間明顯變長。
  2. 該性能瓶頸的產(chǎn)生主要是由應(yīng)用服務(wù)器引起的,從應(yīng)用服務(wù)器的表現(xiàn)來看,在該時(shí)刻對(duì)靜態(tài)文件的請(qǐng)求響應(yīng)速度非常慢,而且服務(wù)器吞吐量明顯受到了制約。
     

    圖34

  3. 應(yīng)用服務(wù)器的瓶頸之一是服務(wù)器的CPU,但并發(fā)用戶數(shù)應(yīng)該是一個(gè)引起吞吐量制約的因素。
  4. 如果需要進(jìn)一步確定系統(tǒng)的性能瓶頸,建議采用類似RBI的方法,首先純粹通過靜態(tài)文件檢查各種不同的并發(fā)條件下應(yīng)用服務(wù)器的吞吐量限制,然后與場景的測試結(jié)果比較,檢查是否是由于應(yīng)用服務(wù)器本身的吞吐量限制,從而決定進(jìn)一步的調(diào)優(yōu)策略。
  5. 如果最終的問題定位在應(yīng)用服務(wù)器對(duì)靜態(tài)文件的吞吐量上,可以考慮采用Apache+Tomcat的架構(gòu),用Apache處理靜態(tài)頁面文件和圖形文件,用Tomcat處理JSP文件。

最后要說明的是,根據(jù)我們對(duì)測試結(jié)果的分析,性能的主要瓶頸在于應(yīng)用服務(wù)器,因此在本案例中基本沒有對(duì)數(shù)據(jù)庫服務(wù)器的性能指標(biāo)進(jìn)行關(guān)注和分析。

針對(duì)穩(wěn)定性測試場景的性能分析

對(duì)應(yīng)用系統(tǒng)的穩(wěn)定性測試,重點(diǎn)在于通過壓力測試,檢查長時(shí)間運(yùn)行條件下的應(yīng)用系統(tǒng)運(yùn)行狀況,以及各服務(wù)器的資源使用狀況。

測試設(shè)計(jì)中設(shè)計(jì)的運(yùn)行時(shí)間是72小時(shí),主要的測試關(guān)注點(diǎn)包括:

  1. 服務(wù)器內(nèi)存使用狀況。
  2. 應(yīng)用服務(wù)器JVM內(nèi)存使用狀況。
  3. 持續(xù)測試過程中的系統(tǒng)性能表現(xiàn)(響應(yīng)時(shí)間)。
  4. 數(shù)據(jù)庫服務(wù)器的主要性能指標(biāo)。

實(shí)際測試過程中,由于對(duì)場景1~場景3的測試結(jié)果表明,系統(tǒng)根本無法支持預(yù)期的壓力測試的用戶訪問量,因此沒有對(duì)其進(jìn)行穩(wěn)定性測試。

針對(duì)數(shù)據(jù)導(dǎo)入場景的性能分析

數(shù)據(jù)導(dǎo)入場景測試除了關(guān)注系統(tǒng)的響應(yīng)時(shí)間等性能表現(xiàn)外,還特別關(guān)注服務(wù)器的磁盤I/O是否達(dá)到磁盤處理能力的極限。

系統(tǒng)響應(yīng)時(shí)間性能的分析與上面的分析過程一樣,對(duì)磁盤I/O的關(guān)注通過UNIX系統(tǒng)提供的iostat命令獲取相關(guān)數(shù)據(jù)并進(jìn)行分析。

計(jì)算最大磁盤I/O數(shù)的公式在本書的第3章中進(jìn)行了詳細(xì)的討論,在此不再贅述。在本案例中,沒有發(fā)現(xiàn)系統(tǒng)存在服務(wù)器磁盤I/O方面的瓶頸。

四、案例小結(jié)

該案例展示了一個(gè)完整的應(yīng)用LoadRunner對(duì)Web應(yīng)用進(jìn)行性能測試的全過程,它遵循PTGM模型進(jìn)行性能測試,并重點(diǎn)給出應(yīng)用LoadRunner進(jìn)行性能測試需要關(guān)注的重點(diǎn)內(nèi)容,展示了使用LoadRunner進(jìn)行性能測試結(jié)果分析的方法。

該案例系統(tǒng)是一個(gè)具有典型代表性的基于J2EE的Web應(yīng)用系統(tǒng),采用標(biāo)準(zhǔn)的HTTP協(xié)議,因此主要使用LoadRunner這個(gè)商業(yè)工具作為性能測試工具。本案例非常詳細(xì)地描述了LoadRunner在實(shí)際應(yīng)用中需要注意的一些問題,介紹的一些技巧和技術(shù)都值得讀者仔細(xì)體會(huì)。

本案例還額外討論了性能測試時(shí)驗(yàn)證碼的處理方法,并根據(jù)一次解決實(shí)際問題的方法介紹了session這個(gè)對(duì)Web系統(tǒng)非常重要的概念。在對(duì)驗(yàn)證碼處理方法的討論中,給出了3種可能的解決方案,逐一討論了各種方案的優(yōu)點(diǎn)和缺點(diǎn),并給出了每種方案的適用場合和使用注意事項(xiàng)。

使用LoadRunner對(duì)性能測試結(jié)果進(jìn)行輔助分析是使用LoadRunner進(jìn)行性能測試時(shí)的重要內(nèi)容,本案例通過有針對(duì)性地重點(diǎn)描述系統(tǒng)測試結(jié)果的分析過程(包括基礎(chǔ)分析和頁面響應(yīng)分析),并結(jié)合性能下降曲線分析方法,演示了對(duì)性能測試結(jié)果的分析過程。本案例描述的分析過程當(dāng)然不是唯一的分析方法和過程,但確實(shí)是具有代表性的分析方法,希望讀者能夠仔細(xì)體會(huì)。

當(dāng)然,就本案例本身來說,并不是針對(duì)被測的Web系統(tǒng)的全部性能測試內(nèi)容(在對(duì)本系統(tǒng)的實(shí)際性能測試中,我們還按照RBI的方法對(duì)其進(jìn)行了吞吐量測試、并發(fā)測試等),而只是為了說明性能測試進(jìn)行了有針對(duì)性的簡化的一個(gè)案例描述,因此,讀者在學(xué)習(xí)體會(huì)本案例的過程中,也應(yīng)該更深入的思考——如果你是這個(gè)性能測試項(xiàng)目的負(fù)責(zé)人,還需要關(guān)注哪些方面?


標(biāo)簽:性能測試網(wǎng)頁測試軟件測試技術(shù)

本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn


為你推薦

  • 推薦視頻
  • 推薦活動(dòng)
  • 推薦產(chǎn)品
  • 推薦文章
  • 慧都慧問
相關(guān)產(chǎn)品
軟件
  • 產(chǎn)品功能:測試分析
  • 源 碼:非開源
  • 產(chǎn)品編號(hào):13140
  • 當(dāng)前版本:v2025.1 [銷售以商家最新版為準(zhǔn),如需其他版本,請(qǐng)來電咨詢]
  • 開 發(fā) 商: Parasoft 正式授權(quán)
  • ">Parasoft C/C++test

    針對(duì) C/C++ 軟件開發(fā)提供統(tǒng)一、完全集成的測試解決方案。

    軟件
  • 產(chǎn)品功能:測試分析
  • 源 碼:非開源
  • 產(chǎn)品編號(hào):13508
  • 當(dāng)前版本:v12.55 [銷售以商家最新版為準(zhǔn),如需其他版本,請(qǐng)來電咨詢]
  • 開 發(fā) 商: 惠普 正式授權(quán)
  • ">LoadRunner

    LoadRunner是一款負(fù)載測試軟件,可使您精確洞察端到端系統(tǒng)性能,以便在應(yīng)用正式推出之前識(shí)別和解決其中的問題。

    軟件
  • 產(chǎn)品功能:測試分析
  • 源 碼:非開源
  • 產(chǎn)品編號(hào):13515
  • 當(dāng)前版本:v12.5 [銷售以商家最新版為準(zhǔn),如需其他版本,請(qǐng)來電咨詢]
  • 開 發(fā) 商: 惠普 正式授權(quán)
  • ">Unified Functional Testing (UFT)

    Unified Functional Testing (UFT),原名QuickTest Professional (QTP),是一款自動(dòng)化功能測試軟件。

    軟件
  • 產(chǎn)品功能:測試分析
  • 源 碼:非開源
  • 產(chǎn)品編號(hào):13790
  • 當(dāng)前版本:v12.5 [銷售以商家最新版為準(zhǔn),如需其他版本,請(qǐng)來電咨詢]
  • 開 發(fā) 商: 惠普 正式授權(quán)
  • ">HP Performance Center(HP PC)

     HP Performance Center 軟件是一款企業(yè)級(jí)性能測試平臺(tái)。設(shè)計(jì)用于推動(dòng)標(biāo)準(zhǔn)化進(jìn)程、集中式管理、全球協(xié)作以及形成卓越的性能測試中心。

    title
    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    023-68661681

    TOP
    主站蜘蛛池模板: 国产亚洲无码在线 | 日韩国产最新在线观看 | 深爱五月激情 | 国产v在线观看 | 成人免费a片j | 国产三级在线观看网址 | 久久中文骚妇射 | 五月婷婷丁香综合 | 在线无码小电影 | 午夜成人免费视频网站 | 国产96在线| 人妻奶水| 夜夜操夜夜爽 | 国产资源视频 | 成人免费一区二区三区 | 国模精品一区 | 岛国大片在线播放免费 | 神马午夜影院 | 日韩精品免费一 | 成人精品一区二区电影 | 图片在线视频小说成人 | 国产精品92| 日韩电影成人 | 日韩免费视频一区二区 | 国产三级国产 | 日韩欧美国产师生制服 | 深夜福利网址在线观看 | 欧美专区一区 | 这里有精品视频 | 亚洲激情成人小说 | 自拍网中文字幕 | 日本乱伦三级片 | 玖玖爱在线精品视频 | 91主播| 精品国产一区二区久久 | 国产在线三级在线观看 | 不卡的AV电影 | 国产情侣在视频 | 久久这里只有精品66 | 亚洲无码国产高清 | 狠狠干狠狠插狠狠操 | 日韩欧美中文字幕 | 91精品国| 国内揄拍国内精品 | 日韩经典午| 91亚洲天堂 | 97伦理| 久久加勒比| 午夜成人在线视频观看 | 91久久人人 | 成人免费黃色大片 | 成人做爰黄片免费看 | 玖玖爱视频在线观看 | 国产乱人精品视频 | www.黄| 欧美日韩性爱 | 深夜福利大全 | 日韩一区二区三级 | 欧美另类在线 | 三级网站观看 | 国产白袜脚足j棉袜 | 福利视频导航页 | 成人午夜视频二区三区 | 最新国产中文字幕 | 欧美成人在线视频 | 天美mv在线限免观看 | 三级片视频网站 | 亚洲国产无码在线观看 | 成人九色 | 国产亚州高清 | 三级在线无码观看 | 老熟女毛茸茸 | 国产91精品免费专区 | 午夜无码影院 | 毛片三级视频 | 欧美一区二区不卡视频 | 韩国激情无码 | 深夜无码福利 | 午夜在线视频网 | 成人欧美视频在 | 九九这里只有精品 | 成人午夜视屏 | 福利姬在线观看视频 | 日韩伦理在线 | 伦乱熟女 | 又大又粗又黄 | 激情小说区 | 日韩一区二区国色天香 | 国产爆乳美女 | 国产高清无码专区 | 国产熟妇勾子乱 | 国产精品第四页 | 黄色网址网站 | 亚洲精品字幕在线观看 | 日韩在线精品视频99 | 三级视频网 | 亚洲无码卡一卡二 | 97在线资源网 | 三级网扯 | 三级片无码在线观看 | 麻花传剧MV高清资源 | 成人无码电影在线观看 | 国产99re| 日韩欧美国产91丝袜 | 日韩在线视频欧美一区 | 午夜成人影视在线 | 五月停停 | 另类小说在线视频 | 午夜成人免费在线 | 日韩欧美在线亚洲 | 午夜免费电影 | 国产成人久久久久久久 | 日韩精品亚洲精 | 91无码在线秘入口 | 偷拍在线视频 | 黄色网址免费看 | 欧美视频二区 | 这里只有精品4 | 日韩a在线 | 自拍视频在线 | 日韩熟女中文字幕 | 国产又粗又大又爽视频 | 国产精品熟女 | 少妇28p | 福利姬福利导航 | 涩涩涩av| 国产办公| 日韩亚洲欧洲中文版 | 日本高清熟妇 | 国产在线一 | 成年人午夜福利 | 97社区资源网 | 日韩欧美亚洲一区 | 涩涩视频成人 | 成人国产在线一区二区 | 国产又粗又大又猛又爽 | 国产二区自拍 | 日韩免费影片 | 自拍偷拍第25页 | 亚洲色老板 | 国产女人喷液 | 日韩精品免费观看 | 三级免费黄 | 午夜精品视频 | 丝袜第一页| 国产无码电影网 | 五月丁香在线观看 | 久久综合久久网 | 深夜小福利 | 国产妇妻操逼 | 91视频香蕉| 免费污网站在线观看 | 国产91一区二区三区 | 91人人爱 | 岛国大片网站在线观看 | 少妇28p | 午夜精品网站 | 超碰人人操97| 日韩āv高清在线看片 | 97艹逼| 欧美亚洲性爱 | 玖玖爱中文字幕 | 国产a网| 日韩视频高清 | 老湿影院免费在线观看 | 国产高潮白浆狂喷 | 综合久久综合 | 性国产在线观看 | 福利视频导航大全 | 国产精品宾馆精品酒店 | 日韩亚洲综合精品国产 | 东京热力无码 | 国产精品久久久久久 | 天堂网在线观看 | 国产小视频在 | 91在线成人网 | 成年人午夜网站 | 日韩在线播放香蕉五码 | 亚洲精品字幕在线观看 | 亚洲精品成人av无码 | 成人国产精品日本在 | 国产成在线观看 | 国产夫妻精品 | 日韩精品91 | 精品黑人 | 无码三级网址 | 欧美日韩成人 | 久草免费福利视频 | 在线观看AA| 精品午夜福利 | 中文字幕日本不卡 | 天天艹夜夜艹 | 四虎一区 | 国产情侣亚洲 | 色五月综合网 | 日本丰满少妇 | 四虎影视永久免费 | 成人午夜福利片 | 91视频污 | 三级片国产在线 | 国产剧情一区二区 | 老熟女毛茸茸黑森森 | 成人爽免费 | 成人午夜福利在线视频 | 麻豆裸体舞表演视频 | 国产啪亚洲国 | 午夜免费福利视频 | 日韩系列3 | 日韩免费一级 | 日韩成人在线影院 | 日韩黄在线 | 妓女一区二区三区 | 97色色色| 欧美三级网站 | 中国三级片在线 | 日韩免费视频一区二区 | 福利视频午夜 | 午夜免费成人网站 | 成人免费精品 | 日韩专区内容更新 | 国产精品激情在线观看 | 三级A片黄色 | 丁香五月影院 | 日本高清www| 成人激情小说图片 | 日韩AV女优在线观看 | 日韩草逼视频 | 深夜福利视频导航 | 国产毛无码 | 韩日视频 | 日韩视频中文字幕专区 | 日日夜夜狠狠 | 国模吧一区二区三区 | 国产伦理片 | 97高清影视 | 日韩欧美国产亚洲精品 | 福利资源在线观看 | 亚洲成人网在线观看 | 97福利视频 | 国产在线视频 | 欧美日韩1区 | 日韩欧美亚洲妖精 | 日韩成人free | 成人免费理论片 | 亚洲丁香五月 | 日韩视频三区 | 99热1| 日韩国产校园综合 | 日韩欧美国产超级视频 | 日韩精品一区二区三区 | 国产三级AV在线观看 | 日韩电影导航 | 日韩图色 | 国产精品成人AV | 国产又黄又粗 | 成人亚洲理论片 | 天堂在线无码 | 色网站在线 | 国产无码在线看 | 日韩亚洲欧美 | 福利姬视频在线看 | 综合久久99 | 日韩中文字幕中 | 午夜精品成人无码 | 国产网站在线 | 夜夜视频5| 牛牛在线视频 | 日韩成人三级在线观看 | AV三级片网址 | 国产精品9 | 日韩ed2k| 成人深夜福利在线 | 91亚洲国产| 日韩国产精品综合免费 | 国产视频网 | 欧美性爱网址大全 | 国产三级在线观看免费 | 国产乱人妻精品秘入口 | 午夜视频网站在线观看 | 九九九九九精品 | 天堂资源| 麻豆AV在线 | 99自拍偷拍 | 三级AV在线免费观看 | 国产嫩草 | 午夜电影网 | 日韩中文在线播放 | 女同另类第一页 | 成人网站三级片 | 日韩一卡二卡 | 日韩一区二区免费视频 | 久久中文骚妇射 | 国产成人AV在线 | 草莓视频网站成人18 | 伦利理午夜理论片 | 91视频社区| 日韩电影a级 | 国产情侣酒店自拍 | 日韩一级簧片 | 另类欧美亚洲 | 福利姬视频免费 | 中文字幕日本 | 男女午夜爽爽爽 | 玖玖爱精品在线观看 | 韩日av一区二区 | 国产精品一在 | 精品日韩二区 | 九九九九九精品视频 | 午夜剧场成人网站 | 福利直播导航在线观看 | 噜噜噜久久 | 动漫一区二区三区 | 成人家庭影院 | 麻豆av在线观看 | 日韩人兽精品在线 | 人妖出精大全汇编HD | 午夜黄色| 屁屁影院发布页 | 成人性生交大婬乱欧美 | 日韩片免费 | 国产精选自拍 | 国产又粗又大又黄又爽 | 日韩特级| 国产又大又黄视频 | 欧美性爱网络 | 国产第4页 | 加勒比综合 | 人人操人人摸97 | 麻豆激情四射在线播放 | 国产真实乱子伦视频 | 激情综合区 | 成人不卡视频 | 午夜色色男 | 男女啪啪免费网站 | 在线观看国产三级片 | 国产精品久久久久久 | 69老司机在线 | 午夜福利体检 | 成人福利视频导航 | 爆乳护士一区二区三区 | 黄色三级网站视频 | 91直播最新版 | 97色色资源网 | 国产第9页| 午夜成人在线视频观看 | 岛国三级 | 成人影院一 | 日韩精品午夜视频 | 婷婷丁香五月亚洲 | www.偷拍| 日韩午夜精 | 国产三级在线视频观看 | 日韩一级在线 | 三级网站黄| 狼友短视频 | 视频在线一区二区三区 | 午夜影视| 日韩电影手机在线观看 | 午夜日B| 欧美另类色 | 日本三级2022 | 日本精品不卡一区二区 | 日韩一区二区AV | 久久中文骚妇射 | 岛国精品 | 日本xxxwww| 国产h在线播放 | 夜夜嗨一区二区三区 | 九一九色国产 | 草莓视频在线污 | 国产无码高清一区 | 亚洲精品福利 | 国产91精品视频网 | 福利视频二区 | 99热视| 日韩无码丝袜 | 国产片三级在线观看 | 国产精品宾馆 | 一区二区视频 | 国产91福利99在线 | 午夜黄视频 | 自拍偷拍网址 | 97成人| 日韩欧洲自拍视 | 黄色三级在线播放 | 91视频丝瓜 | 成人看片黄a在线看 | 国产女同一区 | 国产91精品免费专区 | 成人妇女免费 | 91香蕉白丝| 日韩欧美中文 | 国产精品观看 | 国产办公| 国产成年视频 | 日韩欧美在线亚洲 | 日韩乱图在线 | 日韩三级伦理 | 成人亚洲欧美综合 | 日韩欧美综合在线制服 | 日韩精品中文不卡视频 | 国产会所 | 视频一区欧美 | 日韩欧洲在线高清一区 | 国产草逼| 午夜无码影视 | 日韩尔区 | 成年人午夜福利视频 | 国产三级高清 | 成人涩涩| 天天操夜夜 | 日韩福利在线观看 | 国产又白又嫩又爽又黄 | 精品三级片在线观看 | 日韩欧美一区国产在线 | 国产精品wwww | 日韩一二三区视频精品 | 国产三级 | 成人无码一区二区三区 | 日韩一不卡 | 国产无码不卡一区 | 国产国产午 | 玖玖在线看 | 免费无码不卡在线 | 无码国产高清 | 日韩大片在线播放 | 欧美黑人性爱视频 | 日韩欧美资源 | 国产一浮力影院 | 成人午夜在线看片 | 日日夜夜视频网 | 日韩欧美视频在线播放 | 日韩欧美在线播放 | 成人在线观看一区二区 | 国产小伙嫖妓流出播放 | 麻豆免费视频 | 亚洲卡一卡二卡三卡四 | 成人欧美精品区二区三 | 成人午夜爽| 五月婷婷 | 日韩区欧美区中文字幕 | 成人在线观看三级片 | 97精品一区 | 国产第2页 | 国产传媒在 | 丰满少妇A | 国偷自拍 | 午夜寂寞欧美 | 日韩欧美中文精品电影 | 日韩一区二区专区 | 日韩免费在线视频 | 无码av网| 老司机操逼视频 | 国产三级精品视频 | 成人快手app| 日韩中文字幕 | 日韩免费特| 激情小说在线视频观看 | 午夜福利写真片精品 | 日韩不卡在线观 | 九九九九热视频 | 国产无码精品合集 | 天天干天天日天天射 | 国产h片量多网站 | 激情图片另类小说 | 国产三级无码在线 | 成人羞羞网站入口 | 日韩欧美在线a | 乡村县城裸舞一区二区 | 亚欧无码 | 国产传媒果冻天美传媒 | 99精品国产一区二区 | 日韩第一页在线观看 | 日韩精品在线观看成人 | 日韩全球免费视频 | 国产成综合 | 国产精品永久成人免费 | 天堂视频免费在线观看 | 日韩综合区中文字幕 | 91干屄| 日韩性爱网址 | 无码影视在线 | 国产在线三级在线观看 | 日韩精品国产高清 | 日韩伦理电影 | 屁屁影院第二页 | 成人无码三级在线观看 | 成人福利在线观看免费 | 日韩睡熟迷奷系列精品 | 人人摸人人操97 | AV含羞草| 国产一区精品自拍 | 深夜福利视频导航 | 97草逼| 日日夜夜天天综合网 | 国产美女裸网站 | 日韩先锋影音中文字幕 | 97超碰在 | 日韩美女在 | 日本不卡一二三区 | 日韩国产亚洲 | 成人亚洲国产欧美另类 | 麻豆传媒一区 | 日韩综合国产区 | 成人免费观看 | 午夜成人福利视频网站 | 国产不卡a国内 | 午夜剧院官方 | 亚洲AV综合网址 | 中文字幕一级毛片视频 | 国产中文字幕不卡 | 欧美日韩国产专区 | 成人午夜在线看 | 日韩综合鲁一 | 涩涩在线观看视频 | 国产成人情趣 | 国产肥乱精 | 国产精品成人无码免费 | 日韩成人成色在线观看 | 成人A片免费网 | 日韩精品免费 | 国产又黄又爽 | 中文字幕熟女人妻偷伦 | 成人三级网站国产 | 国产视频福利 | 日韩午夜顶级在线观看 | 日本www免费 | 日韩熟女老 | 日韩欧美亚洲国产精品 | 91视频污黄 | 三级成人在线观看 | 成人国产在线看不卡 | 精品理伦 | 日韩精品综合日本欧 | 日韩中字无码 | 久草福利资源站 | 加勒比在线免费视频 | 日韩在线欧 | 福利导航入口 | 午夜男女爽爽 | 欧美在线视频不卡 | 无码中文字幕 | 日韩黄色成人网站 | 日韩欧美综合在线 | 日韩高清欧美高清 | 无码国模 | 狼人一区| 国产精品1000 | 国产精品秘国产A级 | 日韩精品视频成人 | 三级片网站在线观看 | 日韩系列第一页 | 日韩综合精品第18页 | 国产精品另类 | 欧美视频在线不卡 | 日韩在线一区国产国 | 乡村县城裸舞一区二区 | 国模吧久久| 国产91成人在 | 国产三级成人在线观看 | 日韩不卡一区二区 | 日韩色情综合网 | 婷婷五月影院 | 91视屏黄| 日韩精品另类天天更新 | 亚洲av卡一卡二 | 五月婷婷激情 | 精品午夜福利在线观看 | 国产黄色片 | 丝袜中出| 日韩美女视频在线观看 | 成人日韩 | 亚洲小说区图片区另类 | 日韩美女色 | 日韩一区在线观看免 | 最新高清无码专区 | 日韩人妻一区二区三区 | 嫖妓自拍播放 | 成人免费视频播放 | 国产三级黄色电影网站 | 肏屄乱伦视频 | 三级在線日韩中文 | 国产初高中生洗澡视频 | 午夜看片 | 日韩精品午夜视频 | 狼人狠干综合网 | 狠狠干夜夜干 | 日韩BV| 黄色午夜| 国产经典三级 | 国产精品自拍一区 | 国产无码网站 | 这里只有精品66 | 日韩a无v码 | 福利小视频网站 | 日韩制服丝袜 | 97在线亚洲 | 岛国三级| 91香蕉影院 | 国产精品自拍网 | 中文字幕日本人妻 | 亚洲国产精品成人综合 | 国产精品麻豆 | 国产精品岛国 | 日韩午夜场 | 色老板综合 | 国产亚欧精品不卡 | 日本成人区 | 性欧美极品 | 天美影业 | 美女在线网站 | 在线无码天堂 | 日韩成人免费视频 | 黄色网址在线看 | 日韩乱码中文字幕 | 国产无码影视 | 成人福利网站在线观看 | 自拍第一页在线 | 一级岛国毛片 | 三级网站永久大全 | 国产精品久线在线观看 | 国产精品网址 | 午夜成人福利初夜 | 国产一区视频在线播放 | 午夜激情成人影院 | 日韩成人网站 | 国产同事露脸 | 日韩欧美在线观看 | 日韩欧美一中文在 | 国产视频一 | 日韩一区在线免费观看 | 玉足一区| 神马AV影院 | 超碰97人人操人人摸 | 成人国产视频网站 | 日韩一区二区三区极品 | www.国产网站| 亚洲成人文学 | 深夜福利无码视频 | 求A片网址 | 爆乳中文| 永久免费A级毛片 | 三级黄色毛片网站 | 成人黄片免费看 | 日韩中文字幕精品一区 | 福利电影网 | 午夜老湿 | 日韩国产高清制服一区 | 三级日本乱伦国产 | 黑人性爱网 | 亚洲国产福利 | 国产精品第页 | 欧美精品在线视频 | 性欧美潮喷 | 国产高清超 | 日韩在线第二页 | 日韩一三区国产福利 | 老司机黄色影院 | 欧美在线播放视频三区 | 草逼91| 午夜激情网站 | 波多野结 | 国产91高清精品 | 毛茸茸老熟女 | 日韩一进一出免费试频 | 97超碰资源总站 | 怡红院一区二区三区 | 成人福利导航在线观看 | 九九只有精品 | 三级网止 | 午夜成人在线 | 成人三级在线观看 | 国产又粗又长又爽 | 天天日天天射天天爽 | 玖玖热在线视频 | 国产精品自拍片 | 成人日韩在线 | 91影视在线 | 加勒比免费视频 | 日韩精品黄肉动 | 国产aⅴ片 | 亚洲激情图片 | 日韩va亚洲va | 日韩国产欧美在线观看 | 国产成年人电影 | 毛片免费在线观看 | 日韩欧美在线视频观看 | 伊人久艹 | 偷拍自拍在线播放 | 日韩一卡2卡 | 国产一区成人 | 成人妇女免费播放 | 三级影视午夜影 | 国产成人片| 日本三级片网站 | 色欲98AⅤ蜜臀 | 国产91精品电影 | 成人免费精品一二三区 | 成人午夜精品在线观看 | 国产无码在线影院 | 日韩精品人 | 国产不卡一区0 | 午夜男女爽爽 | 国产萌白酱 | 日韩精品极 | 日本αV | 五月亭亭六月丁香 | 日韩在线第一区 | 丁香五月色 | 日韩在线观看视频网站 | 天下通乱伦色网专区 | 狠狠干狠狠操 | 日韩在线观看一区 | 91原创国| 亚洲狠狠干 | 成人拍拍拍免费 | 国产黄频网站 | 成人三级三黄三级三黄 | 午夜福利成人网站 | 日韩亚洲国产中文永久 | 日韩成人国产精品视频 | 午夜色色爱| 人妖一区 | 日韩高清国产一区在线 | 国产91露脸在线播放 | 国产精品1000夫妇 | 天堂网无码| 日韩在线播放 | 91福利小视频| 亚洲性受精品国产馆 | 日韩动漫国产 | 日韩国产精品一区二区 | 岛国午夜视频 | 成人午夜免费视频 | 日韩污一区二区三区 | 久久不射 | 午夜成人在线免费观看 | 国产精品乱视频 | 日韩精品美女视频 | 超碰在线视97| 最新国产网站 | 国产cd视频在线播放 | 国产免费午夜a | 国产人妻精品 | 熟女丰满多毛大陰户 | 日韩高清无 | 老女人丨91丨九色 | 国产亚洲精品码 | 日韩无码影视 | 国产免费av在线 | 福利导航在线 | 午夜福利网址 | 日韩欧美在线a | 日本免费www | 玖草在线中文字幕 | 日韩欧美奸 | 国产精品一二三四区 | 玖玖爱综合 | 国产丝袜美腿在线 | 国产欧美ⅴa欧 | 偷拍自拍网址 | 自拍三区 | 丁香五月婷婷综合网 | 日本不卡中文字幕 | 午夜在线成人 | 国产成在人线在线播放 | 变态另类爽 | 成人国产一区 | 国产a∨免费精品视频 | 俄罗斯鲜嫩BBBBB | 在线免费观看三级 | 日韩性生活 | 欧美一区二区三区在线 | 日韩欧美在线亚洲四区 | 午夜激情影院 | 中文字幕日本有码 | 国产69精品亚洲 | 日韩电影福利 | 国产熟女av | 欧美日韩在线观看一区 | 天堂网在线资源 | 日韩在线精品视频播放 | 国产人成亚 | 九九九九热视频 | 成人精品免费 | 国产精品一区在线观看 | 视频一区欧美 | 精东AV| 国产在线观看免费无码 | 成人福利午夜A片 | 欧美另类自拍 | 深夜福利18 | 日韩中文在线播放 | 国产情侣91在 | 91自拍com| 91视频亚 | 深夜福利在线导航 | 91偷拍自拍 | 97精品国产9| 91网站观看 | 国产精品鲁一鲁 | 欧美性爱网站网址 | 日韩淫片| 日韩一区二区三级 | 成人免费影视 | 成人欧美视频 | 日韩欧美久爱 | 国产大片| 国产激情久久久 | 日韩动漫一区二区 | 尹人久久 | 综合激情网 | 99精品在线观看 | 五月婷婷激情网 | 东京热欧美 | 午夜网址在线观看 | 日韩特黄 | 深夜福利视频在线 | 玉足在线观看 | 国产家庭乱轮 | 午夜成人免费影院 | 成人国产一区二区三区 | 亚洲精品一线二线三线 | 91视频网| 91视频影院 | 成人亚洲性情网站w | 激情小说DVD | 日韩V888伦理A| 欧美精品一区二区视频 | 国产乱子伦 | 69免费福利视频 | 日本少妇xxx | 日韩欧美一区国产 | 国产午夜手机精彩视频 | 国产手机看片 | 91伊人网| 自拍偷拍第一页 | 日韩视频亚 | 美女一区 | 国产玉足 | 狼友短视频 | 偷拍精品视频 | 91制片网 | 中文字幕24页| 国产三级在线网站 | 91们嫩草伦理 | 成年人拍拍拍 | 国产偷拍自拍视频 | 午夜福利免费 | 深爱五月激情 | 日韩视频中文 | 色窝窝视频 | 爽爽影院在线 | 成人蘑菇国产 | 99精品在线 | www.欧美精品 | 成人国产aⅴ精 | 夜夜夜欧美 | 日韩在线一区二区 | 国产精品wwww | 日韩精选在线 | 口爆深喉| 欧美三级片网站 | 成人网站三级片 | 色情性黄片免费视频 | 亚洲亚洲人成综合网络 | 国产在线一卡 | 国产在线不卡0 | 午夜在线福利社 | 超碰超碰| 成人午夜影院在线观看 | 夜鲁夜鲁夜鲁视频在线 | 婷婷五月丁香五月 | 成人午夜大片一站二站 | 丁香五月天婷婷 | 一区二区视 | 日韩亚洲欧美一区 | 福利所第一导航福利 | 日韩精品亚洲每日更新 | 日韩成人在线视频 | 日韩在线观看第一页 | 婷婷丁香五月在线 | 国产精品三级片 | 丁香五月天综合网 | 福利在现观看视频播放 | 成人国产精品秘 | 熟女毛茸茸 | 国产69熟 | 国产91对白在线播放 | 深夜电影免费在线看 | 91视频破解版 | 天天干,天天日 | 玖玖爱www| 欧美性爱视频免费看 | 日韩欧美永久中文 | 麻豆精品| 人妻无码精品加勒比 | 日韩成人网址 | 日韩老司机免费午夜 | 成人a一区 | 国产无码网 | 97国产在 | 成人午夜视频精品 | 另类激情图区 | 神马午夜电影 | 日韩影院在线观看 | 午夜无码福 | 三级网址在线免费观看 | 激情图片另类小说 | 深夜福利免费 | 亚洲精品呻吟白浆 | 美女黄片免费看 | 午夜伦理电影网 | 国产欧国产精品 | 国模冰冰炮图 | 国产精品美乳在线观看 | 无码动漫网站 | 日韩在线观看不卡视频 | 真实国产亂伦免费看 | 国产91素人搭讪系 | 日韩欧美中文字幕免费 | 乱伦中字 | 日韩美女bb| 日韩欧美中文字幕免费 | 婷婷五月综合激情 | 黃色成人大片色大 | 欧美精品网| 日韩福利短片在线观看 | 日韩免费福利 | 丝袜美腿视频网 | 免费看国产三级 | 精品女同 | 国产盗摄偷窥在线观看 | 日韩免费精品大片 | 激情综合小说网 | 日韩在线视精品在 | 男人天堂黄色 | 午夜伦理剧 | 日韩欧美亚洲免费 | 三级毛片网站 | 第一福利视频导航 | 国产91精品秘密入口 | 精品一区二区三区人妻 | 国产播放 | 国产区视频在线 | 日韩经典欧美精品一区 | 国产成人无码三级 | 伦理一区二区 | 午夜福利导航在线 | 成人韩漫在线 | 无码高清人妻 | 国产清纯可爱高中害羞 | 欧美日韩精品一区二 | 日韩伦理片网站 | 欧美在线观看视频一区 | 狼友短视频 | 深夜福利在线观看八区 | 成人无码涩 | 国产全肉乱妇杂乱视频 | 精品999WWW| 欧美三区| 日韩免费精品视频 | 国产乱人视频 | 午夜影院老线观 | 日韩制服国产精品一区 | 熟妇成人网| 亚洲一卡二卡三卡四卡 | 91自拍网| 成人伊人 | 深夜福利免费看 | 亚洲性综合| 日韩成人无码一区二区 | 色婷婷激情网 | 91资源网站 | 日韩精品福利在线观看 | 国产精品爱搞在线观看 | 日韩伦理大全 | 国产三级片大全免费 | 老色批网站 | 日韩高清经典中文 | 97资源网中文字幕 | 激情图片小说 | 久久影视综合网 | 日本www色| 日韩暖暖 | 三级网站视频在线观看 | 东京热.com | 深夜福利视频免费观看 | 天天综合7799 | 苍井空一区| 亚洲卡一卡二在线观看 | 日韩中文字幕在线亚洲 | 日韩中文字幕欧美 | 91自拍网| 高潮久久久久久久不卡 | 网站成人高清视频 | 精东影业性做爰A片 | 97人人干人 | 国产成人一区 | 久操影视| 日日夜夜干 | 玖草视频在线观看 | 日韩美女在线观看 | 午夜成人福利姬 | 国产精品国产自 | 天天操夜夜爽 | 一区二区三区乱伦 | 日韩电影一区 | 熟女九色| 91超碰人人| 东京热av无码 | 日逼综合网 | 日韩美女热舞 | 97视频在线免费观看 | 国产又粗又大又爽视频 | 麻豆激情四射在线播放 | 成人午夜激情网 | 日韩无码成人 | 三级强奸网站 | 国产91露脸在线播放 | 日韩成人短视频 | 午夜国产无码 | 六月婷婷五月丁香 | www.射| 国产福利姬喷白浆流水 | 性欧美潮喷 | 午夜爱视频 | 日韩精品理论在线 | 日韩一区二区AⅤ | 在线天堂网 | 岛国大片在线观看 | 日韩电影伦理片 | 国产a∨无 | 五月天婷婷影院 | 国产福利二区 | 日本黄色视屏 | 另类激情图| 日韩另类电影 | 国产清纯可爱高中害羞 | 日韩视频在线 | 狠狠干2019 | 午夜福利影视 | 成人国产自拍 | 日韩欧美中文字幕涩涩 | 午夜视频直播 | 成人无码电影在线观看 | 国产成a人亚洲 | 天天爽夜夜干 | 国产精品成人AV片 | 97影院2| 国产大片特黄高清视频 | 日韩中文字幕电影网站 | 国内自拍网 | 成人精品午夜无码免费 | 超碰人人草97 | 国产夫妻视频 | 国产色无码精品 | 成人区精品人 | 亚洲无码卡一卡二 | 成人软件下载 | 国产精品国产精品国产 | 国产精品日韩欧 | 日韩伦理片 | 伦理二区 | 国偷自拍 | 五月天婷婷影院 | 国产九九成人 | 成人免费视频软件网站 | 无码成人午夜电影免费 | 偷拍自拍99 | 91资源网站 | 国产在线2025 | 成人ab片| 国产激情一区 | 日韩不卡1卡2卡三卡 | 日韩精品免费一区二区 | 天天操狠狠操 | 黄色三级片网站 | 国产福利姬喷白浆流水 | 日韩成人精品在线 | 三级片国产在线 | 日韩高清伦理 | 97国产| 国产高清乱理 | 九九只有精品 | 91中文在线| 国产高清无码视频网站 | 午夜成人免费视频观看 | 国产午夜一级 | 日韩丝袜中文字幕 | 足交在线播放 | 日韩免费视频播播 | 日韩亚洲国产 | 伊人成色 | 亚洲五月天婷婷丁香 | 国产女主播在线 | 国产农村成人精品一区 | 三级黄色在线观看 | 久久只有这里有精品 | 午夜性爱视频网站 | 国产日韩欧美一区二区 | 国产一区二区无码不卡 | 国产清纯可爱高中害羞 | 欧美在线成人网站 | 亚洲国产爱| 成人影片在线观看 | 福利导航在线视频 | 国产高潮视频 | 国产福利啪啪 | 成人动漫中文字幕 | 成人黄片免费看 | 欧美另类在线 | 三级网址在线免费观看 | 国产三级在线观看官网 | 日韩精品在线二区三区 | 国产成在线 | 国产你懂得 | 国产福利网 | 欧美视频一区 | 91导航| 国产顶级裸体片 | 国产午夜视频在线观看 | 日韩国产毛片 | 色墦五月丁香 | 日韩拍拍| 影音先锋777| 福利短片在线观看 | 成年人午夜福利视频 | 人妻系列无码 | 国产AV无码| 加勒一本伊人 | 青青操女人 | 国产三级国产三级国产 | 丁香五月天之婷婷影院 | 麻豆AV网站 | 成人激情小说视频 | 国产兄妹在乱搞 | xxx.国产| 国产三级观看 | 欧美成年网站 | 成人在线论坛 | 国产不卡福利 | 五月天成人影院 | 日韩一级中文字幕在线 | 日韩论理论片在线观看 | 国产91高清在线免费 | 国产91精品一区二 | 超碰成人人人操 | 日韩一级视频免费观看 | 日韩精品视频无码 | 三级特黄60分钟在线 | 美腿丝袜中文字幕 | 日韩精品在线第二页 | 农村乱码一区二区三区 | 日本WWWWW色高清 | www.深夜视频 | 强奸乱伦一区二区三区 | 影音先锋777| 国产成人a人亚洲精v | 自拍第一页| 国产激情一区二区三区 | 成人a级网站 | 日韩高清乱码在线观看 | 麻花原创mv免费观看 | 日韩高清在 | 一伦一色一性一交一配 | 四房色播五月婷婷 | 激情小说视频网站 | 三级毛片网站 | 国产97在线欧洲 | 91尤物在| 国产伦理片网站 | 国产a高 | 国内自拍2 | 国产伦理片网站 | 国产麻豆精品黑丝自慰 | 狼人狠干 | 自拍偷怕网站 | 久久惹这里只有精品 | 欧美精品网站在线观看 | 日日夜夜天天综合网 | 91最新在线 | 日韩伦理中文 | 极品白嫩虎白女视频 | 这里只有精品视频 | 偷拍自拍 | 强奸乱伦一区二区三区 | 日韩va天堂网 | 爱豆传媒免费看 | 国产不卡一 | 国产mv天美传媒 | 日韩欧美国产中文字幕 | 日韩欧美亚洲综合 | 只有精品| 国产精品色色 | 日韩欧美~中文字幕 | 国产裸体美女免费观看 | 天天操天天干天天日 | 国产偷人视频 | 日韩国产私拍在线观看 | 日本草莓视频 | 91在线视频播 | 欧美乱妇高清无乱码 | 激情文学区 | 国产一曲二曲 | 成人播放日韩在线观看 | 性欧美孕妇一二三四区 | 午夜剧场伦理 | 国产a国产片精品 | 福利姬视频免费看 | 成人午夜视频在线视频 | 国产精品3级片 | 日韩经典欧美精品一区 | 国产不卡高清 | 日韩理论电影在线播放 | 变态另类爽 | 亚洲无码一卡二卡三卡 | www,超碰| 国产伦子伦露脸 | 爽爽爽影院| 成人交性视频免费看 | 国产激情视 | 欧美性爱网址大全 | 精品日韩一区二区三区 | 午夜影视网 | 亚洲成人网在线观看 | 午夜福利成人 | 岛国毛片 | www色日本 | 东方AV在线免费观看 | 性欧美精品 | 日韩另类动漫一区二区 | 伊人久操| 国产高清乱伦片 | 亚洲国产免费 | 日韩极品视频 | 成人动作激情小说 | 国产v片在| 蜜桃2区 | 老湿机x看片 | 日韩国产中文综合网 | 五月丁香六月天 | 日韩欧美不卡一二三区 | 午夜成人电影在线 | 欧美日韩精选 | 日韩欧美理论在线观 | 成人午夜福利 | 国产人妖视频网站 | 日本不卡一二区 | 国产黄三级性孕妇 | 日韩中文字幕精品 | 国产偷自拍 | 自拍国内 | 国产精品户外 | 天天爽夜夜干 | 成人做爰黄片免费 | 久久综合资源网站 | 成人高清无码 | 狼友视频免费 | 日日夜夜精品免费视频 | 日韩在线一区 | 日韩一区在线观看免 | 成人情趣用品 | 福利姬在线视频 | 国产精品成人高清 | 日韩亚洲国 | 日韩无码AV一区二区 | 欧美视频在线观看 | 伦片丰满丰满午夜电影 | 成人91| 极品美女在线 | 黄色av网站在线观看 | 日韩电影观看 | 日韩欧美永久中文 | 日韩精品欧美激情 | 成人午夜福利在线观看 | 在线观看自拍视频 | 成人欧美视频在线观看 | 国产91呆哥在线视频 | 老湿福利影院 | 91视频免| 福利姬网站在线观看 | 亚洲成人激情小说网 | 成人91| 久久这里只有精品1 | 国产午夜一级 | 国产无码三级在线视频 | 日韩高清在线免费观看 | 91直播主播 | 狠狠撸视频 | 国产AV午夜| 欧美色拍 | 强奸乱伦小说视频 | 美女一区 | 极品精品| 日韩中文字幕高清一区 | 香蕉插逼| 国产精品自产拍在线 | 中文字幕在线观看 | 凤凰裸体舞一区二区 | 人人爽人人爱 | 日韩经典亚洲专区 | 97视频 | 午夜伦理第1页 | 国产美女高潮 | 国产91自拍| 日本色色网| 亚洲国产成人综合色 | 玖草在线视频 | 精品三级在线观看 | 日韩中文字幕精品一区 | 成人精品部 | 成人午夜视频网 | 日韩在线国产欧美 | 中文字幕精品日本A∨ | 激情五月天成人 | 国产精品久久久在线 | 日韩专区亚洲国产精品 | 成人午夜电影网站 | 99精品视频在线观看 | 91青青| 国内揄拍国内精品 | 日韩一页 | 人妻精品一区二区 | 亚洲国产色色 | 日韩专区国产在线 | 另类图片小说激情 | 丝袜美腿视频网 | 国产精品偷伦免费观看 | 日韩经典三级免费电影 | 欧美极品第一页 | 亚洲伦理电影 | 日韩精品视颁免费网址 | 欧美性爱第十页 | 三级毛片网| 成人午夜爽| 欧美精品二区三区 | 成人黄瓜视频 | 三男玩一女三A片视频 | 变态另类91视频 | 91网址导航 | 三级一区二区三区 | 日韩视频高清欧美一区 | 欧美极品一区二区三区 | 久久66 | 国产午夜高清无 | 成人午夜在线观看视频 | 午夜激情网 | 成人不卡免费观 | 成人免费视频软件网站 | 国产性爱电影在线观看 | 日韩制服中文 | 日韩资源站 | 日韩精品视颁免费网址 | 人妖在线网站 | 国产性爱精品在线观看 | 日韩一区二精品成人免 | 国产91原创视频 | 国产a级毛片 | 欧美视频二区三区 | 午夜影院操 | 天天干天天摸 | 国产91福利在线精 | 欧美精品在线一区 | 午夜视频国产 | 自拍偷拍第 | 天天插夜夜爽 | 欧美精品2 | 玖玖爱中文字幕 | 草草影院国产第一页 | 国产一区二区乱伦 | 国产午夜视频在 | 国产夫妻对 | 97成人碰碰 | 超黄网站在线观看 | 国产91网址在线播放 | 成人国产精品秘久久 | 国产又粗又爽 | 日韩伊人网 | 在线二区人妖系列 | 亚洲精品国产精品国自 | 日韩中文字幕网先锋资 | 日韩欧美另 | 麻豆视频传媒入口 | 五月天激情综合网 | 国产性爱在线免费观看 | 亚洲无码无卡 | 午夜色色网 | 都市激情欧美 | 国产一曲二曲三曲 | 日韩国产一区二区三区 | 日韩性生活视频 | www国产精品| 三级黃色男人的天堂 | 国模精品视频一区二区 | 亚洲动漫精品 | 日韩超级大片中文字幕 | 日韩熟女中文字幕 | 麻豆视频第一三区 | 一A级成人免 | 国产免费无码 | 国产又大又长又爽 | 91视频你懂得| 午夜视频在线网站 | 日本黄色视屏 | 日韩一区二区免费电影 | 日韩成人影院影音先锋 | 日韩欧美一区二区尤物 | 日韩欧美色射高清 | 日韩欧美一级性视频 | 国产ts人妖另类专区 | 最新无码网站 | 中文字幕日本不卡 | 天堂视频在线 | 日韩成人精品无v国产 | 国产视频第三页 | 国产专区第一页 | 日韩一卡2卡3卡4卡 日韩一卡2卡3 | 日韩精品高清在线 | 成人福利在线视频 | 日韩有码在线视频 | 欧美福利网站 | 三级理论中文字幕在 | 成人黃色A片免费 | 午夜不卡在线 | 日韩在线你懂得 | 中国一区二区视频 | 综合久久一 | 天堂网wwww| 国产乱人视频免费观看 | 日韩中文影院 | 玖草视频在线 | 国产精品14p | 人妖操伪娘 | www.bbbbb| 在线观看深夜福利 | 日韩精品社区 | 成人在线精品 | 四房综合五月丁香 | 精品人妻中文字幕 | 亚洲精品呻吟白浆 | 日韩在线播放欧美字幕 | 久草最新地址 | 午夜伦理影院 | 国产TS人妖 | 国产视频538 | 超碰97网| 日本不卡的中文字幕 | 国产精品在 | 午夜在线看片 | 日韩美女视频在线播放 | 日韩一二三精品 | 国产第一艘航母 | 成人h在线观看 | 五月丁香综合网 | 精品处破女学生 | 成人熟女网 | 日韩亚射吧 | 神马午夜影院 | 亚州看片| 五月丁香在线视频 | 成人午夜免费在线 | 国产美女在线看 | 国产精品二区无 | 国产精品美乳在线观看 | 加勒比在线视频 | 日韩亚洲欧美中文高清 | 夜间福利在线 | 三级黄,色在线 | 午夜福利免费视频 | 毛片中文 | 日韩美女在线视频一区 | 亚洲丁香五月婷婷 | 国产白丝网站 | 日韩无码二区三区 | 久草smc| 午夜免费影视 | 爱豆传媒全集免费观看 | 日韩一级一区二区不 | 亚洲男人网 | 国产91电影 | 玖玖爱在线视频观看 | 国产日韩福利 | 91视频社区 | 日韩一区国产精品 | 日韩v亚洲v欧美 | 微拍福利导航 | 91中文视频 | 日韩欧美爽爽的影院 | 成人免费午夜在线观看 | 成人午夜色情无码精品 | 日韩欧美一区 | 国产精品成人大全 | 韩日一级 | 国产三级片在线视频 | 国模一区二区三区 | 国产91最新欧 | 麻豆爱爱网站 | 午夜久操 | 国产视频麻豆 | 久草免费福利资源 | 午夜成人福利免费 | 韩国午夜三级 | 日韩成人精品在线 | 日韩第页 | 激情文学久久 | 日韩精品欧美大片 | 日韩精品黄肉动 | 日韩无码第1页 | 国产v片成人影院在线 | 午夜毛a片 | 自牌偷牌第4页 | 国色综合| 手机超碰干 | 在线无码网 | 在线不卡国产 | 做受视频试看 | 日韩美女视频色福利 | 日韩中文字幕电影网站 | 国产视频亚洲 | 国产精品自拍在线观看 | www.内射| 欧美性爱第八页 | 成人精品电影 | 国产三级精品视频 | 国产a√免费观看 | 自拍偷拍精品视频 | 日韩在线观看一区二区 | 国产91高清在线 | 日韩一区二区三区中文 | 亚洲激情区 | 福利视频网站导航 | 日韩欧美在线观看免费 | 日韩欧美福利 | 美女三级片网站 | 最新无码网站 | 福利直播导航在线观看 | 夜色福利在线视频 | 午夜淫网 | 丁香五月网站 | 五月丁香停停 | 性国产高清在线观看 | 成人精品丝 | 91男同 | 日韩国际精品一区二区 | 亚洲国产高清免费播放 | 日韩高清影院 | 国产精品成人网 | 国产丝袜美腿在线观看 | 亚洲成人国产 | 美女三级网站 | 深夜福利在线导航 | 国产日韩欧美在线 | 国产999| 激情文学区| 日韩精品――色哟哟 | 成人午夜福利免费视频 | 成人深夜福利 | 秋霞午夜伦理 | 日韩欧美亚洲小网站 | 五月婷婷综合网 | 超碰人人操| 日本AAA片| 成人不卡 | 久久夜靖品2区 | 成人信息集中地日韩 | 日韩欧美国产高清蜜月 | 国产嫖妓自拍 | 日韩激情图片 | 日本特级a毛| 成人免费视频国产免 | 毛片A片免费 | 国产8区 | 国产一浮力影院 | 深夜成人视频在线观看 | 日韩不卡高清视 | 三级黄色网| 中国免费三级片 | 亚洲砖区区免费 | 日韩福利电影网 | 视频区小说区图片区 | 91香蕉视频网| 亚洲国产三级在线观看 | 天堂在线资源网 | 成人午夜福利在线视频 | 官方福利视频导航 | 日韩中文字幕在线看 | 精品字幕 | 乱欲精品 | 精品日韩一区二区三区 | 日韩国产精品专区高清 | 久久这里只有精品资源 | xxx.日本在线观看 | 日韩中字中文字幕在线 | 特级A级毛片免费网站 | 专干老熟人300部 | 91视频下| 日韩成人视频网 | 成人午夜又粗又硬又长 | 国产喷水福利 | 欧美另类一区 | 91欧美在线 | 国产性交在线 | 日韩中文字幕在线 | 天美mv在线限免观看 | 欧美另类tv| www黄色日本| 日韩精品三级 | 黄色链接在线观看 | 国产精品自拍第一页 | 欧美性爱小 | 三级片网站国产 | 日韩精品乱 | 日韩欧美一区国产 | 成人伦理在线观看国产 | 无码极品| 久久九九国产 | 超碰在线视97 | 国产三级第一页 | 午夜成人视屏 | 97中文字幕 | 欧美三级片网站 | 国产乱人精品视频 | 欧美在线不卡视频 | 日本中文字幕综合 | 91视频你懂得 | 日韩欧美女人 | 国产三级观看 | 黄色精品| 足交在线玉足 | 国产盗摄一区二 | 日韩欧美精品免费观看 | 日韩在线视频成人 | 日韩午夜中 | 日本不卡视频 | 97欧美在线 | 三级网战 | 国产变态一区二区三区 | 日韩一欧|