主頁 >  其他 > Web前端自動化測驗Cypress實踐總結

Web前端自動化測驗Cypress實踐總結

2021-06-09 16:36:37 其他

    本文主要首先主要介紹了什么是自動化測驗,接著對常用的自動化測驗框架進行了對比分析,最后,介紹了如果將自動化測驗框架Cypress運用在專案中,

 

一、自動化測驗概述

    為了保障軟體質量,并減少重復性的測驗作業,自動化測驗已經被廣泛運用,在開始學習自動化測驗之前,我們很有必要先搞清楚這幾個問題,什么是自動化測驗?為什么要做自動化測驗?哪些專案適合做自動化測驗?

1、什么是自動化測驗

    自動化測驗是一種測驗方法,是指使用特定的軟體,去控制測驗流程,并比較實際結果與預期結果之間的差異,通過將測驗自動化,可以把人對軟體的測驗行為轉化為由機器自動執行測驗的行為,從而替代大量的手工測驗操作,使得測驗可以快速,反復的進行,

    關于自動化測驗,有一個測驗金字塔模型,該模型把測驗從下到上分為了單元測驗、集成測驗和端到端測驗(E2E測驗/UI界面測驗),越往金字塔底層,測驗成本越低,效率也越高,而越往金字塔的頂層,測驗成本會逐漸增高,收益也會越低,

  • 單元測驗

    單元測驗又稱為模塊測驗,主要針對程式中最小可測驗單元(一般指方法,類)的測驗,具備投入小、收益產出高的特征,可以較早期地發現代碼缺陷,適用于公共函式庫的測驗,

  • 集成測驗

    集成測驗主要包括模塊介面測驗,子功能模塊集成起來的功能模塊測驗等,目的是為了驗證在單元測驗的基礎上,所有模塊集成起來的子系統、子功能是否仍然滿足質量目標,

  • 端到端測驗

    端到端測驗的主要目的是從軟體使用者角度來檢驗軟體的質量,如打開瀏覽器,進行一系列的操作,驗證界面或功能是否符合預期,

    不同型別的專案,具有不同的測驗場景,因此也需要采用不同的測驗型別,對于開發人員來說,單元測驗專注于代碼底層,可能是一種比較友好的選擇,但是站在產品的角度上,也許端到端測驗(E2E)是更好的選擇,更能保障產品功能符合預期,

 

    講完了自動化測驗型別,我們再來看看測驗中常用的測驗模式,一般常用的測驗模式包括TDD和BDD兩種,

  • TDD

    TDD(測驗驅動開發,Test Driven Development),TDD是指先寫測驗用例代碼,再寫功能代碼,并且不斷的重復上述步驟直到完成開發作業,TDD一般結合單元測驗使用,是白盒測驗,

  • BDD

    BDD(行為驅動開發,Behavior Driven Development),BDD是指先寫功能代碼,再寫測驗用例代碼,BDD一般結合集成測驗或端到端測驗使用,是黑盒測驗,

    當然,是選擇TDD還是BDD,也是需要從專案的實際角度出發考慮,再做選擇,

 

2、為什么要做自動化測驗

    接下來,我們再來聊聊為什么要做自動化測驗?在實際的專案開發中,我們常常會遇到以下問題:

  • 產品迭代頻繁

    迭代程序中不可避免的需要新增功能或修改功能,怎么保障新功能的發布不會影響原有功能呢?

  • 多人共同參與開發,代碼維護難

    專案開發程序中多人參與開發,人員變動頻繁,開發程序中可能出現誤刪或誤改他人代碼邏輯的問題,如何保障代碼的質量和可靠性?

  • 測驗人力不足,回歸測驗耗時耗力

    為了解決上面提到的兩個問題,其實方法很簡單,就是每次新功能發布后,都對原有功能再進行回歸測驗,但是又可能遇到測驗人力不足的情況,自己手動進行回歸測驗又耗時耗力,如何才能減少重復性作業,提高效率呢?說到這里,自動化測驗就派上用場啦~

 

    那專案引入自動化測驗有什么好處呢?自動化測驗的好處主要包括了以下幾點,

  • 驗證代碼正確性,保障產品質量

    可以驗證代碼或產品功能的正確性,確保每次產品迭代,新功能和原有功能能夠正確集成,保證產品質量,

  • 提高測驗效率

    撰寫的測驗用例具有一次撰寫,多次運行的特點,通過執行測驗腳本,可以實作使得測驗快速,反復的進行,可以替代大量的重復性手動測驗作業,提高效率,

  • 起到檔案作用

    撰寫的測驗用例可以起到檔案的作用,有利于專案后續的維護,

 

3、哪些專案適合引入自動化測驗

    既然自動化測驗有這么多好處,那是不是所有專案都適合引入自動化測驗呢?當然不是!自動化測驗需要進行測驗用例的撰寫,需要一定的開發成本,我們需要立足于專案本身,再來決定是否適合引入自動化測驗,

  • 適合引入自動化測驗的專案

    1)產品周期較長,需要不斷進行迭代/重構的專案,2)公共庫類的開發維護,

  • 不適合引入自動化測驗的專案

    1)產品周期過短的專案,2)需求變動過于頻繁的專案,

 

二、前端自動化測驗框架選擇

    在明確了我們的專案有必要引入自動化測驗之后,就需要選擇一款自動化測驗框架或工具來幫助我們完成自動化測驗作業啦~

1、測驗框架對比

    下面主要對比了現在常用的Web前端自動化測驗框架,如果需要了解更多的框架,可以參考測驗框架選型

  Jest Mocha Selenium/WebDriver Nightwatch TestCafe Cypress
支持測驗型別 單元測驗 單元測驗 E2E測驗 E2E測驗、Node.js單元和集成測驗 E2E測驗 單元測驗、集成測驗、E2E測驗
支持語言 JS、Node JS、Node Java、Python、C#、JS JS、Node JS、TypeScript JS
是否支持可視化測驗
是否自帶斷言庫
是否開箱即用 是(安裝配置繁瑣)
錄制生成腳本 / / 支持 不支持 不支持 不支持
Github Star 35.2k 20.5k 20.8k 10.7k 8.9k 31.3k
檔案 Jest檔案 Mocha檔案 Selenium檔案 Nightwatch檔案 Testcafe檔案 Cypress檔案

 

    在上述框架中,由于Cypress能夠同時支持單元測驗、集成測驗和E2E測驗,提供了一套完成的測驗解決方案,能夠滿足我們的需求,此外,Cypress支持JS撰寫測驗用例,支持Jquery元素定位選擇器,支持Headless和CI持續集成,運行速度快,上手成本低,并且具有可視化除錯界面,方便定位問題,因此決定嘗試將Cypress運用到專案中,

 

三、Cypress實踐

    接下來,主要介紹如何將Cypress運用在專案中,

1、Cypress安裝

    在安裝Cypress時,可以直接在原有的專案上進行安裝,也可以另起一個專案安裝,

npm install cypress --save-dev

 

2、Cypress啟動

    Cypress主要包含以下兩種啟動方式:

    1)命令列執行npx cypress open:會在瀏覽器打開測驗用例集的界面,需要手動運行,

    2)命令列執行npx cypress run:會以無頭瀏覽器模式運行指定的所有測驗用例,沒有可視化界面,但運行程序中會錄制整個測驗程序的視頻,可在cypress/videos目錄下查看,

    當然,除了直接在命令列運行上述命令,也可以通過配置package.json的scripts欄位來定義啟動方式,

"scripts": {
    "serve": "vue-cli-service serve",
    "build": "vue-cli-service build",
    "lint": "vue-cli-service lint",
    "cypress:open": "npx cypress open",
    "cypress:run": "npx cypress run"
}

 

  • 可視化界面運行

     如果我們需要在可視化界面進行測驗,在配置好package.json后,只需要執行npm run cypress:open,就可以啟動Cypress,實作可視化除錯,如果在啟動的程序中遇到以下錯誤,可以先執行npx cypress install -force,再重新啟動Cypress,

    如果成功啟動Cypress,將會看到以下界面,examples目錄下是cypress自帶的測驗用例演示代碼(如果后面不需要,我們可以將這些測驗用例洗掉),點擊其中的某個測驗用例,將會自動打開瀏覽器運行測驗用例,

   如果我們是第一次啟動Cypress,會發現在專案根目錄下也自動生成了cypress.json組態檔和cypress目錄,其中,integration檔案夾就是我們用來存放測驗用例的目錄,可以在cypress.json中自定義這些默認目錄的命名,

 

  • 無頭瀏覽器模式運行

    如果我們想以無頭瀏覽器模式運行,在配置好package.json后,需要執行npm run cypress:run,Cypress就會以無頭瀏覽器的模式運行指定的所有測驗用例,

 

3、撰寫測驗用例

    接下來以驗證百度頁面的搜索功能為例,演示如何撰寫測驗用例,測驗用例可以以.spec.js或.js結尾命名,并放入cypress/integration中,

    專案目錄如下所示,在cypress/integration中創建test.js或test.spec.js測驗用例檔案,

    接著,可以在test.js中開始撰寫測驗用例,Cypress支持Jquery元素選擇器及漢字選擇器,并且也支持鏈式操作,此外,由于Cypress擁有自動等待機制,我們無須在測驗中添加wait或sleep,Cypress會自動等待元素至可操作狀態時才執行命令或斷言

/// <reference types="cypress" />

context('百度頁面測驗', () => {
  it('訪問百度頁面,驗證搜索功能', () => {
    cy.visit('https://www.baidu.com').then(() => {
      // 1. 輸入搜索內容
      cy.get(".s_ipt").should("exist").type("Cypress自動化測驗");
      // 2. 點擊百度一下按鈕
      cy.get(".s_btn").contains("百度一下").should("exist").click();
      // 3. 驗證搜索內容不為空
      cy.get("#content_left").find("div").then(ele => {
        expect(ele.length).gt(0);
      });
    });
  });
});

    撰寫完上述代碼,我們就可以直接啟動Cypress運行啦,當然,我們也可以根據實際需要在cypress.json進行一些配置,下面給出了一些常用的配置,可以在Cypress檔案查看更多配置,

    最后,執行npm run cypress:open啟動Cypress,啟動成功后,我們就可以看到以下界面,點擊test.js,就會在瀏覽器中運行該測驗用例,

   在測驗用例執行的程序中,每一步操作都會被記錄下來,可以點擊左邊的界面對每一步的操作進行回看,可以幫助我們快速定位問題,

 

4、Cypess檔案上傳/下載

    在實際的使用程序中,我們通常也需要驗證檔案上傳或下載功能,而Cypress也能夠滿足這些需求,

    1)檔案上傳

    首先需要安裝cypress-upload-file插件,

npm install cypress-upload-file --save-dev

    將要上傳的檔案放到cypress/fixtures中,

    撰寫測驗用例代碼,

/// <reference types="cypress" />

context('檔案上傳', () => {
  it('驗證檔案上傳功能', () => {
    // 訪問頁面,此處步驟省略
    let file = "file/cover.jpg";
    cy.get("input[type='file']").attachFile(file);
    // 執行斷言,此處步驟省略
  });
});

    

    2)檔案下載

    若我們在運行測驗用例的程序中存在檔案下載操作,Cypress會自動在cypress目錄下創建一個downloads目錄,所下載的檔案會自動保存在該目錄中,

    可以在測驗用例中讀取并決議下載的檔案,

/// <reference types="cypress" />

const path = require("path");

context('檔案下載', () => {
  it('驗證檔案下載功能', () => {
    // 訪問頁面,執行下載操作,此處步驟省略
    const downloadsFolder = Cypress.config("downloadsFolder");
    const downloadedFilename = path.join(downloadsFolder, "下載檔案.xls");
    // 讀取檔案
    cy.readFile(downloadedFilename).then(data =https://www.cnblogs.com/Yellow-ice/p/> {
      // 執行斷言,此處步驟省略
    });
  });
});

    

5、Cypress測驗報告

    在執行完自動化測驗后,我們通常都希望能夠得到一份詳細的測驗報告,而Cypress也能夠提供這個功能,Cypress除了內置的測驗報告,也支持用戶自定義報告格式,

    1)內置的測驗報告

    Cypress內置的測驗報告主要包括了spec格式報告(在控制臺視窗輸出嵌套分級視圖),json格式報告(在控制臺視窗輸出一個大的json物件)和junit格式報告(輸出一個xml檔案),以spec格式報告為例,在啟動cypress時加上以下引數即可,

    2)自定義的測驗報告

    常用的自定義測驗報告有Mochawesome報告,Mochawesome是與Mocha一起使用的自定義報告程式,并與mochawesome-report-generator結合使用以生成獨立的HTML/CSS報告,

    安裝mocha和mochawesome,

npm install mocha --save-dev
npm install mochawesome --save-dev

     修改啟動引數,

    運行npm run cypress:run,執行結束后,會在專案根目錄下生成mochawesome-report目錄,

    在瀏覽器中打開mochawesome.html,就可以查看可視化測驗報告,

 

四、撰寫可維護的測驗腳本

    在實際撰寫測驗用例的程序中,隨著頁面的增多,我們常常會遇到以下這些問題,而這個時候,如何撰寫可維護的測驗腳本,方便后期維護,也顯得非常重要,這里也總結了實際開發中的一些經驗,

1、測驗用例代碼結構組織

    在撰寫測驗用例時,我們可以一個頁面對應一個測驗檔案,也可以同個功能模塊的頁面一起對應一個測驗檔案,并且和平時開發中所采用的代碼組織結構類似,將不同的測驗檔案劃分到對應的目錄下進行管理,方便后期的維護,

   

2、頁面選擇器統一管理

    在E2E測驗中,我們通常需要獲取頁面元素,才能夠進行點擊等操作,而Cypress支持Jquery選擇器,我們可以通過元素的class或id定位元素,但是一旦頁面的類名或id發生變化,我們不得不修改對應頁面的所有測驗用例,

    在撰寫測驗用例的程序中,我們可以將頁面選擇器進行統一管理,實作類名或id選擇器和邏輯代碼的分離,對于每個頁面或者每個測驗檔案,可以創建一個對應的xxxControl.js檔案,在該檔案中,將會定義一個json物件并且export出來,其中,key為我們自己定義的選擇器名稱,而value值對應頁面中實際的class或id

    由于目前專案中使用到了iview組件庫,因此也提取出了commonControl.js,對iview的選擇器進行統一管理,

    由于每個頁面都采用到了iview組件,因此每個頁面或每個測驗檔案對應的control.js都需要將上面的commonControl.js引入進來,

    最后,每個測驗檔案只需要引入對應的control.js,就可以通過自己定義的key值獲取頁面真正的class或id,

    上面的方法看起來雖然麻煩了點,但是有兩個好處,首先,采用自己定義的key值,更容易方便我們記憶,可以減少撰寫測驗用例程序中反復查看頁面元素對應的class或id名,其次,當頁面的類名或id發生變化時,我們只需要修改頁面對應的control.js檔案就可以,而不用修改所有的測驗用例檔案,有利于后續的維護,

 

3、路徑名及介面統一管理

    在撰寫測驗用例的程序中,我們通常需要使用cy.visit()去訪問某個頁面,或者使用cy.request()去呼叫后臺介面以請求資料或創建測驗資料,對于頁面url或后臺介面api,我們也可以放入某個檔案中進行統一管理,

 

4、代碼復用

    在測驗的程序中,我們可能會注意到,不同的頁面可能會存在一些相同的功能,比如像目前的專案中,不同的頁面都需要對一些操作進行彈框確認或表單輸入,而在驗證彈框功能是否正確的程序中,我們都需要對彈框執行點擊確定按鈕、點擊取消按鈕、點擊關閉按鈕等操作,而這個時候就可以采用面向物件編程的方法實作代碼的封裝和復用

    定義一個彈框類,并且定義屬性和方法,

    在測驗檔案中,需要實體化物件,并呼叫相關的方法完成某個操作,

    當然,有些方法并不是所有的頁面都共有的,但是在某個頁面或功能中會反復使用到,因此也可以為每個頁面或每個測驗檔案單獨封裝相應的方法,比如為課程管理頁面封裝相應的通用方法,

 

    以上就是關于將Cypress運用在專案中的一些總結,而如何將Cypress和CI/CD結合,并且實作自動化測驗的定時執行,也是接下來需要繼續完成的內容~

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/285660.html

標籤:其他

上一篇:我的N年軟體測驗感悟

下一篇:Android APP壓力測驗之理論

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more