999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于MVC模型和行為描述的Web應(yīng)用測(cè)試框架

2017-04-10 23:53:04蔣破荒徐建明
現(xiàn)代電子技術(shù) 2017年6期
關(guān)鍵詞:計(jì)算機(jī)軟件

蔣破荒 徐建明

摘 要: MVC模型分離設(shè)計(jì)的思想提高了軟件的整體質(zhì)量,然而由于模型只定義了靜態(tài)架構(gòu)組件的配置,其并不能明顯地提供Web應(yīng)用程序開發(fā)過程中的行為表現(xiàn),這導(dǎo)致了Web應(yīng)用程序的描述和其行為特性間較為明顯的差異。為了解決這一問題,提出一種行為模型來填補(bǔ)該差異,即對(duì)該程序的URL請(qǐng)求序列自動(dòng)接收機(jī)制進(jìn)行模式化,為Web應(yīng)用程序提出一個(gè)基于行為模式的測(cè)試框架。研究表明,當(dāng)集中于循環(huán)行為自動(dòng)機(jī)制時(shí),該框架可提供Web應(yīng)用程序更好的測(cè)試標(biāo)準(zhǔn)。最后,將框架應(yīng)用于Jakarta Struts框架的配置方案中,其結(jié)果表明,該行為模型在對(duì)Web應(yīng)用的測(cè)試路徑進(jìn)行分類時(shí)取得了較好的效果。

關(guān)鍵詞: 計(jì)算機(jī)軟件; MVC構(gòu)架; Jakarta Struts框架; 軟件測(cè)試

中圖分類號(hào): TN911?34; TP311.5 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1004?373X(2017)06?0071?04

Abstract: Although the separation design thought of MVC model has improved the overall quality of the software, but because the model only defines the configuration of static architectural components, MVC model con not clearly provide the behavioral expression of Web application program development process, which leads to the obvious differences between the description of Web application program and its behavioral characteristics. To fill this difference, a behavior model is proposed in this paper, in which the automatical receiving mechanism of the URL request sequence of the program is modeled, and a testing framework based on behavior pattern is proposed for Web application program. The research result shows that, when it is focused on the cyclic behavior of an automatic mechanism, this framework can provide a better test standard for Web application program. The result that the framework is applied to the configuration scheme of Jakarta Struts framework shows that the behavior model has achieved a very good effect in the classification of the testing paths of the Web application.

Keywords: computer software; MVC architecture; Jakarta Struts framework; software testing

0 引 言

Web應(yīng)用是計(jì)算機(jī)響應(yīng)系統(tǒng)外的網(wǎng)絡(luò)請(qǐng)求所需的一種軟件技術(shù),其基本特征是根據(jù)不同交互系統(tǒng)和環(huán)境所表現(xiàn)出的特殊行為機(jī)制。在傳統(tǒng)基于功能模塊的軟件中,輸入輸出關(guān)系極為重要,這種特征影響著軟件架構(gòu)的各個(gè)方面[1?3]。網(wǎng)頁(yè)應(yīng)用普遍建立在基于MVC架構(gòu)上的J2EE平臺(tái)上,其為Sun 微系統(tǒng)公司制定的一系列構(gòu)建網(wǎng)頁(yè)應(yīng)用的基礎(chǔ)API接口集合。MVC模型給出了在API之上來結(jié)合組件以開發(fā)網(wǎng)頁(yè)應(yīng)用的架構(gòu)模型,其旨在采用合適的方式對(duì)組件進(jìn)行分離式設(shè)計(jì),增加Web應(yīng)用的可維護(hù)性和可重用性。然而,由于MVC模型僅提供抽象的形式,導(dǎo)致了行為描述在描述組件靜態(tài)架構(gòu)關(guān)系時(shí)被分離,在實(shí)際開發(fā)調(diào)試及測(cè)試的過程中兩者差異較大[4?6]。因此,本文給出一種簡(jiǎn)單的行為模型,并定義一種直接行為描述方式。本文的基本想法是將Web應(yīng)用程序的行為類比為一個(gè)自動(dòng)機(jī),其狀態(tài)為JSP,且狀態(tài)轉(zhuǎn)換被URL請(qǐng)求所調(diào)用。假設(shè)應(yīng)用程序有一個(gè)進(jìn)入頁(yè)面,如歡迎頁(yè)面,同時(shí)有一些最終頁(yè)面,如感謝頁(yè)或錯(cuò)誤頁(yè)。在網(wǎng)頁(yè)應(yīng)用中,返回到之前訪問過的頁(yè)面常會(huì)要求相似的轉(zhuǎn)換。因此,本文考慮將重訪頁(yè)面作為改進(jìn)測(cè)試。基于這種思想,本文給出一種網(wǎng)頁(yè)程序的測(cè)試標(biāo)準(zhǔn),并通過一個(gè)簡(jiǎn)單的圖書管理系統(tǒng)來論證該方法的有效性。

1 網(wǎng)頁(yè)應(yīng)用的MVC模型

MVC模型由三種組件構(gòu)成:模塊、視圖和控制器。其中,模塊組件代表數(shù)據(jù)域,視圖組件處理客戶端的輸出,控制器組件定義對(duì)數(shù)據(jù)的操作。MVC模型通常在J2EE平臺(tái)上使用JSP/Servlet技術(shù)[7],其模型基本結(jié)構(gòu)如圖1所示。首先瀏覽器遞交一個(gè)需求給控制器,控制器根據(jù)需求處理模塊組件中的數(shù)據(jù),并將處理后的數(shù)據(jù)更新至后臺(tái)數(shù)據(jù)庫(kù),然后控制器將會(huì)調(diào)用一個(gè)JSP對(duì)請(qǐng)求做出響應(yīng)。

文中MVC模型使用JSP/Servlet技術(shù),其中模塊組件采用JavaBean來實(shí)現(xiàn),視圖組件采用Java Server 頁(yè)面,控制器組件則采用ActionServlet實(shí)現(xiàn)。J2EE根據(jù)指定組件之間連接的配置信息來組裝組件。

Struts是由Jakarta項(xiàng)目開發(fā)的一個(gè)開源網(wǎng)頁(yè)應(yīng)用框架,Struts采用遵從如上所述的MVC模型的JSP/Servlet技術(shù),其具體類結(jié)構(gòu)如圖2所示。基于MVC模型的行為在其中的實(shí)現(xiàn)如下:ActionServlet是一個(gè)總的工廠類,負(fù)責(zé)處理外部請(qǐng)求及分配適當(dāng)?shù)腁ctionServlet。開發(fā)人員通過定義操作類的子類來實(shí)現(xiàn)具體的控制行為。操作類是通過ActionServlet類激發(fā)的抽象類。一個(gè)Servlet操作指的是一種活動(dòng)形式目標(biāo)以及做一些處理操作,其結(jié)果被包括到操作轉(zhuǎn)發(fā)目標(biāo)中以返回給Servlet操作[8?9]。Servlet操作將會(huì)根據(jù)描述ActionForward到JSP的映射關(guān)系A(chǔ)ctionMapping來調(diào)用一個(gè)JSP。最后,所調(diào)用的JSP作為響應(yīng)呈現(xiàn)。與此同時(shí),JSP可能會(huì)根據(jù)其動(dòng)態(tài)內(nèi)容做出一些相應(yīng)處理。

2 行為模型

基于MVC模型的Web應(yīng)用程序的原始外部行為是成對(duì)的請(qǐng)求序列和JSP,本文將網(wǎng)頁(yè)應(yīng)用的行為模式化為一種自動(dòng)機(jī)。鑒于Struts框架,文中用有限狀態(tài)來完成自動(dòng)機(jī)模式化,其中的狀態(tài)是一系列出現(xiàn)在配置中的JSP[10?11]。自動(dòng)機(jī)的字母表來自ActionServlet的請(qǐng)求和響應(yīng),這些請(qǐng)求和響應(yīng)在其中被描述為配置文件。本文假設(shè)有一個(gè)最初的JSP作為預(yù)期行為的切入點(diǎn),同時(shí)假設(shè)最終的JSP作為網(wǎng)頁(yè)應(yīng)用事務(wù)和會(huì)話的預(yù)期終結(jié)點(diǎn)。

定義1 給定一個(gè)在Struts中描述的網(wǎng)頁(yè)應(yīng)用A,一個(gè)有限自動(dòng)機(jī)WebA=(View,Act,AM,iv,F(xiàn)V),調(diào)用Web自動(dòng)機(jī)定義如下:View是在A中的JSP文件;Act是A的一系列請(qǐng)求及Servlet響應(yīng)對(duì)集合;[AM?View×Act×View]是A的操作映射;[iv∈View]是A中的初始JSP頁(yè)面;[FV?View]是A中的最終JSP頁(yè)面集合。存在[a∈Act],本文定義rq/re,其中rq是一個(gè)對(duì)ActionServlet的請(qǐng)求標(biāo)簽,re是對(duì)ActionServlet的響應(yīng)標(biāo)簽,當(dāng)ActionServlet被激活時(shí),re被忽略。Action映射指被激活的指向指定的ActionServlet的指令集合,而JSP則根據(jù)ActionServlet被調(diào)用。

本文的建模目的旨在測(cè)試網(wǎng)頁(yè)應(yīng)用,即使在最終的JSP中,仍需存在一些鏈接以開始其另一個(gè)請(qǐng)求;但對(duì)于測(cè)試應(yīng)用的動(dòng)態(tài)行為,這些鏈接并不重要,因通常這些鏈接并不包含應(yīng)用的邏輯組件,這些請(qǐng)求均惟一地被應(yīng)用映射到含有適當(dāng)前綴的URL上。為了簡(jiǎn)單起見,本文忽視這些參數(shù)。

圖3所示為一個(gè)行為模型的示例——簡(jiǎn)單的圖書館管理系統(tǒng),其負(fù)責(zé)管理圖書數(shù)據(jù)庫(kù)。該圖書館管理系統(tǒng)由三個(gè)功能組成,其一是檢索系統(tǒng)中已注冊(cè)的書籍,該功能由JSP,QueryAct構(gòu)成搜索,由JSP構(gòu)成列表,并使用未認(rèn)證的JSP呈現(xiàn)細(xì)節(jié)。另外兩個(gè)功能是注冊(cè)新書以及修改注冊(cè)記錄,這兩個(gè)功能由JSP執(zhí)行修改,由ModifyAct及RegistAct執(zhí)行注冊(cè),由JSP顯示成功和失敗的結(jié)果,通過CertifyAct進(jìn)行認(rèn)證以及通過JSP來進(jìn)行登錄實(shí)現(xiàn)。

圖3中Weblib的行為模型組成如下:

View = {search, list, detail, login, modify, regist, failure, success}

Act= {QueryAct/list,QueryAct/detail, CertifyAct/mod, CertifyAct/reg, CertifyAct/NG, ModifyAct/success, Modify/failure, RegistAct/success, RegistAct/failure, link search, link detail}

iv = search

FV = {list, detail, failure, success}

AM = {(search, QueryAct/list, list), (search,QueryAct/detail, detail), (search, CertifyAct/NG, login), (search, CertifyAct/mod, modify), (search, CertifyAct/reg, regist), (login, CertifyAct/NG, login), (login, CertifyAct/mod, modify), (login,CertifyAct/reg,regist), (detail, CertifyAct/mod, modify),(detail,CertifyAct/reg,regist), (detail, CertifyAct/NG, login), (modify, ModifyAct/success, success),(modify, ModifyAct/failure, failure), (list, link detail, detail), (regist, RegistAct/success, success), (list, link search, search),(regist, RegistAct/failure, failure), (detail, link search, search),(success, link search, search), (failure, link search, search)}

3 測(cè)試框架

給定一個(gè)網(wǎng)頁(yè)應(yīng)用A,WebA將遵從操作映射模擬全部的行為特性。每個(gè)字均會(huì)被WebA介紹以模仿預(yù)期A的事務(wù)或會(huì)話。語(yǔ)言同樣也被WebA接收,即L(WebA)。因此,檢測(cè)L(WebA)中的所有字是一種對(duì)A有效的測(cè)試方式。然而,因L(WebA)是一個(gè)常規(guī)集合,通常其是無(wú)窮的,從測(cè)試的角度來看,本文主要關(guān)注網(wǎng)頁(yè)應(yīng)用的特性,WebA中的循環(huán)是一個(gè)返回之前訪問過的頁(yè)面的序列,這些重復(fù)訪問的頁(yè)面通常會(huì)導(dǎo)致應(yīng)用中的邏輯組件進(jìn)行相似的應(yīng)用。據(jù)此,在L(WebA)中最令人感興趣的測(cè)試是其中最多一次循環(huán)的字,為了包含所有轉(zhuǎn)換,必須將單循環(huán)考慮在內(nèi)。通過增加JSP的訪問,可以測(cè)試Web應(yīng)用程序更多的屬性。本文將這種思想形式化以形成一種測(cè)試標(biāo)準(zhǔn)。

Weblib有兩種循環(huán):由首尾頁(yè)間鏈接觸發(fā)的以及由更新認(rèn)證鏈接觸發(fā)的。前一種循環(huán)是相似事務(wù)的重復(fù),后一種循環(huán)是用戶得到認(rèn)證前的空循環(huán)。給定一個(gè)網(wǎng)頁(yè)自動(dòng)機(jī)WebA=(View,Act,AM,iv,F(xiàn)V),一個(gè)執(zhí)行操作是一個(gè)由iv引發(fā)的View和Act的交變序列:[v0a1v1…alvl]。其中,[v0=iv,vl∈FV],且對(duì)于所有的i,[vi,ai+1,vi+1∈AM]。令Exec(WebA)為所有WebA的執(zhí)行操作計(jì)劃,occ(vi,e)為執(zhí)行操作e中出現(xiàn)vi的次數(shù)。文中記錄除去所有來自e的View活動(dòng)序列L(e)和出現(xiàn)在e中的View集V(e)

定義2 擁有n度的A測(cè)試標(biāo)準(zhǔn)[TnA]定義如下:

[TnA={L(e)e∈Exec(WebA),?v∈V(e):occ(v,e)≤n+1}]

顯然,[T0A],[T1A],[T2A],…是遞增數(shù)列且[n=0∞TnA=][L(WebA)]。

在很多時(shí)候,[T0A]給出了一組大量的測(cè)試序列,圖4顯示了網(wǎng)頁(yè)應(yīng)用的測(cè)試框架。

在這一框架中,通過一個(gè)網(wǎng)頁(yè)應(yīng)用配置構(gòu)造了網(wǎng)頁(yè)自動(dòng)機(jī),然后提取了執(zhí)行操作。接著根據(jù)測(cè)試標(biāo)準(zhǔn)進(jìn)行了測(cè)試,從[Tn]開始直到得到滿足條件的結(jié)果。測(cè)試標(biāo)準(zhǔn)的最大維度取決于測(cè)試中的網(wǎng)頁(yè)應(yīng)用,若任何循環(huán)均無(wú)副作用,則[T0]就足夠了。

將測(cè)試標(biāo)準(zhǔn)應(yīng)用在Weblib中。如前所述,特征值為L(zhǎng)(Weblib)的正則表達(dá)式Replib如下:

[Replib=(Path1+Path2)(link_search(Path1+Path2))]

其中,

[path1defCertifyAct/NG?(CertifyAct/mod(ModifyAct/success+ModifyAct/failure)+CertifyAct/reg(RegistAct/success+RegistAct/failure))Path2def(QueryAct/list(e+link_detail)+QueryAct/detail)(e+Path1)]

此處描述測(cè)試標(biāo)準(zhǔn)為[T0]和[T1]時(shí)的測(cè)試序列,使用[Replib↑Ti]來表示語(yǔ)言限制為[Ti],如下:

[Replib↑T0=Path01+(QueryAct/list(e+link_detail)) (e+Path01)]

其中,

[Path01def(e+CertifyAct/NG)×(CertifyAct/mod(ModifyAct/success+ModifyAct/failure)+CertifyAct/reg(RegistAct/sucess+RegistAct/failure)+QueryAct/detail))]

注意到CertifyAct的ActionServlet被重新激活多次,但由于其不是JSP,所以不會(huì)對(duì)測(cè)試標(biāo)準(zhǔn)造成影響。

4 Struts的應(yīng)用

將Struts的配置方案擴(kuò)展以直接描述行為。主要增加了JSP和動(dòng)作映射的結(jié)合信息。通過這種擴(kuò)展,可以在Struts中描述一個(gè)網(wǎng)頁(yè)應(yīng)用的網(wǎng)頁(yè)自動(dòng)機(jī)。本文為視圖組件創(chuàng)建了一個(gè)配置文件(wsm?config.xml),該擴(kuò)展描述了JSP間的轉(zhuǎn)換關(guān)系。如圖5所示。

圖5顯示了圖書館管理系統(tǒng)中的struts?config.xml 和wsm?config.xml,網(wǎng)頁(yè)自動(dòng)機(jī)Weblib由以下部分組成:iv指定為初始狀態(tài)元素的路徑屬性,F(xiàn)V則代表了終止?fàn)顟B(tài)元素的路徑屬性。視圖和部分AM指定為視圖映射元素,每個(gè)擁有路徑屬性的視圖元素指定一個(gè)視圖和由該視圖鏈接的可能狀態(tài)轉(zhuǎn)換。動(dòng)作鏈接元素定義了一個(gè)由其路徑屬性所請(qǐng)求的Servlet調(diào)用的狀態(tài)轉(zhuǎn)換。AM的其余部分由struts?config.xml中的一個(gè)動(dòng)作映射元素所指定。根據(jù)每個(gè)和活動(dòng)鏈接中路徑元素所匹配的動(dòng)作元素,這些元素表明哪一種Servlet活動(dòng)應(yīng)被激活以及哪些JSP應(yīng)被活動(dòng)Servlet執(zhí)行的結(jié)果所調(diào)用。因此,AM是被視圖元素中的活動(dòng)鏈接元素及映射活動(dòng)元素所指定的。

5 結(jié) 論

本文提出了一種基于MVC模型的網(wǎng)頁(yè)應(yīng)用測(cè)試框架,首先定義了一種網(wǎng)頁(yè)應(yīng)用的行為模型,并在J2EE平臺(tái)上采用JSP/Servlet技術(shù)實(shí)現(xiàn)的MVC結(jié)構(gòu)展示了一種面向Jakarta Struts框架的應(yīng)用。該模型直觀地呈現(xiàn)了網(wǎng)頁(yè)應(yīng)用全面的行為,且在這種行為模型下進(jìn)行了測(cè)試。本文的重點(diǎn)在于網(wǎng)頁(yè)應(yīng)用的特性,即通過重訪某些頁(yè)面經(jīng)常導(dǎo)致相似的頁(yè)面轉(zhuǎn)換,為此提出了基于重訪問相同頁(yè)數(shù)量的測(cè)試標(biāo)準(zhǔn),相比較其他測(cè)試其更為精確。盡管測(cè)試標(biāo)準(zhǔn)基于測(cè)試中的網(wǎng)頁(yè)應(yīng)用的特性,在眾多情況下預(yù)期最簡(jiǎn)單的測(cè)試標(biāo)準(zhǔn)可涵蓋哪些僅重復(fù)訪問一次的測(cè)試序列。

參考文獻(xiàn)

[1] 林艷琴.Web功能測(cè)試自動(dòng)化的研究與應(yīng)用[D].成都:電子科技大學(xué),2010.

[2] 侯婷.基于Web功能測(cè)試自動(dòng)化研究與應(yīng)用[D].青島:山東科技大學(xué),2014.

[3] 鄧璐娟,范乃梅,孫義坤,等.基于Web應(yīng)用的性能測(cè)試模型研究[J].計(jì)算機(jī)工程與應(yīng)用,2013,49(1):75?77.

[4] 王新.基于MVC模式的通用Web軟件系統(tǒng)開發(fā)框架設(shè)計(jì)與實(shí)現(xiàn)[D].成都:電子科技大學(xué),2007.

[5] 郝紅巖.基于MVC模式的Web框架的應(yīng)用研究[D].武漢:武漢理工大學(xué),2013.

[6] 王俊芳,李隱峰,王池.基于MVC模式的ThinkPHP框架研究[J].電子科技,2014,27(4):151?153.

[7] ATKINS D L, BALL Thomas, BRUNS Glenn, et al. Mawl: a domain?specific language for form?based services [J]. IEEE transactions on software engineering, 1999, 25(3): 334?346.

[8] 歐陽(yáng)宏基,葛萌.基于Struts2與Hibernate框架的Java Web應(yīng)用研究[J].自動(dòng)化技術(shù)與應(yīng)用,2016,35(2):48?52.

[9] MORALES?CHAPARRO R, LINAJE M, PRECIADO J C, et al. MVC web design patterns and rich internet applications [J]. Proceedings of the jornadas de ingenier?a del software y bases de datos, 2007, 32(5): 98?104.

[10] 曾紅衛(wèi).Web應(yīng)用的驗(yàn)證與測(cè)試方法研究[D].上海:上海大學(xué),2008.

[11] WOJCIECHOWSKI J, SAKOWICZ B, DURA K, et al. MVC model, struts framework and file upload issues in web applications based on J2EE platform [C]// Proceedings of the 2004 International Conference on Modern Problems of Radio Engineering, Telecommunications and Computer Science. [S.l.]: IEEE, 2004: 342?345.

猜你喜歡
計(jì)算機(jī)軟件
芻議計(jì)算機(jī)軟件中的安全漏洞檢測(cè)技術(shù)
計(jì)算機(jī)軟件技術(shù)的不可靠性探析
基于C語(yǔ)言的計(jì)算機(jī)軟件編程
電子制作(2018年16期)2018-09-26 03:27:08
淺談不同編程語(yǔ)言對(duì)計(jì)算機(jī)軟件開發(fā)的影響
電子制作(2018年1期)2018-04-04 01:48:36
計(jì)算機(jī)軟件數(shù)據(jù)庫(kù)設(shè)計(jì)應(yīng)用探析
電子制作(2017年14期)2017-12-18 07:08:03
計(jì)算機(jī)軟件安全檢測(cè)技術(shù)研究
電子制作(2017年10期)2017-04-18 07:22:58
淺談基于C語(yǔ)言的計(jì)算機(jī)軟件程序設(shè)計(jì)
電子制作(2017年24期)2017-02-02 07:14:40
淺析計(jì)算機(jī)軟件數(shù)據(jù)接口的應(yīng)用分析
神州修車救援APP取得計(jì)算機(jī)軟件著作權(quán)
計(jì)算機(jī)軟件開發(fā)中的分層技術(shù)分析
河南科技(2014年19期)2014-02-27 14:15:24
主站蜘蛛池模板: 国产导航在线| 91视频99| 国产a在视频线精品视频下载| 99久久精品国产综合婷婷| 性喷潮久久久久久久久| 国产av一码二码三码无码| 波多野结衣爽到高潮漏水大喷| 精品无码一区二区三区在线视频| 香蕉eeww99国产在线观看| 婷婷久久综合九色综合88| 午夜国产小视频| 亚洲第一中文字幕| 色欲色欲久久综合网| 99视频全部免费| 欧美激情福利| 91免费国产在线观看尤物| 亚洲性日韩精品一区二区| 一级毛片网| 精品人妻一区无码视频| 欧美天堂在线| 国产自在线播放| 欧美区国产区| 婷婷中文在线| 在线高清亚洲精品二区| 天天爽免费视频| 欧美日韩精品综合在线一区| 丁香婷婷久久| 深爱婷婷激情网| 97狠狠操| 久久九九热视频| 91网址在线播放| 特级毛片免费视频| 国产精品黑色丝袜的老师| 国产99视频在线| 毛片卡一卡二| 久久性视频| 国产成人综合亚洲欧洲色就色| 久久亚洲美女精品国产精品| 亚洲熟女偷拍| 青青青视频蜜桃一区二区| 亚洲精品国产综合99| 亚洲人成在线精品| 一区二区三区国产精品视频| 91在线精品麻豆欧美在线| 国产免费精彩视频| 九色在线观看视频| 国产无码精品在线| 亚洲精品午夜无码电影网| 一级成人a毛片免费播放| 高清不卡毛片| 亚洲精品第一在线观看视频| 国产毛片网站| 欧美另类视频一区二区三区| 欧美亚洲国产视频| 伊人久久综在合线亚洲2019| 91视频99| 国产swag在线观看| 日本人妻一区二区三区不卡影院| 久久福利片| 亚洲日韩在线满18点击进入| 日本一区二区不卡视频| 国产精品久久久久久久久kt| 人妻精品全国免费视频| 伊人久综合| 97超碰精品成人国产| 91亚洲精品第一| 老司机久久99久久精品播放| 黄片一区二区三区| 欧美一区二区福利视频| 精品一区二区三区自慰喷水| 国产亚洲精| 五月综合色婷婷| 91在线视频福利| 国产在线拍偷自揄观看视频网站| 日韩不卡高清视频| 最近最新中文字幕在线第一页| 久久国产精品影院| 幺女国产一级毛片| 久久久波多野结衣av一区二区| 九九免费观看全部免费视频| 直接黄91麻豆网站| www.国产福利|