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

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

通過Django Admin+HttpRunner1.5.6實現簡易接口測試平臺

瀏覽:175日期:2024-09-19 16:10:27

前言

這是一個使用HttpRunner開發接口平臺的簡單Demo。

新建Django項目

通過Django Admin+HttpRunner1.5.6實現簡易接口測試平臺

安裝依賴包

通過Django Admin+HttpRunner1.5.6實現簡易接口測試平臺

pip install httprunner=1.5.6 -i https://pypi.doubanio.com/simple/

模型規劃

項目Project:包含 名稱、創建時間、修改時間 測試套件TestSuite:對應HttpRunner的一個yaml文件,包含所屬項目、name、base_url、request請求配置、variables用戶自定義變量、創建時間、修改時間 測試用例TestCase:對應HttpRunner中的一個test段,包含所屬TestSuite、name、skip、request、validate、extract、創建時間、修改時間 測試結果TestResult:測試套件運行的一次結果信息,包含所屬TestSuite、HttpRunner運行summary中的時間信息、統計信息、平臺信息、詳情等

自定義YamlField

由于TestSuite中的request、variables以及用例中的request我們需要使用Python的字典格式,用例中的validate和extract需要使用Python的列表格式。而Django中這些只能按字符串格式TextField存儲。

我們編寫一個自定義YamlField,存庫時按字符串存,讀取時轉為Python字典或列表。

在apitest目錄下新建fields.py,內容如下。

串存,讀取時轉為Python字典或列表。在apitest目錄下新建fields.py,內容如下。

import yamlfrom django.db import modelsclass YamlField(models.TextField): def to_python(self, value): # 將數據庫內容轉為python對象時調用 if not value: value = {} if isinstance(value, (list, dict)): return value return yaml.safe_load(value) def get_prep_value(self, value): # create時插入數據, 轉為字符串存儲 return value if value is None else yaml.dump(value, default_flow_style=False) def from_db_value(self, value, expression, connection): # 從數據庫讀取字段是調用 return self.to_python(value)

使用抽象模型

由于好幾個項目、測試套件、測試用例都需要名稱、創建時間、修改時間三個屬性。為了簡化代碼,這里創建一個抽象模型ModelWithName,抽象模型用來通過繼承來復用屬性,并不會創建表。修改apitest/models.py,添加:

from django.db import modelsclass ModelWithName(models.Model): class Meta: abstract = True name = models.CharField('名稱', max_length=200) created = models.DateTimeField(’創建時間’, auto_now_add=True) modified = models.DateTimeField(’最后修改時間’, auto_now=True) def __str__(self): return self.name

編寫模型

修改apitest/models.py,添加:

class Project(ModelWithName): class Meta: verbose_name_plural = verbose_name = ’項目’class TestSuite(ModelWithName): '''對應httprunner的一個yaml文件''' class Meta: verbose_name_plural = verbose_name = ’測試套件’ project = models.ForeignKey(Project, verbose_name=’項目’, related_name=’suites’, on_delete=models.CASCADE) base_url = models.CharField(’域名’, max_length=500, blank=True, null=True) # 對應config/base_url request = YamlField(’請求默認配置’, blank=True) # 對應config/request variables = YamlField(’變量’, blank=True)class TestCase(ModelWithName): '''對應httprunner中的一個test''' class Meta: verbose_name_plural = verbose_name = ’測試用例’ suite = models.ForeignKey(TestSuite, verbose_name=’測試套件’, related_name=’tests’, on_delete=models.CASCADE) skip = models.BooleanField(’跳過’, default=False) request = YamlField(’請求數據’) # 對應config/request extract = YamlField(’提取請求’, blank=True) validate = YamlField(’斷言’, blank=True)class TestResult(models.Model): class Meta: verbose_name_plural = verbose_name = ’測試結果’ suite = models.ForeignKey(TestSuite, verbose_name=’測試套件’, related_name=’results’, on_delete=models.CASCADE) success = models.BooleanField(’成功’) start_at = models.DateTimeField(’開始時間’) duration = models.DurationField(’持續時間’) platform = models.TextField(’平臺信息’) test_run = models.SmallIntegerField(’運行’) successes = models.SmallIntegerField(’成功’) skipped = models.SmallIntegerField(’跳過’) failures = models.SmallIntegerField(’失敗’) errors = models.SmallIntegerField(’出錯’) expected_failures = models.SmallIntegerField(’預期失敗’) unexpected_successes = models.SmallIntegerField(’非預期成功’) details = models.TextField(’詳情’) created = models.DateTimeField(’創建時間’, auto_now_add=True) def __str__(self): return self.suite.name + ’-測試結果’

HttpRunner運行結果的summary的格式如下:

{’platform’: {’httprunner_version’: ’1.5.6’, ’platform’: ’Darwin-19.2.0-x86_64-i386-64bit’, ’python_version’: ’CPython 3.6.5’}, ’stat’: {’errors’: 0, ’expectedFailures’: 0,’failures’: 0,’skipped’: 0,’successes’: 1,’testsRun’: 1,’unexpectedSuccesses’: 0}, ’success’: True, ’time’: {’duration’: 2.2655465602874756, ’start_at’: 1587895780.3771362}} ’details’: [ # 每個對應一個測試套件 {’name’: ’套件名稱’, ’base_url’: ’https://httpbin.org’, ’stat’: {’errors’: 0, ’expectedFailures’: 0,’failures’: 0,’skipped’: 0,’successes’: 1,’testsRun’: 1,’unexpectedSuccesses’: 0}, ’success’: True, ’time’: {’duration’: 2.2655465602874756, ’start_at’: 1587895780.3771362}}, ’output’: [], ’records’: [ # 對應每一條用例 { ’name’: ’用例名’, ’status’: ’success’, ’meta_data’: {’request’: {’url’: ..., ’method’: ..., ’start_timestamp’: ...}, ’response’: {’content’: ..., ’text’: ..., ’json’: ..., ’headers’: ..., ’status_code’: ..., ’elapsed_ms’: ...}} ’attachment’: [’出錯信息’] } ] }

這里TestResult模型,對summary結果的信息做了簡單的拆解。

組裝用例數據

對于用例TestCase,我們需要將其name、skip、request、validate、extract組裝成HttpRunner的字典格式。在apitest/models.py的TestCase類中添加data屬性方法,代碼如下:

class TestCase(ModelWithName): .... @property def data(self): return dict(name=self.name,skip=self.skip,request=self.request,extract=self.extract,validate=self.validate)

一個套件最后解析后應該是包含name、config、apis、testcases的一個字典,我們需要將TestSuite對象及包含的所有TestCase對象組裝成如下格式。

{'name': '套件名稱', 'config' : {...}, 'apis': {}, 'testcases': []}

補充:加載debugtalk.py的方法config中可以指定一個yaml的path路徑,會自動加載該路徑下的debugtalk.py文件如

- utils - config.yaml # 空文件即可 - debugtalk.py

config的格式可以為:

config: name: ... request: ... variables: ... path: .../config.yaml

這樣可以自動加載debugtalk.py中的函數以供使用。

在apitest/models.py的TestSuite類中添加data屬性方法,代碼如下:

@property def data(self): request = self.request request[’base_url’] = self.base_url data = dict( name=self.name, config=dict(request=self.request, variables=self.variables), api={}, testcases=[test.data for test in self.tests.all()] ) return data

由于TestCase在外聯TestSuite時設置了關聯名稱tests,因此TestSuite對象可以通過self.tests.all()查詢出所有關聯它的用例。

注:HttpRunner-1.5.6版本的base_url是放在config/request中的,這里做了分離,要重新放入config/request中。

編寫套件運行方法

從 httprunner.task模塊中導入HttpRunner類,使用TestSuite數據,運行即可。由于運行時是安多個TestSuite模式運行的,因此TestSuite的數據要放到一個列表中。

在apitest/models.py的TestSuite類添加run方法。

from httprunner.task import HttpRunner...class TestSuite(ModelWithName): ... def run(self): runner = HttpRunner().run([self.data]) summary = runner.summary if summary: # 保存結果到TestResult _time = summary[’time’] _stat = summary[’stat’] TestResult.objects.create(suite=self, success=summary[’success’],start_at=datetime.datetime.fromtimestamp(_time[’start_at’]),duration=datetime.timedelta(seconds=_time[’duration’]),test_run=_stat[’testsRun’], successes=_stat[’successes’], skipped=_stat[’skipped’], errors=_stat[’errors’],failures=_stat[’failures’], expected_failures=_stat[’expectedFailures’],unexpected_successes=_stat[’unexpectedSuccesses’],platform=json.dumps(summary[’platform’], indent=2, ensure_ascii=False),details=summary[’details’] ) return summary

運行后,解析summary并創建TestResult對象保存本次運行結果。

模型完整代碼

import datetimeimport jsonfrom django.db import modelsfrom httprunner.task import HttpRunnerfrom .fields import YamlFieldclass ModelWithName(models.Model): class Meta: abstract = True name = models.CharField('名稱', max_length=200) created = models.DateTimeField(’創建時間’, auto_now_add=True) modified = models.DateTimeField(’最后修改時間’, auto_now=True) def __str__(self): return self.nameclass Project(ModelWithName): class Meta: verbose_name_plural = verbose_name = ’項目’class TestSuite(ModelWithName): '''對應httprunner的一個yaml文件''' class Meta: verbose_name_plural = verbose_name = ’測試套件’ project = models.ForeignKey(Project, verbose_name=’項目’, related_name=’suites’, on_delete=models.CASCADE) base_url = models.CharField(’域名’, max_length=500, blank=True, null=True) # 對應config/base_url request = YamlField(’請求默認配置’, blank=True) # 對應config/request variables = YamlField(’變量’, blank=True) @property def data(self): request = self.request request[’base_url’] = self.base_url data = dict( name=self.name, config=dict(request=self.request, variables=self.variables), api={}, testcases=[test.data for test in self.tests.all()] ) return data def run(self): runner = HttpRunner().run([self.data]) summary = runner.summary if summary: # 保存結果到TestResult _time = summary[’time’] _stat = summary[’stat’] TestResult.objects.create(suite=self, success=summary[’success’],start_at=datetime.datetime.fromtimestamp(_time[’start_at’]),duration=datetime.timedelta(seconds=_time[’duration’]),test_run=_stat[’testsRun’], successes=_stat[’successes’], skipped=_stat[’skipped’], errors=_stat[’errors’],failures=_stat[’failures’], expected_failures=_stat[’expectedFailures’],unexpected_successes=_stat[’unexpectedSuccesses’],platform=json.dumps(summary[’platform’], indent=2, ensure_ascii=False),details=summary[’details’] ) return summaryclass TestCase(ModelWithName): '''對應httprunner中的一個test''' class Meta: verbose_name_plural = verbose_name = ’測試用例’ suite = models.ForeignKey(TestSuite, verbose_name=’測試套件’, related_name=’tests’, on_delete=models.CASCADE) skip = models.BooleanField(’跳過’, default=False) request = YamlField(’請求數據’) # 對應config/request extract = YamlField(’提取請求’, blank=True) validate = YamlField(’斷言’, blank=True) @property def data(self): return dict(name=self.name,skip=self.skip,request=self.request,extract=self.extract,validate=self.validate)class TestResult(models.Model): class Meta: verbose_name_plural = verbose_name = ’測試結果’ suite = models.ForeignKey(TestSuite, verbose_name=’測試套件’, related_name=’results’, on_delete=models.CASCADE) success = models.BooleanField(’成功’) start_at = models.DateTimeField(’開始時間’) duration = models.DurationField(’持續時間’) platform = models.TextField(’平臺信息’) test_run = models.SmallIntegerField(’運行’) successes = models.SmallIntegerField(’成功’) skipped = models.SmallIntegerField(’跳過’) failures = models.SmallIntegerField(’失敗’) errors = models.SmallIntegerField(’出錯’) expected_failures = models.SmallIntegerField(’預期失敗’) unexpected_successes = models.SmallIntegerField(’非預期成功’) details = models.TextField(’詳情’) created = models.DateTimeField(’創建時間’, auto_now_add=True) def __str__(self): return self.suite.name + ’-測試結果’

使用Django Admin

修改apitest/admin.py,代碼如下:

from django.contrib import adminfrom apitest import models@admin.register(models.Project)class ProjectAdmin(admin.ModelAdmin): list_display = (’name’, ’created’, ’modified’)class TestCaseInline(admin.StackedInline): model = models.TestCase extra = 1@admin.register(models.TestSuite)class TestSuiteAdmin(admin.ModelAdmin): inlines = [TestCaseInline] list_display = (’name’, ’project’, ’base_url’, ’created’, ’modified’) list_filter = (’project’, ) actions = ('run', ) def run(self, request, queryset): for suite in queryset: suite.run() run.short_description = '運行'@admin.register(models.TestResult)class TestResultAdmin(admin.ModelAdmin): readonly_fields = (’suite’, ’success’, ’start_at’, ’duration’, ’platform’, ’test_run’, ’successes’, ’skipped’, ’failures’, ’errors’, ’expected_failures’, ’unexpected_successes’, ’details’, ’created’) fields = ((’suite’, ’success’), (’start_at’, ’duration’), (’platform’,), (’test_run’, ’successes’, ’skipped’, ’failures’, ’errors’, ’expected_failures’, ’unexpected_successes’), (’details’,) ) list_display = (’suite’, ’success’, ’test_run’, ’successes’, ’errors’, ’failures’, ’start_at’, ’duration’) list_filter = (’suite’, )

這里將項目、測試套件、測試結果三個模型注冊到Admin后臺,測試用例則作為內聯模型放到測試套件中進行編輯。在測試套件模型中,自定義了一個“運行”,操作,支持運行選中的用例。

運行并測試項目

打開terminal終端,執行數據庫變更并創建超級管理員。

python3 manage.py makemigrationspython3 manage.py migratepython3 manage.py createsuperuser

運行開發服務器

python3 manage.py runserver

訪問http://127.0.0.1:8000/admin并登錄。

通過Django Admin+HttpRunner1.5.6實現簡易接口測試平臺

創建一個項目,測試項目,然后創建一個TestSuite,如下:

通過Django Admin+HttpRunner1.5.6實現簡易接口測試平臺

請求默認配置:

headers: x-text: abc123

變量:

a: 1b: 2

通過Django Admin+HttpRunner1.5.6實現簡易接口測試平臺

請求數據:

url: /getmethod: GETparams: a: $a b: $b

提取請求:

- res_url: content.url

斷言:

- eq: [status_code, 200]

點擊保存。

回到TestSuite列表,選中測試套件,動作下拉框中選擇“運行”,點擊Go按鈕。

通過Django Admin+HttpRunner1.5.6實現簡易接口測試平臺

返回測試結果列表、查看測試結果。

通過Django Admin+HttpRunner1.5.6實現簡易接口測試平臺

通過Django Admin+HttpRunner1.5.6實現簡易接口測試平臺

程序代碼https://github.com/hanzhichao/apirunner

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Django
相關文章:
主站蜘蛛池模板: www豆豆成人网com | 精品久| 黄色一级国产 | 国产精品美女久久久 | 第一136av福利视频导航 | 97人妻天天爽夜夜爽二区 | 日韩影音 | xfplay2023成人资源站 | 人妻被按摩师玩弄到潮喷 | 一区二区网站 | 床上激情网站 | 国产精品高潮呻吟久久av郑州 | 深夜免费福利视频 | 欧美三级网站 | 国产欧美日韩 | 俄罗斯兽交黑人又大又粗水汪汪 | 日韩欧美在线观看一区 | julia一区二区在线播放 | 一级色网站| 欧美综合在线视频 | 国产一区二区精品在线观看 | www.xxx.日本| 国产精品国色综合久久 | 高清av一区二区三区 | 国模吧无码一区二区三区 | 国产成人免费在线视频 | 黄色三级毛片 | 亚洲国产一区二区三区a毛片 | 阿v免费视频 | 精品成人久久 | 国产jjizz女人多水喷水 | 国产多p混交群体交乱 | 成 人 免 费 黄 色 | 伊人久久青青草 | 日本视频高清一区二区三区 | 日韩福利网站 | 国产日韩欧美在线观看视频 | 无码国产一区二区三区四区 | 性一交一乱一乱一视频 | 九九99视频 | 中文在线a√在线8 | 人人妻人人澡人人爽国产一区 | 国产精品 27p | 日韩aⅴ视频 | 久久免费视频播放 | 欧美激情精品久久久久 | 日韩精品一区二区在线观看 | 欧美日韩国产二区 | 182tv午夜 | 色哟哟国产精品免费观看 | 国内精品在线观看视频 | 精品久| 美女一级黄色片 | 日本一级大片 | 五月婷婷综合激情网 | 无码日韩精品一区二区免费 | 亚洲日本一区二区三区在线 | 国产精品第一国产精品 | 欧美激情va永久在线播放 | 日本不卡在线视频 | 邻居少妇张开腿让我爽视频 | 女人做爰全过程免费观看美女 | 国产黄色一级网站 | 欧美成aⅴ人高清免费 | 亚洲七七久久桃花影院 | 五月婷婷开心网 | 老熟妇乱子伦牲交视频 | h视频在线免费看 | 希岛爱理av免费一区二区 | 欧洲一区二区三区四区 | 国产成人无码a区在线观看导航 | 99久久免费看视频 | 久久国产中文字幕 | 五月婷婷激情综合网 | 欧美一级性片 | av在线官网| 国产综合色在线视频区 | 国产激情综合在线观看 | 中文字幕av一区中文字幕天堂 | 午夜精品久久久久久中宇牛牛影视 | 国内自拍第二页 | 中文在线字幕av | 91在线观看 | 6080福利 | 921国产乱码久久久久久 | 日韩www在线观看 | 国产日韩欧美在线观看视频 | 午夜免费看片 | av毛片观看| 另类综合视频 | 亚洲一区二区三区四区在线 | 色狠狠色噜噜av天堂一区 | 日本精品久久久久中文字幕乱中年 | 影音先锋日韩资源 | 少妇又紧又黄又刺激视频 | 94精品激情一区二区三区 | 国产刚发育娇小性色xxxxx | 中文永久有效幕中文永久 | 日日噜噜噜夜夜爽爽狠狠 | aⅴ在线视频男人的天堂 | 国模丽丽啪啪一区二区 | 第一福利在线观看 | 天天cao在线 | 在线播放日韩av | 国产成人手机高清在线观看网站 | 毛片无码免费无码播放 | 精品久久久久一区二区 | 亚洲中文字幕精品久久 | 成人在线一区二区 | 美女又黄又免费的视频 | 富婆找两个黑人3p在线视频 | www日本黄色 | 精品综合久久久久 | 岛国一区二区 | 日韩国产毛片 | 公妇乱淫免费观看 | 网曝91综合精品门事件在线 | 高潮流白浆潮喷在线播放视频 | 超碰在线人 | 与子敌伦刺激对白播放的优点 | 野外做受又硬又粗又大视频√ | 免费人妻无码不卡中文字幕系 | 亚洲精品成a人 | 国语自产拍精品香蕉在线播放 | 亚洲va欧美va国产va黑人 | 国产性做爰xxx| 小黄网站在线观看 | 精品国产91久久久久久 | 欧美第一页浮力影院 | 青青青国产精品一区二区 | 久久久国产精品免费 | 91精品国自产在线观看 | 亚洲成av人片在一线观看 | 亚洲综合国产精品 | 精品一区二区三区四区外站 | 可以免费看毛片的网站 | 久久免费看少妇高清激情 | 亚洲欧洲无码一区二区三区 | 亚洲最大av无码国产 | 亚洲一区二区三区麻豆 | 日本五十肥熟交尾 | 亚洲成a人片77777kkkk | 九九爱精品视频 | 亚洲色av性色在线观无码 | 色婷婷国产精品免费网站 | 亚洲成av人片在线观看无码 | 亚洲欧美日韩中文在线制服 | 欧洲熟妇色xxxxx欧美老妇伦 | 国产福利合集 | 精品国产一区二区三区四区阿崩 | 中文字幕乱码一区av久久不卡 | 午夜毛片在线 | 午夜国产一级 | 中文字幕天天躁日日躁狠狠躁免费 | 日韩福利小视频 | 日本欧美国产一区二区三区 | 337p日本欧洲亚洲大胆张筱雨 | 九色琪琪久久综合网天天 | 黄色a级片视频 | 在线观看日本视频 | 国产日产久久高清欧美 | 精品国产一区二区三区久久久蜜臀 | 人妻少妇精品无码专区 | 乖女从小调教h尿便器小说 关秀媚三级 | 黄色录像一级大片 | 国产69精品久久久久孕妇大杂乱 | 一 级 黄 色 片免费网站 | 精品人妻人人做人人爽夜夜爽 | 超碰97av| 中文字幕在线乱 | 最新av网站在线观看 | 国产欧美日韩精品在线 | 熟女性饥渴一区二区三区 | 欧美日韩中文国产一区 | 日本欧美久久久久免费播放网 | 亚洲欧美一区二区三区 | 华人在线视频 | 69精产国品一二三产区视频 | 国产精品久久久久久久一区二区 | 老熟女毛茸茸浓毛 | 免费又黄又爽又色的视频 | 涩涩视频免费在线观看 | 人禽杂交18禁网站免费 | 自拍偷拍亚洲欧洲 | 狠狠色图片 | 青草福利在线 | 国产成人一区二区三区视频 | 色婷婷婷婷 | 黄色一级网站 | 亚洲 欧美变态 另类 综合 | 人善交另类亚洲重口另类 | 国产做a爰片久久毛片a片美国 | 午夜福利不卡在线视频 | 国产精品福利网 | 国产一区二区三区在线看 | 欧洲妇女成人淫片aaa视频 | 91精品国产爱久久丝袜脚 | 少妇一级淫片免费播放 | 精品无码三级在线观看视频 | 亚洲第一成人在线 | 国语一区二区 | 福利国产片 | 久久免费视频网站 | 欧美国产精品一区二区三区 | 精品无码国产av一区二区三区 | 在线观看国产福利 | 肥熟一91porny丨九色丨 | 欧美日韩综合一区二区 | 日本中文字幕有码在线视频 | 亚洲人免费视频 | 久久久久久免费毛片精品 | 一区二区三区在线观看免费 | 中文字幕第一页在线视频 | 五月综合色婷婷 | 亚洲精品影视 | 日韩精品无码免费一区二区三区 | 成人小视频在线播放 | av中文字幕在线播放 | 国产一区视频网站 | 久久精品国产亚洲77777 | 一级做a爰片久久毛片潮喷动漫 | 巨大荫蒂视频欧美另类大 | 国产美女牲交视频 | 亚洲精品一区二区三区麻豆 | 久久午夜夜伦鲁鲁片免费无码 | 高潮久久久久久久久 | 国产一区二区免费在线 | 欧亚在线视频 | 免费视频黄色 | 午夜精品国产精品大乳美女 | 米奇777超碰欧美日韩亚洲 | 精品国产依人香蕉在线精品 | 真实的国产乱ⅹxxx66小说 | 一级女人裸体舞毛片 | 中文字幕久精品免费视频 | 国产一区在线看 | 五月激情日韩欧美啪啪婷婷 | 91麻豆产精品久久久久久夏晴子 | 奇米综合| 亚洲欧美色图片 | 色婷婷av一区 | 97精品国产 | 日本一卡2卡三卡4卡免费网站 | 农村乱人伦一区二区 | 国产日韩一区二区在线观看 | 久久精品日产第一区二区 | 欧美激情图片 | 亚洲色偷偷偷综合网 | 欧美一级视频一区 | 国产叼嘿视频 | 婷婷成人丁香五月综合激情 | 韩国日本在线观看 | 在线久操 | 亚洲国产精品一区二区第一页 | 67194熟妇人妻欧美日韩 | 一区二区三区黄色 | 男同志毛片特黄毛片 | 亚洲大尺度在线观看 | 91亚洲精品久久久蜜桃借种 | 国产在线视频www色 日韩精品av一区二区三区 | 自拍偷在线精品自拍偷无码专区 | 欧美三日本三级少妇三2023 | 成人深夜影院 | 日本特级黄色 | 欧美日韩一区二区三区69堂 | 秋霞av亚洲一区二区三 | 大白肥妇bbvbbw高潮 | 一区二区三区四区不卡 | 成年人免费视频观看 | 欧美xxxx视频| 亚洲第一极品精品无码 | 多p混交群体交乱小说 | 国产主播户外勾搭人xx | 近伦中文字幕 | 日本又色又爽又黄的a片18禁 | 91久久久www播放日本观看 | 伊人久久久久久久久久久 | 九九伊人八戒 | 黄视频在线免费看 | 蜜臀av夜夜澡人人爽人人 | 日韩男人的天堂 | 成年人网站在线观看视频 | 午夜精品网 | 不卡视频一区二区 | 九九久久九九久久 | 特大巨黑吊av在线播放 | 欧美黑人巨大xxxxx | 无码色av一二区在线播放 | 天天爽天天爽天天爽 | 黄色aaa| 一本大道无码人妻精品专区 | 亚洲国产欧美国产综合一区 | 福利视频大全 | 日本伦奷在线播放 | 无码人妻啪啪一区二区 | 亚洲激情欧美激情 | 亚洲国产精品一区二区www | 丰满少妇aaaaaa爰片毛片 | 成人片免费看 | 亚洲国产精品无码久久电影 | 九七影院在线观看免费观看电视 | 黄色亚洲视频 | 亚洲天堂2017无码中文 | 久久性色 | 性鲍视频在线 | 久久久激情网 | 男女做爰猛烈叫床高潮的书 | 亚洲男人的天堂在线观看 | 国产三级黄色毛片 | 无码一区二区三区视频 | 有一婷婷色 | 丁香花免费高清完整在线播放 | 国产亚洲精品久久久久久久久动漫 | 久久香蕉国产精品麻豆粉嫩av | 亚洲熟妇av综合网 | 中日韩高清无专码区2021 | 欧美整片sss | 四虎精品8848ys一区二区 | 秋霞影院午夜 | 欧美搡bbbbb搡bbbbb | 久久久精品久久久久 | 日韩av在线播放网址 | 中日韩精品在线 | 黄色的网站免费看 | 精品国产免费一区二区三区五区 | 久久精品国产一区 | 欧美精品国产一区二区 | 91视频蝌蚪 | 久久香蕉国产线看观看精品yw | 鸭子tv国产在线永久播放 | 日韩做爰视频免费 | 成人欧美一区二区三区在线播放 | 天堂视频中文在线 | 九九亚洲精品 | 亚洲精品无码久久 | 久久精品a亚洲国产v高清不卡 | 久久成年片色大黄全免费网站 | 国产精品自在在线午夜出白浆 | 国产模特av私拍大尺度 | 岳奶大又白下面又肥又黑水多 | 欧美黑人xxxx高潮猛交 | 无码任你躁久久久久久老妇 | av手机版| 亚洲日本国产精华液 | 久久99精品久久久久久蜜芽 | 欧美少妇性生活 | 91艹逼| 国产人与禽zoz0性伦免费 | a级小视频| 巨乳女教师佐山爱,夫前在线 | 在线观看视频一区 | 欧美一区二区最爽乱淫视频免费看 | 绫濑遥av | 亚洲淫 | 在线一区二区视频 | 亚洲国产精品国自产拍av秋霞 | 国产老熟妇精品观看 | 欧美天堂色 | 男女视频一区二区 | 波多野结衣在线免费视频 | 69精品人人人人 | 日韩伦理一区二区三区 | 婷婷综合在线视频 | 欧美亚洲在线视频 | 一区二区三区不卡在线观看 | 亚洲春色一区二区三区 | 美日韩一区二区三区 | 黄色国产片 | 国产精品夜夜春夜夜爽久久老牛 | 青草超碰 | 国产精选第一页 | 一区二区视频在线观看免费 | 99热麻豆| 无码ol丝袜高跟秘书在线观看 | 国产精品嫩草影院久久久 | 日韩作爱| 亚洲人成网站免费播放 | 91插插插影库永久免费 | 少妇高潮一区二区三区 | 国偷自产一区二区免费视频 | 国产porn在线| 日韩av一区二区在线 | 国产熟妇与子伦hd | 日韩在线第一 | 亚洲自啪 | 老司机午夜免费精品视频 | 亚洲精品激情 | 成在线人视频免费视频 | 麻豆精品免费观看 | 亚洲成av人乱码色午夜 | 天天视频色 | 国产男女猛烈无遮挡a片漫画 | 欧美三级欧美一级 | 麻豆影视在线免费观看 | 涩涩网站在线 | 精品国精品国产自在久国产应用 | 窝窝九色成人影院 | 妓院一钑片免看黄大片 | 日韩视频中文字幕在线观看 | 日韩在线网| 久久久久久免费毛片精品 | 小嫩嫩流白浆 | 嫩草影院在线观看视频 | 久久精品亚洲国产 | 亚洲激情视频在线观看 | 五月天一区二区 | 精品一区二区免费 | 午夜av网| 第一福利在线观看 | 成熟妇人a片免费看网站 | 精品国产一区二区三区忘忧草 | 国产成人啪精品视频免费软件 | 色av综合av综合无码网站 | 国内精品免费午夜又爽又色愉情 | 国产日韩一区二区三免费高清 | 日本丰满的人妻hd高清在线 | 成人性生交大片免费看r老牛网站 | 131mm少妇做爰视频 | 日本护士毛茸茸高潮 | 一级全黄少妇性色生活片 | 武侠古典av | 日韩成人无码一区二区三区 | 欧美日韩精品久久久免费观看 | 乱人伦av | 一级激情视频 | a级毛片蜜桃成熟时2免费观看 | 探花国产 | 在线成人av | 国产嘿咻 | 亚洲国产网址 | 蜜桃成熟时李丽珍在线观看 | 男女做爰猛烈叫床爽爽免费网站 | 国产欧美成人一区二区a片 又大又长粗又爽又黄少妇视频 | 国产黄色一区二区三区 | 狠狠躁夜夜躁人人爽蜜桃 | 品久久久久久久久久96高清 | 九九最新视频完整 | 国产视频一区二区 | 小h片免费观看久久久久 | 中文字幕狠狠 | 精品无人区一区二区三区 | 天堂а√中文最新版在线 | 久一精品视频 | 亚洲欧洲无码av电影在线观看 | 国产乱人伦精品 | av成人在线播放 | 欧美亚洲一级 | 粉嫩av一区二区在线播放免费 | 国产精品成人3p一区二区三区 | 久久久精品一区aaa片 | 精品一区二区三区在线观看视频 | 欧洲久久久 | 日韩精品av久久有码一区浪潮 | 欧美激情综合亚洲一二区 | 性猛交富婆╳xxx乱大交视频 | 欧美疯狂做受xxxx富婆 | 婷婷夜夜躁天天躁人人躁 | 极品色视频 | 91精品国产影片一区二区三区 | 无码h黄肉动漫在线观看 | 免费在线中文字幕 | 欧美中文字幕在线视频 | 你懂的网址在线观看 | 国产69精品久久久久777 | 亚洲日韩精品a∨片无码加勒比 | 精品无人区一区二区 | 国产乱人伦偷精品视频不卡 | xxxx在线观看视频 | 91精品国产成人www | 熟女丰满老熟女熟妇 | 国产精品免费视频一区二区三区 | 久久久免费视频观看 | 欧美成人h版在线观看 | 日本免费一区二区三区视频 | 日韩亚洲欧美精品综合 | 免费国产黄| 日韩高清在线观看 | 久久国语露脸国产精品电影 | 亚洲精品av在线 | 午夜爱精品免费视频一区二区 | 免费日韩毛片 | 免费观看国产精品视频 | 亚洲天堂黄 | 五月天堂网 | 农村人伦偷精品视频a人人澡 | 亚洲最大成人在线观看 | 红杏av在线 | 一级在线毛片 | 国产蜜臀av在线一区尤物 | 国产精品入口66mio男同 | 日本一级二级三级久久久 | 国产女人毛片 | 少妇浪荡h肉辣文大全69 | 高清无码视频直接看 | 日韩成人在线免费视频 | 日本少妇寂寞少妇aaa | 色狠狠色狠狠综合天天 | 亚洲视频网站在线观看 | 亚洲熟女乱综合一区二区 | 裸体丰满少妇做受久久99精品 | 韩国三级丰满少妇高潮 | 国语av在线| 欧美日韩一卡二卡 | 国语对白久久 | 538任你躁精品视频网免费 | 另类二区 | 国精产品一二三区传媒公司 | 一本一道波多野结衣中文av字幕 | 日本激情久久 | 在线看免费av | 日韩不卡在线观看 | 97久久香蕉国产线看观看 | 国产艳妇疯狂做爰视频 | 2018av天堂在线视频精品观看 | 巨肉超污巨黄h文小短文 | 两个人做羞羞的视频 | 亚洲自拍偷拍另类 | 亚洲国产一区二区三区 | 国产亚洲papapa | 国产精品久久久久77777按摩 | 国产麻豆一区二区三区 | 成人黄色在线 | 国产免费无码一区二区视频 | 国产精品久久久久久久毛片 | 国产91玉足脚交在线播放 | 天天拍夜夜添久久精品大 | 看全色黄大色大片60岁 | 女同 媚药 在线播放 | 啪啪免费网站 | 九九久久99 | 男女在楼梯上高潮做啪啪 | 国产精品久久久久久网站 | 日本亚洲最大的色成网站www | 精品深夜av无码一区二区 | 亚洲欧美国产双大乳头 | 亚洲蜜臀av乱码久久精品蜜桃 | 我和岳疯狂性做爰全过程视频 | av网站免费观看 | 免费av观看 | 日韩系列在线 | 成人一区三区 | 欧美一区二区三区四区在线观看 | 亚洲在线中文字幕 | 亚洲国产精品成人综合久久久 | 亚洲天堂男人天堂 | 野花社区www视频最新资源 | 希岛爱理和黑人中文字幕系列 | 熟妇人妻av中文字幕老熟妇 | 国产成人久久婷婷精品流白浆 | 亚洲毛片一区二区 | 日本精品视频在线观看 | 久久99亚洲精品久久99果 | 肉色超薄丝袜脚交69xx | 91porn在线| 琪琪色综合网 | 狠狠色伊人亚洲综合成人 | 亚洲精品久久国产高清 | 日本青草视频 | 天天夜夜久久 | 天天操夜夜爽 | 国产成人精品无码一区二区 | 99精品国产一区二区 | 中文字幕在线播放第一页 | 黄色片视频免费看 | 中国老太婆bb无套内射 | 99久久精品免费看国产免费软件 | 久热中文字幕在线精品观 | 精品国产免费一区二区三区香蕉 | 光棍影院av | 国产高清在线不卡 | 97干视频| 亚洲激情视频一区 | 狠狠噜天天噜日日噜 | 红桃视频91 | 另类激情综合 | 少妇愉情理仑片高潮日本 | 丰满人妻一区二区三区免费视频 | 私人毛片| 欧美深度肠交惨叫 | 在线综合色 | 亚洲人成久久婷婷精品五码 | 中国黄色三级 | 我爱avav色aⅴ爱avav | 欲求不满在线小早川怜子 | 国产精品自拍合集 | 欧美理论片在线观看 | 欧美xxxx黑人又粗又长 | 日韩欧美激情兽交 | 欧美精品乱码视频一二专区 | av在线h| 亚洲国产精久久久久久久 | 女人与拘做受全过程免费视频 | 美女超碰 | 456欧美成人免费视频 | 国产精品丝袜久久久久久不卡 | 九久久久久 | 亚洲精品久久久久久无码色欲四季 | 欧美精品网站在线观看 | 青青草青青操 | 公车乳尖揉捏酥软呻吟 | 日产精品久久久一区二区 | 麻豆久久久久久 | 凹凸国产熟女精品视频 | 精品美女久久久 | 成人动漫区 | 动漫卡通精品一区二区三区介绍 | 国产在线一卡二卡 | 欧美另类视频在线 | 国产又黄又嫩又滑又白 | 三级av免费| 熟妇人妻无乱码中文字幕真矢织江 | 久草视频2 | 香蕉99久久国产综合精品宅男自 | 久久精品女同亚洲女同13 | 国产乱肥老妇女精品视频网站 |