日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java接口自动化测试框架

發(fā)布時間:2023/12/9 java 82 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java接口自动化测试框架 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一. 自動化測試框架

1. 測試框架TestNG

1.1 適合測試人員使用的原因

(1)比Junit涵蓋功能更全面的測試框架
(2)Junit更適合隔離性比較強的單元測試
(3)TestNG更適合復(fù)雜的集成測試

1.2 基本介紹

(1)基本注解:決定執(zhí)行順序
例:
@Test:標記一個類或方法作為測試的一部分
@beforeTest、@afterTest:做前置或后置處理
(2)屬性
例:
groups:分組測試
dependsOnGroups:依賴測試
description:描述
(3)測試套件
組織測試類一起執(zhí)行的或者一組行為的測試用例的集合,由一個XML文件標記

2. 測試報告ExtentReport

2.1 添加測試類

ExtentTestNGIReporterListener

2.2 基本配置

在測試套件中 @listener標簽下添加監(jiān)聽器

3. HttpClient

一個HTTP客戶端編程工具,可用來發(fā)送請求、接收響應(yīng)

4. MyBatis

持久層框架,支持定制化 SQL、存儲過程以及高級映射。
可以使用簡單的 XML 或注解來配置和映射原生信息。

5. MySQL

存儲測試用例

二. 編寫步驟及文件目錄結(jié)構(gòu)

1. 測試用例的表結(jié)構(gòu)設(shè)計

2. 基礎(chǔ)配置文件設(shè)計

2.1 pom.xml:引入第三方依賴包

配置httpclient、json、mybatis、mysql、lombok、extentreports、testng的各種依賴

<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><parent><artifactId>AutoTest</artifactId><groupId>Chapter</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>Chapter12</artifactId><dependencies><dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</artifactId><version>4.1.2</version></dependency><dependency><groupId>org.json</groupId><artifactId>json</artifactId><version>20170516</version></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.4.4</version></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.16.14</version></dependency><dependency><groupId>com.relevantcodes</groupId><artifactId>extentreports</artifactId><version>2.41.1</version></dependency><dependency><groupId>com.vimalselvam</groupId><artifactId>testng-extentsreport</artifactId><version>1.3.1</version></dependency><dependency><groupId>com.aventstack</groupId><artifactId>extentreports</artifactId><version>3.0.6</version></dependency><dependency><groupId>org.testng</groupId><artifactId>testng</artifactId><version>6.10</version></dependency><dependency><groupId>commons-logging</groupId><artifactId>commons-logging</artifactId><version>1.0.4</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency></dependencies> </project>

2.2 databaseConfig.xml:數(shù)據(jù)庫配置文件

<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration><!-- 注冊對象的空間命名 --><environments default="development"><environment id="development"><transactionManager type="JDBC"/><dataSource type="POOLED"><!-- 1.加載數(shù)據(jù)庫驅(qū)動 --><property name="driver" value="com.mysql.cj.jdbc.Driver"/><!-- 2.數(shù)據(jù)庫連接地址 --><property name="url" value="jdbc:mysql://localhost:3306/course?serverTimezone=GMT"/><!-- 數(shù)據(jù)庫用戶... --><property name="username" value="root"/><!-- 數(shù)據(jù)庫密碼... --><property name="password" value="12345678"/></dataSource></environment></environments><!-- 注冊映射文件:java對象與數(shù)據(jù)庫之間的xml文件路徑! --><mappers><mapper resource="mapper/SQLMapper.xml"/></mappers> </configuration>

2.3 application.properties:接口信息配置文件

test.url=http://localhost:8080#登陸接口uri login.uri=/v1/login

2.4 testng.xml:用以執(zhí)行所有testng的測試套件

<?xml version="1.0" encoding="UTF-8" ?> <suite name="用戶管理系統(tǒng)測試套件"><test name="用戶管理系統(tǒng)測試用例"><classes><class name="com.tester.cases.LoginTest"><methods><include name="loginTrue"/><include name="loginFalse"/></methods></class> </classes></test><listeners><listener class-name="com.tester.config.ExtentTestNGIReporterListener"/></listeners> </suite>

2.5 SQLMapper.xml:用以存儲所有測試用例的SQL語句

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.tester.model"><!--獲取登陸接口case--><select id="loginCase" parameterType="Integer" resultType="com.tester.model.LoginCase">select *from logincase where id=#{id};</select></mapper>

3. model層、config層、utils層、cases層

3.1 model層:放置各個接口的數(shù)據(jù)配置文件+InterfaceName枚舉

3.1.1 放置登錄接口的數(shù)據(jù)配置文件LoginCase.java

package com.tester.model;import lombok.Data;@Data public class LoginCase {private int id;private String userName;private String password;private String expected; }

3.1.2 InterfaceName.java

package com.tester.model;public enum InterfaceName {LOGIN }

3.2 Config層:配置信息TestConfig類+ExtentTestNGReportListener類

3.2.1TestConfig類:聲明各個測試用例的URL、和之后要用的一些全局變量

package com.tester.config;import lombok.Data; import org.apache.http.client.CookieStore; import org.apache.http.impl.client.DefaultHttpClient;@Data public class TestConfig {//登陸接口uripublic static String loginUrl;//聲明http客戶端public static DefaultHttpClient defaultHttpClient;//用來存儲cookies信息的變量public static CookieStore store; }

3.2.2 ExtentTestNGReportListener類:測試報告配置

package com.tester.config;import com.aventstack.extentreports.ExtentReports; import com.aventstack.extentreports.ExtentTest; import com.aventstack.extentreports.ResourceCDN; import com.aventstack.extentreports.Status; import com.aventstack.extentreports.model.TestAttribute; import com.aventstack.extentreports.reporter.ExtentHtmlReporter; import com.aventstack.extentreports.reporter.configuration.ChartLocation; import com.aventstack.extentreports.reporter.configuration.Theme; import org.testng.*; import org.testng.xml.XmlSuite;import java.io.File; import java.util.*;public class ExtentTestNGIReporterListener implements IReporter {//生成的路徑以及文件名private static final String OUTPUT_FOLDER = "test-output/";private static final String FILE_NAME = "index.html";private ExtentReports extent;@Overridepublic void generateReport(List<XmlSuite> xmlSuites, List<ISuite> suites, String outputDirectory) {init();boolean createSuiteNode = false;if(suites.size()>1){createSuiteNode=true;}for (ISuite suite : suites) {Map<String, ISuiteResult> result = suite.getResults();//如果suite里面沒有任何用例,直接跳過,不在報告里生成if(result.size()==0){continue;}//統(tǒng)計suite下的成功、失敗、跳過的總用例數(shù)int suiteFailSize=0;int suitePassSize=0;int suiteSkipSize=0;ExtentTest suiteTest=null;//存在多個suite的情況下,在報告中將同一個一個suite的測試結(jié)果歸為一類,創(chuàng)建一級節(jié)點。if(createSuiteNode){suiteTest = extent.createTest(suite.getName()).assignCategory(suite.getName());}boolean createSuiteResultNode = false;if(result.size()>1){createSuiteResultNode=true;}for (ISuiteResult r : result.values()) {ExtentTest resultNode;ITestContext context = r.getTestContext();if(createSuiteResultNode){//沒有創(chuàng)建suite的情況下,將在SuiteResult的創(chuàng)建為一級節(jié)點,否則創(chuàng)建為suite的一個子節(jié)點。if( null == suiteTest){resultNode = extent.createTest(r.getTestContext().getName());}else{resultNode = suiteTest.createNode(r.getTestContext().getName());}}else{resultNode = suiteTest;}if(resultNode != null){resultNode.getModel().setName(suite.getName()+" : "+r.getTestContext().getName());if(resultNode.getModel().hasCategory()){resultNode.assignCategory(r.getTestContext().getName());}else{resultNode.assignCategory(suite.getName(),r.getTestContext().getName());}resultNode.getModel().setStartTime(r.getTestContext().getStartDate());resultNode.getModel().setEndTime(r.getTestContext().getEndDate());//統(tǒng)計SuiteResult下的數(shù)據(jù)int passSize = r.getTestContext().getPassedTests().size();int failSize = r.getTestContext().getFailedTests().size();int skipSize = r.getTestContext().getSkippedTests().size();suitePassSize += passSize;suiteFailSize += failSize;suiteSkipSize += skipSize;if(failSize>0){resultNode.getModel().setStatus(Status.FAIL);}resultNode.getModel().setDescription(String.format("Pass: %s ; Fail: %s ; Skip: %s ;",passSize,failSize,skipSize));}buildTestNodes(resultNode,context.getFailedTests(), Status.FAIL);buildTestNodes(resultNode,context.getSkippedTests(), Status.SKIP);buildTestNodes(resultNode,context.getPassedTests(), Status.PASS);}if(suiteTest!= null){suiteTest.getModel().setDescription(String.format("Pass: %s ; Fail: %s ; Skip: %s ;",suitePassSize,suiteFailSize,suiteSkipSize));if(suiteFailSize>0){suiteTest.getModel().setStatus(Status.FAIL);}}} // for (String s : Reporter.getOutput()) { // extent.setTestRunnerOutput(s); // }extent.flush();}private void init() {//文件夾不存在的話進行創(chuàng)建File reportDir= new File(OUTPUT_FOLDER);if(!reportDir.exists()&& !reportDir .isDirectory()){reportDir.mkdir();}ExtentHtmlReporter htmlReporter = new ExtentHtmlReporter(OUTPUT_FOLDER + FILE_NAME);// 設(shè)置靜態(tài)文件的DNS//怎么樣解決cdn.rawgit.com訪問不了的情況htmlReporter.config().setResourceCDN(ResourceCDN.EXTENTREPORTS);htmlReporter.config().setDocumentTitle("api自動化測試報告");htmlReporter.config().setReportName("api自動化測試報告");htmlReporter.config().setChartVisibilityOnOpen(true);htmlReporter.config().setTestViewChartLocation(ChartLocation.TOP);htmlReporter.config().setTheme(Theme.STANDARD);htmlReporter.config().setCSS(".node.level-1 ul{ display:none;} .node.level-1.active ul{display:block;}");extent = new ExtentReports();extent.attachReporter(htmlReporter);extent.setReportUsesManualConfiguration(true);}private void buildTestNodes(ExtentTest extenttest, IResultMap tests, Status status) {//存在父節(jié)點時,獲取父節(jié)點的標簽String[] categories=new String[0];if(extenttest != null ){List<TestAttribute> categoryList = extenttest.getModel().getCategoryContext().getAll();categories = new String[categoryList.size()];for(int index=0;index<categoryList.size();index++){categories[index] = categoryList.get(index).getName();}}ExtentTest test;if (tests.size() > 0) {//調(diào)整用例排序,按時間排序Set<ITestResult> treeSet = new TreeSet<ITestResult>(new Comparator<ITestResult>() {@Overridepublic int compare(ITestResult o1, ITestResult o2) {return o1.getStartMillis()<o2.getStartMillis()?-1:1;}});treeSet.addAll(tests.getAllResults());for (ITestResult result : treeSet) {Object[] parameters = result.getParameters();String name="";//如果有參數(shù),則使用參數(shù)的toString組合代替報告中的namefor(Object param:parameters){name+=param.toString();}if(name.length()>0){if(name.length()>50){name= name.substring(0,49)+"...";}}else{name = result.getMethod().getMethodName();}if(extenttest==null){test = extent.createTest(name);}else{//作為子節(jié)點進行創(chuàng)建時,設(shè)置同父節(jié)點的標簽一致,便于報告檢索。test = extenttest.createNode(name).assignCategory(categories);}//test.getModel().setDescription(description.toString());//test = extent.createTest(result.getMethod().getMethodName());for (String group : result.getMethod().getGroups())test.assignCategory(group);List<String> outputList = Reporter.getOutput(result);for(String output:outputList){//將用例的log輸出報告中test.debug(output);}if (result.getThrowable() != null) {test.log(status, result.getThrowable());}else {test.log(status, "Test " + status.toString().toLowerCase() + "ed");}test.getModel().setStartTime(getTime(result.getStartMillis()));test.getModel().setEndTime(getTime(result.getEndMillis()));}}}private Date getTime(long millis) {Calendar calendar = Calendar.getInstance();calendar.setTimeInMillis(millis);return calendar.getTime();} }

3.3 utils層: 抽取公用的方法ConfigFile類+DatabaseUtil類

3.3.1 ConfigFile類:對各個測試用例的URL進行賦值

package com.tester.utils;import com.tester.model.InterfaceName;import java.util.Locale; import java.util.ResourceBundle;public class ConfigFile {public static ResourceBundle bundle=ResourceBundle.getBundle("application", Locale.CHINA);public static String getUrl(InterfaceName name){String address=bundle.getString("test.url");String uri="";String testUrl;if(name==InterfaceName.LOGIN){uri=bundle.getString("login.uri");}testUrl=address+uri;return testUrl;} }

3.3.2 DatabaseUtil類:配置一個getSqlSession()方法

作用是執(zhí)行配置文件SQLMapper中的SQL語句

package com.tester.utils;import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder;import java.io.IOException; import java.io.Reader;public class DatabaseUtil {public static SqlSession getSqlSession() throws IOException {//獲取配置的資源文件Reader reader= Resources.getResourceAsReader("databaseConfig.xml");//得到SqlSessionFactory,使用類加載器加載xml文件SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(reader);//得到sqlsession對象,這個對象就能執(zhí)行配置文件中的sql語句啦SqlSession session=factory.openSession();return session;} }

3.4 cases層:用來放接口的測試用例

package com.tester.cases;import com.tester.config.TestConfig; import com.tester.model.InterfaceName; import com.tester.model.LoginCase; import com.tester.utils.ConfigFile; import com.tester.utils.DatabaseUtil; import org.apache.http.HttpResponse; import org.apache.http.client.methods.HttpPost; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.util.EntityUtils; import org.apache.ibatis.session.SqlSession; import org.json.JSONObject; import org.testng.Assert; import org.testng.annotations.BeforeTest; import org.testng.annotations.Test;import java.io.IOException;public class LoginTest {@BeforeTest(groups = "loginTrue",description = "測試準備工作,獲取HttpClient對象")public void beforeTest(){TestConfig.getUserInfoUrl= ConfigFile.getUrl(InterfaceName.GETUSERINFO);TestConfig.getUserListUrl=ConfigFile.getUrl(InterfaceName.GETUSERLIST);TestConfig.addUserUrl=ConfigFile.getUrl(InterfaceName.ADDUSERINFO);TestConfig.loginUrl=ConfigFile.getUrl(InterfaceName.LOGIN);TestConfig.updateUserInfoUrl=ConfigFile.getUrl(InterfaceName.UPDATEUSERINFO);TestConfig.defaultHttpClient=new DefaultHttpClient();}@Test(groups = "loginTrue",description = "用戶成功登陸接口")public void loginTrue() throws IOException {SqlSession session= DatabaseUtil.getSqlSession();LoginCase loginCase=session.selectOne("loginCase",1);System.out.println(loginCase.toString());System.out.println(TestConfig.loginUrl);//下邊的代碼為寫完接口的測試代碼String result=getResult(loginCase);//處理結(jié)果,就是判斷返回結(jié)果是否符合預(yù)期Assert.assertEquals(loginCase.getExpected(),result);}@Test(groups = "loginFalse",description = "用戶登錄接口失敗")public void loginFalse() throws IOException {SqlSession session=DatabaseUtil.getSqlSession();LoginCase loginCase=session.selectOne("loginCase",2);System.out.println(loginCase.toString());System.out.println(TestConfig.loginUrl);//下邊的代碼為寫完接口的測試代碼String result=getResult(loginCase);//處理結(jié)果,就是判斷返回結(jié)果是否符合預(yù)期Assert.assertEquals(loginCase.getExpected(),result);}private String getResult(LoginCase loginCase) throws IOException {//下邊的代碼為寫完接口的測試代碼HttpPost post=new HttpPost(TestConfig.loginUrl);JSONObject param=new JSONObject();param.put("userName",loginCase.getUserName());param.put("password",loginCase.getPassword());//設(shè)置請求頭信息,設(shè)置headerpost.setHeader("content-type","application/json");//將參數(shù)信息添加到方法中StringEntity entity=new StringEntity(param.toString(),"utf-8");post.setEntity(entity);//聲明一個對象來進行響應(yīng)結(jié)果的存儲String result;//執(zhí)行post方法HttpResponse response=TestConfig.defaultHttpClient.execute(post);//獲取響應(yīng)結(jié)果result= EntityUtils.toString(response.getEntity(),"utf-8");System.out.println(result);TestConfig.store=TestConfig.defaultHttpClient.getCookieStore();return result;} }

總結(jié)

以上是生活随笔為你收集整理的Java接口自动化测试框架的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

国产精品理论在线观看 | 91成人在线视频 | 国产又粗又硬又长又爽的视频 | 激情电影影院 | 欧美激情视频一区二区三区免费 | 国产一二三四在线观看视频 | 国产精品24小时在线观看 | 一级黄色毛片 | 91av在线播放视频 | 成人免费视频a | 亚洲欧美日韩一区二区三区在线观看 | 天天人人综合 | 日韩一级网站 | 免费色视频 | 伊人天堂网 | 91成人免费在线 | 成人h视频在线播放 | 亚洲视频免费 | av福利第一导航 | 可以免费看av | 中文字幕在线播放视频 | 国产综合福利在线 | 欧美一区二区三区在线观看 | 免费观看v片在线观看 | 亚洲成aⅴ人在线观看 | 西西44人体做爰大胆视频 | 久久免费视频精品 | 中文字幕免费高清在线观看 | 色是在线视频 | 久久久久久国产精品免费 | 日本最新高清不卡中文字幕 | 亚洲精品免费视频 | 午夜黄色影院 | 成人a免费 | 麻豆91在线看| 香蕉久久久久久久 | 一区二区三区在线免费观看 | 国产精品一区二区电影 | 日本精品视频在线观看 | 亚洲精品视频在线观看免费 | 99久热在线精品 | www.五月婷婷 | 97免费公开视频 | 国产高清视频免费最新在线 | 美女黄频在线观看 | 免费观看一区二区三区视频 | 免费成人在线观看视频 | 在线免费观看成人 | 又粗又长又大又爽又黄少妇毛片 | 日韩免费电影在线观看 | 99久久精品国产欧美主题曲 | 人人玩人人爽 | 99人成在线观看视频 | 狠狠干网址 | 免费观看久久 | 久久er99热精品一区二区三区 | 一区二区激情视频 | 综合五月婷婷 | 中文字幕在线视频国产 | 综合色狠狠 | 中文字幕免费观看全部电影 | 91在线视频观看 | 激情丁香综合五月 | 五月精品 | 日本精品视频免费观看 | 探花视频免费观看高清视频 | 91最新在线 | 女女av在线 | 在线99视频 | 久久黄色精品视频 | 久久xxxx| 97国产大学生情侣白嫩酒店 | 2023国产精品自产拍在线观看 | 日韩欧美视频二区 | 91片黄在线观看动漫 | 国产精品男女视频 | 91久久电影 | 亚洲黄色片一级 | 国产一区二区高清 | 嫩草av影院 | 国产综合精品久久 | 2021国产精品 | 97超碰伊人 | 香蕉蜜桃视频 | 欧美极品xxx| 夜夜操天天干 | 欧美极度另类性三渗透 | 91av在线免费看 | 一级片视频在线 | 日本中文字幕网址 | 欧美日韩在线网站 | 亚洲一区二区精品在线 | 久草在线视频新 | av一级网站 | 999久久久 | 蜜臀av性久久久久蜜臀av | 久久精品一级片 | 日韩在线观看你懂的 | 夜夜夜夜猛噜噜噜噜噜初音未来 | 97精品国自产拍在线观看 | 人人爱在线视频 | 五月婷婷丁香在线观看 | 99久久日韩精品视频免费在线观看 | 91最新网址在线观看 | 国产专区视频 | 999久久久 | 日韩av午夜在线观看 | 国产精品一区一区三区 | 婷婷色综合网 | 色综合天天爱 | 在线 视频 一区二区 | 又长又大又黑又粗欧美 | 国产精品一区二区三区免费视频 | 国产高清av免费在线观看 | 狠狠色狠狠色合久久伊人 | 亚洲电影成人 | 在线观看视频一区二区三区 | 国产 成人 久久 | 精品国产伦一区二区三区 | 91在线观看视频 | 日韩av电影中文字幕在线观看 | 精品国产人成亚洲区 | 国产精品mv | 久久综合婷婷 | 91精品久久久久久久久 | 国产+日韩欧美 | 亚洲视频在线免费观看 | 亚洲理论在线观看电影 | 最新av在线播放 | 日韩视频在线观看免费 | 免费av电影网站 | 日韩av成人在线观看 | 国产一级电影 | 首页av在线 | 日韩电影在线看 | 久久国产精品免费一区二区三区 | 91桃色国产在线播放 | 超碰人人做 | av免费试看 | 日日日操 | 少妇视频一区 | 亚洲电影av在线 | 中文字幕 国产视频 | 成年人看片| 福利电影久久 | 欧美激情va永久在线播放 | 久久最新视频 | 亚洲精品av中文字幕在线在线 | 日本激情中文字幕 | 丁香花在线视频观看免费 | 99视频在线免费播放 | 高清不卡一区二区三区 | 成人h电影在线观看 | 久久精品视频在线 | 亚洲精品国产精品国自产 | 免费成人在线观看视频 | 国产在线观看网站 | 天干啦夜天干天干在线线 | 青青草国产在线 | 国产精品中文字幕在线播放 | 久久精品99国产精品亚洲最刺激 | 五月婷婷六月丁香激情 | 天天天综合网 | 国产一区在线观看免费 | 色综合久久综合 | 国产精品永久久久久久久www | 99精品视频在线观看播放 | 日韩天天综合 | 日韩精品亚洲专区在线观看 | 99久久精品免费看 | 日日操夜 | 一区二区精品视频 | 久久人网 | 久久精品123 | 黄色精品久久久 | 久久久免费精品视频 | 韩日精品中文字幕 | 免费三级av| 国产视频 亚洲视频 | 国产免费视频在线 | 国产精品99久久久久久大便 | 亚洲精品视频在线免费播放 | 欧美性色综合 | 99精品一级欧美片免费播放 | 亚洲狠狠婷婷综合久久久 | 欧美va日韩va | 国产成人99av超碰超爽 | 精品国产免费久久 | 日韩高清国产精品 | 成人中心免费视频 | 色美女在线| 欧美a级在线 | 99热这里是精品 | 欧美天天综合 | 精品久久久久免费极品大片 | 国产福利在线免费观看 | 一区二区精品在线 | 中文字幕日韩精品有码视频 | 久久tv| 丁香婷婷久久久综合精品国产 | 丁香婷婷激情 | 天天色综合三 | 男女男视频 | 狠狠色狠狠色综合日日92 | 波多野结衣电影一区 | 国产精品久久久久久久电影 | 久久精品中文视频 | 91专区在线观看 | 在线观看成人毛片 | 日韩在线 | 国产精品视频全国免费观看 | 久久毛片网站 | 久久成年人 | 91色九色 | 欧美a视频在线观看 | 又黄又刺激| 97成人精品视频在线观看 | 亚洲一区二区三区在线看 | 黄色亚洲在线 | 在线影院av | 五月婷在线观看 | 91九色在线视频 | 一区二区精品在线 | 国产高清一区二区 | 国产精品久久视频 | www.夜色321.com| 欧美激情va永久在线播放 | 深夜福利视频在线观看 | 一级淫片a| 日本少妇久久久 | 91最新中文字幕 | 国产精品正在播放 | 国产精品久久久久久久免费大片 | www.久久免费视频 | 亚洲最新av网站 | 久久精品久久精品久久 | 九九亚洲精品 | 中文字幕欲求不满 | 日本在线精品视频 | 欧洲一区二区三区精品 | 久久国产精品免费视频 | 国产精品porn| 丁香久久激情 | 最新日韩视频 | 久久国产精品精品国产色婷婷 | 国产一级视屏 | 精品久久久久久久久久久久 | 在线免费观看视频你懂的 | 亚洲成aⅴ人在线观看 | 欧美 日韩 视频 | 亚洲特级片 | 中文国产字幕在线观看 | 四虎在线视频免费观看 | 午夜精品一区二区三区四区 | 国产拍揄自揄精品视频麻豆 | 亚洲精品乱码久久久一二三 | 福利电影久久 | 色瓜 | 成 人 免费 黄 色 视频 | 在线免费中文字幕 | 日韩无在线 | av电影不卡在线 | 亚洲精品网址在线观看 | 日韩在线观看一区二区 | 91av资源在线 | av在线免费观看网站 | 国产伦精品一区二区三区高清 | 91女人18片女毛片60分钟 | 99免费国产 | 国产免码va在线观看免费 | 久久人人看 | 人人舔人人爽 | 97爱爱爱 | 久久精品专区 | 五月天堂色 | 久久婷综合| 国产精品美女www爽爽爽视频 | 国产精品国产三级国产aⅴ9色 | 天天操天天舔天天爽 | 深夜激情影院 | 精品少妇一区二区三区在线 | 亚洲毛片在线观看. | 99精品久久精品一区二区 | 亚洲天堂网在线视频 | 麻豆视频免费网站 | 69国产成人综合久久精品欧美 | 成人a级网站 | 婷婷色狠狠 | 五月婷婷六月丁香在线观看 | 美女免费黄视频网站 | 麻豆手机在线 | 天天射夜夜爽 | 黄色免费电影网站 | 黄色免费电影网站 | 午夜精品久久久久久久爽 | 色婷婷国产精品 | 亚洲国产精品一区二区久久,亚洲午夜 | 久久a视频 | 亚洲最新在线 | 91精品国产三级a在线观看 | 天海翼一区二区三区免费 | 五月婷婷在线视频观看 | 美女在线免费观看视频 | www.久久久久 | 国产精品久久 | 中文字幕不卡在线88 | 国产亚洲精品久 | 亚洲另类在线视频 | 久久99久久精品国产 | 久久久久久蜜av免费网站 | 久久久精品小视频 | 人人爽人人av | 免费看国产a | 99久久综合狠狠综合久久 | 成人午夜黄色影院 | 成人91在线观看 | 蜜臀av性久久久久av蜜臀三区 | 亚洲免费在线视频 | 精品一区 在线 | 成人av一区二区兰花在线播放 | 91九色视频在线播放 | 天天天色综合a | 大片网站久久 | av资源在线看 | 国产精品视频大全 | 日韩在线免费视频观看 | 激情图片区 | 精品一区二区在线观看 | 欧美日韩精品在线 | 综合激情 | 久久神马影院 | 91女神的呻吟细腰翘臀美女 | 亚洲黄色免费电影 | www色com| 手机看片福利 | 激情综合色综合久久综合 | 久久久亚洲影院 | 成人 亚洲 欧美 | 成人av电影在线观看 | 干狠狠| 伊人伊成久久人综合网小说 | 在线免费日韩 | 91精品毛片 | 91一区一区三区 | 激情五月婷婷综合网 | 欧美日韩午夜爽爽 | 国产va饥渴难耐女保洁员在线观看 | 国产99免费 | 日本爱爱片 | 婷婷伊人综合亚洲综合网 | 少妇av片| 97国产在线视频 | 日本一区二区不卡高清 | 摸bbb搡bbb搡bbbb | 国产日韩高清在线 | 久久成年人 | 91大神免费视频 | 91九色蝌蚪国产 | 一级片观看 | 国产欧美日韩精品一区二区免费 | 日韩在线播放欧美字幕 | 激情av综合 | 又黄又爽又刺激的视频 | 国产在线观看黄 | 免费看黄视频 | 日韩高清激情 | 久久综合毛片 | 五月综合网站 | 日日干天天插 | 又爽又黄又无遮挡网站动态图 | 国产一区久久久 | 99色99| 精品在线你懂的 | 中文字幕一区二区三区在线观看 | 成年人av在线播放 | 91亚洲精 | 国产一区在线免费观看 | 97超碰总站 | 9999国产精品 | 天天摸天天操天天爽 | 日韩成人黄色av | 特级片免费看 | 99精品国产一区二区三区麻豆 | 日躁夜躁狠狠躁2001 | 99自拍视频在线观看 | 91在线视频导航 | 国产爽视频 | 久久久精品网 | 国产999视频| 午夜精品剧场 | 日本精品久久久久久 | 韩国视频一区二区三区 | 在线观看中文字幕视频 | 亚洲一二区视频 | 麻豆精品传媒视频 | 国产一区二区影院 | 日韩欧美在线影院 | 五月天亚洲精品 | 久久一区二区三区超碰国产精品 | 日韩欧美91 | 国内精品中文字幕 | 奇米影视在线99精品 | 福利av在线 | 欧美一区二区三区在线 | 九九九毛片 | 国产成人精品av久久 | 国产最新福利 | 一区二区三区www | 天天爱天天插 | 五月开心六月伊人色婷婷 | 我要看黄色一级片 | 一区二区三区高清 | 日本乱视频 | 欧美日韩一区二区在线观看 | 亚洲mv大片欧洲mv大片免费 | 日韩精品一区二区在线视频 | 免费视频黄 | 91免费版在线 | 亚洲精品乱码久久久久久蜜桃动漫 | 国产精品九九视频 | 免费国产在线观看 | 久久三级视频 | 91免费在线播放 | 国产精品第二页 | 一二三四精品 | 国产精品自产拍在线观看 | 中文超碰字幕 | av高清网站在线观看 | 97在线观看免费高清完整版在线观看 | 一区中文字幕在线观看 | 午夜视频免费在线观看 | 在线观看完整版免费 | 日日操网 | 黄色aaa毛片 | 人人澡人人添人人爽一区二区 | av观看久久久| 最近中文字幕高清字幕免费mv | 久热久草 | 91激情视频在线观看 | 国产一级做a爱片久久毛片a | 超碰人人91 | 深夜激情影院 | 就要色综合 | 日韩在线观看视频一区二区三区 | 99久久精品免费看国产免费软件 | av片在线观看免费 | 日韩久久影院 | 日日激情 | 国产999精品久久久久久 | 97色在线观看免费视频 | 97人人澡人人添人人爽超碰 | 9999免费视频 | 亚洲一区美女视频在线观看免费 | 超碰在线观看97 | 干天天 | 日韩精品视频久久 | 亚洲乱码久久 | 日韩精品一区二区在线视频 | 欧美性粗大hdvideo | 国产精品原创 | 国产精在线| 久久久久欧美精品999 | 福利网址在线观看 | 激情在线免费视频 | 一区二区三区高清不卡 | 美女久久久久久 | 不卡av电影在线 | 色射爱 | 欧美日韩破处 | 热精品| 奇米先锋 | 天天干夜夜夜 | 91久久国产露脸精品国产闺蜜 | 97人人添人澡人人爽超碰动图 | 国产色网 | 国产大尺度视频 | 国产精品xxxx18a99 | 观看免费av | 国产成人福利在线 | 亚洲综合成人婷婷小说 | 国产黄色片一级三级 | 在线国产一区二区 | 国产精品久久综合 | 亚洲资源视频 | 久草在线费播放视频 | 国产视频美女 | 美女国内精品自产拍在线播放 | 国产精品永久久久久久久久久 | 天天操夜夜逼 | 天天干天天操天天入 | www.色午夜| 亚洲精品色婷婷 | 日韩在线观看视频网站 | 日韩久久视频 | 亚洲国产精品免费 | 久久久国产精品视频 | 国产一区二区久久精品 | 夜夜操狠狠干 | 天堂网在线视频 | 国产精品1000| 国产美女视频黄a视频免费 久久综合九色欧美综合狠狠 | 国产男女无遮挡猛进猛出在线观看 | 91麻豆精品国产91久久久无限制版 | 国产在线视频一区二区 | 欧美午夜精品久久久久 | 一级性视频 | 91精品国产乱码久久桃 | 久久免费看毛片 | 玖玖视频免费在线 | 久久国精品 | 97国产大学生情侣酒店的特点 | 亚洲91中文字幕无线码三区 | 久久a级片 | 亚洲一区视频免费观看 | 夜夜摸夜夜爽 | 婷婷免费在线视频 | 国产精品黄色影片导航在线观看 | 九九免费在线观看 | 欧美日韩精品电影 | 狠狠插狠狠干 | 欧美激情奇米色 | 99精品视频免费全部在线 | 黄色av网站在线免费观看 | 综合色站导航 | 一色屋精品视频在线观看 | 国产精品久久久久久超碰 | 国产成人一区二 | 91一区啪爱嗯打偷拍欧美 | 不卡的av电影 | 日韩精品免费在线 | 免费日韩视 | 天天色天天色天天色 | 色综合久久精品 | 天天天操天天天干 | 911久久| 精品视频资源站 | 日韩久久精品一区二区三区下载 | 亚洲视频大全 | 中文字幕一区二区在线播放 | 超碰在线最新 | 粉嫩av一区二区三区四区 | 色婷婷狠狠操 | 免费在线成人av | 在线成人国产 | 一性一交视频 | 2019中文在线观看 | 正在播放五月婷婷狠狠干 | 91视频最新网址 | 日韩欧美有码在线 | 中文字幕中文字幕 | 黄色大片日本 | 国产精品视频 | 日韩三级免费观看 | 天天天干天天射天天天操 | 青青草久草在线 | 亚洲一区日韩在线 | 中文字幕一区二区三区在线视频 | 超碰成人免费电影 | 麻豆久久一区 | 婷婷激情5月天 | 成人国产综合 | 亚洲一级黄色大片 | 91免费视频网站在线观看 | 欧美久草网 | 蜜臀精品久久久久久蜜臀 | 国产高清av免费在线观看 | 99精品免费久久久久久久久日本 | 黄色小网站在线观看 | 丁香资源影视免费观看 | 91中文字幕永久在线 | 日韩免费网址 | 欧美日韩中文字幕视频 | 免费看片色 | 国产精品porn | 500部大龄熟乱视频 欧美日本三级 | 天天干天天搞天天射 | 美女精品久久久 | 日韩乱码中文字幕 | 夜夜夜夜猛噜噜噜噜噜初音未来 | 亚洲国产三级在线观看 | 97超碰免费在线 | 日本系列中文字幕 | 久久久久久久久久免费 | 亚洲精品免费观看 | 91av小视频| 99热国产在线中文 | 91av播放 | 久久伊人婷婷 | 免费亚洲黄色 | 婷婷婷国产在线视频 | 欧美巨大荫蒂茸毛毛人妖 | 亚洲视频在线播放 | 一区二区视频播放 | 九九热在线视频 | 91pony九色丨交换| 麻豆影视在线免费观看 | 91在线观看欧美日韩 | 成人国产网址 | 亚洲狠狠婷婷综合久久久 | 亚洲婷久久 | 国产伦理精品一区二区 | 欧美疯狂性受xxxxx另类 | 亚洲国产精品久久 | 成人欧美一区二区三区黑人麻豆 | 久久久久久久久久久久久国产精品 | 开心色婷婷 | 国产精彩在线视频 | 99热国产在线 | 久久九九久久精品 | 91免费看片黄 | 中文字幕人成乱码在线观看 | 久久国产精品免费看 | 成年人精品 | 9在线观看免费高清完整版在线观看明 | 天天爱天天 | 中文字幕精品一区久久久久 | 久久黄色网| 欧美黄在线 | 碰超在线| 午夜精品av在线 | 日韩综合精品 | av黄色av| 日韩欧美观看 | 亚洲欧美精品在线 | www.在线观看视频 | 伊人五月天.com | 天天躁日日 | 日韩av一区二区在线 | 91精品国产91热久久久做人人 | 综合av在线 | 国产视频18 | 伊人狠狠操 | 天天曰天天曰 | 欧美一区二区三区在线看 | 少妇自拍av | 天天干夜夜夜 | a'aaa级片在线观看 | 黄色片亚洲 | 天天天射| 欧美一区,二区 | 国产 日韩 在线 亚洲 字幕 中文 | 欧美成人精品三级在线观看播放 | 俺要去色综合狠狠 | 99热精品国产一区二区在线观看 | 国产成人精品999 | 国产美女精品人人做人人爽 | 亚洲黄色在线观看 | www.久久久精品| 欧美一级大片在线观看 | 亚洲成免费 | 日韩丝袜在线观看 | a天堂在线看 | 91av在线免费播放 | 国产福利一区二区三区在线观看 | 五月天色婷婷丁香 | 毛片视频电影 | 国外调教视频网站 | 91福利国产在线观看 | 精品国产精品久久 | 欧美性色综合 | 视频福利在线观看 | 香蕉视频免费看 | 成人欧美一区二区三区黑人麻豆 | 亚洲 中文字幕av | 97精品在线视频 | 1区2区3区在线观看 三级动图 | 国产亚洲精品成人av久久ww | 干亚洲少妇| 黄色片免费看 | 亚洲男男gⅴgay双龙 | 免费在线观看日韩 | 天天操综| 欧美一级性 | 视频一区亚洲 | 五月婷婷激情 | 国产黄在线看 | 制服丝袜在线 | av一区二区三区在线播放 | 在线观看日本高清mv视频 | 精品国产一二三四区 | 欧美日在线 | 久久久黄色免费网站 | 日本中文字幕久久 | 91精品福利在线 | 草久电影| 色综合久久久久久中文网 | 亚洲精品在线免费播放 | 精品91在线| 久久久久久片 | 美女性爽视频国产免费app | 九九九九九精品 | 成人免费色 | 国产精品久久一区二区三区, | 能在线观看的日韩av | 三级在线视频播放 | 欧美一进一出抽搐大尺度视频 | 精品欧美一区二区在线观看 | 91免费的视频在线播放 | 97超碰色 | 91超级碰碰 | 国产精品日韩精品 | 99这里有精品 | 国产人成免费视频 | 久久高清国产视频 | 免费观看久久 | 国产一级免费在线观看 | 美女一区网站 | 人人插人人 | 女人18精品一区二区三区 | 天天色天天操天天爽 | 成年人视频在线免费 | 99爱国产精品 | 色婷婷狠狠五月综合天色拍 | 成年人视频在线免费播放 | 国产一在线精品一区在线观看 | 少妇性bbb搡bbb爽爽爽欧美 | 一区三区在线欧 | 成人在线一区二区三区 | 91精品一区二区三区久久久久久 | 夜夜视频| 中文字幕一区二区三区在线播放 | 97免费中文视频在线观看 | 精品一二三四在线 | 一区二区三区日韩精品 | 最新av免费在线观看 | 片网站 | 午夜精品久久久久久久久久久 | 黄色看片 | 国产精品激情 | 天干啦夜天干天干在线线 | 九九综合久久 | 91天天操 | 97国产精品一区二区 | 福利视频导航网址 | 久久久黄视频 | 国产特级毛片aaaaaa毛片 | 97在线看 | 国产特级毛片aaaaaa毛片 | 中文字幕黄色网 | 日日干,天天干 | 成人亚洲精品国产www | av动图| 99精品久久久久久久久久综合 | 国产在线91精品 | 欧美成年人在线视频 | 亚洲韩国一区二区三区 | 国产91亚洲| 成人精品久久久 | 成年人免费在线播放 | av看片在线观看 | 99免费在线播放99久久免费 | 欧美精品v国产精品v日韩精品 | 欧美a级成人淫片免费看 | 色香网 | 色网站在线观看 | 99视频免费播放 | 9999国产精品 | 国语精品免费视频 | 久久精品久久精品久久精品 | 中文字幕在线免费97 | 欧美一级视频在线观看 | 国产精品免费看 | av中文字幕不卡 | 九九九热视频 | 91精彩视频 | 色中色资源站 | 丁香花在线观看免费完整版视频 | av在线超碰| 综合激情久久 | 99久久久久久国产精品 | 国产日韩欧美在线看 | 成人a级免费视频 | 亚洲激情校园春色 | 精品久久久久久久久久久院品网 | 成人av高清在线观看 | 精品亚洲视频在线 | 91观看视频 | 韩国精品视频在线观看 | 免费下载高清毛片 | 国内精品视频在线 | 国产女教师精品久久av | 亚洲欧美日本一区二区三区 | 在线观看av国产 | 国产91综合一区在线观看 | 国产福利一区在线观看 | 99国产情侣在线播放 | 亚洲dvd | 亚洲 欧美 国产 va在线影院 | 狠狠操天天操 | 亚洲一区久久 | 成 人 免费 黄 色 视频 | 国产资源av | 欧美日韩精品在线观看 | 玖玖视频精品 | 美女视频黄是免费的 | 中文字幕在线观看完整版电影 | 久久这里只有精品首页 | 亚洲精品在线免费观看视频 | 永久免费的av电影 | 国产又粗又长的视频 | 瑞典xxxx性hd极品 | 中文字幕人成一区 | 午夜国产一区 | 免费三级大片 | 香蕉视频国产在线观看 | 日本中文字幕在线免费观看 | 久久免费视频精品 | 九九热视频在线播放 | 日韩中文幕 | 亚洲精品乱码久久久久 | 亚洲色图av| av黄色免费网站 | 18久久久久久 | 午夜久久电影网 | 天堂在线免费视频 | 午夜久草 | 国产成人在线一区 | 国产成人精品久久二区二区 | 97精品国产97久久久久久久久久久久 | 国产精品热视频 | 五月天六月婷 | 国产精品剧情在线亚洲 | 久要激情网 | 久久99亚洲精品久久 | 99久久精品久久亚洲精品 | 国产区第一页 | 久久免费大片 | av高清免费| 黄色www免费 | 欧美视频国产视频 | 久久综合色天天久久综合图片 | 男女激情网址 | 麻花天美星空视频 | 精品国产自在精品国产精野外直播 | 欧美日韩有码 | 一区二区三区国 | 免费日韩 精品中文字幕视频在线 | 国产精品久久久久久久久久久久午夜片 | 日韩av电影免费观看 | 在线观看中文字幕 | 亚洲精品视频大全 | 日韩理论电影在线 | 天堂在线视频免费观看 | www.狠狠 | 草久热 | 国产精品视频永久免费播放 | 五月婷婷综合在线 | 国产91精品一区二区绿帽 | 天天操夜夜操 | 久久久久免费精品视频 | 欧美a级成人淫片免费看 | 国产又粗又猛又色又黄视频 | 久久久久免费精品 | 91av原创 | 日韩天天综合 | www久久精品 | 日日干网址 | 少妇性aaaaaaaaa视频 | 国产一区二区三区免费在线观看 | 国产精品在线看 | 国产精品久久久久久久午夜 | 国产精品久久久久av福利动漫 | 毛片二区| 国产一区视频在线播放 | 国产亚洲精品久久网站 | 国产免费又粗又猛又爽 | 激情视频免费在线 | 最近中文字幕mv | 91精品久久久久久综合五月天 | 国内精品久久久久国产 | 在线观看黄色 | 欧美精品第一 | 五月婷婷伊人网 | 日本久久片 | 区一区二区三在线观看 | 免费日韩av片 | 五月婷在线播放 | 国产精品无av码在线观看 | 最近中文字幕大全中文字幕免费 | 免费观看一级成人毛片 | 国产一区二区免费看 | 六月丁香激情网 | 99热这里精品| 91一区二区三区在线观看 | 国产日韩欧美在线一区 | 免费视频黄色 | 久久久久99精品成人片三人毛片 | 五月天婷婷在线视频 | 91视频首页 | 看全黄大色黄大片 | 亚洲国产69 | 人人爱人人添 | 中文字幕av在线电影 | 蜜臀一区二区三区精品免费视频 | 色婷婷av国产精品 | 久久综合九色 | 中文字幕在线观看国产 | 最新的av网站 | 亚洲欧美va | 91在线观看视频 | 国产人成一区二区三区影院 | 天天爽夜夜爽人人爽曰av | 国产精品区一区 | 一级成人免费 | 欧洲色综合 | 91免费观看视频网站 | 久久美女电影 | 欧美热久久 | 日韩av一区二区在线播放 | 激情综合亚洲 | 国产成人久久av | 在线99视频 | 狠狠狠色丁香婷婷综合久久88 | 国产亚洲精品久久久久久久久久 | av大片网址 | 999电影免费在线观看2020 | 91视频免费观看 | 亚洲精品美女在线观看 | 久久久黄视频 | 亚洲人成人99网站 | 日本三级不卡视频 | 日韩国产欧美在线视频 | 久草热视频 | 久久久精品免费观看 | 免费视频91蜜桃 | 欧美日韩一区久久 | 韩日三级在线 | 久久久久久草 | 日本在线中文 | 最新一区二区三区 | 在线国产视频观看 | 亚洲一级免费观看 | 91大神dom调教在线观看 | 欧美日韩免费视频 | 99热手机在线观看 | 在线亚洲日本 | 亚洲精品乱码白浆高清久久久久久 | 国产一级片不卡 | 成人免费一级片 | 一区二区三区在线视频观看58 | 国产成人一级 | 亚洲蜜桃在线 | 在线视频专区 | 亚洲午夜久久久久久久久久久 | 午夜精品一区二区三区免费 | 久久天天综合网 | 日本久久成人中文字幕电影 | 又黄又爽又色无遮挡免费 | 午夜精品一区二区三区可下载 | 日本精品视频在线观看 | 人人澡人人舔 | 在线免费观看一区二区三区 | 片网址| 91精品国产综合久久福利不卡 | 久久精品一二区 | 成+人+色综合 | 久久精视频 | 91综合视频在线观看 | 不卡av电影在线观看 | 91亚洲激情 | 日韩免费| 亚洲乱码在线 | 国产黄色免费在线观看 | 狠狠干夜夜操天天爽 | 天海翼一区二区三区免费 | 制服丝袜成人在线 | 欧美视频日韩视频 | 黄色大片免费网站 | 香蕉视频4aa | 99麻豆久久久国产精品免费 | 午夜久草| av色图天堂网 | 欧美日韩国产一区二区三区 | 免费日韩 精品中文字幕视频在线 | 日日碰狠狠添天天爽超碰97久久 | 国产理论在线 | 91九色蝌蚪在线 | 91精品亚洲影视在线观看 | 成年人在线观看 | 特级毛片网 | 91精品国产福利在线观看 | 密桃av在线| 香蕉久久国产 | 91精品在线免费观看视频 | 婷婷色在线资源 | 狠狠gao| 五月天激情视频在线观看 | 久久视频在线免费观看 | 91在线免费观看国产 | 精品国产欧美一区二区三区不卡 | 免费大片黄在线 | 激情网五月 | 亚洲视频免费在线 | 日日夜日日干 | 在线观看视频精品 | 九九精品在线观看 | 欧美淫视频 | 成人久久18免费网站 |