日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

Monkey自動化工具結合B端組件可行性探索

來源: 責編: 時間:2024-03-28 17:54:31 269觀看
導讀一、背景介紹日常的迭代或者技術改造之后,系統常常會出現一些功能丟失、新增接口權限和頁面白屏等問題。盡管事后可以依靠監控大盤查看監控數據來定位問題,但是這些手段是滯后的,無法提前發現系統已有問題。為了保障系統

一、背景介紹

日常的迭代或者技術改造之后,系統常常會出現一些功能丟失、新增接口權限和頁面白屏等問題。盡管事后可以依靠監控大盤查看監控數據來定位問題,但是這些手段是滯后的,無法提前發現系統已有問題。Zzr28資訊網——每日最新資訊28at.com

為了保障系統的穩定性和強壯性,常見的方案包括代碼層面覆蓋單元測試,保證已有代碼的強壯性,如前端平臺商家組已經推行單元測試用例覆蓋,但是也存在以下問題:Zzr28資訊網——每日最新資訊28at.com

  • 單元測試測試顆粒度較小
  • 大部分單側邏輯局限于函數級別的驗證,難以覆蓋整體流程

除了單元測試保障之外,系統集成測試在保障質量方面也起著重要作用。然而,集成測試同樣面臨時間成本高、遺漏問題、重復性測試等挑戰。特別是在功能全量回歸場景下, 測試用例數量龐大,手動回歸測試變得非常繁瑣。盡管業界已經有一些成熟的自動化回歸集成方案,例如通過錄制手段來自動生成測試用例,但這種方案仍然存在一些挑戰: Zzr28資訊網——每日最新資訊28at.com

  • 改變研發流程具有挑戰性:研發團隊通常會專注于新功能的開發和問題修復,所以增加測試用例錄制的環節可能會對時間和資源帶來壓力。
  • 用例維護成本較高:在敏捷迭代中,頁面UI頻繁變動和核心鏈路不斷更新迭代, 錄制生成的測試用例可能在下一次迭代中變得不再適用或無法執行,意味著測試用例需要進行不斷的更新和維護。

確實,為了應對迭代變更帶來的挑戰,的確需要尋找更靈活有效的自動化回歸方案。我們研發了一款創新的測試工具—Monkey Testing(簡稱Monkey)。本文將深入闡述Monkey的出發點、創新過程以及落地情況,探討其可行性和價值。Zzr28資訊網——每日最新資訊28at.com

二、Monkey誕生

Monkey , 也有人叫做搞怪測試,一般指用毫無規律的指令或操作去測試被測系統,觀察被測系統的穩定性。Zzr28資訊網——每日最新資訊28at.com

出發點

基于Monkey自動化平臺與前端平臺B端大倉組件的配套研究方向,圍繞B端單品組件ProTable、ProForm自動化測試可行性驗證。首先模擬真實用戶行為,通過數據填充,模擬不同類型的數據輸入,并通過Click事件觸發條件搜索, 來達到驗證接口異常場景下的健壯性的目的。同時,我們將通過劫持請求、捕獲JS執行上下文錯誤、網頁截圖判定白屏等方式,發現潛在的穩定性問題,從而提高系統的穩定性。Zzr28資訊網——每日最新資訊28at.com

我們提供低成本的自動化回歸方案,需要具有以下效果:Zzr28資訊網——每日最新資訊28at.com

  • 測試流程的自動化,降低測試成本同時提高準確性和覆蓋率。
  • 線上問題前置化,及早現版本可能存在白屏、接口請求響應異常、JavaScript運行時報錯等常見的通用問題,保障系統在線上環境的穩定性。

核心能力介紹

Monkey端側自動化能力Zzr28資訊網——每日最新資訊28at.com

圖片圖片Zzr28資訊網——每日最新資訊28at.com

Monkey平臺化能力建設

圖片圖片Zzr28資訊網——每日最新資訊28at.com

Monkey自動化測試核心流程

圖片圖片Zzr28資訊網——每日最新資訊28at.com

上述Monkey自動化測試實現,主要分為以下四個階段:Zzr28資訊網——每日最新資訊28at.com

  • 準備階段:在這個階段,首先需要進行B端SSO系統的免登,以確保Monkey能夠正常登錄系統。同時還需要獲取天網菜單數據源,以便后續的操作可以正確地找到對應的頁面和元素。
  • 執行階段:在這個階段,使用Puppeteer提供的客戶端瀏覽器環境,搭載隨機測試腳本,模擬用戶的行為操作(簡稱Monkey Runner)。通過這種方式,Monkey執行ProTable、ProForm測試模型用例,包括點擊、輸入、選擇等,以覆蓋不同的測試場景。
  • 數據劫持:在執行階段下的操作行為中,Puppeteer會捕獲異常情況。這些異常可能包括頁面加載失敗、元素找不到等問題。通過捕獲這些異常,可以及時發現并處理潛在的問題,以提高系統穩定性。
  • 數據清洗:在這個階段,基于Node服務實現數據上報和清洗。Monkey會將執行階段下的操作行為數據上報給后臺服務,后臺服務可以對這些數據進行分析和處理,以生成測試報告、統計指標等。同時,也可以對數據進行清洗,以去除無效或冗余的信息,保持數據的準確性和可用性。

三、Monkey創新過程

智能模擬用戶行為

Monkey通過模擬真實用戶的隨機操作(例如點擊、滾動、輸入等)來測試應用程序的輸入輸出是否具有穩定性和健壯性,以此來發現應用程序中的問題和異常行為,例如崩潰、卡死、界面異常等等,覆蓋系統各個功能模塊,發現潛在問題。Zzr28資訊網——每日最新資訊28at.com

圖片圖片Zzr28資訊網——每日最新資訊28at.com

Monkey以其簡單粗暴的方式隨機生成用戶輸入來模擬各種用戶行為,具有以下特點:Zzr28資訊網——每日最新資訊28at.com

  • 高覆蓋率:通過隨機輸入的方式,能夠觸發系統中各種不同操作。
  • 發現意料之外的異常:由于隨機性,Monkey 能夠發現一些預料之外的異常情況,幫助提前發現潛在問題。

盡管Monkey有很大的優勢,但也存在一些局限性:Zzr28資訊網——每日最新資訊28at.com

  • 準確性和可重復性受限:由于隨機生成輸入的特性,Monkey 無法保證測試的準確性和可重復性,可能導致某些特定場景下的行為無法被模擬。
  • 無法模擬特定場景下的用戶行為:由于隨機性導致無法模擬特定用戶行為和上下文環境,不利于測試特定場景下的交互和功能。

為了收斂Monkey 隨機性,達到更加精細化執行測試目的 ,我們將探索Monkey與B端組件二相互結合的可行性測試。Zzr28資訊網——每日最新資訊28at.com

Monkey結合B端組件測試

結合大倉組件能解決什么問題

大倉組件旨在解決前端平臺應用中的交互一致性和可復用性問題。結合大倉組件,我們可以將組件固化的操作行為拆解為多個測試步驟,每個步驟對應多條測試用例,以確保每個組件都具有各自的交互流程。在Monkey執行過程中的用例腳本階段,能夠準確模擬用戶行為,從而消除Monkey測試中的隨機性。Zzr28資訊網——每日最新資訊28at.com

結合大倉組件實踐

01ProTable單品類組件行為分析&拆解實戰

圖片圖片Zzr28資訊網——每日最新資訊28at.com

操作行為分析Zzr28資訊網——每日最新資訊28at.com

對ProTable組件的操作行為進行分析時,可以著重考慮以下方面:Zzr28資訊網——每日最新資訊28at.com

  1. 表格數據加載:用戶打開包含ProTable組件頁面時,首先會加載數據并顯示在表格,數據源通過接口請求獲取。
  2. 條件篩選和重置:對ProTable進行條件篩選以便查看數據,也可以重置篩選條件以恢復初始狀態。
  3. 表格分頁查詢:使用分頁器進行翻頁等操作,以便展示更多的數據內容。

拆解步驟Zzr28資訊網——每日最新資訊28at.com

以ProTable組件為例,可以將組件的操作行為拆解成以下步驟:Zzr28資訊網——每日最新資訊28at.com

步驟1:組件加載Zzr28資訊網——每日最新資訊28at.com

  • 測試用例:通過DOM Class 或者ID查詢判定是否存在元素。

步驟2:篩選和搜索和重置Zzr28資訊網——每日最新資訊28at.com

  • 測試用例: 驗證表格的搜索功能是否正確響應用戶輸入,并能正確篩選和顯示符合條件的數據。
  • 測試用例:模擬點擊重置按鈕,并確保表單數據被成功重置為默認值。

邊界:這塊我們能做的是模擬用戶輸入行為按鈕點擊觸發搜索。Zzr28資訊網——每日最新資訊28at.com

步驟3:分頁切換Zzr28資訊網——每日最新資訊28at.com

  • 測試用例:點擊頁面切換按鈕或輸入頁碼,驗證表格切換 調用接口有無異常。

邊界:這塊我們能做的是 模擬點擊頁碼行為  劫持請求是否異常。Zzr28資訊網——每日最新資訊28at.com

步驟4:數據列渲染Zzr28資訊網——每日最新資訊28at.com

  • 測試用例:請求到數據,列表元素正常渲染。

注意事項Zzr28資訊網——每日最新資訊28at.com

安全區域操作約束在測試環境中,一些刪除或更改操作可能會導致測試數據的不一致性或損壞,因此需要對測試環境中的點擊行為進行約束,確保在安全區域內進行操作。Zzr28資訊網——每日最新資訊28at.com

// 檢查一個元素是否在另外一個元素中 原理類似于JQ   $("#container").has(".selector"); const isSafeArea = (parentElement, childElement) => {  const childClassNames = Array.from(childElement.classList);  return childClassNames.every(className => parentElement.querySelector(`.${className}`));};const layoutContentElement = document.querySelector('.layout-content');const isisSafeAreaResult =  isSafeArea(layoutContentElement,element)

優化導航欄點擊許多B端系統中,導航欄是一個常見的元素。為了更加精確地進行測試并提高效率,我們需要規避導航欄的點擊或者A鏈接點擊跳轉,專注于當前頁面的操作。Zzr28資訊網——每日最新資訊28at.com

element.matches('a')

圖片圖片Zzr28資訊網——每日最新資訊28at.com

02ProForm單品類組件行為分析&拆解實戰

操作行為分析Zzr28資訊網——每日最新資訊28at.com

對ProForm組件的操作行為進行分析時,可以著重考慮以下方面:Zzr28資訊網——每日最新資訊28at.com

  1. 數據加載或關閉:通過點擊入口按鈕顯示彈窗,彈窗加載表單項:當用戶完成操作后點擊關閉按鈕,彈窗關閉。
  2. 表單操作:在彈窗表單項中可以進行數據輸入、選擇選項、上傳文件等操作。
  3. 數據校驗:填寫完表單數據后,ProForm組件會對表單數據進行校驗,確保輸入數據符合規定的格式要求。
  4. 數據提交:填寫完表單數據后,通過點擊提交按鈕將數據提交到后端接口進行保存或更新。

拆解步驟Zzr28資訊網——每日最新資訊28at.com

以ProForm組件為例,可以將組件的操作行為拆解成以下步驟:Zzr28資訊網——每日最新資訊28at.com

步驟1:組件加載Zzr28資訊網——每日最新資訊28at.com

  • 測試用例:通過DOM Class 或者ID查詢 判定是否存在元素。

步驟2:表單輸入填充Zzr28資訊網——每日最新資訊28at.com

  • 測試用例:表單項漸入數據
  • 測試用例:驗證表格的搜索功能是否正確響應用戶輸入,并能正確篩選和顯示符合條件的數據。
  • 測試用例:模擬點擊重置按鈕,并確保表單數據被成功重置為默認值。

邊界:開發FormFilter 函數盡量滿足通用的場景下的數據漸入能力;目前文件上傳場景、下拉聯動場景、遠程搜索場景未覆蓋。Zzr28資訊網——每日最新資訊28at.com

步驟3:表單驗證Zzr28資訊網——每日最新資訊28at.com

  • 測試用例:驗證輸入字段是否滿足預期的格式,如郵箱地址格式、密碼強度等。
  • 測試用例:驗證表單的必填字段是否被正確地標記,并且不能提交空值。

邊界:Monkey本身不具備帶有規則限制表單填充能力;數據來源于ProTable頁面數據和Input Types類型數據填充。Zzr28資訊網——每日最新資訊28at.com

步驟4:表單提交Zzr28資訊網——每日最新資訊28at.com

  • 測試用例:模擬點擊提交按鈕攔截接口是有異常。

步驟5:表單取消Zzr28資訊網——每日最新資訊28at.com

  • 測試用例:模擬點擊重置按鈕,并確保表單數據被成功關閉。

ProForm準確提交率Zzr28資訊網——每日最新資訊28at.com

衡量標準:通過劫持接口請求來判斷Proform是否成功提交,并且服務端接口是否返回狀態碼200。Zzr28資訊網——每日最新資訊28at.com

指標說明:Zzr28資訊網——每日最新資訊28at.com

  • 前端準確提交率:確保表單項數據填充完整且點擊提交按鈕能觸發提交接口(填寫的數據能夠通過前端校驗)
  • 業務準確提交率:前端準確提交基礎上,要求提交接口返回的HTTP狀態碼為200且bsCode為200(填寫的數據能夠通過服務端校驗)

統計過程如下:Zzr28資訊網——每日最新資訊28at.com

圖片圖片Zzr28資訊網——每日最新資訊28at.com

  1. 為每個巡檢的頁面 URL 分配唯一的 UID,并記錄 UID 與 Page URL 的映射關系。
  2. 當頁面彈出新增彈窗時,填充完數據并點擊提交,記錄事件類型為 event_type = 'CLICK',同時記錄時間戳和 UID。
  3. 劫持接口數據,并記錄事件類型為 event_type = 'RESPONSE'。
  4. 對 event_type = 'RESPONSE' 的時間戳進行分組統計,確保大于 event_type = 'CLICK' 的時間戳。

根據當前數據統計,前端準確提交率約為60%+,繞過服務端校驗準確提交率約為20%+。Zzr28資訊網——每日最新資訊28at.com

圖片圖片Zzr28資訊網——每日最新資訊28at.com

表單項數據填充

表單項數據填充主要有2種類型,分別為Input types填充和劫持表格數據源實現精準填充。Zzr28資訊網——每日最新資訊28at.com

圖片圖片Zzr28資訊網——每日最新資訊28at.com

01表單項 - Input types 通用填充Zzr28資訊網——每日最新資訊28at.com

B端系統未接入類型檢測工具,  接口請求參數類型約束不嚴格。Monkey 會根據 Input Types 類型隨機生成字符串,填充表單項以觸發接口調用,發現接口參數類型錯誤。Zzr28資訊網——每日最新資訊28at.com

1. Input types 類型窮舉表單項的填充方式(MDN輸入元素):文本類型(input type="text")、數據類型 (input type="number")、郵箱類型 (input type="email")、日期類型(input type="date")、單選框 類型(input type="radio")、復選框類型(input type="checkbox") Zzr28資訊網——每日最新資訊28at.com

圖片圖片Zzr28資訊網——每日最新資訊28at.com

圖片圖片Zzr28資訊網——每日最新資訊28at.com

// input type 集合const defaultMapElements = {    textarea: fillTextAreaElement,    'input[type="text"]': fillTextElement,    'input[type="password"]': fillTextElement,    'input[type="number"]': fillNumberElement,    select: fillSelect,    'input[type="radio"]': fillRadio,    'input[type="checkbox"]': fillCheckbox,    'input[type="email"]': fillEmail,    'input:not([type])': fillTextElement,    };  // 填充邏輯 const fillTextElement = async (element, character) => {  const selectedCharacters = Array.from({ length: 5 }, () =>randomizer.getCharacter[Math.floor(Math.random() * randomizer.getCharacter.length)]).join('');  const newValue = element.value + (character ? character : selectedCharacters);  if (element) {    triggerSimulatedOnChange(element, newValue, window.HTMLInputElement.prototype);    return newValue;  } };  // Hacky function to trigger react, angular & vue.js onChange on input const triggerSimulatedOnChange = (element, newValue, prototype) => {      const lastValue = element.value;      element.value = newValue;      const nativeInputValueSetter = Object.getOwnPropertyDescriptor(prototype, 'value').set;      nativeInputValueSetter.call(element, newValue);      const event = new Event('input', { bubbles: true }) as CustomEvent;      // React 15      event.simulated = true;      // React >= 16      let tracker = element._valueTracker;      if (tracker) {          tracker.setValue(lastValue);      }      element.dispatchEvent(event);  };

2. 接口參數類型錯誤Zzr28資訊網——每日最新資訊28at.com

案例:后臺頁面Barcode條件篩選系統異常。Zzr28資訊網——每日最新資訊28at.com

歸因:前端未限制Barcode只能輸入Number類型;服務端用Long類型字段接收BarCode字段,隨機輸入了String類型的值時,系統出現異常。Zzr28資訊網——每日最新資訊28at.com

  • 場景 - 服務端接口參數未校驗

圖片Zzr28資訊網——每日最新資訊28at.com

圖片Zzr28資訊網——每日最新資訊28at.com

圖片圖片Zzr28資訊網——每日最新資訊28at.com

  • 場景 - 服務端接口參數已校驗

圖片圖片Zzr28資訊網——每日最新資訊28at.com

圖片圖片Zzr28資訊網——每日最新資訊28at.com

圖片圖片Zzr28資訊網——每日最新資訊28at.com

02表單項 - 精準填充Zzr28資訊網——每日最新資訊28at.com

圖片圖片Zzr28資訊網——每日最新資訊28at.com

說明:在 ProTable 篩選和 ProForm 表單項數據填充場景下,希望數據填充能夠精確匹配,表單項的數據源來自于 ProTable 表格數據。統計該數據是為了衡量表格數據與ProTable & ProForm 輸入項的匹配率指標,該指標為輔助性指標。指標的數值越高,ProTable場景代表覆蓋篩選場景越多;Proform場景代表表單校驗驗證通過率越高。根據目前的數據統計,整體匹配率占比約為 50%+左右。Zzr28資訊網——每日最新資訊28at.com

實時驗證前后端接口參數一致性

案例:后臺頁面篩選條件返回結果錯誤。Zzr28資訊網——每日最新資訊28at.com

歸因:接口字段改動,前端接口請求參數字段名錯誤。Zzr28資訊網——每日最新資訊28at.com

為解決服務端接口字段調整導致前端無法及時感知接口參數變化的問題,我們擬計劃接入文檔接口平臺開放API。通過查詢接口API獲取請求參數、響應參數及其類型,以驗證前后端接口參數的一致性。若接口正常但文檔定義存在問題,可反向約束規范接口定義文檔流程。Zzr28資訊網——每日最新資訊28at.com

圖片圖片Zzr28資訊網——每日最新資訊28at.com

自動化錯誤捕獲

通過劫持請求、捕獲JS執行上下文錯誤、網頁截圖判定白屏等方式,來快速檢測頁面故障。Zzr28資訊網——每日最新資訊28at.com

錯誤類型分類

圖片圖片Zzr28資訊網——每日最新資訊28at.com

常規錯誤捕獲

除了上述捕獲的錯誤問題,還列舉些其他常見錯誤。這里我們通過場景模擬,驗證Monkey的錯誤捕獲能力。Zzr28資訊網——每日最新資訊28at.com

1. 模擬接口請求404場景 - 劫持請求檢測Zzr28資訊網——每日最新資訊28at.com

圖片圖片Zzr28資訊網——每日最新資訊28at.com

圖片Zzr28資訊網——每日最新資訊28at.com

2. 模擬白屏場景 - 白屏檢測Zzr28資訊網——每日最新資訊28at.com

圖片Zzr28資訊網——每日最新資訊28at.com

圖片Zzr28資訊網——每日最新資訊28at.com

3. 模擬JS 執行上下文異常 - 劫持JSError檢測Zzr28資訊網——每日最新資訊28at.com

圖片Zzr28資訊網——每日最新資訊28at.com

圖片Zzr28資訊網——每日最新資訊28at.com

用例模型定制化配置

圖片Zzr28資訊網——每日最新資訊28at.com

在用例管理的前期階段,我們將首先支持系統生成的通用類型用例。這些通用類型用例是根據業務需求在開發過程中編寫的,涵蓋B端系統的主要功能和常見場景。經過驗證和測試后,這些用例可以作為基準用例使用。Zzr28資訊網——每日最新資訊28at.com

為了滿足不同場景下的測試需求,將逐步開放定制能力。為用戶提供文檔和示例、可視化配置界面以及插件化擴展機制,降低用戶編寫用例的難度和上手成本。具體內容如下:Zzr28資訊網——每日最新資訊28at.com

  1. 文檔和示例:提供詳細的文檔和示例,幫助用戶理解如何配置Monkey的用例模型,以及如何利用上述的配置文件、可視化界面和擴展機制來定制Monkey的行為。這樣可以讓用戶更容易上手,并且了解如何利用Monkey的定制化設置來滿足不同的測試需求。
  2. 可視化配置界面:為了提高易用性,可以開發一個可視化的配置界面,讓用戶可以通過圖形化界面來配置Monkey的行為模式和參數,而不需要直接編輯配置文件。這樣的界面可以提供簡單的拖拽、下拉菜單等操作,讓用戶能夠直觀地配置Monkey的行為。
  3. 插件化擴展機制:為了未來開放給用戶并支持更多定制化需求,設計一個插件化的擴展機制,讓用戶可以編寫自定義的插件來擴展Monkey的行為模式。這樣的擴展機制可以提供接口和文檔,讓用戶能夠編寫自定義的行為模式、觸發條件等,從而實現更靈活的定制化設置。

四、Monkey可行性探索情況

我們成功接入了《運營后臺系統》項目,并順利完成了流程。經過數據收集和清洗等步驟,產出了數據分析報告。Zzr28資訊網——每日最新資訊28at.com

數據分析

圖片圖片Zzr28資訊網——每日最新資訊28at.com

圖片圖片Zzr28資訊網——每日最新資訊28at.com

有效錯誤率統計

圖片圖片Zzr28資訊網——每日最新資訊28at.com

注:在每次任務中,錯誤數量保持相對穩定的水平。Zzr28資訊網——每日最新資訊28at.com

五、總結 & 規劃

Monkey作為一種創新的測試工具,為系統穩定性的保障提供了新的思路和方法。通過結合B端組件可行性探索,我們發現Monkey在實際項目中具有良好的應用前景和價值。根據數據分析結果,Monkey在系統穩定性的提升方面展現出了巨大的潛力。通過對有效錯誤率、分類錯誤項和優化方案的分析,我們發現Monkey可以幫助識別各種類型的錯誤,從而提升系統的穩定性和可靠性。這些數據清晰地展示了Monkey在實際項目中的應用前景和價值,預示著Monkey將為系統穩定性的提升帶來新的可能性。Zzr28資訊網——每日最新資訊28at.com

在未來的優化計劃中,我們將重點關注以下幾個方面:Zzr28資訊網——每日最新資訊28at.com

  1. 優化現有組件的數據匹配準確率。
  2. 組件品類的擴充,擴大支持的組件品類,覆蓋更廣泛的測試場景。
  3. 定制化配置用例模型,旨在提高錯誤類型識別的準確性。
  4. 提高系統的運行效率,計劃整合CI/CD流程。

本文鏈接:http://m.www897cc.com/showinfo-26-80204-0.htmlMonkey自動化工具結合B端組件可行性探索

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 美團二面:如何設計一個訂單超時未支付關閉訂單的解決方案?

下一篇: 智電出行就泄露小米汽車 SU7 試駕視頻發布道歉聲明

標簽:
  • 熱門焦點
  • vivo TWS Air開箱體驗:真輕 臻好聽

    在vivo S15系列新機的發布會上,vivo的最新款真無線藍牙耳機vivo TWS Air也一同發布,本次就這款耳機新品給大家帶來一個簡單的分享。外包裝盒上,vivo TWS Air保持了vivo自家產
  • 帥氣純真少年!日本最帥初中生選美冠軍出爐

    日本第一帥哥初一生選美大賽冠軍現已正式出爐,冠軍是來自千葉縣的宗田悠良。日本一直熱衷于各種選美大賽,從“最美JK”起到“最美女星&r
  • 從 Pulsar Client 的原理到它的監控面板

    背景前段時間業務團隊偶爾會碰到一些 Pulsar 使用的問題,比如消息阻塞不消費了、生產者消息發送緩慢等各種問題。雖然我們有個監控頁面可以根據 topic 維度查看他的發送狀態,
  • 學習JavaScript的10個理由...

    作者 | Simplilearn編譯 | 王瑞平當你決心學習一門語言的時候,很難選擇到底應該學習哪一門,常用的語言有Python、Java、JavaScript、C/CPP、PHP、Swift、C#、Ruby、Objective-
  • 破圈是B站頭上的緊箍咒

    來源 | 光子星球撰文 | 吳坤諺編輯 | 吳先之每年的暑期檔都少不了瞄準追劇女孩們的古偶劇集,2021年有優酷的《山河令》,2022年有愛奇藝的《蒼蘭訣》,今年卻輪到小破站抓住了追
  • 疑似小米14外觀設計圖曝光:后置相機模組變化不大

    下半年的大幕已經開啟,而誰將成為下半年手機圈的主角就成為了大家關注的焦點,其中被傳有望拿下新一代驍龍8 Gen3旗艦芯片的小米14系列更是備受大家矚
  • 華為發布HarmonyOS 4:更好玩、更流暢、更安全

    在8月4日的華為開發者大會2023(HDC.Together)大會上,HarmonyOS 4正式發布。自2019年發布以來,HarmonyOS一直以用戶為中心,經歷四年多的發展HarmonyOS已
  • AI芯片初創公司Tenstorrent獲三星和現代1億美元投資

    Tenstorrent是一家由芯片行業資深人士Jim Keller領導的加拿大初創公司,專注于開發人工智能芯片,該公司周三表示,已經從現代汽車集團和三星投資基金等
  • iQOO 11S評測:行業唯一的200W標準版旗艦

    【Techweb評測】去年底,iQOO推出了“電競旗艦”iQOO 11系列,作為一款性能強機,該機不僅全球首發2K 144Hz E6全感屏,搭載了第二代驍龍8平臺及144Hz電競
Top 日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不
亚洲视频免费观看| 国产精品综合| 美女精品在线观看| 欧美大片免费观看| 欧美视频在线观看视频极品| 国产精品社区| 欲香欲色天天天综合和网| 亚洲第一精品在线| 在线一区日本视频| 久久国产精品一区二区| 欧美凹凸一区二区三区视频| 欧美精品日韩www.p站| 国产精品久久久久久久久久直播| 国产亚洲精品久久久久动| 亚洲国产日韩欧美一区二区三区| 亚洲视频国产视频| 久久久久久有精品国产| 欧美日韩高清免费| 国产自产高清不卡| 99在线观看免费视频精品观看| 欧美在线观看一区| 欧美日韩国产成人在线| 国产偷久久久精品专区| 欧美精品在线观看91| 国产精品久久77777| 在线成人免费视频| 亚洲一二三四区| 玖玖在线精品| 国产精品一区2区| 最新国产乱人伦偷精品免费网站 | 亚洲国产精品成人综合色在线婷婷| 夜夜精品视频一区二区| 久久久久久一区二区| 国产精品v片在线观看不卡| 尤物yw午夜国产精品视频明星| 亚洲一级在线观看| 欧美国产精品久久| 国内精品久久久久久| 亚洲一区二区在线视频| 欧美激情视频一区二区三区免费 | 久久精品免费播放| 国产精品国产馆在线真实露脸| 亚洲高清视频的网址| 欧美一区二区三区四区高清| 欧美日韩综合在线| 亚洲欧洲一区| 噜噜噜躁狠狠躁狠狠精品视频| 国产精品亚洲视频| 一区二区精品在线| 欧美激情欧美激情在线五月| 精品成人一区二区三区| 欧美一区二视频| 国产精品欧美激情| 亚洲午夜精品17c| 欧美久久99| 亚洲欧洲久久| 美女脱光内衣内裤视频久久影院| 国产麻豆成人精品| 亚洲永久免费| 欧美亚洲第一页| 一区二区久久| 欧美麻豆久久久久久中文| 亚洲国产精品成人| 久久久精品日韩欧美| 国产亚洲成av人在线观看导航 | 国产又爽又黄的激情精品视频| 亚洲欧美电影院| 国产精品黄视频| 亚洲永久网站| 国产精品久久中文| 亚洲尤物精选| 国产精品久久久久久av福利软件| 9色国产精品| 欧美日韩和欧美的一区二区| 亚洲精品免费在线播放| 欧美高清hd18日本| 亚洲精品日韩欧美| 欧美日本亚洲视频| 99精品国产在热久久下载| 欧美激情中文字幕乱码免费| 亚洲久久一区| 欧美日韩一区三区| 国产精品国产三级国产aⅴ入口| 99re8这里有精品热视频免费| 欧美激情视频在线免费观看 欧美视频免费一| 亚洲成人在线| 欧美福利一区二区| 99日韩精品| 欧美四级在线观看| 亚洲欧美视频在线| 国产亚洲欧美一区在线观看| 久久精品99无色码中文字幕| 国语自产精品视频在线看抢先版结局 | 国产日韩欧美中文| 久久精品99国产精品| 黄色成人91| 欧美不卡在线| 99国产精品一区| 国产精品vvv| 亚洲免费在线观看视频| 国产日产精品一区二区三区四区的观看方式 | 男人插女人欧美| 亚洲乱码视频| 另类酷文…触手系列精品集v1小说| 午夜精品久久久久久久蜜桃app| 日韩午夜免费视频| 欧美性色aⅴ视频一区日韩精品| 亚洲乱码视频| 国产日韩欧美中文| 国产毛片一区二区| 欧美日韩色综合| 欧美日韩视频在线| 欧美日韩一区二区免费视频| 久久综合999| 麻豆91精品91久久久的内涵| 日韩视频免费| 99国产精品国产精品久久| 亚洲视频大全| 久久久国产精品一区| 欧美日韩在线大尺度| 亚洲成人直播| 欧美在线视频日韩| 久久综合色影院| 国产精品福利在线观看| 伊人成人在线视频| 亚洲人在线视频| 老司机成人网| 国产日韩在线一区| 久久深夜福利| 欧美日韩亚洲成人| 含羞草久久爱69一区| 欧美一区二视频| 国产精品视频精品视频| 欧美主播一区二区三区美女 久久精品人 | 欧美影院午夜播放| 久久嫩草精品久久久精品一| 性久久久久久久久| 国产精品一区在线观看| 亚洲在线观看视频| 国产一区视频观看| 亚洲已满18点击进入久久 | 一本色道久久综合亚洲精品按摩| 一区二区三区www| 欧美日韩成人综合天天影院| 国产农村妇女精品| 久久精品中文| 亚洲九九爱视频| 国产精品草草| 久久国产精品毛片| 91久久精品网| 欧美日韩国产精品成人| 亚洲综合第一页| 亚洲国产一区二区a毛片| 性欧美videos另类喷潮| 久久久精品国产一区二区三区| 亚洲精品一区中文| 国产亚洲福利社区一区| 欧美日韩1区2区3区| 久久综合色一综合色88| 亚洲国产你懂的| 欧美一区二区免费视频| 欧美极品aⅴ影院| 美女视频黄免费的久久| 一本高清dvd不卡在线观看| 好吊色欧美一区二区三区视频| 欧美日韩国产一区二区三区| 可以免费看不卡的av网站| 亚洲专区一二三| 亚洲免费高清| 亚洲第一天堂av| 国产午夜精品在线观看| 国产精品mv在线观看| 亚洲国产高清在线| 国产综合18久久久久久| 国产精品一国产精品k频道56| 欧美激情一二三区| 久久先锋影音av| 欧美在线不卡视频| 亚洲影院免费| 亚洲视频福利| 亚洲最新合集| 亚洲日韩成人| 亚洲国产小视频| 亚洲福利一区| 影音先锋亚洲电影| 狠狠狠色丁香婷婷综合久久五月| 国产嫩草一区二区三区在线观看 | 国产亚洲激情在线| 国产精品免费一区豆花| 欧美午夜精品久久久久久浪潮 | 好吊妞这里只有精品| 国产啪精品视频| 国产乱肥老妇国产一区二| 国产精品久久久久免费a∨| 欧美视频在线播放| 欧美四级在线| 国产精品成人观看视频国产奇米| 欧美日韩一区二区在线播放| 欧美日韩一区在线观看| 欧美日韩一区二区在线视频 | 欧美高清视频一区| 欧美福利电影在线观看| 欧美刺激性大交免费视频| 牛牛国产精品|