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

HarmonyOS自動化測試實(shí)踐

系統(tǒng) 自動化 OpenHarmony
在自動化過程中,元素出現(xiàn)受網(wǎng)絡(luò)環(huán)境,設(shè)備性能等多種因素影響。因此元素加載的時間可能不一致,從而會導(dǎo)致元素?zé)o法定位超時報(bào)錯,但是實(shí)際上元素是正常加載了的,只是出現(xiàn)時間晚一點(diǎn)而已。

[[420953]]

想了解更多內(nèi)容,請?jiān)L問:

51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)

https://harmonyos.51cto.com

一、運(yùn)行環(huán)境

工具列表

  • Appium-Desktop v1.8.2
  • Android SDK
  • Python
  • Appium-Python-Client
  • Pytest
  • Pycharm

工具安裝:

Appium-Desktop v1.8.2

下載地址:Appium-Desktop v1.8.2, 對于鴻蒙系統(tǒng),最佳的Appium兼容版本為v1.8.2。其他版本在獲取text時的值為“0.0”

安裝過程:

【中軟國際】HarmonyOS 自動化測試實(shí)踐-鴻蒙HarmonyOS技術(shù)社區(qū)
【中軟國際】HarmonyOS 自動化測試實(shí)踐-鴻蒙HarmonyOS技術(shù)社區(qū)
【中軟國際】HarmonyOS 自動化測試實(shí)踐-鴻蒙HarmonyOS技術(shù)社區(qū)
【中軟國際】HarmonyOS 自動化測試實(shí)踐-鴻蒙HarmonyOS技術(shù)社區(qū)

Android SDK

1.下載地址:Android SDK

2.將Android Studio安裝在默認(rèn)路徑: C:\Program Files\Android\Android Studio

3.在Android Studio的SDK Manager中下載Android SDK

4.配置環(huán)境變量:

  • 新建JAVA_HOME,值為C:\Program Files\Android\Android Studio\jre
  • 新建ANDROID_HOME,值為C:\Users\Administrator\AppData\Local\Android\Sdk
  • 編輯Path, 新建%JAVA_HOME%\bin, %JAVA_HOME%\jre\bin, %ANDROID_HOME%\tools, %ANDROID_HOME%\tools\bin, %ANDROID_HOME%\platform-tools

Python

下載地址:Python

將Python安裝在默認(rèn)位置

環(huán)境變量配置

打開CMD,輸入 python –version 測試python命令,輸入 pip –V 測試pip命令

如果測試失敗,則需要配置python的環(huán)境變量

Appium-Python-Client

安裝命令:pip install Appium-Python-Client

【中軟國際】HarmonyOS 自動化測試實(shí)踐-鴻蒙HarmonyOS技術(shù)社區(qū)

Pytest

安裝命令:pip install pytest

【中軟國際】HarmonyOS 自動化測試實(shí)踐-鴻蒙HarmonyOS技術(shù)社區(qū)

Pycharm

1.下載地址:Pycharm

Pycharm是比較流行Python編輯器(IDE工具),選擇Community版本下載

2.將Pycharm安裝在默認(rèn)位置

3.選擇python編譯器

【中軟國際】HarmonyOS 自動化測試實(shí)踐-鴻蒙HarmonyOS技術(shù)社區(qū)

二、元素定位

元素定位工具常用的有:uiautomatorviewer.bat,weditor.exe,Appium-Desktop

【中軟國際】HarmonyOS 自動化測試實(shí)踐-鴻蒙HarmonyOS技術(shù)社區(qū)

以uiautomatorviewer為例看一下常見的查找控件方式

1.通過id定位,resrouce-id

  1. element = conf.driver.find_element_by_id("Id_myButton").click() 

 2.通過ClassName定位: classname

  1. element = conf.driver.find_elements_by_class_name("android.widget.Button").click() 

 3.通過Accessiblityld定位:content-desc

  1. element = driver.find_element_by_accessibility_id("content-desc-text").click() 

 4.通過AndroidUiAutomator

  1. ui_str = 'new UiScrollable(UiSelector().className("{}")).scrollIntoView(new UiSelector().textContains("{}"))'.format(list_id, text_contains) 
  2. element = conf.driver.find_element_by_android_uiautomator(ui_str).click() 

 5.通過坐標(biāo)定位,XY

  1. TouchAction(conf.driver).tap(x=int(x * phonewidth), y=int(y * phoneheight)).release().perform() 

 6.通過xpath定位終極定位,方式有很多種,以下列幾種常見:

  • 如果元素text是唯一的,可以通過text文本定位:
  1. //*[@text=’text文本屬性’] 
  2. element = conf.driver.find_element_by_xpath("//*[@text='Click me!']").click() 
  • 如果元素id是唯一的,也可以id屬性定位
  1. //*[@resource-id=’id屬性’] 
  2. element = conf.driver.find_element_by_xpath("//*[@resource-id='org.ohosannotations.sample:id/Id_myButton']").click() 
  • 通過content-desc屬性定位
  1. //*[@content-desc=’desc的文本’] 
  2. element = conf.driver.find_element_by_xpath("//*[@content-desc='desc的文本']").click() 
  • contains模糊定位
  1. //[contains(@content-desc, ‘desc的文本’)] 
  2. element = conf.driver.find_element_by_xpath("//*[contains(@content-desc, 'desc的文本')]").click() 
  • 組合定位

如果一個元素有2個屬性,通過xpath也可以同時匹配2個屬性,text, resource-id,class ,index,content-desc 這些屬性都能任意組合定位

通過id和class屬性 定位搜索框

  1. id_class = '//android.widget.EditText[@resource-id="org.ohosannotations.sample:id/Id_myTextField"]' 
  2. element = conf.driver.find_element_by_xpath(id_class).click() 

通過text和index屬性 定位按鈕Start list ability !

  1. desc_class = '//*[@text="Start list ability !" and @index="3"]' 
  2. element = conf.driver.find_element_by_xpath(desc_class).click() 

 通過class和text屬性 定位輸入框

  1. class_text = '//android.widget.EditText[@text="輸入框默認(rèn)值"]' 
  2. element = conf.driver.find_element_by_xpath(class_text).send_keys("zdhtest"

 通過class和desc 定位搜索框

  1. id_desc = '//*[contains(@resource-id, "Id_myTextField") and @content-desc="desc的文本"]' 
  2. element = conf.driver.find_element_by_xpath(id_desc).click() 

 鴻蒙與安卓定位方式基本相同

三、模擬用戶事件

在自動化用戶操作事件中,鴻蒙與安卓基本方式一致,以下列舉常見的幾種操作事件:

1.點(diǎn)擊(確認(rèn)點(diǎn)擊)、輸入和清空操作

  • 點(diǎn)擊:能支持點(diǎn)擊跳轉(zhuǎn)的定位元素,通過.click()執(zhí)行
  1. driver.find_element_by_id(‘org.ohosannotations.sample:id/Id_myTextField’).click() 

 輸入:有輸入框需要輸入的定位元素,通過.send_keys()執(zhí)行

  1. driver.find_element_by_id(‘org.ohosannotations.sample:id/Id_myTextField’).send_keys(‘zdhtest’) 

 清空:對已輸入的輸入框清空內(nèi)容,通過.clear()執(zhí)行

  1. driver.find_element_by_id(‘org.ohosannotations.sample:id/Id_myTextField’).clear() 

 2.元素等待作用

在自動化過程中,元素出現(xiàn)受網(wǎng)絡(luò)環(huán)境,設(shè)備性能等多種因素影響。因此元素加載的時間可能不一致,從而會導(dǎo)致元素?zé)o法定位超時報(bào)錯,但是實(shí)際上元素是正常加載了的,只是出現(xiàn)時間晚一點(diǎn)而已, 故設(shè)置元素等待可以更加靈活的制定等待定位元素的時間,從而增強(qiáng)腳本的健壯性,提高執(zhí)行效率

  • 強(qiáng)制等待: 設(shè)置固定的等待時間,使用sleep()方法即可實(shí)現(xiàn)
  1. from time import sleep   
  2. #強(qiáng)制等待5秒 
  3. sleep(5) 
  • 隱式等待: 隱式等待是針對全部元素設(shè)置的等待時間
  1. driver.implicitly_wait(20) 
  • 顯式等待: 顯式等待是針對某個元素來設(shè)置的等待時間。

方法WebDriverWait格式參數(shù)如下:

  1.  
  2. from selenium.webdriver.support.ui import WebDriverWait 
  3.  
  4. WebDriverWait(driver, timeout, poll_frequency=0.5, ignored_exceptions=None) 
  5.  
  6. driver : WebDriver 
  7.  
  8. #timeout : 最長超時時間,默認(rèn)以秒為單位 
  9.  
  10. #poll_frequency : 休眠時間的間隔時間,默認(rèn)為0.5秒 
  11.  
  12. #ignored_exceptions : 超時后的異常信息,默認(rèn)情況下拋NoSuchElementException異常。 
  13.  
  14. WebDriverWait()一般和until()或until_not()方法配合使用 
  15.  
  16. from selenium.webdriver.support.ui import WebDriverWait 
  17.  
  18. WebDriverWait(conf.driver, 10).until(EC.visibility_of_element_located((By.ID, self.locator))) 

3.Toast內(nèi)容獲取

Toast是一種簡易的消息提示框。 當(dāng)視圖顯示給用戶,在應(yīng)用程序中顯示為浮動,和Dialog不一樣的是,它永遠(yuǎn)不會獲得焦點(diǎn),無法被點(diǎn)擊,而且Toast顯示的時間有限,一般3秒左右就消失了,在鴻蒙應(yīng)用中,Toast目前還捕捉不到,解決方法也是采用截圖比較

  1. #Android獲取Toast方式 
  2. toast_message = "這是一個toast文本" 
  3. message ='//*[@text=\'{}\']'.format(toast_message) 
  4. #顯示等待檢測元素 
  5. toast_element=WebDriverWait(driver, 5).until(EC.visibility_of_element_located((message, self.locator))) 
  6. print(toast_element.text) 
  7.  
  8. #鴻蒙中Toast處理方式 
  9. self.get_image(imagepath) 
  10. flag = self.image_assert(assertimagepath, imagepath, imagesucess) 

 4.截圖操作

  1. save_screenshot() :方法直接保存當(dāng)前屏幕截圖到當(dāng)前腳本所在文件位置 
  2. driver.save_screenshot(‘aa.png’) 
  3.  
  4. get_screenshot_as_file(self, filename) :將截圖保留到指定文件路徑 
  5. driver.get_screenshot_as_file(’./images/aa.png’) 

 5.滑動操作

  1. #獲得機(jī)器屏幕大小x,y 
  2. def getSize(): 
  3.     x = dr.get_window_size()['width'
  4.     y = dr.get_window_size()['height'
  5.     return (x, y) 
  6.   
  7. #屏幕向上滑動 
  8. def swipeUp(t): 
  9.     l = getSize() 
  10.     x1 = int(l[0] * 0.5)    #x坐標(biāo) 
  11.     y1 = int(l[1] * 0.75)   #起始y坐標(biāo) 
  12.     y2 = int(l[1] * 0.25)   #終點(diǎn)y坐標(biāo) 
  13.     dr.swipe(x1, y1, x1, y2,t) 
  14. #屏幕向下滑動 
  15. def swipeDown(t): 
  16.     l = getSize() 
  17.     x1 = int(l[0] * 0.5)    #x坐標(biāo) 
  18.     y1 = int(l[1] * 0.25)   #起始y坐標(biāo) 
  19.     y2 = int(l[1] * 0.75)   #終點(diǎn)y坐標(biāo) 
  20.     dr.swipe(x1, y1, x1, y2,t) 
  21. #屏幕向左滑動 
  22. def swipLeft(t): 
  23.     l=getSize() 
  24.     x1=int(l[0]*0.75) 
  25.     y1=int(l[1]*0.5) 
  26.     x2=int(l[0]*0.05) 
  27.     dr.swipe(x1,y1,x2,y1,t) 
  28. #屏幕向右滑動 
  29. def swipRight(t): 
  30.     l=getSize() 
  31.     x1=int(l[0]*0.05) 
  32.     y1=int(l[1]*0.5) 
  33.     x2=int(l[0]*0.75) 
  34.     dr.swipe(x1,y1,x2,y1,t) 
  35. #調(diào)用向左滑動 
  36. swipLeft(1000) 
  37. #調(diào)用向右滑動 
  38. swipRight(1000) 
  39. #調(diào)用向上滑動 
  40. swipeUp(1000) 
  41. #調(diào)用向下滑動 
  42. swipeDown(1000) 

 6.按壓、長按、點(diǎn)擊(單純點(diǎn)擊)、移動、暫停、釋放、執(zhí)行等操作

  • 強(qiáng)制等待: 設(shè)置固定的等待時間,使用sleep()方法即可實(shí)現(xiàn)
  • 按壓:press() 開始按壓一個元素或坐標(biāo)點(diǎn)(x,y)。通過手指按壓手機(jī)屏幕的某個位置。 press也可以接收屏幕的坐標(biāo)(x,y)。press(self, el=None, x=None, y=None)
  1. TouchAction(driver).press(x=0,y=308) 
  • 長按:longPress() 開始按壓一個元素或坐標(biāo)點(diǎn)(x,y)。 相比press()方法,longPress()多了一個入?yún)ⅲ热婚L按,得有按的時間吧。duration以毫秒為單位。1000表示按一秒鐘。其用法與press()方法相同。
  1. long_press(self, el=None, x=None, y=None, duration=1000) 
  • 點(diǎn)擊:tap() 對一個元素或控件執(zhí)行點(diǎn)擊操作。用法參考press()。不能點(diǎn)擊跳轉(zhuǎn),單純的點(diǎn)擊(例如:點(diǎn)擊勾選、點(diǎn)擊點(diǎn)贊,點(diǎn)擊播放等)
  • 移動:move_to() 將指針從上一個點(diǎn)移動到指定的元素或點(diǎn)。(滑動驗(yàn)證條)
  1. move_to(self, el=None, x=None, y=None) 
  • 暫停:Wait()暫停腳本的執(zhí)行,單位為毫秒
  1. wait(self, ms=0) 
  • 釋放:方法release() 結(jié)束的行動取消屏幕上的指針。
  1. release(self) 
  • 執(zhí)行:perform() 執(zhí)行的操作發(fā)送到服務(wù)器的命令操作。
  1. perform(self) 

7.獲取元素的屏幕尺寸和名稱

  • 獲取屏幕尺寸:
  1. 屏幕總尺寸:分辨率 phonesize = self.get_phone_size() 
  2.  
  3. 屏幕寬度:X值 phonewidth = phonesize["width"
  4.  
  5. 屏幕高度:Y值 phoneheight = phonesize["height"
  • 獲取元素的名稱:
  1. driver.find_element_by_xpath(xpath).text 
  2. driver.find_element_by_id(“org.ohosannotations.sample:id/Id_myTextField”).text 

四、簡單示例

以下是兩個簡單case

1.示例一

下面以ohosannotations組件為例,case中包含事件有:點(diǎn)擊、長按、輸入、文本斷言和圖片對比斷言

  1. def test_ohosannotations(self, getlocator): 
  2.         annotations_locators = getlocator["ohosannotations"
  3.         with allure.step("點(diǎn)擊Click me_按鈕的點(diǎn)擊事件"): 
  4.             self.ta_tap(annotations_locators["Click me_按鈕"]) 
  5.         with allure.step("向輸入框輸入內(nèi)容"): 
  6.             self.text_input(annotations_locators["myTextField_控件"], "這是一條有內(nèi)涵的內(nèi)容!"
  7.             self.ta_tap(annotations_locators["Click me_按鈕"]) 
  8.             time.sleep(2) 
  9.             assert "這是一條有內(nèi)涵的內(nèi)容!" == self.get_element_text(annotations_locators["myText_控件"]), "文本顯示不正確" 
  10.         with allure.step("長按Start extra ability, long click !控件"): 
  11.             logger.info("長按Start extra ability, long click !控件"
  12.             self.ta_longpress(annotations_locators["Start extra ability, long click_按鈕"], 1000) 
  13.             time.sleep(2) 
  14.         with allure.step("斷言彈出框圖片與期望圖片是否一致"): 
  15.             self.get_image(imagepath) 
  16.             flag = self.image_assert(assertimagepath, imagepath, imagesucess) 
  17.         if flag is True
  18.             with open(imagesucess, "rb"as f: 
  19.                 context = f.read() 
  20.                 allure.attach(context, "匹配成功的圖片", attachment_type=allure.attachment_type.PNG) 
  21.         else
  22.             with open(imagepath, "rb"as f: 
  23.                 context = f.read() 
  24.                 allure.attach(context, "匹配失敗的圖片", attachment_type=allure.attachment_type.PNG) 
  25.                 logger.info("匹配結(jié)果:%s" % flag) 
  26.                 assert flag is True 

 運(yùn)行結(jié)果:

2.示例二

以Sensey組件為例,演示多點(diǎn)觸控的使用方法,驗(yàn)證Sensey組件的雙指檢測功能

  1. @allure.story('Sensey'
  2. @allure.title("sensey_006 雙指檢測"
  3. @allure.tag("L1"
  4. @allure.severity("normal")  # blocker:阻塞缺陷 critical:嚴(yán)重缺陷 normal:一般缺陷 minor:次要缺陷 trivial:輕微缺陷 
  5. @allure.description("雙指檢測"
  6. @pytest.mark.flaky(reruns=1, reruns_delay=5)  # reruns:重試次數(shù) reruns_delay:重試的間隔時間 
  7. def test_sensey_006(self, getlocator): 
  8.     logger.info("sensey_006 雙指檢測"
  9.     self.ta_tap(["TOUCH DETECTOR""XPATH""//*[@text=\"TOUCH DETECTOR\"]"]) 
  10.     self.ta_tap(["Touch Detection""XPATH""//*[@resource-id=\"Id_switch_touch\"]"]) 
  11.     a1 = TouchAction(conf.driver).tap(x=530, y=1380).release() 
  12.     a2 = TouchAction(conf.driver).tap(x=730, y=1380).release() 
  13.     action = MultiAction(conf.driver) 
  14.     action.add(a1,a2) 
  15.     action.perform() 
  16.     time.sleep(0.5) 
  17.     text = self.get_element_text(["Result""XPATH""//*[@resource-id=\"Id_tv_result\"]"]) 
  18.     assert text == "Two Finger Tap""雙指檢測不正確" 

 運(yùn)行結(jié)果:

五、測試報(bào)告生成

使用allure-pytest插件

  1. @allure.feature('設(shè)置應(yīng)用')  # 功能名稱 
  2. class TestSettings(BaseCase): 
  3.  
  4.     @allure.story('聲音和振動')  # 子功能名稱 
  5.     @allure.title('settings_001 設(shè)置來電鈴聲')  # 用例標(biāo)題 
  6.     @allure.severity('normal')  # 缺陷級別 
  7.     @allure.description('檢查是否可以設(shè)置來電鈴聲')  # 用例描述 
  8.     def test_settings_001(self): 
  9.         # 測試步驟 
  10.         with allure.step('進(jìn)入聲音和振動'): 
  11.             pass 
  12.         with allure.step('設(shè)置來電鈴聲'): 
  13.             pass 
  14.         with allure.step('斷言來電鈴聲設(shè)置成功'): 
  15.             pass 

 生成html報(bào)告和打開

  1. if __name__ == '__main__'
  2.  
  3.     now = time.strftime('%Y%m%d%H%M%S'time.localtime()) 
  4.     print('執(zhí)行腳本(%s)' % now) 
  5.  
  6.     xml_path = './reports/report-%s/xml' % now 
  7.     html_path = './reports/report-%s/html' % now 
  8.     case_path = './testcases/' 
  9.  
  10.     # 運(yùn)行測試腳本 
  11.     pytest.main(['-s''-q''--alluredir', xml_path, case_path]) 
  12.  
  13.     # 生成html報(bào)告 
  14.     cmd = 'allure generate %s -o %s --clean' % (xml_path, html_path) 
  15.     os.system(cmd) 
  16.  
  17.     # 打開測試報(bào)告 
  18.     cmd = 'allure open %s' % html_path 
  19.     os.system(cmd) 

 生成報(bào)告如下:

【中軟國際】HarmonyOS 自動化測試實(shí)踐-鴻蒙HarmonyOS技術(shù)社區(qū)

展開詳情:

【中軟國際】HarmonyOS 自動化測試實(shí)踐-鴻蒙HarmonyOS技術(shù)社區(qū)

想了解更多內(nèi)容,請?jiān)L問:

51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)

https://harmonyos.51cto.com

 

責(zé)任編輯:jianghua 來源: 鴻蒙社區(qū)
相關(guān)推薦

2022-09-12 16:02:32

測試企業(yè)工具

2017-08-29 09:57:26

SaaS產(chǎn)品自動化

2021-09-07 09:00:00

開發(fā)測試工具

2023-02-07 08:11:15

2020-11-04 09:00:00

自動化測試回歸測試軟件測試

2022-02-17 10:37:16

自動化開發(fā)團(tuán)隊(duì)預(yù)測

2012-02-27 17:34:12

Facebook自動化

2013-05-16 10:58:44

Android開發(fā)自動化測試

2014-04-16 14:15:01

QCon2014

2023-03-29 08:33:03

倉儲自動化系統(tǒng)

2011-12-23 17:09:57

自動化測試

2012-12-24 22:54:31

2021-06-30 19:48:21

前端自動化測試Vue 應(yīng)用

2017-09-06 16:08:45

JmeterJenkins自動化測試

2017-09-21 16:06:43

DevOps自動化測試代碼

2024-11-01 15:05:12

2021-11-05 09:00:00

Selenium工具自動化測試

2022-05-26 10:13:22

C/C++GCC插件單元測試

2023-03-27 15:37:43

自動化測試開發(fā)

2011-06-03 17:24:48

自動化測試
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

精品成人影院| 成人网ww555视频免费看| 国产成人免费网站| 97免费视频在线播放| www.av欧美| 高清不卡一区| 欧美性猛交xxxx乱大交| 亚洲一区二区在| 日本韩国免费观看| 日韩激情视频在线观看| 欧美精品亚州精品| 爱爱的免费视频| 亚洲伊人伊成久久人综合网| 欧美日韩美女在线观看| 在线观看欧美激情| 五月婷婷丁香网| 精品一区二区三区在线视频| 午夜精品久久久99热福利| 污污视频网站在线免费观看| 欧美xxxx在线| 91精品国产一区二区三区香蕉| 欧美深夜福利视频| 黄网站在线免费看| 久久久久青草大香线综合精品| 91精品国产一区二区三区动漫| 香蕉影院在线观看| 欧美久久影院| 日韩在线视频播放| 亚欧洲乱码视频| 加勒比久久高清| 91精品国产手机| 亚洲激情在线观看视频| 天堂8中文在线最新版在线| 亚洲免费av高清| 亚洲精品成人a8198a| 亚洲av片在线观看| 国产91精品一区二区麻豆亚洲| 国产免费亚洲高清| 人人妻人人爽人人澡人人精品| 一区精品久久| 欧美精品在线观看91| 欧美人与禽zoz0善交| 亚洲精品中文字幕99999| 精品国产伦理网| 美女被艹视频网站| 亚洲欧美在线人成swag| 在线免费观看视频一区| 国模吧无码一区二区三区| av白虎一区| 亚洲国产中文字幕| 国产黄色激情视频| 色呦呦在线观看视频| 一区二区三区四区在线免费观看| 视频一区二区视频| 麻豆视频免费在线观看| 中文字幕中文字幕一区二区| 亚洲美女搞黄| 91欧美在线视频| 国产精品少妇自拍| 永久域名在线精品| 日本高清视频在线观看| 中文字幕在线观看一区| 宅男一区二区三区| 国产一区久久精品| 亚洲免费在线视频一区 二区| 免费成人深夜夜行网站视频| mm1313亚洲国产精品美女| 亚洲美女区一区| 欧美日韩视频免费| 678在线观看视频| 欧美日韩国产专区| 99精品视频播放| 日韩免费小视频| 欧美日本不卡视频| 色综合久久久无码中文字幕波多| 成人免费直播在线| 亚洲国产精品va在线看黑人| 人妻少妇精品视频一区二区三区| 九九精品在线| 色偷偷av一区二区三区乱| 99自拍视频在线| 欧美三区视频| 日韩av免费在线| 一级aaaa毛片| 成人做爰69片免费看网站| 蜜桃臀一区二区三区| 成人三级黄色免费网站| 亚洲女人小视频在线观看| 成人在线观看你懂的| www成人在线视频| 欧美一级二级三级蜜桃| 亚洲色图14p| 久久精品国产大片免费观看| 色综合久久久888| 国产美女激情视频| 激情六月婷婷久久| 激情视频在线观看一区二区三区| 岛国最新视频免费在线观看| 亚洲欧美日韩在线播放| 成人在线免费观看av| 国产成人久久精品麻豆二区| 精品国产一区二区亚洲人成毛片| 蜜桃传媒一区二区亚洲| 欧美激情1区| 日韩免费黄色av| 成人免费公开视频| 中文字幕精品—区二区四季| www.好吊操| 懂色aⅴ精品一区二区三区| 日韩精品一区二区三区三区免费| 国产黄色大片免费看| 狠狠干成人综合网| 国产精品久久久久久久av电影 | 色综合咪咪久久| 九九九九九国产| 欧美毛片免费观看| 久久精品久久精品亚洲人| 亚洲影院在线播放| 国产精品主播直播| 天堂一区二区三区 | 日韩av免费观影| 一区二区三区蜜桃网| 我要看一级黄色大片| 欧美一性一交| 欧美激情亚洲国产| 一级做a爱片久久毛片| 久久久精品国产99久久精品芒果| 2019日韩中文字幕mv| 亚洲ww精品| 在线观看视频99| 免费看一级视频| 99精品久久99久久久久| 久操手机在线视频| 精品三级久久久| 精品久久久91| 一区二区三区黄色片| 国产精品三级在线观看| 狠狠热免费视频| 欧美日韩伦理| 国产精品444| 理论在线观看| 一本大道久久a久久精二百| 亚洲图片综合网| 亚洲精品专区| 国语精品免费视频| 爱情岛亚洲播放路线| 精品国产一区二区三区忘忧草 | fc2ppv国产精品久久| 欧美日韩国产在线播放网站| 超碰人人干人人| 青青草伊人久久| 亚洲精品在线免费看| 久久久久久久性潮| 日韩专区在线观看| 97精品人妻一区二区三区香蕉| 国产精品久久久久久亚洲伦 | 久久精品国产成人av| www.亚洲在线| 亚洲中文字幕无码中文字| 日本欧美韩国国产| 日本一本a高清免费不卡| 青青免费在线视频| 日本丶国产丶欧美色综合| 舐め犯し波多野结衣在线观看| 日韩精品高清不卡| 亚洲一区不卡在线| 国内精品视频| 久久久久久久影院| 日韩黄色影片| 欧美日产在线观看| 黄色片在线观看网站| 成人av在线一区二区| 亚洲自偷自拍熟女另类| 九九热精品视频在线观看| 国产精品扒开腿做| 黄在线免费看| 亚洲第一精品福利| 久久久黄色大片| 国产精品精品国产色婷婷| 欧美xxxxxbbbbb| 国产日本精品| 亚洲图片欧洲图片日韩av| 久久久久久久久久久久电影| 性视频1819p久久| 第三区美女视频在线| 91精品国产欧美一区二区成人| 日本熟妇毛耸耸xxxxxx| 久久精品亚洲一区二区三区浴池 | 日韩成人三级视频| 亚洲专区视频| 亚洲综合av影视| 日韩欧美精品一区二区三区| 日韩中文字幕av| 男人天堂一区二区| 欧洲亚洲精品在线| 久久高清无码视频| xnxx国产精品| 日本特黄在线观看| 蜜桃视频一区| 9191国产视频| 欧美特黄一级大片| 国产精品一码二码三码在线| 成人高清一区| 98视频在线噜噜噜国产| 麻豆传媒在线观看| 亚洲剧情一区二区| 国产av一区二区三区| 欧美日韩在线免费| 欧美日韩国产精品一区二区三区| 国产三级精品三级在线专区| 午夜性福利视频| 日本怡春院一区二区| 免费一级特黄毛片| 久久久久电影| 日本视频一区二区不卡| www.成人网| 亚洲一区亚洲二区| 欧美性理论片在线观看片免费| 欧美激情视频在线| 免费黄色在线观看| 国产性猛交xxxx免费看久久| 欧美一区二区公司| 69p69国产精品| 亚洲视屏在线观看| 舔着乳尖日韩一区| 国产亚洲欧美精品久久久久久 | 国产成人啪午夜精品网站男同| 动漫av免费观看| 亚洲国产综合在线看不卡| 91制片厂免费观看| 欧美岛国激情| 视频一区二区综合| 要久久电视剧全集免费| 国产一区二区高清视频| 日韩有吗在线观看| 91在线精品播放| 91精品一久久香蕉国产线看观看| 国产精品久久久久久久久男| 日韩成人动漫| 欧洲中文字幕国产精品| free性m.freesex欧美| 久久久久久12| а√天堂8资源中文在线| 欧美高跟鞋交xxxxxhd| 四虎影院观看视频在线观看| 欧美大肥婆大肥bbbbb| a视频在线免费看| 久热在线中文字幕色999舞| 免费观看久久久久| 久久九九免费视频| 成年人网站在线| 欧美成人三级视频网站| 国产成人在线视频免费观看| 久久天堂电影网| 在线中文字幕视频观看| 欧美成人免费在线视频| 三级网站视频在在线播放| 欧美国产中文字幕| 成年网站在线视频网站| 高清欧美一区二区三区| 高端美女服务在线视频播放| 2023亚洲男人天堂| 芒果视频成人app| 国产精品久久久久久五月尺| 免费在线成人激情电影| 国产在线观看一区二区三区| 欧美黄色一级| 国产欧美一区二区在线播放| 欧美大胆a级| 日韩av高清| 99久久亚洲精品蜜臀| 天天做天天爱天天高潮| 激情综合视频| 国产天堂在线播放| 久久99国产精品免费| 日韩大尺度视频| 91视频国产资源| 欧美巨胸大乳hitomi| 亚洲图片激情小说| 人人干人人干人人干| 欧美午夜片在线看| 国产99对白在线播放| 日韩精品福利在线| eeuss影院www在线播放| 欧美另类极品videosbest最新版本| 国产精品探花在线| 国产成人精品a视频一区www| 综合久草视频| 激情视频在线观看一区二区三区| 欧美色图在线播放| 国产亚洲精品久久久久久久| 午夜在线精品| 中文国产在线观看| 91麻豆精品在线观看| 污污视频网站在线免费观看| 亚洲第一成年网| 在线观看免费高清视频| 日韩久久免费av| 国产高清免费av在线| 欧美日韩国产成人在线观看| 51一区二区三区| 国产伦精品一区二区三区高清版 | 正在播放木下凛凛xv99| 日韩一区二区在线观看视频播放| 免费在线观看污视频| 欧美另类在线播放| 外国电影一区二区| 国产亚洲欧美一区二区三区| 999久久久国产精品| 国产二区视频在线播放| 国产乱人伦偷精品视频免下载| 美女洗澡无遮挡| 亚洲妇女屁股眼交7| 国产精品怡红院| 一区二区欧美亚洲| 色吧亚洲日本| 国产伦精品一区二区三区在线| 91亚洲成人| www.天天射.com| 久久综合99re88久久爱| 久久久精品视频在线| 911精品产国品一二三产区| 你懂得在线网址| 97在线精品视频| 99精品在免费线中文字幕网站一区| 中文字幕欧美日韩一区二区| 丝袜美腿高跟呻吟高潮一区| 久久人妻一区二区| 亚洲午夜av在线| www.色呦呦| 久久视频国产精品免费视频在线| 8av国产精品爽爽ⅴa在线观看| 免费观看成人高| 亚洲人人精品| av电影在线播放| 一区二区三区免费| 精品黑人一区二区三区在线观看 | 国产一级生活片| 日韩欧美一级二级三级| 老司机午夜在线视频| 国产精品网站入口| 精品久久影视| 五月婷婷深爱五月| 久久久久久夜精品精品免费| 久久国产视频播放| 日韩精品黄色网| 超碰aⅴ人人做人人爽欧美| 久久伊人一区| 久久精品综合| 国产伦理片在线观看| 91福利在线导航| av在线首页| 成人国产精品色哟哟| 亚洲91精品| 在线观看一区二区三区视频| 亚洲自拍欧美精品| 好吊色一区二区三区| 97国产成人精品视频| 亚洲bt欧美bt精品777| 乱子伦视频在线看| 国产女同互慰高潮91漫画| 亚洲网站在线免费观看| 日韩专区在线观看| 亚洲视频三区| 国产精品宾馆在线精品酒店| 久久久亚洲国产美女国产盗摄| 日日夜夜狠狠操| 日韩视频在线一区| 麻豆久久一区| 老太脱裤让老头玩ⅹxxxx| 337p粉嫩大胆噜噜噜噜噜91av| 高潮无码精品色欲av午夜福利| 色综合伊人色综合网站| 日韩高清二区| 国产69精品久久久久久久| 日本一区二区三区在线观看| 一二三区在线播放| 午夜精品免费视频| 欧洲毛片在线视频免费观看| 不卡中文字幕在线观看| 亚洲大型综合色站| 久久这里精品| 91网站在线看| 宅男噜噜噜66国产日韩在线观看| 69视频在线观看免费| 91精品国产乱| 涩涩在线视频| 美国av在线播放| 972aa.com艺术欧美| 一区二区三区黄| **欧美日韩vr在线| 日韩欧美字幕| 日本一卡二卡在线| 欧美日韩黄视频| 啊啊啊久久久| 久久久一二三四| 91免费在线视频观看| 国产免费av观看| 奇米四色中文综合久久| 欧美在线观看天堂一区二区三区|