這篇文章主要講解了Python如何通過(guò)Pillow實(shí)現(xiàn)圖片對(duì)比,內(nèi)容清晰明了,對(duì)此有興趣的小伙伴可以學(xué)習(xí)一下,相信大家閱讀完之后會(huì)有幫助。
創(chuàng)新互聯(lián)是一家專注于成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)與策劃設(shè)計(jì),香坊網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)10余年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:香坊等地區(qū)。香坊做網(wǎng)站價(jià)格咨詢:18980820575在編寫Web自動(dòng)化測(cè)試用例的時(shí)候,如何寫斷言使新手不解,嚴(yán)格意義上來(lái)講,沒(méi)有斷言的自動(dòng)化腳本不能叫測(cè)試用例。就像功能測(cè)試一樣,當(dāng)測(cè)試人員做了一些操作之后必然會(huì)判斷實(shí)際結(jié)果是否等于預(yù)期結(jié)果,只不過(guò),這個(gè)過(guò)程由測(cè)試人員的眼睛完成。而自動(dòng)化測(cè)試腳本必然要通過(guò)一此信息來(lái)斷定用例是否成功。
這其中常用的三種信息分別是:
title :頁(yè)面不同或顯示不同時(shí)往往title也會(huì)有所變化。
url :與title類似,當(dāng)頁(yè)面發(fā)生變化時(shí),跟著url也會(huì)改變。
text:相比前者應(yīng)用更廣泛,因?yàn)橥ㄟ^(guò)它可以獲取頁(yè)面上的任意標(biāo)識(shí)性文本,用于“證明”用例執(zhí)行是成功的。例如,登陸之后人用戶名,查詢的結(jié)果等。
但是,在有些情況下,無(wú)法獲取這些信息來(lái)證明用例是成功的怎么辦?當(dāng)然,下策是不寫斷言,腳本運(yùn)行沒(méi)有報(bào)錯(cuò)來(lái)證明用例執(zhí)行成功,這當(dāng)然是無(wú)奈之舉。除此之外還可以選擇斷言兩張圖片,在用例執(zhí)行正確的情況下對(duì)當(dāng)前頁(yè)面進(jìn)行截圖,在用例執(zhí)行的過(guò)程中再次進(jìn)行截圖。通過(guò)對(duì)兩張圖片進(jìn)行比較,從而判斷用例是否運(yùn)行成功。
Pillow下載:https://pypi.python.org/pypi/Pillow/3.0.0
根據(jù)自己的操作系統(tǒng)以及python版本選擇下載。
安裝:
> python3 -m pip install Pillow-3.0.0-cp35-none-win_amd64.whl
Processing c:\selenium\pillow-3.0.0-cp35-none-win_amd64.whl
Installing collected packages: Pillow
Successfully installed Pillow-3.0.0
注意,因?yàn)槲冶緳C(jī)同時(shí)安裝了Python2.7和Python3.5,所以,這里特意指定安裝在Python3的下面。
from PIL import Image import math import operator from functools import reduce def image_contrast(img1, img2): image1 = Image.open(img1) image2 = Image.open(img2) h2 = image1.histogram() h3 = image2.histogram() result = math.sqrt(reduce(operator.add, list(map(lambda a,b: (a-b)**2, h2, h3)))/len(h2) ) return result if __name__ == '__main__': img1 = "./img1.jpg" # 指定圖片路徑 img2 = "./img2.jpg" result = image_contrast(img1,img2) print(result)