PythonはPillowを通じて写真のコントラストを実現します。


Webオートメーションテストケースを作成する時、どうやって書き表したらいいのか分かりません。厳密な意味では、自動化スクリプトはテストケースとは言い切れません。機能テストのように、テスト員がいくつかの操作をしたら、必ず実際の結果が予想通りの結果になるかどうかを判断します。ただし、この過程はテスト員の目によって完成されます。自動化テストスクリプトは必ずこの情報を通して用例が成功したかどうかを判定します。
この中でよく使われる3つの情報は、それぞれ以下の通りです。
title:ページが違ったり、表示が違ったりして、時々titleも変化します。
url:titleと似ています。ページが変わると、urlによっても変わります。
text:前者のアプリケーションよりも広く、ページ上の任意の識別テキストを取得することができるので、「証明」の用例実行に成功しました。例えば、ログインした後の人の名前、問い合わせの結果など。
しかし、場合によっては、これらの情報を取得することができませんでした。用例が成功したと証明するにはどうすればいいですか?もちろん、次のシナリオは書かないで断言して、シナリオの運行は間違っていないで例で実行するのが成功することを証明しにきて、これはもちろんしようがないことです。この他にも、2枚の画像を断言し、用例が正しい場合には現在のページをスクリーンショットし、用例実行中に再度スクリーンショットを行うことができる。2枚の写真を比較することにより、用例が成功したかどうかを判断します。
Pillowダウンロード:https://pypi.python.org/pypi/Pillow/3.0.0
自分の操作システムとpythonバージョンによってダウンロードを選択します。
インストール:
>python 3-m pip install Pillow-3.0-cp 35-none-win_amd 64.whl
Processing c:\selenium\pillow-3.0-cp 35-none-win_amd 64.whl
Installing colleced packages:Pillow
Success fully installed Pillow-3.0
注意してください。Python 2.7とPython 3.5を同時に設置していますので、ここでPythoon 3の下に設置することを指定します。

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)

  h1 = image1.histogram()
  h2 = image2.histogram()

  result = math.sqrt(reduce(operator.add, list(map(lambda a,b: (a-b)**2, h1, h2)))/len(h1) )
  return result

if __name__ == '__main__':
  img1 = "./img1.jpg" #       
  img2 = "./img2.jpg"
  result = image_contrast(img1,img2)
  print(result)
2つのピクチャが完全に等しい場合、戻り値は浮動小数点タイプ「0.0」であり、異なる場合は戻り値が大きい。
このようにすれば、自動化テストケースでこの方法を呼び出して、実行結果を断言することができる。
Pillowライブラリに関する詳細文書:
http://pillow.readthedocs.org/en/latest/index.html
以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。