博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Pillow实现图片对比
阅读量:7120 次
发布时间:2019-06-28

本文共 1297 字,大约阅读时间需要 4 分钟。

 

  在编写Web自动化测试用例的时候,如何写断言使新手不解,严格意义上来讲,没有断言的自动化脚本不能叫测试用例。就像功能测试一样,当测试人员做了一些操作之后必然会判断实际结果是否等于预期结果,只不过,这个过程由测试人员的眼睛完成。而自动化测试脚本必然要通过一此信息来断定用例是否成功。

 

这其中常用的三种信息分别是:

title :页面不同或显示不同时往往title也会有所变化。

url :与title类似,当页面发生变化时,跟着url也会改变。

text:相比前者应用更广泛,因为通过它可以获取页面上的任意标识性文本,用于“证明”用例执行是成功的。例如,登陆之后人用户名,查询的结果等。

 

但是,在有些情况下,无法获取这些信息来证明用例是成功的怎么办?当然,下策是不写断言,脚本运行没有报错来证明用例执行成功,这当然是无奈之举。除此之外还可以选择断言两张图片,在用例执行正确的情况下对当前页面进行截图,在用例执行的过程中再次进行截图。通过对两张图片进行比较,从而判断用例是否运行成功。

 

Pillow下载:

根据自己的操作系统以及python版本选择下载。

安装:

> python3 -m pip install Pillow-3.0.0-cp35-none-win_amd64.whlProcessing c:\selenium\pillow-3.0.0-cp35-none-win_amd64.whlInstalling collected packages: PillowSuccessfully installed Pillow-3.0.0

  注意,因为我本机同时安装了Python2.7Python3.5,所以,这里特意指定安装在Python3的下面。

 

from PIL import Imageimport mathimport operatorfrom functools import reducedef 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 resultif __name__ == '__main__':    img1 = "./img1.jpg"  # 指定图片路径    img2 = "./img2.jpg"    result = image_contrast(img1,img2)    print(result)

 

  如果两张图片完全相等,则返回结果为浮点类型“0.0”,如果不相同则返回结果值越大。

  这样就可以在自动化测试用例中调用该方法来断言执行结果。

=====================

转载地址:http://vhsel.baihongyu.com/

你可能感兴趣的文章
20060516: 实现圆角div效果
查看>>
Vim 快捷键整理
查看>>
自己在总结前人经验下弄的几个opencv封装函数
查看>>
宣布降低Windows Azure 存储和计算的价格
查看>>
使用 MacBook Pro 的硬件重置功能解决故障
查看>>
tomcat-1-初识
查看>>
转载:::::简单分享一个轻量级自动化测试框架目录结构设计
查看>>
cocos2dx飞机大战开发记录(3)
查看>>
poj 1201 Intervals
查看>>
maven学习(6)-Maven依赖范围
查看>>
JavaScript设计模式: 接口模仿
查看>>
黑马程序员--java基础知识注意点收录
查看>>
HTML CSS——margin和padding的学习
查看>>
【《zw版·Halcon与delphi系列原创教程》 zw_halcon人脸识别
查看>>
Webform中<%%>
查看>>
一些简单的配置
查看>>
Effective C++ 精要(第五部分:实现)
查看>>
DIV+CSS颜色边框背景等样式
查看>>
HDU 1018 Big Number【斯特林公式/log10 / N!】
查看>>
nefu 115
查看>>