精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

前端測試技術方案總結,你學會了嗎?

開發 前端
Cypress 是為現代 Web 構建的下一代前端測試工具。借助 Cypress,開發人員可以編寫端到端測試、集成測試和單元測試。

大家好,我是 CUGGZ。

在前端測試中,框架可以把測試代碼抽離出來,作為一個整體結構化地去設計測試用例,放到專門的測試文件中,也可以實現自動運行以及顯示測試結果。下面就來看看常用的測試框架有哪些,它們都有哪些優缺點!

前端測試通??梢苑譃橐韵氯N:

  • ?單元測試:將代碼的各個部分分開,對軟件中的最小可測試單元進行檢查和驗證;
  • 集成測試:測試多個單元能否協調工作;
  • 端到端測試(E2E):從頭到尾測試整個軟件產品,以確保應用程序流按預期運行。

圖片

stateofjs 2022:前端測試框架受歡迎度排行榜

Jest

Jest 是由 Facebook 開發的 JavaScript 測試框架。它是測試 React 的首選,并且得到了 React 社區的支持和開發。

Jest 具有以下特點:

  • 兼容性:除了可以測試 React 應用,還可以輕松集成到其他應用中,與 Angular、Node、Vue 和其他基于babel的項目兼容。
  • 自動模擬:當在測試文件中導入庫時,Jest 會自動模擬這些庫以幫助我們輕松地使用它們。
  • 擴展 API:Jest 提供了廣泛的 API,除非確實需要,否則不需要包含額外的庫。
  • 計時器模擬:Jest 具有時間模擬系統,非常適合應用中的快進超時,并有助于在運行測試時節省時間。
  • 活躍社區:Jest 擁有很活躍的社區,可以幫助我們在需要時快速找到解決方案。

圖片

示例代碼:

const sum = require(‘./sum’);


test('1 + 2 = 3’, () => {
expect(sum(1, 2)).toBe(3);
});
}

Github: https://github.com/facebook/jest

Mocha

Mocha 是一個功能豐富的 JavaScript 測試框架,可以運行在 Node.js 和瀏覽器中,使異步測試變得簡單有趣。Mocha 測試連續運行,允許靈活和準確的報告,同時將未捕獲的異常映射到正確的測試用例。

Mocha 不支持開箱即用的斷言、模擬等,需要通過組件/插件來添加這些功能。與 Mocha 搭配的最流行的斷言庫包括 Chai、Assert、Should.js 和 Better-assert。

Mocha 具有以下特點:

  • 使用簡單:對于不包含復雜斷言或測試邏輯的較小項目,Mocha 是一個簡單的解決方案。
  • ES模塊支持:Mocha 支持將測試編寫為 ES 模塊,而不僅是使用 CommonJS。

當然,Mocha 也是有缺點的:

  • 設置難度大:必須使用額外的斷言庫,這確實意味著它比其他庫更難設置。
  • 與插件的潛在不一致:Mocha 將測試結構包含為 globals,不必在每個文件中都使用 includeor 來節省時間。require 缺點是插件可能會要求無論如何都包含這些,從而導致不一致。
  • 不支持任意轉譯器:在 v6.0.0 之前,Mocha 有一個允許使用任意轉譯器的特性,比如 coffee-script 等,但現在已經棄用。

圖片

示例代碼:

var assert = require(‘assert’);
describe(‘Array’, function () {
describe(‘#indexOf()’, function () {
it(‘should return -1 when the value is not present’, function () {
assert.equal([1, 2, 3].indexOf(4), -1);
});
});
});

Github: https://github.com/mochajs/mocha

Cypress

Cypress 是為現代 Web 構建的下一代前端測試工具。借助 Cypress,開發人員可以編寫端到端測試、集成測試和單元測試。Cypress 完全可以在真正的瀏覽器(Chrome、Firefox 和 Edge)中運行,不需要驅動程序二進制文件。自動化代碼和應用代碼共享同一個平臺,讓開發人員可以完全控制被測應用。Cypress 以其端到端測試功能而聞名,這意味著可以遵循預定義的用戶行為,并讓該工具在每次部署新代碼時報告潛在差異。

Cypress 具有以下特點:

  • 端到端測試:由于 Cypress 在真實瀏覽器中運行,因此可以依賴它進行端到端用戶測試。
  • 時間軸快照測試:在執行時,Cypress 會拍下那一刻的快照,并允許開發人員或 QA 測試人員查看特定步驟發生的情況。
  • 穩定可靠:與其他測試框架相比,Cypress 提供了穩定可靠的測試執行結果。
  • 文檔和社區:從零到運行,Cypress 包含所有必要的信息以幫助開發人員加快速度,并且它還有一個活躍的社區。
  • 速度快:Cypress 的測試執行速度很快,響應時間不到 20 毫秒。

不過,需要注意的是,Cypress 只能在單個瀏覽器中運行測試。

圖片

示例代碼:

Cypress.Commands.add('login', (username, password) => {
cy.visit('/login')

cy.get('input[name=username]').type(username)

// {enter} causes the form to submit
cy.get('input[name=password]').type(`${password}{enter}`, { log: false })

// we should be redirected to /dashboard
cy.url().should('include', '/dashboard')

// our auth cookie should be present
cy.getCookie('your-session-cookie').should('exist')

// UI should reflect this user being logged in
cy.get('h1').should('contain', username)
})


it('does something on a secured page', function () {
const { username, password } = this.currentUser
cy.login(username, password)

// ...
})

Github: https://github.com/cypress-io/cypress

Storybook

與其他 JavaScript 測試框架不同,Storybook 是一個 UI 測試工具,它為測試組件提供了一個隔離的環境。Storybook 還附帶工具、Test runner 以及與更大的 JavaScript 生態系統的方便集成,以擴展 UI 測試覆蓋范圍。

可以通過多種方式使用 Storybook 進行 UI 測試:

  • 視覺測試:捕獲每個故事的屏幕截圖,然后將其與基線進行比較以檢測外觀和集成問題。
  • 輔助功能測試:發現與視覺、聽覺、移動、認知、語言或神經障礙相關的可用性問題。
  • 交互測試:通過模擬用戶行為、觸發事件并確保狀態按預期更新來驗證組件功能。
  • 快照測試:檢測渲染標記中的更改以顯示表面渲染錯誤或警告。
  • 將其他測試中的故事導入 QA 甚至更多 UI 特性。

圖片

Github: https://github.com/storybookjs/storybook

Jasmine

Jasmine 是一個簡易的 JavaScript 單元測試框架,其不依賴于任何瀏覽器、DOM、或者是任何 JavaScript 而存在。它適用于所有網站、Node.js 項目,或者是任何能夠在 JavaScript 上面運行的程序。Jasmine 以行為驅動開發 (BDD) 工具而聞名。BDD 涉及在編寫實際代碼之前編寫測試(與測試驅動開發 (TDD)相反)。

Jasmine 具有以下特點:

  • API 簡單:它提供了簡潔且易于理解的語法,以及用于編寫單元測試的豐富而直接的 API 。
  • 開箱即用:不需要額外的斷言或模擬庫,開箱即用。
  • 速度快:由于不依賴任何外部庫,因此速度相對較快。
  • 多語言:不僅用于編寫 JS 測試,也可以用于 Ruby(通過Jasmine-gem)或 Python(通過Jsmin-py)

當然,Jasmine 也是有有缺點的:

  • 污染全局環境:默認情況下,它會創建測試全局變量(關鍵字如“describe”或“test”),因此不必在測試中導入它們。在特定情況下,這可能會成為不利因素。
  • 編寫異步測試具有挑戰性:使用 Jasmine 測試異步函數比較困難。

圖片

示例代碼:

describe(“helloWorld”, () => {
it(“returns hello world”, () => {
var actual = helloWorld();
expect(actual).toBe(“hello world”);
});
}
)

Github: https://github.com/jasmine/jasmine

React Testing Library

React Testing Library 基于 DOM Testing Library 的基礎上添加一些 API,主要用于測試 React 組件。該庫在使用過程并不關注組件的內部實現,而是更關注測試。該庫基于 react-dom 和 react-dom/test-utils,是以上兩者的輕量實現。

React Testing Library 不像  Jest 那樣是一個 Test runner。事實上,它們可以協同工作。React Testing Library 是一組工具和功能,可幫助訪問 DOM 并對其執行操作,即將組件渲染到虛擬 DOM 中,搜索并與之交互。

React Testing Library 具有以下特點:

  • React 官方推薦:可以在 React 的官方文檔中找到使用此庫的參考和建議。
  • 尺寸?。核菍iT為測試 React 應用/組件而編寫的。

圖片

示例代碼:

示例代碼:
import React, {useEffect} from ‘react’
import ReactDOM from ‘react-dom’
import {render, fireEvent} from ‘@testing-library/react’


const modalRoot = document.createElement(‘div’)
modalRoot.setAttribute(‘id’, ‘modal-root’)
document.body.appendChild(modalRoot)

const Modal = ({onClose, children}) => {
const el = document.createElement(‘div’)

useEffect(() {
modalRoot.appendChild(el)

return () modalRoot.removeChild(el)
})

return ReactDOM.createPortal(
<div onClick={onClose}>
<div onClick={e => e.stopPropagation()}>
{children}
<hr />

<button onClick={onClose}>Close</button>

</div>

</div>,

el,
)
}

test(‘modal shows the children and a close button’, () => {
// Arrange
const handleClose = jest.fn()

// Act
const {getByText} = render(
<Modal onClose={handleClose}>
<div>test</div>

</Modal>,

)
// Assert
expect(getByText(‘test’)).toBeTruthy()

// Act
fireEvent.click(getByText(/close/i))

// Assert
expect(handleClose).toHaveBeenCalledTimes(1)
})

Github: https://github.com/testing-library/react-testing-library

Playwright

Playwright 是一個用于端到端測試的自動化框架。該框架由 Microsoft 構建和維護,旨在跨主要瀏覽器引擎(Chromium、Webkit 和 Firefox)運行。它實際上是早期 Puppeteer 項目的一個分支。主要區別在于,Playwright 是專門為開發人員和測試人員進行 E2E 測試而編寫的。Playwright 還可以與主要的 CI/CD 服務器一起使用,如 TravisCI、CircleCI、Jenkins、Appveyor、GitHub Actions 等。

Playwright 具有以下特點:

  • 多語言:Playwright 支持 JavaScript、Java、Python 和 .NET C# 等多種語言;
  • 多個 Test Runner 支持:可以被 Mocha、Jest 和 Jasmine 使用;
  • 跨瀏覽器:該框架的主要目標是支持所有主流瀏覽器。
  • 模擬和原生事件支持:可以模擬移動設備、地理位置和權限,還支持利用鼠標和鍵盤的原生輸入事件。

當然,Playwright 也有一些缺點:

  • 仍處于早期階段:相當較新,社區支持有限;
  • 不支持真實設備:不支持用于移動瀏覽器測試的真實設備,但支持模擬器。

圖片

示例代碼:

import { test, expect } from '@playwright/test';

test('my test', async ({ page }) => {
await page.goto('https://playwright.dev/');

// Expect a title "to contain" a substring.
await expect(page).toHaveTitle(/Playwright/);

// Expect an attribute "to be strictly equal" to the value.
await expect(page.locator('text=Get Started').first()).toHaveAttribute('href', '/docs/intro');

await page.click('text=Get Started');
// Expect some text to be visible on the page.
await expect(page.locator('text=Introduction').first()).toBeVisible();
});

Github: https://github.com/microsoft/playwright

Vitest

Vitest 是一個由 Vite 提供支持的極速單元測試框架。其和 Vite 的配置、轉換器、解析器和插件保持一致、開箱即用的 TypeScript / JSX 支持、支持 Smart 和 instant watch 模式,如同用于測試的 HMR、內置 Tinyspy 用于模擬、打標和監察等。Vitest 非常關心性能,使用 Worker 線程盡可能并行運行,帶來更好的開發者體驗。

Vitest 具有以下特點:

  • Vite 支持:重復使用 Vite 的配置、轉換器、解析器和插件,在應用和測試中保持一致。
  • 兼容 Jest:擁有預期、快照、覆蓋等 - 從 Jest 遷移很簡單。
  • 智能即時瀏覽模式:智能文件監聽模式,就像是測試的 HMR。
  • ESM, TypeScript, JSX:由 esbuild 提供的開箱即用 ESM、TypeScript 和 JSX 支持。
  • 源內測試:提供了一種在源代碼中運行測試以及實現的方法,類似于 Rust 的模塊測試。

不過,Vitest 仍處于早期階段(最新版本為 0.28.1)。盡管 Vitest 背后的團隊在創建此工具方面做了大量工作,但它還很年輕,社區支持可能還不是很完善。

圖片

示例代碼:

test('Math.sqrt()', () => {
expect(Math.sqrt(4)).toBe(2)
expect(Math.sqrt(144)).toBe(12)
expect(Math.sqrt(2)).toBe(Math.SQRT2)
})

test('JSON', () => {
const input = {
foo: 'hello',
bar: 'world',
}

const output = JSON.stringify(input)

expect(output).eq('{"foo":"hello","bar":"world"}')
assert.deepEqual(JSON.parse(output), input, 'matches original')
})

Github: https://github.com/vitest-dev/vitest

AVA

AVA 是一個極簡的 Test Runner,它利用 JavaScript 的異步特性并同時運行測試,從而提高性能。AVA 不會為創建任何 Globals,因此可以更輕松地控制使用的內容。這可以使測試更加清晰,確保確切知道發生了什么。

AVA 具有以下特點:

  • 同時運行測試:利用 JavaScript 的異步特性使得測試變得簡單,最小化部署之間的等待時間;
  • 簡單的 API:通過了一個簡單的 API,僅提供需要的內容;
  • 快照測試:通過 jest-snapshot 提供,當想知道應用的 UI 何時意外更改時,這非常有用;
  • Tap 格式報告:Ava 默認顯示可讀的報告,也可以獲得 TAP 格式的報告。

當然,AVA 也有一些缺點:

  • 沒有測試分組:Ava 無法將相似的測試組合在一起。
  • 沒有內置的模擬:Ava 未附帶模擬,不過可以使用第三方庫(如Sinon.js)。

圖片

示例代碼:

import test from 'ava';

test('foo', t => {
t.pass();
});

test('bar', async t => {
const bar = Promise.resolve('bar');
t.is(await bar, 'bar');
});

Github: https://github.com/avajs/ava

責任編輯:武曉燕 來源: 前端充電寶
相關推薦

2023-07-26 13:11:21

ChatGPT平臺工具

2022-10-18 17:59:46

Bootstrap源碼父類

2022-04-29 08:55:43

前端開發規范

2022-07-26 00:25:57

PandasQuery索引器

2023-06-08 07:34:19

HDFS小文件壓縮包

2023-04-14 09:04:07

測試TDBF單元測試

2023-06-27 07:21:51

前端開發坑點

2024-01-19 08:25:38

死鎖Java通信

2023-01-10 08:43:15

定義DDD架構

2024-02-04 00:00:00

Effect數據組件

2023-12-26 10:12:19

虛擬DOM數據

2023-04-06 12:04:26

2025-04-02 08:21:10

2024-12-02 09:57:43

GormScopesClauses

2023-04-26 00:41:36

A/B測試郵件數量

2024-01-02 12:05:26

Java并發編程

2023-08-01 12:51:18

WebGPT機器學習模型

2024-09-06 07:29:05

2023-09-07 07:13:51

2022-09-12 08:01:21

GreatSQLMySQL性能
點贊
收藏

51CTO技術棧公眾號

久久99久久99精品免观看粉嫩| 国产精品你懂的| 久久久久久尹人网香蕉| 泷泽萝拉在线播放| 日本午夜免费一区二区| 最新久久zyz资源站| 国产一区二区免费电影| 国产免费a视频| 亚洲综合专区| 亚洲视频在线视频| 无套白嫩进入乌克兰美女| av中文在线资源| 日本一区二区三区视频视频| 亚洲专区国产精品| 国产精品久久久久久久久久久久久久久久久| 精品一区二区三区中文字幕视频 | 欲求不满的岳中文字幕| 中文日产幕无线码一区二区| 国产精品毛片久久久久久久| 国产一区二区在线网站| 888奇米影视| 亚洲一区日韩在线| 久久综合电影一区| 国产精品20p| 麻豆一区二区麻豆免费观看| 3d成人动漫网站| 国产熟女高潮视频| 国产蜜臀一区二区打屁股调教| 国产成人一级电影| 国产精品美乳在线观看| 69视频免费在线观看| 亚洲一区二区三区| 中文字幕亚洲一区| 精品夜夜澡人妻无码av| 试看120秒一区二区三区| 欧美在线三级电影| 可以免费在线看黄的网站| 激情av在线| 亚洲精品日韩专区silk| 夜夜爽99久久国产综合精品女不卡 | 中文字幕久久久久久久| 色成人免费网站| 福利微拍一区二区| 人人妻人人做人人爽| 国产调教视频在线观看| 国产精品三级在线观看| 日韩久久久久久久久久久久久| 波多野结衣理论片| 免费视频一区| 欧美亚洲激情在线| 国产尤物在线视频| 一区视频在线| 久久久久久综合网天天| 国产一级视频在线播放| 国产精品videosex极品| 久久精品国产电影| 亚洲天堂一级片| 天天综合国产| 欧美精品情趣视频| 欧美日韩三级在线观看| 午夜视频精品| 欧美精品videosex性欧美| 久久久精品人妻一区二区三区四 | 一区二区三区美女xx视频| 加勒比精品视频| 亚洲最大在线| 国产一区二区日韩| 91n在线视频| 一本一本久久a久久综合精品| 日韩成人中文电影| 亚洲第一页av| 精品久久网站| 久久精品国产亚洲| 免费中文字幕在线观看| 亚洲国产1区| 欧美在线视频一区| 精品国产xxx| 久久国产三级精品| 91传媒免费看| 性xxxx18| 欧美激情一区不卡| 日本a级片在线观看| 青青青草视频在线| 欧美小视频在线| 国产九九热视频| 麻豆久久一区| 亚洲精品日韩丝袜精品| 欧美激情视频二区| 欧美久久一区| 国产成人小视频在线观看| 亚洲一区二区三区高清视频| 国产成人福利片| 免费影院在线观看一区| 欧美三级电影一区二区三区| 亚洲影院理伦片| 日韩精品无码一区二区三区免费| freexxx性亚洲精品| 色狠狠av一区二区三区| 日本网站在线看| 免费福利视频一区| 菠萝蜜影院一区二区免费| wwwav国产| 日韩中文字幕亚洲一区二区va在线| 69视频在线播放| 国产女优在线播放| 成人国产精品免费观看动漫| 欧美日韩国产一二| 宅男在线观看免费高清网站| 日韩欧美国产骚| japan高清日本乱xxxxx| 极品美女一区二区三区| 久久久久久久国产| 91国内精品久久久| 久久久亚洲精品一区二区三区| 国产精品一区二区三区精品 | 国产一区二区三区四| 国产亚洲精品久久飘花| 老司机99精品99| 一本到三区不卡视频| 人妻av一区二区三区| 日韩中文在线电影| 热久久99这里有精品| www.激情五月| 综合自拍亚洲综合图不卡区| 乱子伦视频在线看| 日韩高清电影免费| 欧美精品久久久久a| 91亚洲欧美激情| 国产欧美日韩在线| 国语对白做受xxxxx在线中国 | 99久久自偷自偷国产精品不卡| 国产精品探花视频| 国产日韩欧美亚洲| 免费 成 人 黄 色| 99a精品视频在线观看| 久久九九免费视频| 一卡二卡三卡在线| 中文字幕av一区 二区| 久久国产乱子伦免费精品| 精品精品国产三级a∨在线| 免费不卡欧美自拍视频| 国产精品久久久久久久成人午夜| 国产大片一区二区| 中文字幕一区综合| 成人福利片在线| 在线日韩第一页| 中文字幕人妻色偷偷久久| 国产三区在线成人av| 日本三区在线观看| 欧美综合另类| 国产人妖伪娘一区91| 91大神在线网站| 欧美日韩国产成人在线91| 91麻豆精品久久毛片一级| 日本欧美在线观看| 在线观看日本一区| 久久三级中文| 九九久久综合网站| 黄色a在线观看| 欧美日韩激情美女| 强伦人妻一区二区三区| 日韩vs国产vs欧美| 中文字幕在线亚洲三区| 欧美久久一区二区三区| 久久久久在线观看| 亚洲 欧美 精品| 91成人在线免费观看| 欧美xxxx精品| 国产高清久久久久| www.99热这里只有精品| 奇米色欧美一区二区三区| 国产精品极品美女粉嫩高清在线| 免费激情视频网站| 午夜精品在线视频一区| 人妻精品久久久久中文字幕| 日本欧美在线观看| 经典三级在线视频| 久久97精品| 国产精品久久av| 伊人影院蕉久影院在线播放| 亚洲国产精品va在线观看黑人| 国产一区二区三区在线视频观看| 噜噜噜91成人网| 亚洲美女搞黄| 99久久婷婷国产综合精品青牛牛 | 超鹏97在线| 亚洲大胆人体av| 伊人成年综合网| 一区二区三区中文在线观看| 国产精品无码网站| 久久99久久99小草精品免视看| 久久免费99精品久久久久久| 精品久久久网| 91国内精品久久| 激情在线小视频| 亚洲美女精品成人在线视频| 中文字幕乱码在线观看| 亚洲成人免费影院| 欧美色图17p| 99国产精品久久久| 国产不卡的av| 日韩电影免费在线| 成人免费在线网| 欧洲激情综合| 狠狠色综合色区| 久久在线观看| 国产精品视频免费观看www| hd国产人妖ts另类视频| 日韩中文字幕在线播放| 免费福利在线观看| 精品国产髙清在线看国产毛片 | 在线观看av一区二区| 九九热只有精品| 国产亚洲欧美日韩俺去了| 亚洲熟妇一区二区| 精品午夜久久福利影院| 日韩一级免费在线观看| 亚洲激情欧美| 成人区一区二区| 999精品在线| 秋霞久久久久久一区二区| 澳门精品久久国产| 91在线免费看网站| 激情欧美一区二区三区黑长吊| 久久色免费在线视频| 成人综合影院| 亚洲欧洲一区二区三区久久| 天堂av2024| 欧美成人r级一区二区三区| 国产又黄又爽视频| 欧美吞精做爰啪啪高潮| 久久久国产精品成人免费| 亚洲综合无码一区二区| 五月婷婷一区二区| 亚洲视频一区在线观看| 高清国产在线观看| 久久精品无码一区二区三区| 疯狂揉花蒂控制高潮h| 成人av在线影院| 白嫩情侣偷拍呻吟刺激| 懂色av噜噜一区二区三区av| 最好看的中文字幕| 国产精品66部| 中文字幕人妻熟女人妻a片| 国产一区二区三区四区五区美女| 黄www在线观看| 亚洲欧美激情诱惑| 一本大道熟女人妻中文字幕在线| 日韩电影免费在线观看| 天堂精品视频| 99久久久久久中文字幕一区| 影音先锋亚洲视频| 91九色精品| 欧美亚洲色图视频| 激情久久久久久久| 日本丰满少妇xxxx| 亚洲精选一区| 国产日产欧美视频| 日本不卡在线视频| 成人亚洲免费视频| 风间由美性色一区二区三区| 色婷婷精品久久二区二区密| 91香蕉视频在线| 免费一级做a爰片久久毛片潮| 国产91对白在线观看九色| 国产女主播在线播放| av电影在线观看一区| www.中文字幕av | theav精尽人亡av| 久久久久久日产精品| 精品人体无码一区二区三区| 国产精品美女久久久久久久| 日本在线一级片| 亚洲第一成人在线| 久久精品视频2| 欧美精品久久一区二区三区| 精品国产伦一区二区三| 亚洲精品久久久久久下一站 | 久久久久久久9| 午夜亚洲一区| 天堂中文av在线| 成人av在线影院| 中国1级黄色片| 午夜国产精品影院在线观看| 亚洲精品毛片一区二区三区| 欧美日韩成人综合| 天堂中文在线官网| 一区国产精品视频| 青春草视频在线| 国产精品女视频| 国产色噜噜噜91在线精品| 手机成人在线| 99国产成+人+综合+亚洲欧美| 日韩一二区视频| 久久精品电影| 欧美一级片在线免费观看| 久久麻豆一区二区| 欧美成人国产精品高潮| 欧洲一区二区三区在线| 亚洲男女视频在线观看| 色噜噜狠狠狠综合曰曰曰| 123区在线| 成人羞羞国产免费| 国产毛片一区二区三区| 欧美乱做爰xxxⅹ久久久| 日韩精品欧美精品| 日本69式三人交| 一区二区在线免费| 伊人网综合在线| 亚洲欧美日韩在线一区| 爱情岛论坛亚洲品质自拍视频网站| 欧美黑人性猛交| 欧美aaa大片视频一二区| 国产精品中出一区二区三区| 99精品视频在线观看播放| 成年人免费在线播放| 成人在线视频一区| 91 在线视频| 欧美三片在线视频观看| 青青视频在线观| 2019中文字幕在线观看| 国产精品毛片久久久| 国产盗摄视频在线观看| 韩国av一区二区| 免费看一级黄色| 欧美性色综合网| 黄色在线小视频| 琪琪第一精品导航| 牛牛影视一区二区三区免费看| 欧美视频观看一区| 99精品国产在热久久下载| 精产国品一区二区三区| 最新成人av在线| 国产免费av电影| 久久精品亚洲精品| 亚洲精品一区av| 伊人情人网综合| 韩国欧美国产1区| 国产探花在线视频| 欧美精品在欧美一区二区少妇| 99riav国产| 不卡中文字幕av| 精品999日本久久久影院| 国产卡一卡二在线| 国产精品一区二区在线观看不卡| 日本黄色录像片| 精品久久久久人成| 午夜在线视频免费| 亚洲3p在线观看| 台湾色综合娱乐中文网| aaa毛片在线观看| 国产三级一区二区| 中文字幕av免费观看| 色噜噜狠狠狠综合曰曰曰| 亚洲国产综合在线观看| 欧美日韩一区二区三区电影| 国产精品自拍毛片| 国产一级做a爱免费视频| 亚洲国产日韩欧美在线图片| 一区二区精品伦理...| 欧美在线播放一区二区| 奇米精品一区二区三区在线观看一| 中文字幕乱视频| 亚洲成av人片在线观看无码| 天堂av在线免费| 日韩av观看网址| 欧美高清视频在线观看mv| 天堂网成人在线| 婷婷开心激情综合| 国产毛片在线| 成人国产在线视频| 欧美福利影院| 五级黄高潮片90分钟视频| 欧美日韩国产系列| 天堂8中文在线| 久久偷窥视频| 久久99国产乱子伦精品免费| 久久久久97国产| 亚洲精品自产拍| 亚洲视频资源| 日本欧美黄色片| 国产精品久久综合| 黄色三级网站在线观看| 国产成人鲁鲁免费视频a| 欧美一区二区| 美女洗澡无遮挡| 日韩美女在线视频| 希岛爱理一区二区三区av高清| 久久综合久久久| 韩国一区二区三区| 日韩精品一卡二卡| 最近2019年日本中文免费字幕| 九九热线视频只有这里最精品| 精品在线不卡| 久久精品国产在热久久| 久草国产精品视频| 欧美成人免费观看| 国产成人影院| 久久久高清视频| 7878成人国产在线观看|