最近某人把以前的 UI 測試新思路與代碼整理了一番,
css
因而有了 Pic-Diff-Recognizer 的誕生。python
什麼是 Pic-Diff-Recognizer ?nginx
Pic-Diff-Recognizer 是基於圖像差別識別與頁面遍歷探索的Selenium UI 自動化測試插件庫。git
此庫誕生的目的是爲了讓 UI 自動化測試再也不須要與頁面元素打交道, web
而是直接使用真實的視覺差別來判斷測試結果是否符合預期。
chrome
如何安裝?微信
首先安裝開源項目目錄下的依賴包:
app
pip install -r requirements.txt
而後再安裝今天的主角:less
pip install pic-diff-recognizer
如何使用?
測試
下面給你們放出最佳實踐:
from pic_diff_recognizer.searchHandler import SearchHandlerfrom violent_webdriver import Chromefrom selenium.webdriver.chrome.options import Options
# add some useful options :)chrome_options = Options()chrome_options.add_argument("--headless")chrome_options.add_argument("disable-infobars")chrome_options.add_experimental_option("excludeSwitches", ['enable-automation'])
# init driver , executable_path should be your own path!dr = Chrome.violent_chromedriver(chrome_options=chrome_options, executable_path='/usr/local/bin/chromedriver')
# init searchHandlersearch_handler = SearchHandler(browser=dr)
# search and saving baseline images in current directory named baselinesearch_handler.traverse_href(origin_url='https://gitbook.cn/gitchat/author/5cea0bfbb78cc870612d8bba')
# -------------------- assuming after some iterations of current project -----------------------------
search_handler.url_histories = []
# load baseline imagessearch_handler.picture_handler.load_base_line()
# search and comparing screen shots and baseline imagessearch_handler.traverse_href(origin_url='https://gitbook.cn/gitchat/author/5cea0bfbb78cc870612d8bba', compare_baseline_and_screen_shots=True)
# generate_diff_between_base_line_and_screen_shot and output diffResults to current directorysearch_handler.picture_handler.generate_diff_between_base_line_and_screen_shot()
# output testReport.txt to current directorysearch_handler.picture_handler.export_picture_comparison_result()
能夠看到在項目迭代分割線以前,
程序先探索並保存了待測頁面的圖像。
而在項目迭代分割線以後,
程序再次探索待測頁面並對比了圖像差別,
最終輸出測試報告。
相信這很好的對應了現實項目迭代中的回測節奏。
固然,目前來講此庫還有許多能夠改進的地方。
對源碼地址有興趣的小夥伴能夠在公衆號內回覆:
Pic-Diff-Recognizer
最後喊個口號吧:開源,yes!
本文分享自微信公衆號 - AI測試前線(TaisiteMagicWorld)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。