1. 程式人生 > >使用Mocha+spectron測試Electron打包的桌面版程式(2)PO模型

使用Mocha+spectron測試Electron打包的桌面版程式(2)PO模型

在上一篇文章中,我們運行了一個小的demo,這一篇,我們講一下如何將測試用例做成PO模型,並輸出一份簡單的測試報告。
  1. 首先是工程目錄結構,如下圖所示(使用VSCode開啟):
    這裡寫圖片描述
    其中node_modules中包含執行指令碼安裝的庫等;pageobjects中包含所有頁面元素及方法,其中page.js為所有頁面的父類,可將所有頁面的相同方法寫在這裡,在子類繼承或重寫;test中包含所有的測試用例
  2. 頁面元素的內容
    (1)庫包含及引數定義部分
    這裡寫圖片描述
    (2)定義頁面元素,即將元素的selector寫在對應的元素,其selector寫法見webdriver.io(上一篇文章已經寫到)
    這裡寫圖片描述
    (3)定義頁面方法,這裡定義了三個方法:
    login:使用者登入;run:啟動桌面版程式;quit:退出程式
    這裡寫圖片描述
  3. 測試用例,已經定義了頁面元素,如何使用頁面定義的元素和方法來寫自動化測試用例呢,接下來就是測試用例部分,我寫的測試用例就是一個簡單的登入
    (1)庫包含及頁面包含,下圖中包含了測試用例用到的庫及頁面,如HomePage就是home.page的一個物件,使用HomePage即可呼叫home.page.js中定義的元素和方法;TradePage同理
    這裡寫圖片描述
    (2)測試用例——使用頁面的方法,圖中使用HomePage.run和HomePage.login即可呼叫home.page.js頁面中定義的方法。
    這裡寫圖片描述
    (3)測試用例——業務邏輯主體,對元素進行操作及加適當的等待(我還不知道如何在操作元素之間增加一段固定延時,如果有誰知道的話,可以留言交流一下☺)
    這裡寫圖片描述
  4. 最後就是輸出測試報告
    (1)使用mochawesome庫輸出測試報告,在cmd中輸入以下程式碼全域性安裝
cnpm –g install mochawesome

(2)Mochawesome相關設定在如下頁面:https://www.npmjs.com/package/mochawesome
(3)執行測試用例時在後面增加引數即可(下面是一個例子,定義reporter的名字為customReportFilename;重寫定為false,這樣就會生成不同的測試報告而不會把原來的報告給替換),可寫成批處理檔案,點選即可執行(Mochawesome也可以寫程式碼實現,不過我沒研究出來,如果有誰知道的話,可以留言交流一下☺),目前只找到這種方法執行測試用例

mocha test --reporter mochawesome --reporter-options reportFilename=customReportFilename,overwrite=false

(4)按照第(3)步執行就可以在工程目錄下生成一個名為“mochawesome-report”的資料夾,測試報告就在這裡資料夾中,如下圖所示:
這裡寫圖片描述
(5)簡單測試報告大概的樣子(我目前整不出複雜的……),如下圖所示:
這裡寫圖片描述

相關推薦

使用Mocha+spectron測試Electron打包桌面程式2PO模型

在上一篇文章中,我們運行了一個小的demo,這一篇,我們講一下如何將測試用例做成PO模型,並輸出一份簡單的測試報告。 首先是工程目錄結構,如下圖所示(使用VSCode開啟): 其中node_modules中包含執行指令碼安裝的庫等;pageobjects中

使用Mocha+spectron測試Electron打包桌面程式1

當前多是瀏覽器和移動App產品,其相應測試工具也較多,桌面版程式的自動化測試工具較少,本文就介紹一下如何使用Electron的官方測試工具spectron進行Electron打包的桌面版程式的自動化測試。 Electron打包的桌面版程式其實也是一個w

安裝nginx的步驟 樹莓派桌面環境Debian

load install 安裝包 /usr .net nbsp art host style 感謝:http://blog.csdn.net/shennongminblog/article/details/76158397 在此基礎上 使用源碼安裝比較容易 獲取pcre編

sencha touch 擴充套件篇之將sencha touch打包成安裝程式- 使用phonegap打包安裝程式

      這講我們來講解下如何使用phonegapa建立專案環境並通過她們將sencha touch打包成app,這裡我們只講解打包android的apk,打包ios的過程有點類似,但是需要在mac環境下,最後通過xcode匯出成ipa安裝程式;   一、phonega

Python3.5+PyQt5多執行緒+itchat實現微信防撤回桌面程式碼

weChatThread執行緒類 之前一直不會python多執行緒,寫這個程式的時候,發現不用多執行緒會陷入無限未響應狀態。於是學了半天python多執行緒,但是在主函式裡寫的時候,發現一個問題,Ui主執行緒和工作執行緒沒有分離,使用itchat等庫的時候會堵

我的改進20482

void 必須 number 內存 font return nbsp water pan (假設有誰想要這個軟件的話,在評論中留一個郵箱吧。) 上篇解說了我的2048的基本設計過程。一開始的時候初始化,隨機填上兩個數字。每次按方向鍵。16個方格

彈性盒模型--新版與舊比較2

尺寸 color nal 空隙 樣式 比較 設置背景圖片 引入 gin 彈性空間與元素具體位置設置是加在子元素身上的 <style> body{   margin: 0; } #box{   height: 300px;   b

Spring實戰第四筆記-2裝配Bean

一、Spring配置的可選方案     建立應用物件之間協作關係的行為通常稱為裝配(wiring),這也是依賴注入(DI)的本質。Spring裝配容器最常見有三種方法:   1、在XML中進行顯式配置;   2、在Java中進行顯式配置(JavaConfig);   3、隱式的bean發現機制和自動裝

使用Visual Studio 2017開發Python程式2

建立第一個Hello Word程式 (1)開啟Microsoft Visual Studio 2017,依次單擊頂部工具欄中的“檔案”>“新建” >“專案”命令,彈出“新建專案”對話方塊。在左側模板列表中選擇“Python”選項,在右側選擇“Python應用程式”選項。在下方文字

微信小程式2引入模組

微信小程式中有些公共的js程式碼不需要在每個頁面中重複編寫,所以可以採用將其模組化的方式進行引用。 1.需要被引用的公共模組 新建pages/utils/common.js       &

微信小程式2-小程式資訊完善以及開發前準備,程式碼稽核與釋出

1.完成註冊後,在微信公眾平臺官網首頁(mp.weixin.qq.com)的登入藉口直接登入 2.完善小程式資訊(完成註冊後,微信小程式資訊完善步驟和開發可同步進行) *選擇對公打款的使用者,完成匯款後,可以補充小程式名稱資訊,上傳小程式影象,填寫小程式介紹並且確定小程式服

微信小程式2控制元件

一。基本控制元件----button按鈕 <!--index.wxml--> <view class="container"> <button size="mini">按鈕</button> <button

Netty聊天程式2:從0開始實戰100w級流量應用 - 圖解Netty系列

客戶端 Client 登入和響應處理 瘋狂創客圈 Java 分散式聊天室【 億級流量】實戰系列之 17【 部落格園 總入口 】 文章目錄 客戶端 Client 登入和響應處理 寫在前面 客戶端的會話管理 客戶端的邏輯構成

PyQt5教程——第一個程式2

用PyQt5寫的第一個程式 在這篇PyQt5教程中,我們可以學習一些PyQt5的基礎應用。 簡單的例子 這是一個顯示一個小視窗的簡單例子。我們可以做許多這樣的視窗。我們可以調整它的視窗尺寸,最大化或最小化這個視窗。這些需求需要碼很多程式碼。但一些人已經寫好了這些功能實現。因為這些需求在很多應用中重複

第十一週閱讀程式2

程式碼: #include<iostream> using namespace std; class G { public: static int m; G( ) //建構函式 { m++; cout&l

Java學習小程式2輸出三個數中的最大值

使用者從控制檯接收三個整數,通過程式找出三個數中的最大值。(3種方法) package day03; //輸入三個int數中的最大值 import java.util.Scanner; public class Text01 { public static void

一、磁碟載入程式2

一、簡單的磁碟載入程式 簡單的說明:計算機加電後,BIOS檢查硬體等等,BIOS呼叫19號中斷載入磁碟載入程式。 以下用NASM編寫的一個簡單的磁碟載入程式。 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

第十四周閱讀程式2

問題及程式碼: #include <iostream> #include <vector> using namespace std; int main() { vect

第六週 閱讀程式2

問題描述: 閱讀程式,寫出程式的執行結果並理解。 [cpp] view plaincopyprint? #include <iostream> usingnamespa

i2c驅動程式2 i2c_driver probe被呼叫的流程分析

(本文為個人的筆記 難免有錯 望各位高人賜教指正 謝謝!) i2c驅動程式i2c_driver probe被呼叫的流程分析 step1 i2c_add_driver(&at24_driver); step2 i2c_register_driver(T