最流行的Javascript的測試框架

      網(wǎng)友投稿 956 2022-05-29

      1?????????引言

      大多數(shù)測試自動化框架都是基于一套通用的敏捷測試實踐。一般來說,開發(fā)團隊會收集映射到一個功能的用戶故事。用戶故事是一句描述性的話,它說明了該功能的角色/作用、動作和原因。如果你想輸入用戶憑證訪問系統(tǒng),每個故事必須有明確定義的驗收標準,以確保實現(xiàn)的功能符合利益相關(guān)者/目標用戶的期望。

      今天有很多有競爭性的測試運行器在使用,但大多數(shù)前端開發(fā)者使用Mocha, Jest, Jasmine, Karma, Puppeteer。好消息是,它們很相似,你選擇哪一個并不重要。

      下面我們提供了一個Mocha測試樣本。同樣的事情也可以用其他的測試框架來寫。

      假設(shè)你正在測試一個計算器的web應(yīng)用程序。首先創(chuàng)建一個describe塊,它將包含一個或多個測試。

      describe('calculator',?function?()?{})

      接下來,使用it函數(shù)添加一個測試。測試中包含了你要測試的內(nèi)容的描述:

      describe("calculator",?function?()?{

      it("應(yīng)正確顯示初始數(shù)據(jù)",?()?=>?{});

      });

      現(xiàn)在,使用expect函數(shù)添加一個斷言。這個斷言檢查計算器的顯示屏是否顯示了預(yù)期的信息。只有當(dāng)計算器顯示為零時,測試才會通過。

      it("應(yīng)正確顯示初始數(shù)據(jù)",?()?=>?{

      expect(calculator.initialState.display).to.equal("0");

      });

      要運行你的測試代碼,在輸入類似這樣的命令行npm test。當(dāng)框架檢測到你的源代碼的變化時,會執(zhí)行你的測試。每次框架運行測試時,都會指示測試是否通過或失敗。

      2?????????MochaJS

      2.1.1????官網(wǎng)

      http://mochajs.org/

      2.1.2????許可

      MIT

      2.1.3????特點

      自2011年以來,MochaJS一直是最流行的javaScript測試框架之一。它在Node.js上運行,為前端和后端異步測試提供了兼容性。在良好的文檔支持下,Mocha在過去的幾年里已經(jīng)被證明是一個成熟的框架。

      托管在Github上,Mocha的靈活性得到了認可,因此,它已經(jīng)被證明是JavaScript開發(fā)人員最信賴的測試程序庫之一。

      Mocha的主要優(yōu)點:

      1.???????為前端和后端測試提供兼容性

      2.???????支持NodeJS調(diào)試器,使錯誤跟蹤變得更容易。

      3.???????準確的報告

      4.???????提供對所有瀏覽器的支持,包括無頭Chrome庫。

      5.???????非常方便開發(fā)人員編寫測試用例的框架。

      3?????????JEST

      3.1.1????官網(wǎng)

      https://jestjs.io/

      3.1.2????許可

      MIT

      3.1.3????特點

      JEST可以說是Facebook使用和維護的最流行的JavaScript測試框架。JEST測試框架提供了?"零配置"的測試體驗。

      JEST是基于React的應(yīng)用程序的首選框架。它提供了一個毋庸置疑的且非常方便的用戶界面。這個框架捆綁了一些有用的功能,比如快照測試和內(nèi)置的代碼覆蓋工具。

      JEST的主要優(yōu)點:

      1.???????兼容NodeJS、React、Angular、VueJS和其他基于Babel的項目。

      2.???????支持文件的標準語法。

      3.???????速度快,性能高。

      4.???????使用實時快照可以管理較大對象的測試。

      4?????????Jasmine

      4.1.1????官網(wǎng)

      https://jasmine.github.io/

      4.1.2????許可

      MIT

      4.1.3????特點

      Jasmine于2010年推出,是一個開源的JavaScript測試框架。它能夠測試所有類型的JavaScript應(yīng)用程序。這個框架支持行為驅(qū)動開發(fā)(BDD)。使用Jasmine,人們可以在網(wǎng)站上執(zhí)行類似于用戶行為的測試案例。Jasmine受JS Spec、Rspec的影響很大。

      Jasmine對前端測試非常有幫助。它既包括可見性測試,也包括UI在各種不同分辨率設(shè)備上的響應(yīng)性測試。人們還可以通過自定義延遲和等待時間來模擬實際的用戶行為。

      Jasmine的主要優(yōu)點:

      1.???????提供小巧、簡潔、直接的語法,便于測試。

      2.???????不需要任何文檔對象模型(DOM)。

      最流行的Javascript的測試框架

      3.???????提供對前端和后端測試的支持。

      4.???????易于編碼,因為所使用的語法與自然語言非常相似。

      5.???????強大的文件和社區(qū)支持

      5?????????Karma

      5.1.1????官網(wǎng)

      https://karma-runner.github.io/latest/index.html

      5.1.2????許可

      MIT

      5.1.3????特點

      Karma是另一個流行的開源生產(chǎn)測試環(huán)境。它允許QA在不同的環(huán)境下對應(yīng)用程序進行測試。Karma允許應(yīng)用程序腳本在真實的瀏覽器和手機、平板電腦等設(shè)備上執(zhí)行。Karma旨在為開發(fā)者提供一個測試環(huán)境,在這個環(huán)境中,他們不需要設(shè)置大量的配置。相反,他們只需運行測試并獲得即時反饋。

      使用Karma的主要好處:

      1.???????支持與Jenkins、Travis和Semaphore等頂級CI/CD工具的集成。

      2.???????可以在實際設(shè)備和瀏覽器上進行測試

      3.???????提供對PhantomJS等無頭環(huán)境的支持。

      4.???????支持直接從終端或IDE進行遠程測試

      5.???????是框架不可知的,這意味著可以用Mocha、Jasmine等流行框架來描述測試。人們也可以為特定的框架寫一個簡單的適配器。

      6?????????Puppeteer (Node Library)

      6.1.1????官網(wǎng)

      https://github.com/puppeteer/puppeteer

      https://developers.google.com/web/tools/puppeteer/get-started

      6.1.2????許可

      Apache 2.0

      6.1.3????特點

      注意:Puppeteer?是一個程序庫,而不是類似于上面其他的庫的框架。之所以將其包含在內(nèi),是因為它在Chrome瀏覽器的JavaScript測試方面提供了許多優(yōu)勢。

      Puppeteer是一個提供高級API的Node程序庫庫。這個API用于通過DevTools協(xié)議控制Chrome或Chromium。Puppeteer的主要局限性之一是它只適用于Chrome和Chromium。Puppeteer可以用于特定瀏覽器的應(yīng)用,如頁面結(jié)構(gòu)測試、抓取網(wǎng)站截圖等。

      還可以為單頁應(yīng)用(SPA)抓取和捕獲預(yù)渲染的內(nèi)容。

      Puppeteer的其他優(yōu)點包括:

      1.???????輕松實現(xiàn)UI測試、表單提交和鍵盤輸入的自動化。

      2.???????輕松生成網(wǎng)頁的屏幕截圖和PDF文件。

      3.???????支持測試chrome擴展。

      4.???????人們可以很容易地使用時間線跟蹤來診斷網(wǎng)站的性能問題。雖然Puppeteer是最近才出現(xiàn)在測試領(lǐng)域的,但已經(jīng)被大量的開發(fā)者所采用。Puppeteer的未來看起來很有希望。

      7?????????參考

      https://testguild.com/top-8-essential-javascript-automation-frameworks/

      https://www.browserstack.com/guide/top-javascript-testing-frameworks

      https://www.lambdatest.com/blog/top-javascript-automation-testing-framework/

      JavaScript

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:華為云工業(yè)互聯(lián)網(wǎng)平臺助力拓斯達:從自身實踐到賦能客戶的智能化之路
      下一篇:修電腦、格子衫、單身狗...程序員被誤解的這些瞬間,你中招了嗎?【內(nèi)附社區(qū)開發(fā)者搞笑段子集錦】
      相關(guān)文章
      久久精品亚洲福利| 国产偷国产偷亚洲高清在线| 亚洲片一区二区三区| 亚洲a∨无码精品色午夜| 丁香婷婷亚洲六月综合色| 亚洲成a人片在线观看中文app | 亚洲精品无码一区二区| 日韩亚洲产在线观看| 亚洲一区二区三区亚瑟| 亚洲免费在线观看视频| 亚洲国产精品乱码在线观看97| 亚洲国产精品综合久久网各| 337p日本欧洲亚洲大胆精品555588 | 国产亚洲美女精品久久| 亚洲.国产.欧美一区二区三区| 亚洲av无码专区在线观看亚| 亚洲国产成人无码AV在线| 亚洲成AV人片高潮喷水| 亚洲AV成人精品一区二区三区 | 午夜亚洲www湿好大| 亚洲网站在线观看| 亚洲成aⅴ人片在线观| 亚洲一卡2卡3卡4卡国产网站| 色偷偷女男人的天堂亚洲网| 亚洲综合av一区二区三区| 亚洲精品无AMM毛片| 午夜亚洲国产精品福利| 亚洲国产一区二区三区| 亚洲国产综合人成综合网站| 国产AV无码专区亚洲AV手机麻豆| 亚洲精品无码鲁网中文电影| 亚洲AV无码国产在丝袜线观看 | 成a人片亚洲日本久久| 亚洲人妻av伦理| 亚洲成av人片在线观看无码不卡| 午夜亚洲AV日韩AV无码大全| 亚洲国产精品久久久久秋霞影院| 中文字幕精品三区无码亚洲| 亚洲AⅤ视频一区二区三区| 中文字幕精品亚洲无线码一区应用| 亚洲国产精品无码AAA片|