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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

项目学生:分片集成测试数据

發(fā)布時(shí)間:2023/12/3 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 项目学生:分片集成测试数据 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

這是Project Student的一部分。 其他職位包括帶有Jersey的 Web服務(wù) 客戶端,帶有Jersey的 Web服務(wù)服務(wù)器 , 業(yè)務(wù)層和帶有Spring Data的持久性 。

到目前為止,所有集成測(cè)試都使用了內(nèi)存嵌入式數(shù)據(jù)庫(kù),該數(shù)據(jù)庫(kù)無(wú)法一次又一次地保留信息。 當(dāng)我們將REST服務(wù)器與“真實(shí)”數(shù)據(jù)庫(kù)服務(wù)器完全集成時(shí),這種情況會(huì)發(fā)生變化-剩余的測(cè)試數(shù)據(jù)將污染我們的開(kāi)發(fā)或測(cè)試數(shù)據(jù)庫(kù)。 一旦我們進(jìn)行了運(yùn)行集成測(cè)試代碼的連續(xù)集成,這將是一個(gè)非常頭疼的事情。

一種解決方案是以一種允許我們的測(cè)試使用共享開(kāi)發(fā)數(shù)據(jù)庫(kù)而不污染它或其他測(cè)試的方式“分片”我們的集成測(cè)試數(shù)據(jù)。 最簡(jiǎn)單的方法是將TestRun字段添加到所有對(duì)象。 “測(cè)試”數(shù)據(jù)將具有指示特定測(cè)試運(yùn)行的值,“實(shí)時(shí)”數(shù)據(jù)將具有空值。

確切的時(shí)間表是

  • 創(chuàng)建并持久保存一個(gè)TestRun對(duì)象
  • 創(chuàng)建具有適當(dāng)TestRun值的測(cè)試對(duì)象
  • 執(zhí)行集成測(cè)試
  • 刪除測(cè)試對(duì)象
  • 刪除TestRun對(duì)象
  • TestRun表中的??任何條目將是1)主動(dòng)集成測(cè)試或2)引發(fā)未處理異常的集成測(cè)試失敗(當(dāng)然,這取決于事務(wù)管理器)。 重要的是要注意,即使事務(wù)管理器執(zhí)行了回滾,我們也可以在引發(fā)意外異常后捕獲數(shù)據(jù)庫(kù)狀態(tài)-這是對(duì)junit測(cè)試運(yùn)行程序的簡(jiǎn)單擴(kuò)展。

    時(shí)間戳記和用戶字段使您可以輕松地根據(jù)其年齡(例如,超過(guò)7天的任何測(cè)試)或運(yùn)行測(cè)試的人員刪除陳舊的測(cè)試數(shù)據(jù)。

    TestablePersistentObject抽象基類

    此更改從持久性級(jí)別開(kāi)始,因此我們應(yīng)該從持久性級(jí)別開(kāi)始并逐步進(jìn)行擴(kuò)展。

    我們首先用測(cè)試運(yùn)行值擴(kuò)展PersistentObject抽象基類。

    @MappedSuperclass public abstract class TestablePersistentObject extends PersistentObject {private static final long serialVersionUID = 1L;private TestRun testRun;/*** Fetch testRun object. We use lazy fetching since we rarely care about the* contents of this object - we just want to ensure referential integrity to* an existing testRun object when persisting a TPO.* * @return*/@ManyToOne(fetch = FetchType.LAZY, optional = true)public TestRun getTestRun() {return testRun;}public void setTestRun(TestRun testRun) {this.testRun = testRun;}@Transientpublic boolean isTestData() {return testRun != null;} }

    TestRun類

    TestRun類包含有關(guān)單個(gè)集成測(cè)試運(yùn)行的標(biāo)識(shí)信息。 它包含一個(gè)名稱(默認(rèn)情況下,該集成測(cè)試為classname#methodname()) ,測(cè)試的日期和時(shí)間以及運(yùn)行該測(cè)試的用戶的名稱。 捕獲其他信息將很容易。

    測(cè)試對(duì)象列表為我們帶來(lái)了兩個(gè)重大勝利。 首先,如果需要(例如,在意外的異常之后),可以輕松捕獲數(shù)據(jù)庫(kù)的狀態(tài)。 其次,級(jí)聯(lián)刪除使刪除所有測(cè)試對(duì)象變得容易。

    @XmlRootElement @Entity @Table(name = "test_run") @AttributeOverride(name = "id", column = @Column(name = "test_run_pkey")) public class TestRun extends PersistentObject {private static final long serialVersionUID = 1L;private String name;private Date testDate;private String user;private List<TestablePersistentObject> objects = Collections.emptyList();@Column(length = 80, unique = false, updatable = true)public String getName() {return name;}public void setName(String name) {this.name = name;}@Column(name = "test_date", nullable = false, updatable = false)@Temporal(TemporalType.TIMESTAMP)public Date getTestDate() {return testDate;}public void setTestDate(Date testDate) {this.testDate = testDate;}@Column(length = 40, unique = false, updatable = false)public String getUser() {return user;}public void setUser(String user) {this.user = user;}@OneToMany(cascade = CascadeType.ALL)public List<TestablePersistentObject> getObjects() {return objects;}public void setObjects(List<TestablePersistentObject> objects) {this.objects = objects;}/*** This is similar to standard prepersist method but we also set default* values for everything else.*/@PrePersistpublic void prepersist() {if (getCreationDate() == null) {setCreationDate(new Date());}if (getTestDate() == null) {setTestDate(new Date());}if (getUuid() == null) {setUuid(UUID.randomUUID().toString());}if (getUser() == null) {setUser(System.getProperty("user.name"));}if (name == null) {setName("test run " + getUuid());}} }

    TestRun類擴(kuò)展了PersistentObject,而不是TestablePersistentObject,因?yàn)槲覀兊钠渌蓽y(cè)試將充分利用它。

    Spring數(shù)據(jù)倉(cāng)庫(kù)

    我們必須向每個(gè)存儲(chǔ)庫(kù)添加一種其他方法。

    @Repository public interface CourseRepository extends JpaRepository {List<Course> findCoursesByTestRun(TestRun testRun);.... }

    服務(wù)介面

    同樣,我們必須為每個(gè)服務(wù)添加兩個(gè)其他方法。

    public interface CourseService {List<Course> findAllCourses();Course findCourseById(Integer id);Course findCourseByUuid(String uuid);Course createCourse(String name);Course updateCourse(Course course, String name);void deleteCourse(String uuid);// new method for testingCourse createCourseForTesting(String name, TestRun testRun);// new method for testingList<Course> findAllCoursesForTestRun(TestRun testRun); }

    我不會(huì)顯示TestRunRepository,TestRunService接口或TestRunService實(shí)現(xiàn),因?yàn)樗鼈兣c我在前幾篇博客文章中所描述的相同。

    服務(wù)實(shí)施

    我們必須對(duì)現(xiàn)有Service實(shí)施進(jìn)行一次小的更改,并添加兩種新方法。

    @Service public class CourseServiceImpl implements CourseService {@Resourceprivate TestRunService testRunService;/*** @see com.invariantproperties.sandbox.student.business.CourseService#* findAllCourses()*/@Transactional(readOnly = true)@Overridepublic List<Course> findAllCourses() {List<Course> courses = null;try {courses = courseRepository.findCoursesByTestRun(null);} catch (DataAccessException e) {if (!(e instanceof UnitTestException)) {log.info("error loading list of courses: " + e.getMessage(), e);}throw new PersistenceException("unable to get list of courses.", e);}return courses;}/*** @see com.invariantproperties.sandbox.student.business.CourseService#* findAllCoursesForTestRun(com.invariantproperties.sandbox.student.common.TestRun)*/@Transactional(readOnly = true)@Overridepublic List<Course> findAllCoursesForTestRun(TestRun testRun) {List<Course> courses = null;try {courses = courseRepository.findCoursesByTestRun(testRun);} catch (DataAccessException e) {if (!(e instanceof UnitTestException)) {log.info("error loading list of courses: " + e.getMessage(), e);}throw new PersistenceException("unable to get list of courses.", e);}return courses;}/*** @see com.invariantproperties.sandbox.student.business.CourseService#* createCourseForTesting(java.lang.String,* com.invariantproperties.sandbox.student.common.TestRun)*/@Transactional@Overridepublic Course createCourseForTesting(String name, TestRun testRun) {final Course course = new Course();course.setName(name);course.setTestUuid(testRun.getTestUuid());Course actual = null;try {actual = courseRepository.saveAndFlush(course);} catch (DataAccessException e) {if (!(e instanceof UnitTestException)) {log.info("internal error retrieving course: " + name, e);}throw new PersistenceException("unable to create course", e);}return actual;} }

    CourseServiceIntegrationTest

    我們對(duì)集成測(cè)試進(jìn)行了一些更改。 我們只需更改一種測(cè)試方法,因?yàn)樗俏ㄒ粚?shí)際創(chuàng)建測(cè)試對(duì)象的方法。 其余方法是不需要測(cè)試數(shù)據(jù)的查詢。

    請(qǐng)注意,我們更改名稱值以確保其唯一性。 這是解決唯一性約束(例如,電子郵件地址)的一種方法。

    @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(classes = { BusinessApplicationContext.class, TestBusinessApplicationContext.class,TestPersistenceJpaConfig.class }) @Transactional @TransactionConfiguration(defaultRollback = true) public class CourseServiceIntegrationTest {@Resourceprivate CourseService dao;@Resourceprivate TestRunService testService;@Testpublic void testCourseLifecycle() throws Exception {final TestRun testRun = testService.createTestRun();final String name = "Calculus 101 : " + testRun.getUuid();final Course expected = new Course();expected.setName(name);assertNull(expected.getId());// create courseCourse actual = dao.createCourseForTesting(name, testRun);expected.setId(actual.getId());expected.setUuid(actual.getUuid());expected.setCreationDate(actual.getCreationDate());assertThat(expected, equalTo(actual));assertNotNull(actual.getUuid());assertNotNull(actual.getCreationDate());// get course by idactual = dao.findCourseById(expected.getId());assertThat(expected, equalTo(actual));// get course by uuidactual = dao.findCourseByUuid(expected.getUuid());assertThat(expected, equalTo(actual));// get all coursesfinal List<Course> courses = dao.findCoursesByTestRun(testRun);assertTrue(courses.contains(actual));// update courseexpected.setName("Calculus 102 : " + testRun.getUuid());actual = dao.updateCourse(actual, expected.getName());assertThat(expected, equalTo(actual));// verify testRun.getObjectsfinal List<TestablePersistentObject> objects = testRun.getObjects();assertTrue(objects.contains(actual));// delete Coursedao.deleteCourse(expected.getUuid());try {dao.findCourseByUuid(expected.getUuid());fail("exception expected");} catch (ObjectNotFoundException e) {// expected}testService.deleteTestRun(testRun.getUuid());}.... }

    我們可以使用@Before和@After透明地包裝所有測(cè)試方法,但是許多測(cè)試不需要測(cè)試數(shù)據(jù),而許多需要測(cè)試數(shù)據(jù)的測(cè)試則需要唯一的測(cè)試數(shù)據(jù),例如,電子郵件地址。 在后一種情況下,我們按照上述方法折疊測(cè)試UUID。

    REST Web服務(wù)服務(wù)器

    REST Web服務(wù)需要在請(qǐng)求類中添加測(cè)試uuid,并在創(chuàng)建對(duì)象時(shí)添加一些邏輯以正確處理它。

    REST Web服務(wù)不支持獲取所有測(cè)試對(duì)象的列表。 “正確”的方法將是創(chuàng)建TestRun服務(wù)并響應(yīng)/ get / {id}查詢提供關(guān)聯(lián)的對(duì)象。

    @XmlRootElement public class Name {private String name;private String testUuid;public String getName() {return name;}public void setName(String name) {this.name = name;}public String getTestUuid() {return testUuid;}public void setTestUuid(String testUuid) {this.testUuid = testUuid;} }

    現(xiàn)在,我們可以檢查可選的testUuid字段并調(diào)用適當(dāng)?shù)腸reate方法。

    @Service @Path("/course") public class CourseResource extends AbstractResource {@Resourceprivate CourseService service;@Resourceprivate TestRunService testRunService;/*** Create a Course.* * @param req* @return*/@POST@Consumes({ MediaType.APPLICATION_JSON, MediaType.TEXT_XML })@Produces({ MediaType.APPLICATION_JSON, MediaType.TEXT_XML })public Response createCourse(Name req) {log.debug("CourseResource: createCourse()");final String name = req.getName();if ((name == null) || name.isEmpty()) {return Response.status(Status.BAD_REQUEST).entity("'name' is required'").build();}Response response = null;try {Course course = null;if (req.getTestUuid() != null) {TestRun testRun = testRunService.findTestRunByUuid(req.getTestUuid());if (testRun != null) {course = service.createCourseForTesting(name, testRun);} else {response = Response.status(Status.BAD_REQUEST).entity("unknown test UUID").build();}} else {course = service.createCourse(name);}if (course == null) {response = Response.status(Status.INTERNAL_SERVER_ERROR).build();} else {response = Response.created(URI.create(course.getUuid())).entity(scrubCourse(course)).build();}} catch (Exception e) {if (!(e instanceof UnitTestException)) {log.info("unhandled exception", e);}response = Response.status(Status.INTERNAL_SERVER_ERROR).build();}return response;}.... }

    REST Web服務(wù)客戶端

    最后,REST服務(wù)器必須添加一種其他方法。 客戶端尚不支持獲取所有測(cè)試對(duì)象的列表。

    public interface CourseRestClient {/*** Create specific course for testing.* * @param name* @param testRun*/Course createCourseForTesting(String name, TestRun testRun);.... }

    public class CourseRestClientImpl extends AbstractRestClientImpl implements CourseRestClient {/*** Create JSON string.* * @param name* @return*/String createJson(final String name, final TestRun testRun) {return String.format("{ \"name\": \"%s\", \"testUuid\": \"%s\" }", name, testRun.getTestUuid());}/*** @see com.invariantproperties.sandbox.student.webservice.client.CourseRestClient#createCourse(java.lang.String)*/@Overridepublic Course createCourseForTesting(final String name, final TestRun testRun) {if (name == null || name.isEmpty()) {throw new IllegalArgumentException("'name' is required");}if (testRun == null || testRun.getTestUuid() == null || testRun.getTestUuid().isEmpty()) {throw new IllegalArgumentException("'testRun' is required");}return createObject(createJson(name, testRun));}.... }

    源代碼

    可從http://code.google.com/p/invariant-properties-blog/source/browse/student獲取源代碼。

    澄清度

    我認(rèn)為在TestRun中不可能有@OneToMany到TestablePersistentObject,但是使用H2的集成測(cè)試成功了。 不幸的是,當(dāng)我使用PostgreSQL數(shù)據(jù)庫(kù)啟動(dòng)完全集成的Web服務(wù)時(shí),這會(huì)引起問(wèn)題。 我將代碼留在上面,因?yàn)榧词刮覀儧](méi)有通用集合,也總是可以有一個(gè)教室列表,一個(gè)課程列表等。 但是,代碼已從源代碼控制的版本中刪除。

    更正

    接口方法應(yīng)該是findCourseByTestRun_Uuid() ,而不是findCourseByTestRun() 。 另一種方法是使用JPA標(biāo)準(zhǔn)查詢–請(qǐng)參閱“ 項(xiàng)目學(xué)生:JPA標(biāo)準(zhǔn)查詢” 。

    參考: 項(xiàng)目學(xué)生:來(lái)自Invariant Properties博客的JCG合作伙伴 Bear Giles提供的分片集成測(cè)試數(shù)據(jù) 。

    翻譯自: https://www.javacodegeeks.com/2014/01/project-student-sharding-integration-test-data.html

    總結(jié)

    以上是生活随笔為你收集整理的项目学生:分片集成测试数据的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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

    999久久久久久 | 久久久99精品免费观看 | 国产成人精品一区二区 | 2019天天干天天色 | 中文字幕在线观看免费高清电影 | 高清一区二区三区av | 久久精品91视频 | 在线免费观看黄色av | 亚洲国产美女精品久久久久∴ | 黄色三级视频片 | 久久精品亚洲一区二区三区观看模式 | 美女黄频视频大全 | 97精品国自产拍在线观看 | 亚洲婷婷在线视频 | 免费www视频| 综合网天天色 | av成年人电影 | 日韩成人精品一区二区三区 | 91视频91自拍 | 午夜视频在线瓜伦 | 午夜久久久影院 | 久草www| 一级黄色在线视频 | 天天操天天干天天 | 日韩久久精品一区 | 日日操操操 | 99婷婷狠狠成为人免费视频 | 成人av影视观看 | 成人香蕉视频 | 国产精品不卡视频 | 亚洲va欧美va国产va黑人 | 成人一区影院 | 九九久久成人 | 国产视频不卡 | 国产免费亚洲 | 欧美日韩高清在线一区 | 特级黄色片免费看 | 亚洲黄色激情小说 | 日韩欧美高清一区二区三区 | 91看毛片 | 成人国产精品久久久 | 国产不卡一 | 亚洲精品永久免费视频 | 国产爽妇网 | 国内外激情视频 | 九九热免费在线观看 | 亚洲成av人片一区二区梦乃 | 九九热免费精品视频 | 99精品视频精品精品视频 | 国产精品亚洲综合久久 | 四虎影视8848dvd | 国产一区自拍视频 | 欧美日本啪啪无遮挡网站 | 国产免费三级在线观看 | 91精品国产欧美一区二区 | 免费亚洲电影 | 韩国av在线播放 | 国产精品久久久久久超碰 | 日本韩国精品一区二区在线观看 | 色噜噜日韩精品欧美一区二区 | 一区二区视频在线播放 | 欧美aaaxxxx做受视频 | 91精品老司机久久一区啪 | 夜色在线资源 | 日本三级全黄少妇三2023 | 亚洲成人黄色在线 | 免费在线黄| 久久婷婷国产色一区二区三区 | 中文字幕av在线免费 | 国产日本在线观看 | 午夜精选视频 | 国内精品久久久久影院日本资源 | 国产一级黄色电影 | 日韩va亚洲va欧美va久久 | 国产小视频免费观看 | 国产色啪 | 国产美女主播精品一区二区三区 | 欧美成人h版电影 | 手机在线观看国产精品 | 欧美大jb | 欧亚日韩精品一区二区在线 | 97在线视频免费播放 | 西西44人体做爰大胆视频 | 日本黄色大片儿 | 国产精品久久久久久久99 | 日本久久久精品视频 | 九九热免费观看 | 国产精品久久久亚洲 | 在线午夜| 国产精品2区 | 成人在线视频免费 | 国产午夜三级一二三区 | 日本成人中文字幕在线观看 | 亚洲aⅴ久久精品 | 亚洲在线观看av | www.日本色 | 亚洲成人免费在线 | 欧美日韩中文字幕在线视频 | 日韩成人不卡 | 97精品国自产拍在线观看 | 久久综合婷婷国产二区高清 | 国内揄拍国内精品 | 精品久久久久久国产偷窥 | www日| 久久精品欧美一 | av在线一| 中文字幕精品一区二区精品 | 片网站 | 成av在线 | 最新国产在线 | 国产 一区二区三区 在线 | 国产特级毛片aaaaaa高清 | 草在线| 在线日韩亚洲 | 在线天堂中文在线资源网 | 人交video另类hd | 永久免费毛片在线观看 | 中文字幕乱码电影 | 99亚洲精品| 视频在线99 | 999成人| 91在线免费观看网站 | 成人午夜在线观看 | 天天射天天射天天 | 在线视频 影院 | 亚洲情婷婷| 国产精品美 | 久久a国产| 91丨九色丨国产丨porny精品 | 久久综合免费视频影院 | 久久免费黄色网址 | 成人黄色在线视频 | 亚洲国产一区av | 免费一级特黄录像 | 久久久亚洲麻豆日韩精品一区三区 | 久久这里只有精品视频99 | 久久伊人色综合 | 国产字幕av | 69久久99精品久久久久婷婷 | 欧美午夜理伦三级在线观看 | 狠狠色丁香久久婷婷综 | 亚洲成人999| 免费观看福利视频 | v片在线看| 干干操操 | 欧美国产高清 | 日本少妇高清做爰视频 | 国产精品国产自产拍高清av | 天天干天天摸天天操 | 日韩亚洲国产精品 | 99精品国产一区二区三区麻豆 | 在线观看免费一级片 | 天海冀一区二区三区 | 久久视频精品在线观看 | 天天色天天射天天干 | 久久不射电影院 | 欧美日韩亚洲在线观看 | 亚洲毛片视频 | 香蕉看片 | 69热国产视频 | 在线视频中文字幕一区 | 999久久| 最近最新mv字幕免费观看 | 国产在线精品视频 | 超碰国产在线播放 | 久久黄色免费 | 国产97在线播放 | 亚洲国产mv | 久精品视频在线 | 特级毛片在线 | 毛片网站免费在线观看 | 国产精品自拍在线 | 天天草视频 | 欧美一区日韩精品 | 国产精品成人一区二区三区 | 亚洲人成综合 | 国产免费成人 | 黄影院 | 天天操夜夜操天天射 | 中文字幕亚洲国产 | 成年人在线视频观看 | 亚洲国产日本 | 婷婷色综合| 亚洲精品视频在线看 | 免费成人在线观看视频 | 国产一级视频在线观看 | 欧美日韩精品影院 | 亚洲精品在线免费播放 | 亚洲成人av电影 | 午夜av剧场 | 欧美国产三区 | 毛片网站免费 | 在线观看国产www | 亚洲精品午夜久久久久久久久久久 | 日韩av一区二区三区四区 | 亚洲欧美国内爽妇网 | 奇米影音四色 | 色狠狠一区二区 | 国产精品1024 | 国产一级片不卡 | 国产经典av| 综合网天天 | 色偷偷网站视频 | 狠狠干婷婷 | 色狠狠综合 | 国产97碰免费视频 | 就要干b | 国产精品国产三级国产不产一地 | 午夜精品一区二区三区在线视频 | 草久久久久久 | 不卡的av中文字幕 | 激情五月看片 | 日韩av成人在线观看 | 韩国av电影网 | 黄色国产成人 | 一区二区精品视频 | www视频在线播放 | 综合国产在线 | 免费视频久久久久久久 | 免费看毛片网站 | 日韩av不卡在线观看 | 日韩电影在线观看一区二区三区 | 久久福利| www.av免费 | 亚洲精品字幕在线观看 | 九草视频在线 | 日韩欧美视频免费看 | 久草视频免费播放 | 久久国产99 | 久久综合色婷婷 | av丁香花| 免费电影播放 | 国产精品久久 | 国产伦理一区 | 国产亚洲免费观看 | 天天色棕合合合合合合 | 国产精品亚洲片在线播放 | 久久久久亚洲精品中文字幕 | 91伊人影院 | 四虎在线永久免费观看 | 国产成人福利片 | 国产精品一区二区久久久 | 色94色欧美 | 五月婷婷在线视频 | 成年人在线免费看视频 | 99精品视频中文字幕 | 美女视频永久黄网站免费观看国产 | 欧美激精品 | 91精品蜜桃| 欧美在线aa | 黄色软件网站在线观看 | 日韩一区二区三区高清免费看看 | 久久久久高清毛片一级 | 91精品在线播放 | 欧美视频一区二 | 久久免费视屏 | 97综合网 | 精品婷婷| 免费久久99精品国产婷婷六月 | 久久女教师 | 日日爱夜夜爱 | 在线综合 亚洲 欧美在线视频 | 美女视频黄免费网站 | 一级一级一片免费 | 亚洲午夜精品一区二区三区电影院 | 91精品国产92久久久久 | 66av99精品福利视频在线 | 综合网伊人 | 国产小视频精品 | 日韩最新中文字幕 | 黄色免费高清视频 | 999久久国产精品免费观看网站 | 欧美日韩国产在线一区 | 五月婷婷操 | 天堂网一区二区 | 免费观看全黄做爰大片国产 | 麻豆 videos | 91在线免费观看国产 | 欧美视频日韩视频 | 久久久久久久久国产 | 国产亚洲精品福利 | 99精品偷拍视频一区二区三区 | 91激情视频在线播放 | av视屏在线 | 久久男人中文字幕资源站 | 九九九九热精品免费视频点播观看 | 国产91丝袜在线播放动漫 | www色| www国产精品com | 99精品视频在线免费观看 | 久久精品欧美 | 99热这里只有精品1 av中文字幕日韩 | 中文字幕日韩有码 | 五月婷婷一区二区三区 | 性色av一区二区三区在线观看 | 亚洲黄色一级视频 | 丁香婷婷色月天 | 男女激情麻豆 | 在线看小早川怜子av | 激情电影影院 | 香蕉网在线播放 | 欧美淫aaa免费观看 日韩激情免费视频 | 九草在线观看 | 偷拍精品一区二区三区 | 中文字幕二区 | 免费看一级一片 | 国产精品女人久久久 | 96超碰在线 | 久久黄色美女 | 欧美一级片在线免费观看 | 在线视频 日韩 | 91麻豆精品91久久久久同性 | 欧美日韩在线电影 | 色综合久久88色综合天天免费 | 久青草视频在线观看 | 天堂在线一区二区 | 狠狠干网站 | 日韩一区二区在线免费观看 | 五月开心色 | 成年人免费看片网站 | 久久精品国产亚洲 | 国产人成看黄久久久久久久久 | 日韩精品观看 | 中文字幕 在线 一 二 | 久久久久久久久影视 | 麻豆mv在线观看 | 国产视频一二区 | 欧洲性视频 | 激情综合狠狠 | 国产96在线观看 | 婷婷午夜激情 | 精品久久久久久久久亚洲 | 91精品国产92久久久久 | 伊人天天综合 | 人人玩人人爽 | wwwav视频| 亚洲精品国精品久久99热 | 黄色aaa毛片| 午夜三级毛片 | 欧美精品久久久久久久久老牛影院 | 成人免费一区二区三区在线观看 | 夜夜爱av| 色网站在线免费观看 | 在线视频国产区 | 91九色精品女同系列 | aⅴ视频在线 | 99久热在线精品视频成人一区 | 久久久婷 | 一区二区三区四区精品 | 午夜少妇| 99久久精品无免国产免费 | 久色伊人 | 亚洲精品视频久久 | 亚洲欧美视频在线观看 | 热久久视久久精品18亚洲精品 | 精品国产精品久久一区免费式 | 玖玖玖精品 | a级国产乱理伦片在线播放 久久久久国产精品一区 | 国产精品99久久久久的智能播放 | 久久久久久久久福利 | 久久久久久久网 | 九九热久久久 | 99re中文字幕 | 日韩中文字 | www.777奇米 | 日韩高清av| 婷婷五天天在线视频 | av青草 | a在线观看免费视频 | 一区二区三区久久精品 | 亚洲国产日韩一区 | 西西444www大胆无视频 | 91高清在线 | 国产手机在线精品 | 成年人在线播放视频 | 91人人澡人人爽人人精品 | 毛片美女网站 | 日韩视频一区二区三区在线播放免费观看 | 久久久久久久久久久久电影 | 中文亚洲欧美日韩 | www.色婷婷.com| 天天爽人人爽夜夜爽 | 欧美成人91 | 成人在线免费看视频 | 国产精品久久网 | 在线国产片 | 探花视频免费观看高清视频 | wwwwww黄| 久草新在线 | 国产成人高清 | 91九色视频在线 | 日本中文字幕在线观看 | 激情视频综合网 | 91精品国产自产老师啪 | 麻豆果冻剧传媒在线播放 | 93久久精品日日躁夜夜躁欧美 | 日韩两性视频 | 久草在线视频免费资源观看 | 蜜臀av在线一区二区三区 | 黄色在线观看www | 毛片精品免费在线观看 | 99在线观看精品 | 国产日产精品久久久久快鸭 | 成人国产精品久久久春色 | 最近中文字幕在线中文高清版 | 免费人成在线观看 | 玖玖玖国产精品 | 精品伦理一区二区三区 | 久久久精品视频网站 | 亚洲毛片在线观看. | 久久久久久中文字幕 | 成人黄色一级视频 | 欧美日韩国产在线观看 | 成 人 黄 色 视频免费播放 | 国产精品成人a免费观看 | 手机在线小视频 | 91精品国产麻豆国产自产影视 | 国产精品区免费视频 | 日女人免费视频 | 麻豆一精品传二传媒短视频 | 亚洲国产日韩一区 | 欧美日韩91 | 91香蕉国产 | 精品视频 | 手机在线永久免费观看av片 | 女人18毛片a级毛片一区二区 | 中文字幕免费高清在线 | 天天天天综合 | 国产一区二区手机在线观看 | 亚洲视频456| 久久99精品国产99久久6尤 | 免费看的黄网站软件 | 国产一区国产二区在线观看 | 又黄又刺激视频 | 国产剧情一区在线 | 国产视频亚洲精品 | 天天插狠狠干 | 精品一区二区久久久久久久网站 | 国产精品久久久久久久久免费看 | 九九热在线观看 | 丁香婷婷色综合亚洲电影 | 久久精品专区 | av大全在线免费观看 | 久久综合久久综合久久 | 成年人黄色在线观看 | 色婷婷免费视频 | 亚洲码国产日韩欧美高潮在线播放 | 色综合久久悠悠 | 久久人人艹 | 免费日韩电影 | 久久久久久久久久久久久国产精品 | av黄色大片| 激情开心站 | 人人爽人人澡 | 中文字幕一二三区 | 久久久2o19精品 | 91久久丝袜国产露脸动漫 | 欧美精品久久久久久久久久 | 日韩av成人免费看 | 99热国产在线中文 | 狠狠色丁香婷婷综合久久片 | 国产精品网红直播 | 亚洲视频免费在线观看 | 午夜av在线电影 | 久久精品播放 | 欧美日韩在线观看一区二区三区 | 国产精品12 | 一区二区 不卡 | 亚洲成人免费 | 97免费在线观看视频 | 99精品国产福利在线观看免费 | 欧美福利片在线观看 | 少妇bbbb | 中国一 片免费观看 | 日本精品在线 | 九九视频在线播放 | 免费能看的黄色片 | 欧美在线free | 欧美韩国日本在线观看 | 精品高清美女精品国产区 | 亚洲视频在线免费看 | 中文字幕在线观看网址 | 日本护士三级少妇三级999 | 日韩激情小视频 | 亚洲视频一级 | 二区三区在线 | 欧美日韩免费在线视频 | 综合色婷婷 | 99婷婷狠狠成为人免费视频 | 精品免费视频123区 午夜久久成人 | 亚洲国产午夜视频 | 久久免费的精品国产v∧ | 91视频啪| 久久激情影院 | 美女黄色网在线播放 | 日本资源中文字幕在线 | 中文伊人| www狠狠操 | 91精品久久久久久久久久入口 | 在线成人一区二区 | 国产精品久久久久久久久久久久久久 | 这里只有精品视频在线观看 | 在线播放 日韩专区 | av专区在线 | 国产精品久久一卡二卡 | 在线三级播放 | 色婷婷电影 | 91看片淫黄大片一级在线观看 | 五月综合网站 | 精品在线视频一区二区三区 | 国产福利精品在线观看 | 91精品天码美女少妇 | av中文字幕在线播放 | av超碰在线 | 爱情影院aqdy鲁丝片二区 | 久久久免费在线观看 | av黄色免费在线观看 | 在线草| 成人午夜电影在线播放 | 亚洲人xxx | 日韩国产欧美在线视频 | 91高清免费| 日韩久久久久久久久久 | 91大神一区二区三区 | 在线黄频 | 中文字幕在线第一页 | 天天爱综合 | 精品国产色 | 九九视频精品在线 | 探花在线观看 | 天天操夜夜摸 | 亚洲日本va午夜在线电影 | 久久毛片视频 | 日本精品在线看 | 国产一级片视频 | 91免费网| 在线国产视频 | 人人射人人射 | 国产精品乱码高清在线看 | 国产中文字幕在线播放 | 91在线观看视频 | 久久伦理 | 中文字幕免| 国产亚洲在线 | 亚洲一级理论片 | 91精品国自产在线偷拍蜜桃 | 亚洲精品一区二区久 | 久久久久久久久久久久久久电影 | 激情图片区| 天天色天天综合 | 东方av在 | 18女毛片 | 丁香九月激情综合 | 九九视频在线播放 | 中文字幕免费高清在线 | 国产美女视频免费 | 激情综合久久 | 亚洲精品资源 | 91爱在线| 成全免费观看视频 | 亚洲国产精彩中文乱码av | 国产精美视频 | 国产一区二区高清视频 | 日日夜夜噜噜噜 | 免费在线看v | 国产免费a | 在线免费观看羞羞视频 | 久久大香线蕉app | 伊人热| 久草免费电影 | 欧美a级免费视频 | 精品在线视频一区 | 国内丰满少妇猛烈精品播 | 在线看污网站 | www欧美色 | 91视频高清免费 | 91av观看| 国产精品自产拍在线观看 | 天天综合色天天综合 | 亚洲专区 国产精品 | 丁香久久久 | 97精品久久人人爽人人爽 | 操操日日 | 二区三区在线 | 久久久久久久久综合 | 天天射综合网站 | 久久久精品成人 | 黄色成人av网址 | 四虎影视4hu4虎成人 | 国产一区二区久久精品 | 高清av网站 | 久久久国产精品一区二区三区 | 国产一级片免费视频 | 超碰人人干人人 | 亚洲精品高清一区二区三区四区 | 国产91在线播放 | 在线成人高清电影 | 国内一区二区视频 | 久久性生活片 | 天堂av影院 | 国内免费久久久久久久久久久 | 2023国产精品自产拍在线观看 | 久久伦理 | 亚洲综合视频在线 | 韩国av免费在线观看 | 91精品一区二区在线观看 | av高清不卡 | 毛片a级片 | 亚洲视频www | 在线激情电影 | 欧美日韩一区二区在线 | av免费观看高清 | 日日干激情五月 | 亚洲最大的av网站 | 免费观看一级一片 | 亚洲爱视频 | 综合久久网站 | 美女视频a美女大全免费下载蜜臀 | 国产精品成人久久 | 国产91精品一区二区麻豆网站 | 深爱五月激情网 | 99精品欧美一区二区三区黑人哦 | 中文字幕的 | 国产高清视频免费最新在线 | 在线观看亚洲a | 久久久久久久久久影院 | 免费观看视频黄 | 日韩午夜一级片 | 色窝资源| 91精品久久久久久综合乱菊 | 在线免费高清一区二区三区 | 久久精品aaa | 免费亚洲黄色 | 欧美伦理一区二区三区 | 91色吧| 91看片淫黄大片一级在线观看 | 久久日本视频 | 丁香花在线视频观看免费 | 91精品福利在线 | av大全在线免费观看 | 欧美国产日韩在线视频 | 亚洲免费小视频 | 日韩狠狠操 | 在线免费高清 | 欧美日韩中文在线视频 | 国产裸体视频网站 | 日本久久精| 国产精品中文字幕在线播放 | 二区三区在线观看 | 久久黄色免费 | 中文区中文字幕免费看 | 色 免费观看 | 在线观看av中文字幕 | 国产精品综合在线观看 | 黄色在线观看免费 | 久久综合免费视频影院 | 99视频精品全部免费 在线 | 久久成人精品电影 | 夜夜夜草| 狠狠操综合网 | 欧美激情视频一区二区三区 | 欧美一区二区三区不卡 | 国产精品中文字幕av | 久久久高清一区二区三区 | 99色99| 亚洲毛片一区二区三区 | 天天综合成人 | 一区二区三区精品在线视频 | 久久无码精品一区二区三区 | 中文字幕精品视频 | 国产黄色大全 | 成人羞羞视频在线观看免费 | 狠狠狠色丁香婷婷综合久久88 | 中文字幕久久精品一区 | 在线观看av不卡 | 成人黄色电影在线播放 | 四虎国产精品永久在线国在线 | 久久久黄色 | 欧美精品一区二区性色 | 国产黄色精品在线 | 天天曰天天曰 | av韩国在线 | 欧美黑人性爽 | 国产福利小视频在线 | 日韩精品一区二区三区丰满 | 婷婷精品国产欧美精品亚洲人人爽 | 婷婷六月天天 | 国产精品人人做人人爽人人添 | 欧美成人理伦片 | 精品久久电影 | 天天弄天天操 | 97碰碰视频| 欧美日韩视频精品 | 日本论理电影 | 国产精品系列在线播放 | 麻豆免费看片 | 97偷拍视频 | 国产精品18久久久久久不卡孕妇 | 国产视频一区二区在线 | 久久久久久久免费观看 | 综合天天| 狠狠成人 | 丝袜美女在线观看 | 欧美日韩后 | 中文字幕大全 | 久久96国产精品久久99软件 | 中文字幕在线观看av | 日韩av电影中文字幕在线观看 | 亚洲最快最全在线视频 | 2019av在线视频 | 一个色综合网站 | 日韩电影一区二区在线 | 中文字幕在线播放日韩 | 超碰在线97免费 | 久久伊人操 | 日韩欧美在线一区 | 亚洲婷婷在线视频 | 欧美日韩高清一区二区 | 国产一级二级三级视频 | 久久色中文字幕 | 91av视频免费观看 | 99精品视频免费看 | 黄色网在线播放 | 国产精品一区二区视频 | 91麻豆精品国产91久久久使用方法 | 亚洲高清免费在线 | 午夜精品久久久久久久爽 | japanesefreesex中国少妇 | 狠狠色丁香婷婷综合久小说久 | 色综合天天色综合 | 国产 欧美 日产久久 | 精油按摩av| 在线观看一区 | 亚洲人xxx | 免费高清国产 | 亚洲九九精品 | 国产精品久久片 | 蜜桃视频成人在线观看 | 麻豆影视在线观看 | 91高清视频 | 成人免费观看视频网站 | 99爱这里只有精品 | 91丨九色丨高潮丰满 | 久久精品直播 | 亚洲日本欧美在线 | 天天草夜夜 | 激情视频在线观看网址 | 精品国产乱码一区二区三区在线 | 看国产黄色大片 | 国产精品 日本 | 国产精品久久久久久久久久久久午夜 | 亚洲精区二区三区四区麻豆 | 久久成人一区 | 亚洲九九爱 | 成 人 a v天堂| 国产韩国日本高清视频 | 欧美热久久 | 99视频偷窥在线精品国自产拍 | 超碰97人人干 | 亚洲日韩中文字幕在线播放 | 97在线看 | 国产精品午夜免费福利视频 | 在线播放日韩av | 中文字幕在线观看免费高清完整版 | 91亚洲狠狠婷婷综合久久久 | 日韩免费在线视频 | 亚洲精品播放 | 久久视频这里有精品 | 中文字幕在线看片 | 丁香国产视频 | 国产伦理久久 | 精品uu| 国产九色视频在线观看 | 黄色a一级视频 | 免费看的黄网站软件 | 久久精品这里精品 | 中文字幕av一区二区三区四区 | 激情伊人五月天久久综合 | 亚洲婷婷免费 | 午夜手机看片 | 亚洲成人黄色在线观看 | 久久精品国产v日韩v亚洲 | 久久亚洲精品电影 | 国产精品毛片一区视频播 | 韩国三级一区 | 特级a老妇做爰全过程 | 夜夜夜 | 婷婷色影院 | 午夜精品福利影院 | av噜噜噜在线播放 | av成人亚洲 | 狠狠狠狠狠狠操 | 人人要人人澡人人爽人人dvd | 97看片网| 成人午夜剧场在线观看 | 亚洲精品久久久久久久蜜桃 | 男女拍拍免费视频 | 久99视频| 日韩专区av | 日本久久高清视频 | 国产欧美综合在线观看 | 久久免费视频在线观看6 | 免费在线成人 | 亚洲美女精品区人人人人 | 狠狠色丁香久久婷婷综合丁香 | 亚洲日韩欧美一区二区在线 | 99热在| 国产真实精品久久二三区 | 久久综合狠狠综合久久综合88 | 2020天天干天天操 | 欧美成人亚洲 | 欧美精品久久久久久久久久久 | 制服丝袜在线 | 9色在线视频 | 天堂在线视频中文网 | 91精品久久久久久综合乱菊 | 国产成人无码AⅤ片在线观 日韩av不卡在线 | 日韩久久精品 | 亚洲免费av电影 | 在线日韩一区 | 99re热精品视频 | 国产精品2018| 精品999久久久 | 婷婷亚洲综合 | 国产精品久久久久久久久久白浆 | 国产在线va| 久久福利影视 | 国产成人一二三 | 成人午夜影院 | 丁香资源影视免费观看 | 国产无区一区二区三麻豆 | 亚洲视频一区二区三区在线观看 | 国产黄色在线看 | 精品久久久久一区二区国产 | 久久视精品| 久久久久久久影院 | 免费看一及片 | 中文字幕综合在线 | 91av视频在线观看免费 | 成年人电影免费看 | 免费看的黄色 | 黄污网站在线观看 | 色综合天天色综合 | 天天干一干 | 色网站黄 | 久久不卡免费视频 | 香蕉视频免费在线播放 | 成人精品视频久久久久 | 久色伊人 | 久久最新 | 美女又爽又黄 | 久久精品这里都是精品 | 黄色三级免费看 | 亚洲国产精品va在线看黑人动漫 | 日韩在线播放av | 精品国产美女在线 | 国产二区免费视频 | 成年人黄色av | 国产精品自产拍在线观看蜜 | 亚洲人成网站精品片在线观看 | 国产精品一区二区中文字幕 | 日韩一级片网址 | 久久久精品免费看 | 国产精品一区欧美 | 中文av资源站 | 色狠狠一区二区 | 欧美 亚洲 另类 激情 另类 | 水蜜桃亚洲一二三四在线 | 久久人人爽人人人人片 | 久久精品aaa | 国语自产偷拍精品视频偷 | 中文网丁香综合网 | 亚洲电影第一页av | 亚洲国产无 | 免费在线国产视频 | 最新av网址大全 | 日韩资源在线观看 | 99精品视频在线观看播放 | 色偷偷av男人天堂 | 国产成人91 | 国产成人精品一区二区三区免费 | 久草在线免费看视频 | 天天操天天操天天干 | 麻豆国产精品一区二区三区 | 99久久超碰中文字幕伊人 | 国产精品女同一区二区三区久久夜 | 91久久黄色| 欧美精品乱码99久久影院 | 免费麻豆视频 | 六月色| 久久99国产精品久久 | 亚洲久在线 | 国产91精品一区二区麻豆亚洲 | 久久久久国产一区二区 | 中文字幕视频一区二区 | 在线观看香蕉视频 | 婷婷国产v亚洲v欧美久久 | 午夜美女wwww | av在线播放亚洲 | 91精品在线免费观看 | 又黄又爽免费视频 | 精品国产一二三 | 亚洲精品永久免费视频 | 日韩在线观看一区 | 午夜免费在线观看 | 国产一区二区三精品久久久无广告 | www.黄色 | 四虎影视成人永久免费观看亚洲欧美 | 五月亚洲 | 久久国产精品免费看 | 婷婷丁香五 | wwwwww国产| 色com| 免费看的黄色网 | 日本午夜在线亚洲.国产 | 天天射狠狠干 | 狠狠撸电影 | 国语精品久久 | 骄小bbw搡bbbb揉bbbb | 91热在线| 高清不卡一区二区三区 | 国产小视频在线观看 | 亚洲欧美日韩国产一区二区 | 在线看v片 | 欧美日韩亚洲第一 | 中文字幕免费一区 | 免费a v在线 | 激情伊人| 人人插人人费 | 久久99婷婷| 99久久精品视频免费 | 狠狠色丁香婷婷综合久久片 | 免费进去里的视频 | 天天操天天操天天操天天 | 国产精品免费久久久久影院仙踪林 | 欧美淫aaa免费观看 日韩激情免费视频 | 99色亚洲 | 干综合网 | 六月婷婷久香在线视频 | 亚洲欧美激情精品一区二区 | 免费在线观看不卡av | 99热在线国产精品 | 亚洲精品在线一区二区三区 | 国产精品ssss在线亚洲 | 久久伊人综合 | 国产精品每日更新 | 91香蕉视频好色先生 | 日韩综合视频在线观看 | 国产综合精品一区二区三区 | 中文在线中文资源 | 日日夜精品 | 欧美一区视频 | 久久久久二区 | 日韩小视频网站 | 精品国产乱码久久久久 | 国产精品自产拍在线观看蜜 | 天天射天天干 | 中文av在线天堂 | www国产精品com | 天天爽天天射 | 午夜视频一区二区 | 91人人澡 | 亚洲天堂毛片 | 人人爽人人爽 | 色wwwww| 精品在线视频一区 | 欧美日韩高清一区 | 超碰在线观看99 | 亚洲精品视频国产 | 国产精品视频久久 | 二区三区在线视频 | 99视频在线观看视频 | 99精品久久久久 | 色婷婷久久一区二区 | 麻豆视频91 | 国产精品久久久久久久久久东京 | 精品日韩在线 | 国产在线视频一区二区三区 | 欧美日韩视频一区二区三区 | 97精品国产一二三产区 | 欧美日韩国产高清视频 | 国产一级片免费视频 | 国产亚洲91 | 国产美女视频黄a视频免费 久久综合九色欧美综合狠狠 | 91精品资源 | 日韩毛片在线播放 | 伊人网av | 婷婷丁香色 | 免费在线一区二区 | 一区二区中文字幕在线 | 欧美日韩国产色综合一二三四 | 日韩激情网 | 在线免费观看国产 | 91激情视频在线播放 | 操操操天天操 | av在线一级| 国产精品久久电影观看 | 在线成人欧美 |