如何用ABP框架快速完成專案
要想快速完成一個專案, 自動化是很關鍵很有用的一塊.
- 自動化測試比人工測試快很多. 特別是在迴歸測試中.
- 實踐證明, 雖然投入了時間在寫自動化測試程式碼上, 但是在迴歸測試中節省了大量的時間,同時及時發現bug挽救回來時間收益大大超過了早期寫自動化測試程式碼的投入.
- 特別是要測試瀏覽器相容性的時候,只寫一遍自動化測試程式碼,就能自動的快速的在所有瀏覽器跑完測試。
- 我們這系列文章是使用abp裡的asp.net core + angular結構.
- angular裡的UI自動化測試(簡稱e2e)使用的是protractor.
所以有了這篇文章.
從大家的反饋中得知,
- 99%的同學之前都沒有接觸過這一塊.
- protractor官網資料很多, 把官網看一遍會很耗時間, 不夠快速.
- 而我們這系列文章的關鍵詞就是”快速"
- 所以我就先從最簡單的說起讓大家快速入手.
先從安裝protractor開始說起.
第1節 如何安裝和初始化設定
- vscode在angular專案目錄下新建一個terminal(終端), 敲如下命令然後回車: npm install -g protractor
- 上一條命令完成後, 繼續敲如下命令然後回車: webdriver-manager update
- 上一條命令完成後, 繼續敲如下命令然後回車: webdriver-manager start
- 然後關閉這個terminal(終端), 這點十分重要!!!不然接下來寫test case然後跑起來的時候會提示埠被佔用
第2節 開始第一個test case (以登入為例)
- Vscode開啟angular專案目錄/e2e/src/app.po.ts
- 輸入如下程式碼:
getUserNameInput() { return element(by.name('userNameOrEmailAddress')); } getPasswordInput() { return element(by.name('password')); } getLoginButton() { return element(by.buttonText('登入')); // return element(by.id('loginbtn')); // 後備措施,比如是英文環境的時候,上面程式碼就doesn't work,就要用這句了。 } getLogoutButton() { return element(by.buttonText('登出')); }
- Vscode開啟angular專案目錄/e2e/src/app.e2e-spec.ts
- 在頭部import要引用的類
import { browser } from 'protractor';
- 把如下程式碼註釋掉
// describe('workspace-project App', () => { // let page: AppPage; // beforeEach(() => { // page = new AppPage(); // }); // it('should display welcome message', () => { // page.navigateTo(); // expect(page.getParagraphText()).toEqual('Welcome to YoyoCmsTemplate!'); // }); // });
- 寫具體的自動化測試程式碼:
describe('管理員登入', () => { let page: AppPage; beforeEach(() => { page = new AppPage(); }); it('輸入正確使用者名稱和密碼', () => { page.navigateTo(); // browser.waitForAngularEnabled(); // 等待程式載入完 page.getUserNameInput().sendKeys('admin'); // 輸入使用者名稱 page.getPasswordInput().sendKeys('123qwe'); // 輸入密碼 // 等待登入按鈕從disable變成enable browser.wait(function () { return page.getLoginButton().isEnabled; } ).then(function () { // console.log(page.getLoginButton()); page.getLoginButton().click(); // 點選登入按鈕 expect(page.getLogoutButton().isEnabled()).toBe(true); // 出現登出按鈕,意味著登入成功了 }); }); });
- vscode在angular專案目錄下新建一個terminal(終端), 敲如下命令然後回車: ng e
- 如果前面配置都正確的話,會自動彈出一個chrome瀏覽器,並且出現下圖。這時候表示自動化測試已經正常跑起來了,以後的問題就不再是配置問題,是測試用例程式碼有問題了
- 瀏覽器會自動輸入使用者名稱密碼,並點選登入。
- 那麼怎麼檢視測試結果呢?回到vscode剛才那個terminal(終端),這裡會顯示測試結果。嗯,對的,這裡不會像ng test一樣彈出一個瀏覽器顯示測試結果,這裡只會在命令列終端顯示測試結果。
- 跑完一次測試用例後記得要關閉這個terminal(終端), 這點十分重要!!!不然接下來再跑有一定機率會出錯。
Q&A
問題0:為啥我輸入ng test沒有得到同樣結果? 回答:ng test和ng e是完全不同的兩回事,結果當然不一樣,所以你應該輸入ng e.
問題1:為啥我複製了你的程式碼卻出錯? 回答:我的程式碼是建立在角落白板報的52abp2018年11月份版本上的,如果你不是使用這個版本52abp,那麼裡面的使用者名稱和密碼元素的捕抓和值都要做相應更改。
問題2:為啥我執行webdriver-manager update出錯? 回答:99%是網路原因。
第3節 寫更多test case
第4節 使用cucumber來加快寫test case的速度
第5節 測試瀏覽器相容性 - 同時在多個不同瀏覽器裡跑測試
嗯, 考慮99%的同學之前都還沒接觸過protractor, 大家先把前面兩塊完成消化之後, 給我反饋,我根據大家的反饋再更新第3、4、5節吧.
相關推薦
如何用ABP框架快速完成專案(5) - 用ABP一個人快速完成專案(1) - 使用程式碼生成器
用ABP一個人快速完成專案有如下要點: 站在巨人的肩膀上 - 使用程式碼生成器 站在巨人的肩膀上 - 使用成熟控制元件框架, 一個框架不夠就上兩個, 兩個不夠就上三個 通過微服務模式而不是蓋樓式來避免難度升級 運用BDD/TDD等先進方法論 運用DevOps 注
如何用ABP框架快速完成專案(8) - 用ABP一個人快速完成專案(4) - 能自動化就不要手動 - 使用自動化測試(BDD/TDD)
做為一個程式設計師, 深深知道計算機自動化的速度是比人手動的速度快的, 所以”快速”完成專案的一個重要武器就是: 能自動化就不要手動. BDD/TDD有很多優勢, 其中之一就是自動化, 我們這節文章先講自動化, 在後面的文章裡面會講到BDD/TDD的其他優勢
如何用ABP框架快速完成專案(4) - 如何正確使用ABP?
正如我在< 如何用ABP框架快速完成專案(2) - 快的定義!>提到的, 很多同學在使用ABP中遇到很多問題, 花了很多時間和精力, 然而從最根本的角度和方向上來看這些問題應該是不存在。 這些問題如果你正確使用了ABP是根本不會遇到這些問題的.
如何用ABP框架快速完成專案(10) - ABP只要加人即可馬上加快專案進展- 全棧篇(1) - 發揮DDD理論優勢的時候到了!
正如我在< 程式設計師英語二三事(2) - 從聽開始>裡說的, 任何技術/工具/語言都有其適用場景和上下文環境. DDD理論同樣是如此. 現在, 終於到了發揮DDD理論優勢的時候啦! 一個人做一個專案不用擔心程式碼風格不一致
如何用ABP框架快速完成專案(14) - 結尾? 當然不是, 這只是開始!
本課程是方向性課程, 目的是避免南轅北轍. 方向盤一旦打正確, 還得需要以下文章去寫好具體程式: 前面每篇文章裡面的連結, 比如角落白板報裡面的視訊課程. http://www.cnblogs.com/farb https://www.cnblogs.com/kebine
如何用ABP框架快速完成專案
要想快速完成一個專案, 自動化是很關鍵很有用的一塊. 自動化測試比人工測試快很多. 特別是在迴歸測試中. 實踐證明, 雖然投入了時間在寫自動化測試程式碼上, 但是在迴歸測試中節省了大量的時間,同時及時發現bug挽救回來時間收益大大超過了早期寫自動化測試程式碼的投入. 特別是要測試瀏覽器相容性的時候,
用ssm框架寫sms專案
歷經一個禮拜的時間在ssm框架的學習和練習中,我逐漸認識和理解了ssm框架 在開發過程中的優勢所在。 前兩天在理解專案的需求和要求後,按照教案例項的步驟和結合功能需求, 做出來了學生管理專案的雛形。能實現基本功能,但在框架的結構功能還有點 懵懂。接下來一天的專
看不懂程式碼,不會用框架,新手程式設計師入職後如何快速上手專案?
大家好,我是良許。 對於職場新人,特別是應屆畢業生,他們拿到offer之後,進入公司後會有一段時間的焦慮感。比如說,不懂公司專案開發流程,程式碼看不懂,業務流程也不知道,框架不會用,等等還有各種各樣的問題。 所以很多人一開始都會在擔心自己能不能勝任這個職位,會不會連試用期都過不了。其實這個心態是很常見的,
使用程式碼生成工具快速開發ABP框架專案
在一般系統開發中,我們一般要藉助於高度定製化的程式碼生成工具,用於統一程式碼風,節省開發時間,提高開發效率。不同的專案,它的專案不同分層的基類定義不同,我們需要在框架基類的基礎上擴充套件我們的業務類程式碼,儘量根據已有資料庫設計的資訊,完整、詳細的重現我們需要的編碼工作,一方面引入必要的關係和程式碼,一方面保
快速開發專案,用到的工具:UI 設定利器 sketch
需求設計: axaure8.0 tool: teambition/石墨、幕布、 介面管理tool(後端開發介面,pc,m,app使用) https://www.eolinker.com/#/ ui 設計大都用sketch sketch只有蘋果版; 管理工具用藍湖
想要快速完成一個Python專案,離不開這些開源庫
在Python / Django世界中有一句話:我們為語言而來,為社群而留。對我們大多數人來說,這是事實,但讓我們置身於Python世界的另一個原因是,我們很容易就有了一個想法,並且可以幾個小時內讓這個想法快速實現。 本文我們將深入研究我們喜歡使
十個例子,教你用統計學方法高效完成機器學習專案(下)【楚才國科】
五、資料準備: 資料一般不會直接拿來建模。為了改變資料的形狀或結構,使它更適用於選定的問題架構或學習演算法,需要對資料進行必要的轉化。 資料準備也會用到統計模型,例如: 1、縮放。例如標準化和規範化。 2、編碼。例如整數編碼和獨熱編碼。 3、變換。例如 Box-Cox
十個例子,教你用統計學方法高效完成機器學習專案(上)【楚才國科】
統計學和機器學習是兩個聯絡特別緊密的領域 事實上,這兩者的界限有時候非常模糊。然而有一些明顯屬於統計學領域的方法,不僅可用於機器學習的專案,並且極具價值。公平地說,需要統計學方法來有效地完成機器學習預測建模專案。 一、問題架構: 這包括了問題型別的選擇,例如是迴歸還是分類,也許
#Java乾貨分享:如何用Java框架快速搭建web專案
1、 確定專案方向、架構,編制前端頁面,前端用到boostrap、jQuery、h5、js。 如果有想學習java的程式設計師,可來我們的java學習扣qun:79979,2590免費送java的視訊教程噢!我整理了一份適合18年學習的java乾貨,送給每一位想學的小夥伴,並且每天晚上8點還會在
阿里老司機帶你使用Spring框架快速搭建Web工程專案
演講嘉賓簡介 呂德慶(花名:嵛山), 阿里巴巴高階開發工程師,武漢大學地信碩士,有豐富的系統開發經驗,目前就職於阿里巴巴程式碼中心團隊,負責後端開發。 本文首先將介紹Spring框架的相關概念,其次將藉助Spring Web示例工程帶大家學習如何快速開發Spring Web應用。 一、Sprin
用ABP只要加人即可馬上加快專案進展(二) - 分工篇
2018年和1998年其中兩大區別就是: 前端蓬勃發展, 前後端分離是一個十分大的趨勢. 專門的測試人員角色被取消, 多出了一個很重要的角色, 產品經理 ABP只要加入即可馬上加快專案進展, 選擇前後端+產品經理分工結構會比前面的全棧篇好十分多!!!
人生苦短,我用Python(六)—通過Flask結合Bootstrap框架快速搭建Web應用(實現前後臺聯動)-3
寫在前面: 這篇文章,寫的比較倉促,先在此致歉。具體情況,可以直接看總結部分。 Flask是一個基於Python開發,依賴jinja2模板和Werkzeug WSGI服務的一個微型框架。Werkzeug用來處理Socket服務,其在Flask中被用於接受和處理http請求;Jinja2被用來
人生苦短,我用Python(五)—通過Flask結合Bootstrap框架快速搭建Web應用-2
寫在前面: Flask是一個基於Python開發,依賴jinja2模板和Werkzeug WSGI服務的一個微型框架。Werkzeug用來處理Socket服務,其在Flask中被用於接受和處理http請求;Jinja2被用來對模板進行處理,將模板和資料進行渲染,返回給使用者的瀏覽器。 Boo
人生苦短,我用Python(四)—通過Flask結合Bootstrap框架快速搭建Web應用-1
寫在前面: Flask是一個給予Python開發,依賴jinja2模板和Werkzeug WSGI服務的一個微型框架。Werkzeug用來處理Socket服務,其在Flask中被用於接受和處理http請求;Jinja2被用來對模板進行處理,將模板和資料進行渲染,返回給使用者的瀏覽器。 Boo
用ABP只要加人即可馬上加快專案進展(二) - 分工篇 - BDD實戰篇 - 在.NET Core下安裝Specflow
這是<如何用ABP框架快速完成專案 >系列中的一篇文章。 BDD很贊!比TDD先進很多,能夠大大提高編碼效率。 讓我們動手起來吧!先在.NET Core下安裝Specflow! 官網教程在這裡 然而官網教程: 是英文的,