1. WEB前端項目開發流程
這個環節是由項目經理完成,項目經理首先和客戶進行交流,了解客戶的需求,然後分析項目的可行性,如果項目可以被實現,項目經理寫出項目需求文檔交給設計師完成後續的開發。
這個環節主要是UI設計師參與,UI設計師根據產品需求分析文檔,對產品的整體美術風格、交互設計、界面結構、操作流程等做出設計。負責項目中各種交互界面、圖標、LOGO、按鈕等相關元素的設計與製作。
這個部分由程序員來實現。(程序員分為WEB前端開發工程師和後台開發工程師。前端開發人員主要做我們可以在網頁上看的見的頁面,後台就做一些我們看不見的管理系統以及功能的實現。)程序員根據UI設計師的設計,用編碼來完成整個項目的各個功能。
這部分由程序測試員來完成。程序測試員主要就是測試尋找程序還存在的bug,一般來說剛編碼完成的程序都是存在問題的,就需要測試人員反復不斷的測試並將存在問題的測試結果交給編碼人員進行bug的修復。等到幾乎所有bug修復完成,這個項目差不多就可以上線了。
程序的維護是整個項目的最後一個階段,但也是耗時最多,成本最高最高的的一個階段。程序的維護包括程序上線後後續bug的修復和程序版本的更新。
2. Web自動化的流程
web自動化流程
一. 了解需求,什麼是系統的核心業務
二. 編寫測試用例:用例名稱,前置條件,測試數據,測試步驟,期望結果
三. 自動化代碼的初步構建:所有的元素定位、元素操作、測試用例都寫在一個模塊中
問題:
1. 層次混亂,一旦頁面元素調整,需要挨個尋找對應的測試模塊,測試類,測試用例函數,不便於後期維護
2. 不便於代碼的復用
四. 引入PO模式,進行分層設計:實現測試用例和頁面對象分離
好處:
1. 層次清晰,相互獨立,易維護
2. 頁面對象可以多次調用,提高了代碼的復用度
五. 引入單元測試框架unittest
六. 優化分層設計
將每個頁面公共的屬性和方法提取出來,封裝成一個BasePage模塊下的BasePage類,後期各個頁面只需要繼承它,就可以獲得父類的所有屬性和方法,這樣不僅簡化了代碼,而且提高了復用度
七. 引入pytest:基於unittest,比unittest更"智能"
好處:
1. 可以通過打標記來運行特定的測試用例
2. 利用contest.py定義公共的fixture,多個測試類中都可以調用,不需要每個測試用例類都定義一遍環境准備和環境清理,簡化了代碼
3. pytest可以按一定規則自動發現測試用例,而unittest則需要向指定的測試套件中添加測試用例
4. 利用pytest-html庫,可以生成自帶的html報告和xml文件,而xml文件的好處是方便跟其它平台的集成和展示,方便做二次開發
八. 注意點
1. 做自動化前,要有獨立的賬號,避免外界環境的干擾
2. 頁面順序完全是由業務邏輯來決定,由測試用例來決定。因此在封裝頁面時不用考慮誰來調用它,不用考慮哪一個頁面操作之後再來使用它(或者哪一個功能操作之後再來使用它),應該考慮的是無論前面做了什麼樣的操作,誰來用它,任何一個步驟來調用它的時候,它都能正常的操作(這也是為什麼一些頁面的元素需要滾動操作)
3. 在封裝功能時不要考慮在用例中是什麼意思,只需要考慮在本頁面是什麼功能(比如:標詳情頁面獲取余額功能的封裝,不需要把函數命名為get_user_left_money_before_invest,而是在只考慮它的功能的情況下命名為get_user_left_money)
4. 在選標的過程中,不要指定特定的標名,而是要隨機選擇,因為頁面上的標是會變的。因此測試數據的選取,用例的設計要遵循盡量不要依賴系統的原則,這樣也提高了代碼的穩定性
5. 投資操作的前置條件是:可用余額要大於投資金額,如何保證這個條件,有兩種方法:
1) 後台充值足夠多的錢
2) 判斷當前用戶余額夠不夠,不夠就充值,可以調用查詢介面查詢用戶余額,調用充值介面進行充值——因為API操作是非常快的,這也提高了測試用例的效率
6. 保證用例的獨立性:每一個測試用例都要重新打開瀏覽器
3. 設計WEB站點的一般步驟
(1)對Web站點作出具體的規劃
(2)准備Web站點的素材
(3)創建 Web站點和製作網頁
(4)測試Web站點
(5)發布Web站點
(6)宣傳自己的Web站點
(7)對Web站點進行維護和更新