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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

github持续集成的设置_如何使用GitHub Actions和Puppeteer建立持续集成管道

發布時間:2023/11/29 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 github持续集成的设置_如何使用GitHub Actions和Puppeteer建立持续集成管道 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

github持續集成的設置

Lately I've added continuous integration to my blog using Puppeteer for end to end testing. My main goal was to allow automatic dependency updates using Dependabot. In this guide I'll show you how to create such a pipeline yourself.

最近,我使用Puppeteer在博客中添加了持續集成,以進行端到端測試。 我的主要目標是允許使用Dependabot自動更新依賴項。 在本指南中,我將向您展示如何自己創建這樣的管道。

As my CI platform, I chose Github Actions, as it is super easy to work with. It also integrates beautifully with any Github repository you already have. The whole thing only took roughly two days of intermittent work, and I think the results are quite awesome.

作為我的CI平臺,我選擇了Github Actions ,因為它非常易于使用。 它還可以與您已經擁有的任何Github存儲庫完美集成。 整個過程大約只花了兩天的間歇時間,我認為結果非常棒。

I do want to give a shout-out to Nick Taylor, who published his article on the subject, and laid the ground work for my efforts here. I encourage you to read his article as well.

我確實要大聲疾呼尼克·泰勒(Nick Taylor),他發表了有關該主題的文章 ,并為我在這里的努力奠定了基礎。 我鼓勵您也閱讀他的文章。

My tech stack is quite different though. I chose puppeteer as my end-to-end framework for several reasons. The first is that it is written and maintained by the folks behind the Chrome dev tools, so I'm guaranteed a life-time of support (until Chrome dies out, which is not in the near future), and it is really easy to work with.

我的技術棧卻大不相同。 由于多種原因,我選擇puppeteer作為我的端到端框架。 首先是它是由Chrome開發者工具背后的人編寫和維護的,因此可以保證我將終身提供支持(直到Chrome淘汰,這不會在不久的將來),而且確實很容易一起工作。

Another reason is that at home I'm working on a windows laptop with WSL (on which I'm running zshell with oh-my-zsh). Setting up cypress is quite a bit more difficult (although in our world nothing is impossible). Both reasons led me to choose puppeteer, and so far I'm not regretting it.

另一個原因是在家里,我正在使用WSL(在其上運行oh-my-zsh的zshell)在Windows筆記本電腦上工作。 設置柏樹要困難得多(盡管在我們這個世界上沒有什么是不可能的)。 這兩個原因都促使我選擇了操縱up,到目前為止,我并不后悔。

端到端測試 (End to end testing)

End to end (or E2E) tests are different from other types of automated tests. E2E tests simulate a real user, performing actions on the screen. This kind of test should help fill the blank space between "static" tests - such as unit tests, where you usually don't bootstrap the entire application - and component testing, which usually runs against a single component (or a service in a micro-service architecture).

端到端(或E2E)測試與其他類型的自動化測試不同。 E2E測試可模擬真實用戶,并在屏幕上執行操作。 這種測試應該有助于填補“靜態”測試(例如,單元測試(通常不引導整個應用程序)和組件測試)之間的空白,其中,組件測試通常針對單個組件(或微型服務)運行服務架構)。

By simulating user interaction you get to test the experience of using your application or service in the same way a regular user would experience it.

通過模擬用戶交互,您可以測試普通用戶體驗應用程序或服務的體驗。

The mantra that we try to follow is that it does not matter if your code performs perfectly if the button the user should press is hidden due to some CSS quirk. The end result is that the user will never get to feel the greatness of your code.

我們嘗試遵循的口頭禪是,由于某些CSS怪癖,如果用戶應按下的按鈕處于隱藏狀態,則代碼是否可以完美執行并不重要。 最終結果是用戶將永遠不會感覺到您的代碼的偉大之處。

木偶手入門 (Getting started with puppeteer)

Puppeteer has a few configuration options that make it really awesome to use for writing and validating tests.

Puppeteer有幾個配置選項,使編寫和驗證測試使用起來真的很棒。

Puppeteer tests can run in a "head-full" state. This means you can open a real browser window, navigate to the site being tested, and perform actions on the given page. This way you - the developers writing the tests - can see exactly what happens in the test, what buttons are being pressed and what the resulting UI looks like.

木偶測試可以在“滿頭”狀態下運行。 這意味著您可以打開真實的瀏覽器窗口,導航到要測試的站點,然后在給定頁面上執行操作。 這樣,您-編寫測試的開發人員-可以準確查看測試中發生的情況,按下的按鈕以及生成的UI外觀。

The opposite of "head-full" would be headless, where puppeteer does not open a browser window, making it ideal for CI pipelines.

與“ head-full”的相反將是無頭的,其中操縱up的人不會打開瀏覽器窗口,因此非常適合CI管道。

Puppeteer is quite easy to work with, but you'll be surprised with the number of actions you can perform using an automated tool.

Puppeteer的操作非常簡單,但是您會驚訝于使用自動化工具可以執行的操作數量。

We'll start with a basic scraper that prints the page title when we go to https://dorshinar.me. In order to run puppeteer tests, we must install it as a dependency:

我們將從基本的刮板開始,當我們轉到https://dorshinar.me時,該刮板將打印頁面標題。 為了運行操縱up的測試,我們必須將其安裝為依賴項:

npm i puppeteer

Now, our basic scraper looks like this:

現在,我們的基本刮板如下所示:

const puppeteer = require("puppeteer");(async () => {const browser = await puppeteer.launch();const page = await browser.newPage();await page.goto("https://dorshinar.me");console.log(await page.title());await browser.close(); })();

What we do here is very simple: we open the browser with puppeteer.launch(), create a new page with browser.newPage() and navigate to this blog with page.goto(), and then we print the title.

我們在這里做的是非常簡單的:我們跟打開瀏覽器puppeteer.launch()創建一個新的頁面browser.newPage()然后導航到該博客與page.goto()然后我們打印標題。

There are a bunch of things we can do with the puppeteer API, such as:

我們可以使用puppeteer API做很多事情,例如:

Running code in the context of the page:

在頁面上下文中運行代碼:

(async () => {await page.evaluate(() => document.querySelector(".awesome-button").click()); })();

Clicking on elements in the screen using a CSS selector:

使用CSS選擇器單擊屏幕上的元素:

(async () => {await page.click(".awesome-button"); })();

Making use of the $ selector (jQuery style):

利用$選擇器(jQuery樣式):

(async () => {await page.$(".awesome-button"); })();

Taking a screenshot:

截屏:

(async () => {await page.screenshot({ path: "screenshot.png" }); })();

There is a bunch more you can do with the puppeteer API, and I suggest you take a look at it before diving into writing tests. But the examples I've shown should give you a solid foundation to build from.

您可以使用puppeteer API做更多的事情,我建議您在開始編寫測試之前先看一下它。 但是我展示的示例應該為您提供堅實的基礎。

將木偶與Jest集成 (Integrating puppeteer with Jest)

jest is an awesome test runner and assertion library. From their docs:

笑話是一個了不起的測試運行程序和斷言庫。 從他們的文檔:

Jest is a delightful JavaScript Testing Framework with a focus on simplicity.

Jest是一個令人愉悅JavaScript測試框架,專注于簡單性。

Jest allows you to run tests, mock imports, and make complex assertions really easily. Jest is also bundled with create-react-app, so I use it often at work.

Jest允許您真正輕松地運行測試,模擬導入并進行復雜的斷言。 Jest還與create-react-app捆綁在一起,因此我經常在工作中使用它。

編寫您的第一個玩笑測試 (Writing your first Jest test)

Jest tests are super easy to write, and they might be familiar to those who know other testing frameworks (as Jest uses it, test, describe and other familiar conventions).

Jest測試非常容易編寫,并且對于熟悉其他測試框架的人可能很熟悉(因為Jest使用it , test , describe和其他熟悉的約定)。

A basic test could look like:

基本測試可能類似于:

function subtract(a, b) {return a - b; }it("subtracts 4 from 6 and returns 2", () => {expect(subtract(6, 4)).toBe(2); });

You can also group multiple tests under one describe, so you can run different describes or use it for convenient reporting:

您還可以將多個測試歸為一個describe ,因此您可以運行不同的describe或將其用于方便的報告:

function divide(a, b) {if (b === 0) {throw new Error("Can't divide by zero!");}return a / b; }describe("divide", () => {it("throws when dividing by zero", () => {expect(() => divide(6, 0)).toThrow();});it("returns 3 when dividing 6 by 3", () => {expect(divide(6, 3)).toBe(2);}); });

You can, of course, create much more complicated tests using mocks and other type of assertions (or expectations), but for now that's enough.

當然,您可以使用模擬和其他類型的斷言(或期望)來創建更復雜的測試,但是到目前為止就足夠了。

Running the tests is also very simple:

運行測試也非常簡單:

jest

Jest will look for test files with any of the following popular naming conventions:

Jest將使用以下任何流行的命名約定查找測試文件:

  • Files with .js suffix in __tests__ folders.

    __tests__文件夾中帶有.js后綴的文件。

  • Files with .test.js suffix.

    帶.test.js后綴的文件。

  • Files with .spec.js suffix.

    帶.spec.js后綴的文件。

玩笑木偶 (jest-puppeteer)

Now, we need to make puppeteer play nicely with jest. This isn't a particularly hard job to do, as there is a great package named jest-puppeteer that comes to our aid.

現在,我們需要使木偶戲與玩笑保持良好的配合。 這并不是一件特別困難的事情,因為有一個名為jest-puppeteer的出色軟件包可以幫助我們。

First, we must install it as a dependency:

首先,我們必須將其安裝為依賴項:

npm i jest-puppeteer

And now we must extend our jest configuration. If you don't have one yet, there are a number of ways to do it. I'll go with a config file. Create a file named jest.config.js in the root of your project:

現在,我們必須擴展我們的笑話配置。 如果您還沒有,那么有很多方法可以做到。 我將使用一個配置文件。 在項目的根目錄中創建一個名為jest.config.js的文件:

touch jest.config.js

In the file we must tell jest to use jest-puppeteer's preset, so add the following code to the file:

在文件中,我們必須告訴jest使用jest-puppeteer的預設,因此將以下代碼添加到文件中:

module.exports = {preset: "jest-puppeteer"// The rest of your file... };

You may specify a special launch configuration in a jest-puppeteer.config.js file, and jest-puppeteer will pass this configuration to puppeteer.launch(). For example:

您可以在jest-puppeteer.config.js文件中指定特殊的啟動配置,并且jest-puppeteer會將此配置傳遞給puppeteer.launch() 。 例如:

module.exports = {launch: {headless: process.env.CI === "true",ignoreDefaultArgs: ["--disable-extensions"],args: ["--no-sandbox"],executablePath: "chrome.exe"} };

jest-puppeteer will take care of opening a new browser and a new page and store them on the global scope. So in your tests you can simply use the globally available browser and page objects.

jest-puppeteer將負責打開新的瀏覽器和新的頁面,并將它們存儲在全局范圍內。 因此,在測試中,您可以簡單地使用全局可用的browser和page對象。

Another great feature we can use is the ability of jest-puppeteer to run your server during your tests, and kill it afterwards, with the server key:

我們可以使用的另一個出色功能是jest-puppeteer可以在測試期間運行服務器,然后使用server密鑰將其殺死:

module.exports = {launch: {},server: {command: "npm run serve",port: 9000,launchTimeout: 180000} };

Now jest-puppeteer will run npm run serve, with a timeout of 180 seconds (3 minutes), and listen on port 9000 to see when it will be up. Once the server starts the tests will run.

現在jest-puppeteer將運行npm run serve ,超時時間為180秒(3分鐘),并在端口9000上監聽以查看何時啟動。 服務器啟動后,測試將運行。

You can now write a full test suite using jest and puppeteer. The only thing left is creating a CI pipeline, for which we'll use GitHub actions.

您現在可以使用jest和puppeteer編寫完整的測試套件。 剩下的唯一事情就是創建一個CI管道,我們將使用GitHub操作。

You can add a script to your package.json file to execute your tests:

您可以將腳本添加到package.json文件中以執行測試:

{"scripts": {"test:e2e": "jest"} }

Github行動要點 (Github Actions in a gist)

Recently, Github released a big new feature called Actions. Basically, actions allow you to create workflows using plain yaml syntax, and run them on dedicated virtual machines.

最近,Github發布了一項名為Actions的重要新功能。 基本上,操作允許您使用簡單的yaml語法創建工作流,并在專用虛擬機上運行它們。

In your workflow you can do pretty much anything you want, from basic npm ci && npm build && npm run test to more complicated stuff.

從基本的npm ci && npm build && npm run test到更復雜的工作,您都可以在工作流中做幾乎所有您想做的事情。

I'll show you how to configure a basic workflow running your puppeteer test suite, and prevent merging if your tests don't pass.

我將向您展示如何配置運行puppeteer測試套件的基本工作流程,并在測試未通過的情況下防止合并。

The easiest way to start is to click on the Actions tab in your github repo. If you haven't configured any action before, you'll see a list of previously configured workflows, from which you can choose one with some predefined configuration.

最簡單的開始方法是單擊github存儲庫中的“ Actions選項卡。 如果您之前未配置任何操作,則將看到以前配置的工作流列表,您可以從中選擇具有一些預定義配置的工作流。

For our case, choosing the predefined Node.js action is good enough. The generated yaml looks like this:

對于我們的情況,選擇預定義的Node.js操作就足夠了。 生成的yaml如下所示:

name: Node CIon: [push]jobs:build:runs-on: ubuntu-lateststrategy:matrix:node-version: [8.x, 10.x, 12.x]steps:- uses: actions/checkout@v1- name: Use Node.js ${{ matrix.node-version }}uses: actions/setup-node@v1with:node-version: ${{ matrix.node-version }}- name: npm install, build, and testrun: |npm cinpm run build --if-presentnpm testenv:CI: true

In the file you can configure the workflow name, jobs to run, and when to run the workflow. You can run your workflow on every push, on new pull requests, or as a recurring event.

在文件中,您可以配置工作流名稱,要運行的作業以及運行時間。 您可以在每次推送,新的拉取請求或重復發生的事件上運行您的工作流。

Jobs in a workflow run in parallel by default, but can be configured to run in sequence. In the above workflow, there is one job named build.

默認情況下,工作流中的作業并行運行,但可以配置為按順序運行。 在上述工作流程中,有一個名為build作業。

You can also choose the OS on which your workflow will run (by default you can use Windows Server 2019, Ubuntu 18.04, Ubuntu 16.04 and macOS Catalina 10.15 - at the time of publishing) with the runs-on key.

您也可以選擇在其工作流運行(默認情況下,你可以使用Windows Server 2019的,Ubuntu 18.04,Ubuntu的16.04和MacOS卡塔利娜10.15 -在出版時間)操作系統與runs-on鍵。

The strategy key can help us run our tests on a matrix of node versions. In this case we have the latest versions of the latest LTS majors - 8.x, 10.x and 12.x. If you are interested in that you can leave it as is, or simply remove it and use any specific version you want.

strategy密鑰可以幫助我們在節點版本矩陣上運行測試。 在這種情況下,我們具有最新的LTS專業的最新版本8.x , 10.x和12.x 如果您對此感興趣,可以將其保留不變,也可以將其刪除并使用所需的任何特定版本。

The most interesting configuration option is the steps. With it we define what actually goes on in our pipeline.

最有趣的配置選項是steps 。 通過它,我們定義了管道中實際發生的事情。

Each step represents an action you can perform, such as checking out code from the repo, setting up your node version, installing dependencies, running tests, uploading artifacts (to be used later or downloaded) and many more.

每個步驟都代表您可以執行的操作,例如從存儲庫中簽出代碼,設置節點版本,安裝依賴項,運行測試,上傳工件(稍后使用或下載)等等。

You can find a very extensive list of readily available actions in the Actions Marketplace.

您可以在Actions Marketplace中找到非常廣泛的隨時可用的動作列表。

The basic configuration will install dependencies, build our project and run our tests. If you need more (for example if you want to serve your application for e2e tests) you may alter it to your liking. Once done, commit your changes and you are good to go.

基本配置將安裝依賴項,構建我們的項目并運行我們的測試。 如果您需要更多服務(例如,如果要為e2e測試提供服務),則可以根據自己的喜好進行更改。 完成后,提交您的更改,一切順利。

強制檢查在合并之前通過 (Forcing checks to pass before merge)

The only thing left for us is to make sure no code can be merged before our workflow passes successfully. For that, go to your repo's settings and click on Branches:

我們剩下的唯一事情就是確保在我們的工作流成功通過之前,不能合并任何代碼。 為此,請轉到您的倉庫的設置,然后單擊“分支”:

We need to set a Branch protection rule so that malicious code (or at least code that doesn't pass our tests) won't be merged. Click on Add rule, and under Branch name pattern put your protected branch (master, dev or whichever one you choose). Make sure Require status checks to pass before merging is checked, and you'll be able to choose which checks must pass:

我們需要設置分支保護規則,以使惡意代碼(或至少沒有通過測試的代碼)不會被合并。 點擊添加規則 ,然后在分支名稱模式下放置受保護的分支(主,開發或您選擇的任何一個)。 確保選中“ 需要狀態檢查才能通過合并” ,然后您可以選擇必須通過哪些檢查:

Click on Save changes below, and you're good to go!

點擊下面的保存更改,一切順利!

Thank you for reading!This article was previously published on my blog: dorshinar.me, If you want to read more content, you can check my blog as it would mean a lot to me.

謝謝您的閱讀!本文先前發表在我的博客上: dorshinar.me ,如果您想內容,可以查看我的博客,因為這對我來說意義重大。

翻譯自: https://www.freecodecamp.org/news/continuous-integration-with-github-actions-and-puppeteer/

github持續集成的設置

總結

以上是生活随笔為你收集整理的github持续集成的设置_如何使用GitHub Actions和Puppeteer建立持续集成管道的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

成年人网站免费在线观看 | 欧美狠狠操| 欧美一区二区在线免费看 | 久久精品日产第一区二区三区乱码 | 国产色视频123区 | 97在线观看视频免费 | 色中色综合| 欧美成人h版在线观看 | 激情欧美日韩一区二区 | 娇妻呻吟一区二区三区 | 天天操天天添天天吹 | 99超碰在线观看 | 在线观看免费一级片 | 亚洲小视频在线观看 | 国产在线国偷精品产拍免费yy | 亚洲激情综合网 | 一区三区视频在线观看 | 97在线视频免费看 | 成在线播放 | 在线播放视频一区 | 亚洲美女精品视频 | 国产精品久久久久久吹潮天美传媒 | 成年一级片 | 亚洲尺码电影av久久 | 亚洲精品国偷自产在线99热 | 国内精品在线看 | 一区二精品 | 在线观av | 国产视频18 | 精品国产乱码久久久久 | 亚洲精品国产视频 | 中文av免费 | 欧美午夜理伦三级在线观看 | 国产成人黄色网址 | 亚洲婷婷伊人 | 国产在线精品一区二区三区 | 国产精品欧美一区二区三区不卡 | 久久精品一区二区三区四区 | 久久精品美女视频网站 | 亚洲黄色av一区 | 97香蕉久久国产在线观看 | 亚洲天天看| 韩国一区二区av | 久久这里只精品 | 免费av成人在线 | 日b视频在线观看网址 | 不卡av在线播放 | 国产精品美女久久久久久久网站 | 涩涩伊人 | 久久成电影 | 91理论片午午伦夜理片久久 | 久久精品电影网 | 久久天堂亚洲 | 福利一区视频 | 九七人人干 | 国内精自线一二区永久 | 欧美乱熟臀69xxxxxx | 91精品视频免费 | 中文字幕日韩国产 | 午夜视频免费 | 国产精品高清av | 国产成人精品久久久久蜜臀 | 亚州精品天堂中文字幕 | 黄色免费大全 | 久久精品视频在线免费观看 | 久久av高清| 久久综合九色综合久99 | 黄色avwww | 亚洲九九九在线观看 | 五月天综合在线 | 免费视频一级片 | 久久avav| 国产人成精品一区二区三 | 天天拍天天爽 | 99色在线视频 | 亚洲精品国产精品久久99热 | 免费三级影片 | 亚洲精品在线观看免费 | 日本性久久 | 亚洲无人区小视频 | 免费三级av | 国产一区二区在线观看视频 | 96av麻豆蜜桃一区二区 | 久久天天躁狠狠躁亚洲综合公司 | 国产又粗又硬又爽视频 | 免费在线观看av片 | 欧美日韩中文视频 | 国产麻豆果冻传媒在线观看 | 91网站在线视频 | 天天干天天干天天色 | 久久国内精品99久久6app | 色噜噜狠狠色综合中国 | wwxxx日本| 亚洲第一区精品 | 成人免费一级 | 又爽又黄在线观看 | 欧美精品成人在线 | 国产精品小视频网站 | 黄色国产在线观看 | 国产免费高清视频 | 国产精品无av码在线观看 | 国产夫妻性生活自拍 | 首页中文字幕 | 亚洲黄色区 | 亚洲精品一区二区精华 | www免费视频com━ | 免费视频久久久久久久 | 日批视频在线 | 日韩久久久久久 | 国产精品1区2区 | 亚洲经典视频在线观看 | 免费一级毛毛片 | 国产精品系列在线 | 国产99久久精品一区二区永久免费 | 久久久精品视频网站 | 91最新视频 | 午夜视频亚洲 | 精品xxx | 国产精品免费一区二区三区 | 中文字幕麻豆 | 日韩视频www| 日日干综合 | 精品国产视频在线观看 | 精一区二区 | 成人av一区二区兰花在线播放 | 久久精品网站视频 | 中中文字幕av在线 | 亚洲精品在线免费播放 | 99精品在线视频观看 | 亚洲3级 | 国产免费黄视频在线观看 | 国产精品成人av久久 | 亚洲精品一区二区在线观看 | 黄色影院在线免费观看 | 色婷婷播放 | 欧美a在线看| 视频99爱| 免费观看特级毛片 | 日韩av高清在线观看 | 国产免费a| 午夜精品久久久久久久久久久久 | 日韩高清二区 | 亚洲黄色一级视频 | 久久久久黄 | 亚洲国产精品女人久久久 | 久久久国产影视 | 久久免费视频一区 | 精品产品国产在线不卡 | 免费在线观看视频一区 | 有没有在线观看av | 国产视频资源 | 综合色站导航 | 欧美a级成人淫片免费看 | www.在线观看av | 日韩精品视频在线观看网址 | 国产二区av | 久久久久久蜜桃一区二区 | 操操操操网 | 91在线在线观看 | 精品极品在线 | 久久99国产精品视频 | 黄色小网站在线观看 | 玖玖视频 | 人人看人人艹 | 色一级片 | 免费a网 | 日本xxxxav| 免费国产视频 | 日韩高清不卡一区二区三区 | 黄p在线播放| 最近中文字幕高清字幕免费mv | 久草在线视频看看 | 99精品偷拍视频一区二区三区 | 六月丁香久久 | 久久精品9 | 色视频 在线 | 毛片在线网 | 中文字幕精 | 久久黄色免费视频 | 综合色亚洲 | 亚洲人人射 | 久久久久久久久网站 | 日韩视频一区二区三区在线播放免费观看 | 午夜精品视频福利 | 婷婷在线不卡 | 亚洲国产免费看 | 国产高清av免费在线观看 | 国产成人一区二区三区 | 久久精品视频2 | 日韩av女优视频 | 欧美一级高清片 | 91免费版成人| 一区电影 | 91最新视频在线观看 | 欧美一级性生活片 | 在线观看免费视频你懂的 | 夜色成人网 | 日韩免费福利 | 一级性av | av在线网站免费观看 | 久久综合五月 | 亚洲精品视频在线免费播放 | 日本三级不卡视频 | 黄色片亚洲 | 99视频免费 | 亚洲精品高清视频在线观看 | 草久视频在线 | 国产在线va| 天天色天天综合网 | 欧美性黄网官网 | 91av网址| 悠悠av资源片 | 色婷婷成人网 | 亚洲国产精久久久久久久 | www久久久 | 国产中文字幕视频在线观看 | 午夜精品麻豆 | 在线黄色av电影 | 国产精品视频免费在线观看 | 日韩av中文字幕在线免费观看 | 国产成人av免费在线观看 | 国产精品高潮呻吟久久久久 | 美女久久一区 | 国内视频在线观看 | ,午夜性刺激免费看视频 | 日韩欧美在线国产 | 麻豆超碰| 精品国产美女 | 超碰97国产在线 | 欧美日韩xx | 亚洲成aⅴ人片久久青草影院 | 深夜免费小视频 | 国产成人91| 999久久国产 | 国产偷在线 | 91成人在线免费观看 | 欧美一二区在线 | 亚洲女欲精品久久久久久久18 | 欧美淫aaa免费观看 日韩激情免费视频 | 91污视频在线 | 开心激情综合网 | 久久精品久久久精品美女 | 国产专区在线 | 成人a在线观看高清电影 | 国产精品美女久久久久久久 | 超级碰碰碰免费视频 | 亚洲最新毛片 | 欧美精品久久久久久久 | 免费黄色激情视频 | 96在线 | 亚洲精品综合欧美二区变态 | 久久综合久久鬼 | 久久久午夜视频 | 91视频在线网址 | 91亚洲精品乱码久久久久久蜜桃 | 网站免费黄 | 天天av天天 | 日韩在线视频精品 | 日本精品视频在线观看 | 国产精品久久久久久久久久久久 | 国产91成人| 久久国产影视 | 中文字幕日韩精品有码视频 | 欧美日韩国产伦理 | 成人在线播放免费观看 | 不卡av电影在线 | 麻豆免费观看视频 | 91精品国产99久久久久久久 | 91黄色免费看 | 国内久久视频 | 99精品美女| 97热视频| www.com.日本一级 | 欧美日韩在线播放 | 99产精品成人啪免费网站 | 一区二区三区免费 | 99精品免费观看 | 97超碰人人干| 狠狠狠色丁香综合久久天下网 | 精品国模一区二区三区 | 国内精品国产三级国产aⅴ久 | 亚洲波多野结衣 | 日韩av电影手机在线观看 | 天堂在线视频免费观看 | 操操碰| 在线观看www视频 | 久久99亚洲网美利坚合众国 | 免费日韩一区 | 一区二区 不卡 | 久草在线综合 | 黄色avwww| 三级黄色网络 | 99久久精品国产观看 | 国产视频 亚洲精品 | 成人av影视| 在线免费观看国产视频 | 日韩中文字幕视频在线 | 天堂av在线7 | 精品免费 | 欧美一区二区免费在线观看 | 国产欧美久久久精品影院 | 黄色成人免费电影 | 免费看黄的视频 | 亚洲精品国 | 久久国产精品一区二区三区四区 | 免费福利视频网 | 中文字幕 国产 一区 | 伊人五月综合 | 国产精品美女久久久久久久 | 国产精品高潮呻吟久久av无 | 少妇做爰k8经典 | 国产福利91精品一区二区三区 | 欧美午夜性生活 | 中文字幕综合在线 | 伊人干综合 | 亚洲欧美日韩中文在线 | 欧美孕妇与黑人孕交 | 国产免费不卡 | av怡红院| 伊人在线视频 | 不卡的av片 | 久综合网 | 精品国产黄色片 | 亚洲黄色片在线 | 欧洲激情综合 | 在线黄色观看 | 精品欧美乱码久久久久久 | 日韩高清在线一区 | 天天拍天天操 | 国产精品免费观看国产网曝瓜 | 女女av在线| 久久综合五月天 | 久久曰视频 | 久久tv视频 | 公开超碰在线 | 国产成人三级在线观看 | 色综合久久88色综合天天免费 | 精品视频在线视频 | 91在线看网站| 亚洲精品在线观看免费 | 草久久久久久 | 最新av在线免费观看 | 久久尤物电影视频在线观看 | 久久亚洲精品国产亚洲老地址 | 国产黄在线观看 | 日韩在线观看第一页 | 日女人电影 | 99精品免费在线观看 | 五月天精品视频 | 91av在| 精品国产亚洲一区二区麻豆 | 精品在线一区二区三区 | 天天爽夜夜爽精品视频婷婷 | 欧美一级片免费 | 午夜色婷婷 | 日韩av电影中文字幕 | 九九久久久久99精品 | 天天干天天做天天爱 | 人人干天天射 | 亚洲高清在线观看视频 | 97视频在线免费 | 日日操天天操狠狠操 | av在线免费在线 | 91精品久久香蕉国产线看观看 | 黄色软件在线看 | 久久久国产精品麻豆 | 五月婷婷久草 | 麻豆一区在线观看 | 激情av资源 | 亚洲在线视频免费 | 免费日韩 精品中文字幕视频在线 | 国产精品涩涩屋www在线观看 | 在线观看理论 | 中文字幕丝袜制服 | 国产亚洲欧美日韩高清 | 综合久久久久久 | 91久久久久久久一区二区 | 日本最新一区二区三区 | 亚洲成人黄色在线 | 午夜视频在线观看一区二区三区 | 国产免费亚洲 | 久久综合狠狠综合 | 91九色综合| 久久国产精品视频观看 | 国产成人精品久 | 18女毛片| 久久国产视频网 | 精品在线视频观看 | 欧美怡红院 | 五月天激情电影 | 亚洲欧洲中文日韩久久av乱码 | 欧美在线你懂的 | 国产精品夜夜夜一区二区三区尤 | 国产做爰视频 | 国产亚洲aⅴaaaaaa毛片 | avhd高清在线谜片 | 精品国产一区二区三区不卡 | 精品国产1区2区3区 国产欧美精品在线观看 | 国产精品久久久久aaaa九色 | 国产精品嫩草影视久久久 | 免费在线一区二区三区 | 天天干天天天 | 日本女人的性生活视频 | 91精品999| 日韩大陆欧美高清视频区 | 香蕉精品视频在线观看 | 九九九九九国产 | 在线看国产精品 | 香蕉视频亚洲 | 999久久国产精品免费观看网站 | 天天射天天操天天 | 日韩三区在线 | 亚洲经典视频在线观看 | 超碰在线公开免费 | 91精品视频在线看 | 国产精品九色 | av电影一区 | 91激情| av一级免费 | 美女av免费看 | 亚洲国产三级在线观看 | 国产精品美女网站 | 天天操天天射天天爱 | 三级av免费看 | 色av婷婷 | 久久久久久电影 | 精品人人爽 | 久青草视频在线观看 | 在线有码中文 | 日韩www在线 | 色网站在线免费 | 国产精品日韩久久久久 | 狠狠色狠狠色终合网 | 国产香蕉视频 | 久久99偷拍视频 | 激情五月婷婷激情 | 外国av网 | 久久久久久久久久毛片 | 国产va饥渴难耐女保洁员在线观看 | 在线观看午夜av | 丰满少妇对白在线偷拍 | 91精品黄色 | 精品久久久网 | 亚洲观看黄色网 | 国产一级a毛片视频爆浆 | 91在线一区二区 | 日韩在线无| 少妇自拍av | 五月婷婷综合在线观看 | 欧美成人手机版 | a亚洲视频 | 久久精品电影院 | 伊人中文在线 | 99久久精品国产毛片 | 日韩美av在线| 国产精品久久在线 | 日韩在线第一区 | 91香蕉视频 mp4 | 国产午夜在线观看视频 | 欧美日韩中文在线观看 | 在线观看亚洲视频 | 久久久久久久久久国产精品 | 久久精品亚洲国产 | 久久精品视频4 | 国产伦理久久精品久久久久_ | 国产精品99久久久久久久久久久久 | 五月花激情| 在线成人性视频 | 丁香婷婷社区 | 激情视频综合网 | 国产精品久久二区 | 亚洲欧美日本一区二区三区 | 丁香六月色 | 国产一区黄色 | 日韩在线视频一区 | 亚洲精品网页 | 91视频a| 亚洲91精品 | 精品福利在线观看 | 麻豆传媒视频在线免费观看 | 91av色| 国产精品女同一区二区三区久久夜 | 最近中文字幕国语免费高清6 | 51久久成人国产精品麻豆 | 色午夜 | 激情五月婷婷激情 | 久久国色夜色精品国产 | 国产在线精品国自产拍影院 | 婷婷视频 | 欧美色图狠狠干 | 天天爱天天操天天射 | 久久精品视频日本 | 996久久国产精品线观看 | 久久久久亚洲精品男人的天堂 | 日韩sese | 又黄又刺激又爽的视频 | 久久久免费播放 | 国产h在线观看 | 99久热精品 | 日韩精品一区二区在线视频 | 久久爽久久爽久久av东京爽 | 成人毛片一区二区三区 | 欧美日韩精品影院 | 国产精品美女久久久久久久网站 | 97综合视频 | 狠狠躁18三区二区一区ai明星 | 日韩免费在线 | 欧美久久久久久久久久久久 | 精品国产精品一区二区夜夜嗨 | 97色噜噜| 色婷婷狠狠18 | 在线观看国产麻豆 | 亚洲欧洲美洲av | 蜜臀一区二区三区精品免费视频 | 91热爆在线观看 | 天天操天天爽天天干 | 成人一级免费视频 | 欧洲精品码一区二区三区免费看 | 国产不卡毛片 | 国产一级片视频 | 日本性久久 | 91精品无人成人www | 日韩在线观看影院 | www.夜夜骑.com| 久久久伊人网 | 免费又黄又爽视频 | 中文字幕999 | 成人在线观看资源 | 欧美日韩国内在线 | 九草视频在线 | 国产精品永久免费 | 午夜视频在线观看欧美 | 久久艹国产 | 99久精品视频 | 粉嫩av一区二区三区四区五区 | www一起操 | 夜夜高潮夜夜爽国产伦精品 | 国产91精品欧美 | 亚洲精品mv在线观看 | 亚洲一级片免费观看 | 亚洲精品1区2区3区 超碰成人网 | 欧美va在线观看 | 免费黄色av. | 麻豆一区二区三区视频 | 婷婷丁香五| 一区二区男女 | 亚洲国产午夜精品 | 激情 一区二区 | 毛片随便看 | 国产精品视频永久免费播放 | 91av福利视频 | 午夜精品久久久久久久99热影院 | 国产v在线观看 | 五月综合激情网 | 欧美日韩精品在线免费观看 | 91精品在线看 | 国产精品久久一区二区无卡 | 在线视频观看国产 | 四虎影视成人精品 | 人人插人人射 | 婷婷成人综合 | 久草网站在线 | 国产小视频在线免费观看视频 | 久草在线中文888 | 欧美日本在线视频 | 91亚洲精品国偷拍自产在线观看 | 亚洲精品www久久久久久 | 国产精选在线观看 | 日韩精品在线播放 | 亚洲国产无 | www黄com| 日韩一区二区三区不卡 | 成人久久久电影 | 中文字幕免费一区 | 精品国产一区二区三区在线 | 色婷婷激情电影 | 国产91av视频在线观看 | 日韩中文字幕免费 | www.xxx.性狂虐 | 18网站在线观看 | 日韩在线观看 | 国色天香av| 97涩涩视频| 超碰官网| 伊甸园永久入口www 99热 精品在线 | 99精品电影 | 97成人在线 | 麻花豆传媒mv在线观看网站 | 91福利视频免费观看 | 中文字幕免费高清在线 | 成人超碰97| 久久免费国产 | 狠狠干我 | 午夜精品福利影院 | 91久久精品日日躁夜夜躁国产 | 国产中文 | 手机av在线不卡 | 国产在线 一区二区三区 | 国产色妞影院wwwxxx | 激情婷婷欧美 | 免费在线国产精品 | 久久国产影视 | 久久久国产精品一区二区中文 | 日韩激情片在线观看 | 国产精品九九热 | 国产一区二区日本 | 国产精品一区一区三区 | 国产黄网站在线观看 | 国产精品久久久久久一二三四五 | 日韩欧美在线国产 | 九色91av| 成人久久久久久久久久 | 久久精品一区二区三区国产主播 | 国产天天综合 | 日本中文字幕网址 | 丁香六月婷 | 在线观看黄网站 | 在线只有精品 | 欧美日韩高清在线观看 | 97日日| 五月天九九 | 久久久久亚洲精品男人的天堂 | 最近日韩免费视频 | a级一a一级在线观看 | 免费婷婷 | 欧美性脚交 | 日韩久久午夜一级啪啪 | 亚洲久草在线视频 | 国产精品中文字幕在线观看 | 欧美极度另类 | 免费黄色a网站 | 中文字幕国产一区二区 | 婷婷在线五月 | 国产亚洲综合精品 | 国产一级黄大片 | 国产高清黄色 | 波多野结衣在线观看一区二区三区 | 国产精品久久久一区二区三区网站 | 久久精久久精 | 国产极品尤物在线 | 国产精品日韩欧美一区二区 | 国产精美视频 | 国产精品久久99综合免费观看尤物 | 最新av电影网址 | 最近高清中文字幕 | 婷婷色九月 | 狠狠色丁香久久婷婷综合丁香 | 亚洲精品国产综合99久久夜夜嗨 | 在线观看黄色 | 91人网站 | 中文字幕亚洲综合久久五月天色无吗'' | 96久久欧美麻豆网站 | 久久视频精品在线观看 | 国产日韩欧美在线观看 | 久久精品4 | 国产高清精品在线 | 一区二区三区电影 | 国产精品乱码一区二区视频 | 国产大片免费久久 | www国产在线 | 肉色欧美久久久久久久免费看 | 亚洲黄色大片 | 91麻豆精品91久久久久同性 | a级国产乱理伦片在线观看 亚洲3级 | 日韩免费一级a毛片在线播放一级 | 国产三级精品三级在线观看 | 免费a网 | 国产成人久久 | 探花国产在线 | 久久人人爽爽人人爽人人片av | 天天综合亚洲 | 日韩天天干 | 91中文在线视频 | 免费视频国产 | 天天操天天操天天操 | 亚洲免费a | 精品9999| 精品视频在线免费观看 | 91成人精品一区在线播放 | 色综合久久久久 | 久草免费在线观看 | 久久婷亚洲五月一区天天躁 | 国产1区2区3区精品美女 | 毛片网站免费在线观看 | 看片网站黄| 久久99国产精品久久 | 97久久久免费福利网址 | 国产高清视频网 | 国产高清中文字幕 | 精品999在线 | 国产欧美在线一区 | 成人一区二区三区在线 | 日韩精品久久久久 | 国产亚洲精品久久久久久网站 | 久久免费视频网 | 久久伊人五月天 | 日韩精品久久久久久久电影99爱 | 国产精品高清在线观看 | 一区二区三区高清 | 国产大片免费久久 | 日本99精品 | 国产精品久久久久免费观看 | 中文一二区 | 中文字幕av免费在线观看 | 国产精品视频99 | 欧美一级日韩三级 | 人人爽夜夜爽 | 欧美日韩精品久久久 | 成人h动漫精品一区二 | 久久视频在线观看免费 | 二区视频在线 | 国产精品夜夜夜一区二区三区尤 | 天堂在线视频中文网 | 久久er99热精品一区二区三区 | 九九99视频| 免费激情在线电影 | 免费观看午夜视频 | 日本亚洲国产 | 久久久免费精品 | 日韩一区二区三区免费视频 | 中文字幕欧美三区 | 国产精品免费大片视频 | 久久国产露脸精品国产 | 五月婷网站 | 中文字幕欧美激情 | 不卡的av在线播放 | 天天综合成人网 | 亚洲精品美女久久久久 | 亚洲一区二区视频在线 | 久久免费大片 | 92av视频| 国产精品12 | 国内精品亚洲 | 亚洲第二色 | 日韩成片 | 国产精品一区二区在线看 | 国产成人精品久久二区二区 | 99久久一区 | 波多野结衣视频在线 | 日韩精品一区二区三区免费观看视频 | 97色se| www.在线观看视频 | 欧美性色网站 | 丁香高清视频在线看看 | 激情婷婷综合网 | 国产精品久久久久四虎 | 在线观看亚洲电影 | 麻豆国产视频 | 久草视频免费在线观看 | 亚洲午夜av | 毛片一二区| 日本中文字幕在线免费观看 | 91网在线| 超碰人人草人人 | 一级免费片| 香蕉视频最新网址 | 五月婷婷开心中文字幕 | 在线观看免费版高清版 | 特级大胆西西4444www | 日韩欧美电影网 | 日日操天天射 | 国产最新网站 | 国产一区 在线播放 | 99电影 | 国产精品久久久久久久久久了 | 69精品视频 | 美女黄久久 | 国产一区二区影院 | 欧美日韩亚洲在线 | 成人av免费在线看 | 精品国产1区2区3区 国产欧美精品在线观看 | 日韩久久午夜一级啪啪 | 日韩欧美一区二区在线观看 | 欧美精品一区二区在线观看 | 在线日本v二区不卡 | 久久精品国产一区二区电影 | 亚洲小视频在线 | 亚洲精品视频网 | 久久久久久福利 | 国产真实精品久久二三区 | 国产视频 亚洲视频 | 人九九精品 | 天天天天天天干 | 久草视频播放 | 天天操天天谢 | 中文字幕日韩av | 久久综合中文字幕 | 最新日韩在线 | 在线播放 一区 | 99久久99久国产黄毛片 | 黄色影院在线播放 | 精品亚洲免费 | 亚洲国产三级在线 | 九九热在线观看视频 | 免费精品 | 五月婷网| 国产精品久久久久久久久久新婚 | 国产日产精品一区二区三区四区的观看方式 | 日韩激情片在线观看 | 91精品国产一区二区在线观看 | 久久久久久免费 | 成人观看视频 | 韩国一区二区三区视频 | 日韩精品无码一区二区三区 | 99在线国产 | 久久久久这里只有精品 | 伊人久久五月天 | 国产精品白虎 | 欧美日韩一区二区三区在线观看视频 | 丝袜美女在线观看 | 99精品国产一区二区三区不卡 | 99看视频在线观看 | 亚洲国内精品 | 中文字幕在线看视频 | 亚洲精品免费在线观看 | 国产精品高清免费在线观看 | 国产99在线 | 成人一级免费电影 | 免费毛片一区二区三区久久久 | 香蕉视频在线免费 | av中文国产 | 国产不卡视频在线播放 | 国产一区二区久久久 | 最新av中文字幕 | 一级淫片a| 在线观看视频一区二区三区 | 免费看的黄色网 | 西西www444 | 97人人网 | av在线播放快速免费阴 | 亚洲视频h| 国产又粗又猛又爽 | 久久综合国产伦精品免费 | 久av在线 | 国产91电影在线观看 | 日韩有色 | 久久久久久久久久久久99 | 二区视频在线观看 | 国产精品免费视频一区二区 | 亚洲免费成人av电影 | 亚洲一级片在线看 | www色网站| 国产一区二区三区高清播放 | 亚洲精品资源在线观看 | 久草网站在线观看 | 欧美大片在线看免费观看 | 成人一级在线 | 午夜精品一区二区三区在线播放 | 国产糖心vlog在线观看 | 在线中文视频 | 99理论片 | 久久人人爽爽人人爽人人片av | 久久久久久久久久久久久国产精品 | 五月婷久| 久久精品视频在线观看免费 | 99视频在线观看一区三区 | 久久露脸国产精品 | 97网| 国产在线超碰 | 日日夜夜精品免费 | 91综合久久一区二区 | 91精品国产成 | 色噜噜在线观看 | 久草在线免费看视频 | 视频二区在线视频 | 欧美日韩在线看 | 欧美一级视频免费看 | 天堂av在线网 | 日韩精品中文字幕久久臀 | 久久久久久久久免费 | 在线观看免费日韩 | 精品成人在线 | 国产黄色av | 欧美淫aaa免费观看 日韩激情免费视频 | 伊人午夜视频 | 天天操月月操 | 少妇精品久久久一区二区免费 | 日韩久久精品一区二区 | 在线观看91精品国产网站 | 久草在线资源网 | 97福利在线观看 | 九九热在线观看 | 亚洲第一香蕉视频 | 国产精品视频专区 | 一区二区三区中文字幕在线观看 | 亚欧日韩成人h片 | 96精品视频 | 中文字幕在线观看网址 | 成人国产精品一区二区 | 玖玖999| 久久国产精品99久久久久久老狼 | 99热精品国产 | 久久免费精品 | 国产无遮挡又黄又爽馒头漫画 | 99精品亚洲 | 免费看久久久 | 国产美腿白丝袜足在线av | 亚洲精品视频在线观看免费视频 | 精品福利视频在线 | 五月婷婷在线视频观看 | 97超碰人人模人人人爽人人爱 | 伊人狠狠操 | 精品中文字幕在线 | 免费欧美精品 | 中文字幕日本电影 | 日韩乱码中文字幕 | 日日干日日 | 国产美女网站在线观看 | 91香蕉视频黄 | 黄色av电影免费观看 | 草在线 | 日韩高清不卡一区二区三区 | 国产精品激情在线观看 | 国产成人a亚洲精品 | 国产精品日韩在线 | 成人在线播放免费观看 | 欧美一区二区视频97 | 欧美一二三四在线 | 免费在线观看午夜视频 | 免费在线观看av网址 | 黄色大片视频网站 | 青青射 | 精品黄色在线观看 | 国产九九在线 | 国产成人精品一区二三区 | 免费看的黄网站软件 | 亚洲天天做 | 久久视频这里只有精品 | 狠狠色丁香婷婷综合 | 99久久国产免费,99久久国产免费大片 | 免费av大全 | 狠狠干婷婷色 | 国产18精品乱码免费看 | 天天操狠狠操 | 一区二区精品久久 | 99c视频在线 | 在线观看视频国产 | 久久久国产精品成人免费 | wwwwww色 | 91成人免费| 国产蜜臀av| 日韩免费在线视频观看 | 97国产精品免费 | 亚洲综合视频在线 | 亚洲国产激情 | 免费大片黄在线 | 黄色免费网 | 免费在线观看污网站 | 国产精品久久久久久久久久久久冷 | 91刺激视频 | 欧美日韩国产mv | a视频免费看 | 成人一级免费电影 | 亚洲最快最全在线视频 | 在线精品视频免费播放 | 国产流白浆高潮在线观看 | 福利av影院 | 久草在线视频网站 | 免费视频xnxx com | 一区二区三区高清在线观看 | 91天天操| 伊人丁香 | 婷婷av综合 | 97成人啪啪网 | 500部大龄熟乱视频使用方法 | 激情网婷婷 | 99精品视频免费 | 天天操欧美 | 日韩免费看片 | 黄色三级网站在线观看 | 久久96国产精品久久99软件 | 五月婷婷在线观看视频 | 午夜精品久久久久久久99 | 亚洲欧美视频在线观看 | 揉bbb玩bbb少妇bbb| 丁香六月婷婷开心婷婷网 | 久草在线视频国产 | 国产在线不卡一区 | 免费看v片网站 | 日韩大陆欧美高清视频区 | 最近免费中文视频 | 黄a在线观看 | 亚洲免费资源 | 蜜臀av夜夜澡人人爽人人 | 国产日韩精品视频 | 久草久草久草久草 | 91精品久久香蕉国产线看观看 | 免费在线一区二区 | 亚洲女欲精品久久久久久久18 | 日韩有码中文字幕在线 | 精品国产电影一区二区 | 99热在线观看 | 激情 婷婷| 91成人精品在线 | 欧美一级片在线观看视频 | 黄色片免费电影 | 欧美精品二区 | 日本最新中文字幕 |