黄a在线观看-黄a在线-黄a大片-黄色片在线看-黄色毛片免费-黄色大片网站

您的位置:首頁技術文章
文章詳情頁

分享我的第一次java Selenium自動化測試框架開發過程

瀏覽:87日期:2022-08-15 15:45:09

由于公司的開發團隊偏向于使用Java技術,而且公司倡導學習開源技術,所以我選擇用Java語言來進行Selenium WebDriver的自動化框架開發。由于本人沒有Java開發經驗,以前雖然學過QTP但從沒有接觸過Selenium,正好通過這個機會能學習一下自動化測試,同時也學習一下基本的Java開發過程。

一、首先是搭建框架開發環境

按照網上的方法部署eclipse,建立TestAction工程,并Import引用JDK和Selenium-2.44完整包

分享我的第一次java Selenium自動化測試框架開發過程

二、繼續引用和安裝相關jar包

1、首先是要滿足數據驅動(場景用例和動作用例、數據用例都需要放到excel表上),就需要引用jxl.rar包(實現調用和操作excel);

2、需要實現自動化框架(有測試套件、測試層)就需要通過eclipse安裝TestNg(網上有相關教程);

三、構建框架的樣例代碼

1、實現能夠對excel用例數據的調用(通過jxl的引用),創建ExcelData.java類文件(專門用于對excel的調用),以下截取部分代碼樣例:

/** * @param fileName excel文件名 * @param caseName sheet名 */ public ExcelData(String fileName, String caseName) { super(); this.fileName = fileName; this.caseName = caseName; } /** * 獲得excel表中的數據 */ public Object[][] getExcelData() throws BiffException, IOException { workbook = Workbook.getWorkbook(new File(getPath())); sheet = workbook.getSheet(caseName); rows = sheet.getRows(); columns = sheet.getColumns(); // 為了返回值是Object[][],定義一個多行單列的二維數組 @SuppressWarnings('unchecked')HashMap<String, String>[][] arrmap = new HashMap[rows - 1][1]; // 對數組中所有元素hashmap進行初始化 if (rows > 1) { for (int i = 0; i < rows - 1; i++) {arrmap[i][0] = new HashMap<String, String>(); } } else { System.out.println('excel中沒有數據'); } // 獲得首行的列名,作為hashmap的key值 for (int c = 0; c < columns; c++) { String cellvalue = sheet.getCell(c, 0).getContents(); arrkey.add(cellvalue); } // 遍歷所有的單元格的值添加到hashmap中 for (int r = 1; r < rows; r++) { for (int c = 0; c < columns; c++) {String cellvalue = sheet.getCell(c, r).getContents();arrmap[r - 1][0].put(arrkey.get(c), cellvalue); } } return arrmap; } /** * 獲得excel文件的路徑 * @return * @throws IOException */ public String getPath() throws IOException { File directory = new File('.'); sourceFile = directory.getCanonicalPath() + 'srcsource'+ fileName + '.xls'; return sourceFile; }

2、實現對瀏覽器的調用,考慮到兼容性,需要同時滿足對Chrome、FireFox、IE三大瀏覽器的調用,我們需要準備相關驅動chromedriver.exe、IEDriverServer.exe,這兩驅動都是谷歌和IE官方提供的,可以從網上下載到;而FireFox不需要下載驅動,只要安裝瀏覽器就可調用(Selenium和FireFox屬于一個團隊開發出來的,待遇就是不一樣)。

有了瀏覽器驅動后(我們把驅動放到工程目錄的WebDriver文件夾下,方便按相對路徑統一調用),我們就需要一個能調用瀏覽器的類,以下提供核心代碼樣例:

public static WebDriver getChromeDriver(String url) { //加載Google驅動 //System.setProperty('webdriver.chrome.driver','D:javachromedriver.exe'); System.setProperty('webdriver.chrome.driver',System.getProperties().getProperty('user.dir')+'WebDriverchromedriver.exe'); ChromeOptions options = new ChromeOptions(); //通過配置參數禁止data;的出現 options.addArguments('--user-data-dir='+System.getProperties().getProperty('user.home')+'/AppData/Local/Google/Chrome/User Data/Default'); //通過配置參數刪除“您使用的是不受支持的命令行標記:--ignore-certificate-errors。穩定性和安全性會有所下降。”提示 options.addArguments('--start-maximized','allow-running-insecure-content', '--test-type'); WebDriver driver = new ChromeDriver(options); driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS); driver.navigate().to(url); return driver;}public static WebDriver getFireFoxDriver(String url){System.setProperty('webdriver.firefox.bin', 'D:Program FilesMozilla Firefoxfirefox.exe');// TODO Auto-generated method stubWebDriver driver = new FirefoxDriver(); //Puts a Implicit wait, Will wait for 10 seconds before throwing exceptiondriver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); //Launch websitedriver.navigate().to(url);return driver;}public static WebDriver getIEDriver(String url){//System.setProperty('webdriver.ie.driver', 'D:javaIE64IEDriverServer.exe');System.setProperty('webdriver.ie.driver', System.getProperties().getProperty('user.dir')+'WebDriverIE32IEDriverServer.exe');DesiredCapabilities capabilities = DesiredCapabilities.internetExplorer(); capabilities.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS,true); capabilities.setPlatform(Platform.WINDOWS); capabilities.setCapability('silent', true);// TODO Auto-generated method stubWebDriver driver = new InternetExplorerDriver(capabilities); //Puts a Implicit wait, Will wait for 10 seconds before throwing exceptiondriver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); //Launch websitedriver.navigate().to(url);return driver;}

3、寫一個以數據驅動的場景類,來進行單個事務的用例跑測

(1)首行我們需要用TesgNg提供的數據驅動方法(@DataProvider),來獲取一個場景的用例表數據,這個場景從excel的第一個附表獲取

分享我的第一次java Selenium自動化測試框架開發過程

通過action名,調取用例表(用例表是以action名命名的附表),用例表如下所示(ExpectedObject表示用例校驗對象的頁面Element標簽,用;分隔,分號前面的表示ID,分號后面的表示xpath):

分享我的第一次java Selenium自動化測試框架開發過程

以下為用例表數據獲取的代碼:

@DataProvider(name='action') public Object[][] Numbers() throws BiffException, IOException{getActionString = actionData.getActionStr(1);//獲取第一個場景的broswer、url、action名ExcelData e=new ExcelData('testdata', getActionString.get(2)); return e.getExcelData(); }

然后通過Java的反射機制,實現動態的獲取具體事務類和執行相關操作(每個事務的類名和方法名都與action場景名一致),以下截選相關場景的部分調用代碼:

@Test(dataProvider='action') public void testAction(HashMap<String, String> data) throws BiffException, IOException { try { Class<?> MyClass = Class.forName(packageName+'.'+getActionString.get(2)); Method method = MyClass.getMethod(getActionString.get(2),WebDriver.class); @SuppressWarnings('unused')String [] results = (String []) method.invoke(null,driver); String ExpObject=data.get('ExpectedObject'); String ExpObject_by=ExpObject.split(';')[0].toString(); String ExpObject_Desc=ExpObject.split(';')[1].toString(); if(ExpObject_by.length()>0){ Assert.assertEquals(driver.findElement(By.id(ExpObject_by)).getText(),data.get('ExpectedData'), getActionString.get(2)+data.get('ID')+'驗證結果:'); } else if(ExpObject_Desc.length()>0){ Assert.assertEquals(driver.findElement(By.xpath(ExpObject_Desc)).getText(),data.get('ExpectedData'), getActionString.get(2)+data.get('ID')+'驗證結果:'); } WebDriverDemo.WebSleep(500);} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();} }

另外說明的是,調用瀏覽器的方法,需要明確是放在@BeforeMethod中,還是在@BeforeClass中,如果是登錄校驗測試,就要保證每次執行測試方法都要打開一次瀏覽器和關閉一次瀏覽器,那么我們就要把調用瀏覽器,和關閉瀏覽器的方法放到@BeforeMethod中和@AfterMethod中。其他業務測試,只要在一個套件類中打開一次瀏覽器和關閉一次瀏覽器就可以,所以用到的是@BeforeClass和@AfterClass。

4、我們需要再寫一個以動作(關鍵詞)驅動的場景類

同樣,調用第二個場景的用例表,樣例代碼如下:

@DataProvider(name='action') public Object[][] Numbers() throws BiffException, IOException{getActionString = actionData.getActionStr(2);//獲取第二個場景的broswer、url、action名ExcelData e=new ExcelData('testdata', getActionString.get(2)); return e.getExcelData(); }

然后在測試方法中,動態的調用具體操作動作,獲取WebElement標簽的方法,包括通過By ID或者By xpath,操作動作以最常見的兩個為例(sendKeys、click),以下為樣例代碼節選:

@Test(dataProvider='action') public void testAction(HashMap<String, String> data) throws BiffException, IOException { //driver.manage().timeouts().implicitlyWait(5,TimeUnit.SECONDS);//找不到element就再給5秒查找 try { WebElement TestWebElement = null; String SetObject=data.get('SetObject').trim(); String SetObject_by=SetObject.split(';')[0].toString(); String SetObject_Desc=SetObject.split(';')[1].toString(); if(SetObject_by.length()>0){ TestWebElement=driver.findElement(By.id(SetObject_by)); } else if(SetObject_Desc.length()>0){ TestWebElement=driver.findElement(By.xpath(SetObject_Desc)); } if(data.get('SetOperate').equals('sendKeys')){ TestWebElement.clear(); TestWebElement.sendKeys(data.get('SetValue')); }else if(data.get('SetOperate').equals('click')){ TestWebElement.click(); } String ExpObject=data.get('ExpectedObject').trim(); if(ExpObject.length()>0){ String ExpObject_by=ExpObject.split(';')[0].toString(); String ExpObject_Desc=ExpObject.split(';')[1].toString(); if(ExpObject_by.length()>0){ Assert.assertEquals(driver.findElement(By.id(ExpObject_by)).getText(),data.get('ExpectedData'), getActionString.get(2)+data.get('ID')+'驗證結果:'); } else if(ExpObject_Desc.length()>0){ Assert.assertEquals(driver.findElement(By.xpath(ExpObject_Desc)).getText(),data.get('ExpectedData'), getActionString.get(2)+data.get('ID')+'驗證結果:'); } } WebDriverDemo.WebSleep(500);} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();} }

這段方法所調用的用例表如下所示(以登錄為例):

分享我的第一次java Selenium自動化測試框架開發過程

5、剩下就是業務擴展類了,所有復雜的事務都可以單獨建立測試類和方法(方便擴展維護,只需要在excel場景表中定義后就能調用,利用的是Java反射機制),在這里就不舉例了。

四、實現測試套件調用和報告輸出

有了以上步驟,一個可擴展的自動化框架已經基本形成,但是還達不到大規模應用測試和腳本方便可移植,這時候我們引入Ant(可以在Eclipse中安裝插件,可以直接上網下載后引用),為了能輸出漂亮一點的報告格式,我們還引入一個saxon-8.7.jar。

有了Ant后,我們就可以建議build.xml文件,就能一鍵bulid我們以上的自動化代碼,并將執行測試后的結果輸出成報告。

1、首先我們需要編輯好測試套件調用的testng.xml,簡單舉例如下:

<?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE suite SYSTEM 'http://testng.org/testng-1.0.dtd'> <suite name='Suite' parallel='false'> <test verbose='2' name='Test_Action'> <!--<groups> <run> <include name='aaa' /> <include name='bbb' /> <include name='ccc' /> </run> </groups>--> <classes> <class name='TestBrowser.ExcActions'/> <class name='TestBrowser.ExcActions2'/> </classes> </test> <!-- Default test --> </suite> <!-- Default suite -->

2、然后我們需要編輯好一個能引用基礎jar包、build測試代碼、調用testng、輸出漂亮報告的build.xml文件

<?xml version='1.0' encoding='UTF-8'?> <project name= 'TestAction' basedir= '.' default='testoutput'><!--default設置為run表示只執行腳本,設為testoutput表示執行完腳本并輸出視圖報告--><echo message='import libs' /><property name= 'lib.dir' value= 'lib' /> <!--<property name='libdir' location='${basedir}/lib' />--><!--<property name='testng.output.dir' location='${basedir}/test-output' />--><path > <!-- adding the saxon jar to your classpath --> <fileset dir= '${lib.dir}' includes= '*.jar' /> <fileset dir='${basedir}/selenium-2.44.0'> <include name='selenium-java-2.44.0.jar' /> <include name='libs/*.jar' /> </fileset> </path><taskdef name='testng' classname='org.testng.TestNGAntTask' classpathref='test.classpath' rel='external nofollow' /><target name='clean'><delete dir='build'/></target><target name='compile' depends='clean'><echo message='mkdir'/> <mkdir dir='build/classes'/> <javac srcdir='src' destdir='build/classes' debug='on' encoding='UTF-8' includeAntRuntime='false'><classpath refid='test.classpath'/></javac></target><path id='runpath'> <path refid='test.classpath'/> <pathelement location='build/classes'/> </path> <target name='run' depends='compile'><testng classpathref='runpath' rel='external nofollow' outputDir='test-output'><xmlfileset dir='${basedir}' includes='testng.xml'/><jvmarg value='-ea' /></testng></target><target name= 'testoutput' depends='run'><xslt in= 'test-output/testng-results.xml' style= 'test-output/testng-results.xsl'out= 'test-output/index1.html' ><!-- you need to specify the directory here again --><param name= 'testNgXslt.outputDir' expression= '${basedir}/test-output/' /><param name='testNgXslt.showRuntimeTotals' expression='true' /><classpath refid= 'test.classpath' /></xslt></target> </project>

3、完成這些后,我們就可以通過Eclipse直接Run As Ant Build我們的自動化腳本了,輸出一份還算漂亮的報告:

分享我的第一次java Selenium自動化測試框架開發過程

同時,需要在事務操作類中,對實際結果和預期結果進行比較,并將測試結果寫入excel的用例表中,如下:

String[] result=new String [2];result[0] = driver.findElement(By.xpath(pars.get(3).split(';')[1].toString())).getText();result[1] = pars.get(4);if(result[0].equals(result[1])){//pars.size()-1ActionsDemo.modifyExcel(Thread.currentThread().getStackTrace()[1].getMethodName(),k,5,'通過');} else {ActionsDemo.modifyExcel(Thread.currentThread().getStackTrace()[1].getMethodName(),k,5,'失敗');}

分享我的第一次java Selenium自動化測試框架開發過程

五、實現自動化框架腳本的遷移調用

以上的腳本始終是在Eclipse下編譯和調用的,如果要實現靈活遷移,隨便換任何一臺只裝了JDK的電腦都能運行,那么我們就要來點改造

1、首行是保證我們寫的代碼中,所以需要引用文件的地方,都用相對路徑的方式,避免代碼包遷移后需要改路徑。

2、通過批處理調用build文件及用例文件,調用時也是通過批處理自動找到相關路徑,避免用絕對路徑。

3、需要用環境變量的地方,盡量用批處理的方式實現,甚至最好是不用配置環境變量,直接調用相引用相對命令文件的路徑調用

以下舉個通過bat批處理調用Ant來執行整個框架代碼的build:

@echo off::先將測試用例文件拷到用戶目錄下copy srcsourcetestdata.xls %UserProfile%srcsource%cd%org.apache.ant_1.9.6binant.bat -buildfile build.xmlecho 在%cd%test-output下查看測試報告pause六、進一步實現自動化的持續集成

在以上基礎上,我們還可以通過jenkins實現對自動化腳本的調用,以及達到每日構建,持續集成開發的要求。

1、首先部署jenkins(網上有相關方法),由于本人公司一直在用jenkins,我就省了搭建部署這一步,直接將以上的自動化框架腳本上傳

2、自動化腳本完整目錄(包括代碼、用例、lib、引用的jar、build.xml文件等)上傳到SVN(再自動從SVN下到jenkins所在服務器)

3、在jenkins中新建一個測試項目TestAction,主要配置如下:

分享我的第一次java Selenium自動化測試框架開發過程

分享我的第一次java Selenium自動化測試框架開發過程

4、配置完后,就可以立即構建(如果碰到相關報錯問題,就按輸出的提示進行處理),構建成功后,就可以在HTML_Report中看到測試結果:

分享我的第一次java Selenium自動化測試框架開發過程

七、后續處理

到此為止,一個完整的Selenium自動化框架就出來了,要說好用不,不好說,還得經過實踐的檢驗,但是以上這個思考過程和框架的演進過程,應該也是值得借鑒的,畢竟這是我這幾天摸索和學習的過程,對于一個沒有從事過自動化測試,而且沒有做過Java開發的測試人員來說,這只是個開始。

目前來看,這個框架在架構分層上,還是不夠清晰,有很多要改進的東西,從技術上來說,我已經實現了我的目標(學習自動化測試),但是在整體架構和代碼重構上,還有很多工作沒做,以下貼出一份Selenium自動化框架的分層結構,以便后期按照這個標準進行改進:

分享我的第一次java Selenium自動化測試框架開發過程

測試數據層:獨立封裝數據;頁面對象層:封裝頁面對象,共頁面任務層做調用;頁面任務層:實現各個獨立頁面的操作;測試層:實現頁面測試;測試套件層:實現測試層的管理調用;

到此這篇關于分享我的第一次java Selenium自動化測試框架開發過程的文章就介紹到這了,更多相關java Selenium自動化測試 內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Java
相關文章:
主站蜘蛛池模板: 国内精品一区二区三区 | 天天躁日日躁狠狠躁超碰97 | 国产ts人妖系列张思妮在线观看 | 91久久偷偷做嫩草影院 | 国产盼盼私拍福利视频99 | 深爱五月激情五月 | 欧av在线| 2018亚洲男人天堂 | av性色av久久无码ai换脸 | 蜜臀久久99精品久久久久久宅男 | 波多野结衣操 | 中文久久精品 | 欧美性视频网站 | 91午夜视频 | 99r热 | 亚洲精品乱码久久久久久蜜桃 | 国户精品久久久久久久久久久不卡 | 日韩人妻无码精品—专区 | 久久99国产精品久久99果冻传媒 | av毛片久久久久午夜福利hd | 亚洲va视频 | 一级黄色特级片 | 亚洲精品久久久久中文字幕欢迎你 | 久久精品国产丝袜人妻 | 天天拍夜夜添久久精品大 | 亚洲v成人天堂影视 | www.香蕉视频.com | 一区成人| 蜜桃视频久久 | 思热99re视热频这里只精品 | 国产黄色大片视频 | 欧美精品一区二区在线观看 | 伊人国产在线观看 | 熟女视频一区二区在线观看 | 欧美亚洲国产一区二区三区 | 青青青青青青草 | 欧美俄罗斯40老熟妇 | 综合久久国产九一剧情麻豆 | 亚洲精品9999久久久久无码 | www.日本免费| 国产盼盼私拍福利视频99 | 欧美日韩国产第一页 | 国产羞羞 | 亚洲精品国偷拍自产在线观看蜜桃 | 国产又爽又大又黄a片 | 免费在线观看污 | 少妇精品久久久一区二区三区 | 九一午夜精品av | 久久国产自偷自偷免费一区调 | 亚州av免费 | 免费人成 | 可以免费观看的av网站 | 午夜亚洲福利 | 男人j进入女人j内部免费网站 | 欧美黑人性xxx猛交 欧美黑人一区二区 | 三级全黄做爰在线观看 | 国内视频在线 | 国产女人高潮的av毛片 | 成人欧美一区二区三区在线 | 中午字幕无线码一区2020 | 亚洲精品视频网址 | 绯色av蜜臀一区二区中文字幕 | 亚洲免费观看视频 | 中文av免费 | 国产亚洲精品精品国产亚洲综合 | 秋葵视频在线 | 男人吃奶视频 | 免费国产小视频 | www.xxxx欧美| 九色丨蝌蚪丨成人 | 国产精品黄色片 | 免费人成自慰网站 | 国产日本一级二级三级 | 亚洲 日韩 欧美 成人 在线观看 | 黄色网炮 | 国产免国产免费 | 亚洲国产精品嫩草影院 | 中文字幕av无码一区二区三区电影 | 国产成人精品午夜视频' | 亚洲一区网 | 美女搡bbb又爽又猛又黄www | 国产精品久久久久久无人区 | www久久久天天com | 亚洲天堂福利视频 | a级免费毛片 | 一级女人18片毛片蜜桃av | 99精品国产综合久久久久久 | 精品国产一区二区三区四区阿崩 | 一区二区三区四区国产精品 | 日韩香蕉网 | 激情 欧美 偷拍 | 三级网站在线免费观看 | 91精品国产精品 | 亚洲视频在线视频 | 人人爽久久涩噜噜噜小说 | 神马午夜888 | 欧美亚洲影院 | 高潮毛片无遮挡高清免费视频 | 天堂欧美城网站网址 | 亚洲丝袜在线观看 | av午夜在线观看 | 亚洲精品熟女国产 | 中文字幕丰满人孑伦 | 视频在线观看免费完整高清中文 | 99久久国产精 | 久久精品成人免费国产片桃视频 | 一区国产在线 | 无码国产精品一区二区免费式芒果 | 伊人久久大香线蕉av色婷婷色 | 色a在线观看 | 麻豆精品91 | 免费一级做a爰片久久毛片潮 | 婷婷久久丁香 | 欧美成人在线免费视频 | 91影院在线 | 三级欧美视频 | 婷婷国产天堂久久综合五月 | 老男人久久青草av高清 | 免费在线观看污 | 欧洲精品在线观看 | av毛片不卡 | 欧美日韩一区二区三区不卡视频 | 久久久中文久久久无码 | 91福利视频网站 | 337p日本欧洲亚洲大胆精蜜臀 | 一区二区三区国产视频 | 久久免费片| 国产精品99久久久久久武松影视 | 精品久久人人妻人人做精品 | 国产欧美一区二区精品久久 | 999精品视频一区二区三区 | 成人深夜小视频 | 欧美mv日韩mv国产网站app | 99久久精品国产片果冻的功能特点 | 伊人久久五月天 | 久久久橹橹橹久久久久高清 | 欧美交换| 亚洲成a人片在线观看无码3d | 久久国产精品二区 | 牛牛影视一区二区三区免费看 | 国产女主播户外勾搭野战 | 一线二线三线天堂 | 免费黄色小视频在线观看 | 日本亚洲欧洲无免费码在线 | 欧美激情久久久久久 | 人人综合| 丰满少妇高潮惨叫久久久 | 精品无人乱码一区二区三区 | 丝袜 国产 日韩 另类 美女 | 国产在线观看一区二区三区 | 亚洲国产一区二区三区波多野结衣 | 首尔之春在线观看 | 国产精品白虎 | 国产成人精品亚洲男人的天堂 | 性欧美老妇另类xxxx | 国产精品入口传媒小说 | 欧美一级视频一区 | 噜噜噜久久 | 日韩精品成人免费观看视频 | av一二三四| 国产欧美一级二级三级在线视频 | 丰满少妇猛烈进入三区视频 | 97国产在线播放 | 99国产精品久久久久久久日本竹 | 国产精品无码av天天爽 | 窝窝午夜色视频国产精品破 | 中国亚州女人69内射少妇 | 大陆偷拍av | 9色在线视频 | 午夜成年视频 | 日本国产视频 | 午夜精品免费 | 草1024榴社区入口 | 在线天堂中文www官网 | 成人依人 | 北条麻妃一区二区三区av | 黄色性情网站 | 日韩精品一区二区三区视频播放 | 国外av在线 | 国产亚洲精品第一综合麻豆 | 久久久久黄色 | 狠狠色丁香婷婷综合 | 活大器粗np高h一女多夫 | 91九色丨porny最新地址 | 精品午夜久久 | 天美乌鸦星空mv | 女人爽到高潮的免费视频 | 性视频免费的视频大全2015年 | 蜜臀国产在线视频 | 人妻熟妇乱又伦精品视频app | 国产女同疯狂作爱系列2 | 少妇饥渴偷公乱51 | 亚洲熟妇丰满xxxxx | 少妇9999九九九九在线观看 | 国产精品片aa在线观看 | 国产伦精品一区二区三区照片 | 污视频在线播放网站 | 成人在线免费观看视频 | 国产精品久久久久久久久久蜜臀 | 国产福利视频在线观看 | 成年美女黄网 | 永久免费未满视频 | 爱草在线 | 亚洲理论电影在线观看 | 亚欧美在线| 无码无遮挡又大又爽又黄的视频 | 精品国产免费观看 | 日韩淫视频 | 在线观看欧美日韩 | 欧美一级全黄 | 国产农村妇女毛片精品久久 | 国产做a爱片久久毛片a片高清 | 夜夜嗨一区二区 | 成人午夜短视频 | 色诱久久av | 国产青青青 | 羞羞视频在线观看免费观看 | 无码人中文字幕 | 毛片一级在线观看 | 免费性网站 | 亚洲一级二级片 | 美女翘臀少妇啪啪呻吟流水 | 日本在线h| 日韩在线三级 | 中文字幕在线观看视频网站 | 亚洲精品97久久中文字幕无码 | 狠狠色老熟妇老熟女 | 国产精品精华液网站 | 天天欧美 | 丰满熟妇人妻av无码区 | 91在线观看 | 国产综合影院 | 国产麻传媒精品国产av | 欧美大肚乱孕交hd孕妇 | 久久国产精品精品国产色婷婷 | 久久99精品国产麻豆婷婷洗澡 | 国产精品欧美一区二区 | 成人在线网 | 成人午夜在线播放 | 粉嫩欧美一区二区三区 | 久久国产免费观看 | kk视频在线视频 | 高清不卡一区 | 在火车千女人毛片看看 | 夜夜春亚洲嫩草一区二区 | 天天插在线视频 | 国产原创精品 | 久久精品www人人爽人人 | 国产色视频一区二区三区qq号 | 天天综合永久入口 | 免费成人在线视频网站 | www男人的天堂 | 日批视频在线看 | 久久久久久九九99精品 | 一区国产在线 | 欧美韩国日本 | 91在线勾搭足浴店女技师 | 96精品视频 | 日韩美女毛片 | 法国a级理论片乱 | 中文字幕+乱码+中文 | 少妇一晚三次一区二区三区 | 一个色影院 | 波多野结衣乳喷高潮视频 | 红桃视频91 | 国产成人8x视频一区二区 | 久久综合精品国产丝袜长腿 | 国产91久| www伊人| 亚洲国产乱 | 国产精品久久麻豆 | 五月丁香六月综合缴情在线 | 久久国产免费直播 | 欧美激情视频一区二区 | 国产精品调教视频 | 国产精品人妻一区夜夜爱 | 美女黄频视频大全免费的国内 | 人妻中文字幕在线网站 | 日本女人黄色 | 国产大片aaa | 国产主播专区 | 伊伊亚洲综合人网777 | 天干夜天干天天天爽视频 | 91ts人妖另类精品系列 | 毛片a久久99亚洲欧美毛片 | 免费看黄色一级大片 | 97夜夜澡人人双人人人喊 | 欧美成人午夜 | 国产午夜人做人免费视频 | 亚洲中文字幕无码一久久区 | 欧美精品一区二区三区在线 | 中文字幕丝袜一区二区 | 美国人性欧美xxxx | 天天拍天天干 | av三级毛片 | 亚洲伊人色欲综合网 | 中文字幕精品亚洲无线码一区应用 | 野花社区www视频最新资源 | 粉色午夜视频 | 性欧美大战久久久久久久 | 亚洲人成色77777在线观看 | 日韩不卡手机视频在线观看 | 欧美精品一区二区三区一线天视频 | 国产成人精品一区二区三区免费 | 国产欧美一区二区三区免费看 | 中国内地毛片免费高清 | 亚洲wwwwww| 无码人妻久久一区二区三区不卡 | 亚洲成色www8888 | 日本精品久久久久中文字幕 | 免费观看成人鲁鲁鲁鲁鲁视频 | 欧美最猛性xxxⅹ丝袜 | av片在线免费看 | 日韩一卡2卡3卡4卡新区亚洲 | 少妇性l交大片免费观看冫 少妇性l交大片免费快色 | 免费观看的av毛片的网站 | 国产精品亚洲欧美日韩久久制服诱 | 肉色欧美久久久久久久免费看 | 午夜福利在线永久视频 | 99久无码中文字幕一本久道 | 新婚少妇紧窄白嫩av | 欧美日韩二三区 | 日本人与黑人做爰视频 | 国精产品一二三区传媒公司 | 国产精品自在线拍国产手机版 | 国产一级淫片a按摩推澡按摩 | www插插插无码视频网站 | 久久久av波多野一区二区 | 中文字幕免费高清视频 | 色综合国产 | 亚洲一区二区在线免费观看 | 韩国av在线免费观看 | 国产黄色片免费观看 | 亚洲码国产岛国毛片在线 | 仁科百华av解禁在线播放 | 国产成人avxxxxx在线看 | 久久在线免费观看 | 青青青国产在线观看免费 | 久久国产精品99国产精 | 精品一区二区ww | youjizz欧美 | 日韩精品免费在线观看 | 欧美一区二区三区喷汁尤物 | 久久久资源网 | 国产精品毛片久久 | 国产又粗又黄视频 | 浪潮av激情高潮国产精品香港 | 草草影院精品一区二区三区 | 97久久精品人人做人人爽 | 天堂一区人妻无码 | 青娱乐国产精品 | 青青草原综合久久大伊人精品 | 98婷婷狠狠成人免费视频 | av一本在线| 国产丰满精品伦一区二区三级视频 | 在线播放精品 | 精品国产人成亚洲区 | 毛片首页| 五月婷婷综合在线 | 海量av | 午夜鲁鲁 | 人妻熟女av一区二区三区 | 91久久国产露脸精品国产闺蜜 | 国产偷窥熟妇高潮呻吟 | 91极品国产| 久草欧美 | 99精品无人区乱码1区2区3区 | 最新中文字幕av无码不卡 | 精品国产日韩亚洲一区 | 澳门免费av | av资源在线免费观看 | 亚洲国产成人一区二区三区 | 亚洲性久久久影院 | 视频一区免费 | 亚洲欧美日韩中文高清www777 | 俺去俺来也www色官网cms | 在线天堂中文www官网 | 黄色一级视频片 | 国产伦理一区 | 亚洲在线一区二区 | 双乳奶水饱满少妇呻吟 | 在线观看视频毛片 | 欧美激情91 | 看看黄色毛片 | 久久久精品免费看 | 去看片在线 | 日韩人成| 成人福利在线视频 | 一本大道久久 | 国产欧美日韩a片免费软件 九九久久精品无码专区 | 97高清国语自产拍 | 精品欧美激情精品一区 | 欧美一级鲁丝片 | 成在线人免费无码高潮喷水 | 粗大的内捧猛烈进出在线视频 | 欧美国产一二三区 | 饥渴少妇勾引水电工av | 亚洲另类欧美综合久久图片区 | 久久精品国产亚洲7777 | 精品厕所偷拍各类美女tp嘘嘘 | 男女晚上黄羞羞视频播放 | 欧美性xxxx在线播放 | 欧美高清不卡 | 成人欧美亚洲 | 牛牛热在线视频 | 女同 另类 激情 重口 | 免费看欧美片 | 日本疯狂爆乳xxxx | 精久国产一区二区三区四区 | 91福利网址 | 国产黄在线观看 | 日本无遮挡边做边爱边摸 | 国产91一区 | 免费在线观看毛片视频 | 国产一区二区三区四区五区精品 | 中文字幕人成乱码熟女免费 | 国产精品久久久久影院色老大 | 国产伦精品 | aaaaa黄色片| a级毛片国产 | 国产欧美日韩另类在线专区 | 久久久中文久久久无码 | 91精品在线一区 | 91大神精品在线 | se94se欧美| 久久久久琪琪去精品色无码 | 国产成人精品亚洲午夜麻豆 | 一本之道乱码区 | 国产午夜无码精品免费看 | 欧美日韩午夜爽爽 | 国产人妻丰满熟妇嗷嗷叫 | 亚洲欧美视频在线观看 | 日本免费视频 | 欧美激情一区二区三区在线 | 99国产精品免费播放 | 欧美三级在线看 | 日韩av资源| 国产一区二区三区免费看 | 一级国产精品 | 色综合久久久久久久久五月 | 日韩视频免费在线 | 老牛精品亚洲成av人片 | 成人欧美一区二区三区在线观看 | 日本500人裸体仓房视频 | 成人性生交免费大片2 | 国产美女精品视频国产 | 爱情岛论坛自拍亚洲品质极速福利 | 成人欧美一区 | 日韩成年视频 | 少妇精品蜜桃偷拍高潮系列 | 狠狠操网站 | 亚洲综合p | 91亚洲精品久久久久图片蜜桃 | 四虎成人精品无码永久在线 | 亚洲精选一区 | 欧洲美熟女乱又伦av影片 | 一级淫片免费 | 精品日韩一区二区三区 | 欧美少妇色图 | 午夜久久精品 | 日本久久高清 | 久久精品中文字幕 | 野外(巨肉高h) | 国产女主播在线喷水呻吟 | 福利社91| 天堂中文8| 浪荡受张腿灌满双性h男男 老妇肥熟凸凹丰满刺激小说 | 亚洲一区二区三区在线 | 欧美日韩精品在线视频 | 国产福利在线观看视频 | 免费在线色视频 | 午夜一级片| 天堂资源最新在线 | www一级片| 国产911在线观看 | 色综合视频网 | 丝袜捆绑调教午夜一区二区 | 人人妻人人爽人人澡av | 欧美日韩另类在线 | 97成人免费| 天堂…中文在线最新版在线 | 国产av一区二区三区 | 国产三级在线播放 | 国产一级黄色毛片 | av不卡观看 | 伊人色综合久久天天小片 | 裸体歌舞表演一区二区 | 国产成人亚洲综合无码99 | 日韩黄色在线播放 | 亚洲高清av一区二区三区 | 亚洲最大国产成人综合网站 | 亚洲精品毛片一区二区 | 欧美丰满大乳大屁股毛片图片 | 日韩黄页在线观看 | 亚洲国产亚洲 | 国产午夜福利短视频 | 国产成人精品视频在线 | 不卡在线 | 婷婷丁香九月 | 免费在线观看毛片 | 少妇无码av无码专区线 | 色狠狠久久aa北条麻妃 | 青青青在线免费观看 | 男女激情视频网站 | 自拍新婚之夜初交视频1 | 精品国产一区二区三区久久久狼 | 色哟哟国产精品免费观看 | 午夜精品久久久久久久白皮肤 | 门国产乱子视频观看 | 成人免费做受小说 | 国产素人在线观看 | 久久久久三级 | 欧美色婷婷 | www.国产在线视频 | 国产精品久久久久久久久免费樱桃 | 日韩免费无码一区二区三区 | www狠狠操 | www97色| 亚洲精品一区二区三区蜜臀 | 国产色无码专区在线观看 | 草草地址线路①屁屁影院成人 | 久久最新免费视频 | 开元在线观看视频国语 | 欧美狂野另类xxxxoooo | frxxee中国xxee麻豆片 | 久草新视频| 性色av一区二区三区 | 偷拍呻吟高潮91 | 青青青在线视频人视频在线 | 少妇人妻偷人精品视蜜桃 | 亚洲精品一区二区精华 | 欧美xxxx中国 | 综合久久五月 | 狠狠色狠狠色合久久伊人 | 黄色视屏软件 | 日本一本一道 | 日本japanese乳偷乱熟 | 思思久久99 | 精品第一页 | 美女撒尿无遮挡网站 | 人妻丰满熟妇av无码区 | 亚洲欧洲精品视频 | 紧缚捆绑精品一区二区 | 天天干夜夜爽 | 国产成人精品福利 | 中文在线а√在线 | 国产农村妇女在野外高潮 | 水野朝阳av一区二区三区 | 小泽玛莉亚一区二区视频在线 | 久99综合婷婷 | 国产亚洲精品久久久久久青梅 | 午夜免费片 | 毛片a久久99亚洲欧美毛片 | 少妇高潮惨叫久久久久久 | 免费成人在线看 | 国产对白刺激真实精品91 | 大地资源中文第3页 | 国产精品密蕾丝袜 | 天天爱天天草 | 国产日韩视频在线 | 免费看成年人视频 | 久草在线视频资源站 | h欧美 | 加勒比综合在线19p 加勒比综合在线888 | 中文字幕日韩一区 | 在线观看jizz | 日本少妇xxxxxx | 国产三级视频网站 | 欧美91看片特黄aaaa | 好男人在在线社区www在线影院 | 久久不射网站 | 久久精品国产99国产精品 | 国产九色视频 | 国模精品一区 | 精品人妻一区二区三区四区 | 中文精品在线 | 久久久高清视频 | 亚洲女人天堂成人av在线 | 国产黄a三级三级三级看三级黑人 | 久久久久国产精品 | 日韩亚洲精品中文字幕 | 亚洲 欧美 日韩 综合 国产aⅴ | 在线不卡视频 | 色五月丁香六月欧美综合 | 精品国精品无码自拍自在线 | 九九在线视频免费观看精彩 | 97国产大学生情侣白嫩酒店 | 亚洲精品久久久蜜桃网站 | 日本人与黑人做爰视频 | 男女做视频md806xyz | 精品国产麻豆免费人成网站 | 久久久久久999 | 中文字幕第一页av | 柠檬福利第一导航在线 | 免费观看视频一区二区 | 亚洲ww中文在线 | 欧美女人交配视频 | 一二三区中文字幕 | 亚洲成人免费在线 | 成人美女黄网站色大免费的88 | 翘臀后进少妇大白嫩屁股91 | 国产69精品久久久久久人妻精品 | 69精品欧美一区二区三区 | 伊人成综合网 | 国产99久久久久久免费看 | 黄色片99 | 日韩视频一区在线观看 | 国产高清视频在线观看97 | 忘忧草日本在线播放www | 色综合视频在线 | 亚洲婷婷丁香 | 学生妹亚洲一区二区 | 国产二级一片内射视频插放 | 国产91在线免费观看 | 欧美综合久久久 |