基於Unittest框架,使用Python+Selenium+Webdriver的WebUI自動化測試項目應用實例(附源碼)

1、項目背景

  • 測試背景:在業務系統的web頁面,有一個分辨率設置功能,而這個功能是自定義的一個區間,用戶可以設置分辨率800600到20482048,
    共計1809801個分辨率,如果人工去進行遍歷的話,估計得用半年時間,非常費勁
  • 解決方案:使用webUI自動化控制分辨率功能的輸入,其中每次輸入都不重複,遍歷所有的分辨率
  • 遍歷數據解決:如果在腳本中唯一取值,直接由代碼生成需要的數據的話,效率非常慢;所以把1809801個分辨率數據直接在txt文本中寫入,
    只需要打開一次,然後每次從txt取值,直到取完爲止
  • 業務UI圖:
    在這裏插入圖片描述

2、框架環境

  • Python 3.5
  • Python的sendmail、xlrd、HTMLtestRuner、CSV、ConfigParser、Json模塊
  • Selenium
  • Pycharm

3、業務實現思路

  • 設置界面,修改輸入源的分辨率的高和寬,以及刷新率,進行應用
  • 設備界面,查看對應輸入源的分辨率信息
  • 把設置界面輸入的分辨率信息和設備界面的顯卡返回的分辨率信息進行對比,判斷設置是否OK

4、業務結果判斷

把設置界面輸入的分辨率信息和設備界面的顯卡返回的分辨率信息進行對比,判斷設置是否OK,主要有兩種情況:

  • 超出帶寬:在腳本中加入判斷信息,如果輸入的值按照計算公式大於165M帶寬,才判斷爲超出帶寬
  • 返回異常:輸入的和返回的值不一致,這種情況一般保存數據,具體分析,如下示例:
    在這裏插入圖片描述

5、數據處理

對於運行的結果數據處理,目前支持三種方式:

  • 把測試用例結果,通過HtmlTestRunner.py庫封裝成測試用例集,然後通過SendMail.py庫,發送郵件給項目組成員。
    示例:
    在這裏插入圖片描述

  • 使用Eclipse開發平臺,把測試結果的Console,保存到log中,實時抓取運行過程和結果數據(這個可以忽略,後續直接在代碼中加log)
    在這裏插入圖片描述

  • 把測試結果,直接保存到config的配置文件中,直接查看
    在這裏插入圖片描述

6、框架說明

在這裏插入圖片描述

7、操作說明

  1. 打開all_test,py修改接收郵箱地址和保存保存路徑
  2. 打開tools中的sendMail.py修改發送者的郵箱地址
  3. 在Utils中的Settings3寫業務模塊的功能(Settings1和Settings2是多餘的)
  4. 在test_case中test_Settings_Custom_Resolution.py寫測試用例
  5. 執行all_test.py

8、數據存儲效果

在這裏插入圖片描述

9、源碼地址

https://github.com/NoamaNelson/UnittestWebUIFour

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章