1. 程式人生 > >前端E2E測試略解

前端E2E測試略解

什麼是E2E: E2E(End To End)即端對端測試,屬於黑盒測試,通過編寫測試用例,自動化模擬使用者操作,確保元件間通訊正常,程式流資料傳遞如預期。

典型E2E測試框架對比

  1. nightwatch 需要安裝配置 selenium,selenium-server需要安裝jdk(Java Development Kit)。
  2. cypress 安裝方便,測試寫法和單元測試一致,只支援 Chrome 類瀏覽器,有支援其他瀏覽器的計劃
  3. testcafe 安裝方便,測試寫法與之前的單元測試差異比較大,編寫測試用例時只能選擇到可見的元素
  4. katalon 不是測試框架,是 IDE ,比較重,並且不開源,測試用例不是用 js 編寫但是可以通過 Chrome 外掛錄測試用例

經過測試使用對比,nightwatch和cypress是vue推薦的框架,社群活躍度較高,功能較為完備,開源,推薦二選一(nightwatch需要裝jdk,準備工作多,但API豐富度更高;cypress有自己的視覺化窗體,能記錄執行資訊,重現bug精品)

nightwatch

1. 安裝

npm i selenium-server nightwatch chromedriver -D

chromedriver 安裝需要翻牆,很坑,如果沒梯子去網上搜羅單獨的包,然後改配置檔案

2. 配置
根目錄新建nightwatch.conf.js(也可json,推薦js):

module.exports = {
  // 測試檔案入口
  src_folders: ['tests'],
  // 輸出報表路徑
  output_folder: 'reports',

  // selenium配置
  selenium: {
    start_process: true,
    server_path: require('selenium-server').path,
    host: '127.0.0.1',
    // selenium log輸出
    log_path: 'reports',
    port: 9090,
    cli_args: {
      'webdriver.chrome.driver'
: require('chromedriver').path, 'webdriver.gecko.driver': require('chromedriver').path } }, test_settings: { default: { launch_url: 'http://localhost', selenium_port: 9090, selenium_host: 'localhost', silent: true, screenshots: { enabled: false, path: '' } }, chrome: { desiredCapabilities: { browserName: 'chrome', javascriptEnabled: true, acceptSslCerts: true } } } };

3.測試用例
新建tests資料夾,在裡面新建test.js,內容如下:

module.exports = {
  'Demo test Baidu' : function (browser) {
    browser
      .url('www.baidu.com')
      .waitForElementVisible('body', 1000)
      .setValue('input[name=wd]', 'NightWatch')
      .click('#su')
      .pause(1000)
      .assert.containsText('#container', 'NightWatch')
      .end();
  }
};

4. 執行
①推薦在package.json中配置

"scripts": {
    "test": "./node_modules/.bin/nightwatch --env"
  },

就可以直接 npm test,也可以在shell中手動。
②根目錄新建entry.js(名字自起)

require('nightwatch/bin/runner.js');

之後shell中node entry.js

cypress

1. 安裝

npm install cypress --save-dev

2. 啟動

./node_modules/.bin/cypress open

可新增npm scripts

3. 寫測試用例

touch {your_project}/cypress/integration/simple_spec.js
describe('My First Test', function() {
  it("Gets, types and asserts", function() {
    cy.visit('https://example.cypress.io')

    cy.contains('type').click()

    // Should be on a new URL which includes '/commands/actions'
    cy.url().should('include', '/commands/actions')

    // Get an input, type into it and verify that the value has been updated
    cy.get('.action-email')
      .type('[email protected]')
      .should('have.value', '[email protected]')
  })
})

相關推薦

前端E2E測試

什麼是E2E: E2E(End To End)即端對端測試,屬於黑盒測試,通過編寫測試用例,自動化模擬使用者操作,確保元件間通訊正常,程式流資料傳遞如預期。 典型E2E測試框架對比 nightwatch 需要安裝配置 selenium,selen

web前端測試——e2e測試

開發環境:安裝有node的macbook(windows沒測) 第一步: 建立自己需要測試的專案,如在桌面建立一個test目錄作為我們的專案根目錄。 開啟sublim text ,並將專案拖到sublim text中,方便管理。 第二步: 開啟終端,輸入命令cd

前端單元測試

dep 們的 我們 解決 tap asc 相同 測試環境 配置 優秀的測試用例具有三個重要的特征: 1.可重用性(repeatability)——測試結果應該是高度可再生的。多次運行測試應該產生相同的結果。如果測試結果是不確定的,那我們又如何知道哪些結果是有效的,哪些又是無

前端自動化測試之UI Recorder(一、介紹)

而且 行為 文件上傳 語言 系統 nod clas 調用 開發 UI Recorder是一款零成本的整體自動化測試解決方案,一次自測等於多次測試,測一個瀏覽器等於測多個瀏覽器! 支持所有用戶行為: 鍵盤事件, 鼠標事件, alert, 文件上傳, 拖放, svg, sha

前端自動化測試之UI RECORDER(二、PC錄制)

啟動服務 域名 run ports shadow 科學 兼容 webp htm PC錄制教程 準備工作: NodeJs環境 請自行先安裝好nodejs環境,在命令行執行node -v命令成功說明已經安裝成功 Chrome瀏覽器 JAVA環境 UI Recorder We

exkmp

最長 因此 更新 code () 並且 mark 我們 -a 推導 ext[i]表示母串s[i..lens]和子串t[1..lent]的最長公共前綴。 nxt[i]表示t[i..lent]和t[1..lent]的最長公共前綴。 假設ext[1..k]已經算好,現在想求ext

Web前端滲透測試技術小結(一)

一個 allow 註入 nec sub .get com 重要 utf-8 首先端正一下態度不可幹違法的事 1、SQL註入測試 對於存在SQL註入的網頁,使用SQL語句進行關聯查詢(仿照C/S模式)eg http://www.foo.com/user.php?

真如實觀

提高 clas sss 切分 否則 .org 所聞 展開 ron 佛法和其他宗教法的最大區別,就是實修。幸運的是,三藏十二部中,開示的法門實在太多,禪凈律密都有各自的下手處。但是看到如今佛教的發展,幾乎都是隨便拜拜,多半退化為迷信活動。要說做這些活動有沒有福報,有,但是

SpringMVC mock測試

builder efault url perf 配置 public ctc tle pub @RunWith(SpringRunner.class) @SpringBootTest(classes = WebmanagerApplication.class) //配置事務

阿裏巴巴 前端 知識體系 詳

sea web安全 swipe grunt evel latest 維護 storm 思維 1.布局框架: Bootstrap: http://getbootstrap.com/ Foundation: http://foundation.zurb.com/ Uikit:

Web前端之Javascript詳20180330

win .proto 腳本 產品 使用 pro undefine 處理方式 subst 一、javascript概述 javascript是基於對象和事件的腳本語言。 特點: 1.安全性(不允許直接訪問本地硬盤(因為是被遠程的瀏覽器解釋)),它可以做的就是信息的動態交互 2

webpack(構建一個前端項目)詳--升級

|| bundle lin let -m HA 組件 esp pac 升級一個正式的項目結構 分離webpack.config.js文件: 新建一個webpack.config.base.js任何環境依賴的wbpack //public webpack const pat

系統學習前端之FormData詳

pan 3.2 第一個 實例 open password 訪問表 -name 訪問 FormData1. 概述FormData類型其實是在XMLHttpRequest 2級定義的,它是為序列化表以及創建與表單格式相同的數據(當然是用於

基於jest和puppeteer的前端自動化測試實戰

功能模塊 adl bee 不用 devtools face 兼容 選擇 單元 前端測試現狀 經常聽到後端同學說“單元測試”,前端寫過測試用例的有多少?答案是:並不多,為什麽呢?兩個主要原因 1、前端屬於GUI軟件,瀏覽器眾多,兼容問題讓人頭大,用

nightwatch-前端自動化測試工具安裝

cer als 開始 btn RoCE 2.4 tps lob 調試 最近再弄這個前端自動化測試工具,剛開始弄了幾天,目前為止遇到很多坑,光是安裝就費了不少時間,記錄一下,以便自己忘記。 這裏是它的官網,目前沒找到中文版的官網,全英文,對我這個英語渣來說有點難理解。 一、

前端單元測試之Jest

概述 關於前端單元測試的好處自不必說,基礎的介紹和知識可以參考之前的部落格連結:React Native單元測試。在軟體的測試領域,測試主要分為:單元測試、整合測試和功能測試。 單元測試:在計算機程式設計中,單元測試(英語:Unit Testing)又稱為模組測試, 是針對程式模組(軟體設計的最小單

【TestNG】TestNG依賴測試

一、TestNG安裝與基本使用 參考部落格https://blog.csdn.net/df0128/article/details/83243822; 二、TestNG依賴的使用 TestNG支援用例或者組之間的依賴。 雖然我們有多種@Before可以使用,看起來和依賴效果一樣,

正則表示式-

\b是正則表示式規定的一個特殊程式碼(好吧,某些人叫它元字元,metacharacter),代表著單詞的開頭或結尾,也就是單詞的分界處。雖然通常英文的單詞是由空格,標點符號或者換行來分隔的,但是\b並不匹配這些單詞分隔字元中的任何一個,它只匹配一個位置。 .是另一個元字元,匹配除了換行符以

grep/sed、正則表示式

1、grep grep [-acinv] [--color=auto] '搜尋字串' filename 選項與引數: -a :將 binary 檔案以 text 檔案的方式搜尋資料 -c :計算找到 '搜尋字串' 的次數 #加上c之後,命令返回次數(數字) -i :忽略大小寫 -n :

web前端技術內容詳之Vue.js框架

Vue.js是一個漸進式框架,只需要具備基本的HTML/CSS/JavaScript基礎就可以快速上手。在用Vue.js構建大型應用時推薦使用NPM安裝,但是需要注意npm的版本需要大於3.0。在通過npm安裝專案後,我們需要對其目錄進行解析:(1)Build:專案構建(webpack)相關程式碼;(2)co