大环境下,公司要求从0-1搭建自动化测试框架,现需要Ui自动化中对比项目中上传的图片和本地图片,还有对比下载的文件和本地文件 目前是用python3.9 Windows
目前只能是做到本地图片和文件进行对比
期望可以抓取到在项目中上传的图片(png)与我本地的文件进行对比,和在项目中下载的文件与我本地的文件进行对比。
要实现对上传的图片进行对比,需要先了解该图片在项目中的位置以及如何获取这些图片。如果是 web 应用程序,可以通过模拟浏览器访问页面并获取上传图片的 url,然后通过 url 下载图片。如果是其他类型的应用程序,可以通过查找项目中的配置文件或日志文件来获取图片的地址。
获取到图片后,可以使用 Python 的 Pillow 库进行图片处理和比较。以下是一个简单的示例代码,用于比较本地的一个图片和下载的一个图片是否相同:
from PIL import Image
# 加载本地图片和下载的图片
local_image = Image.open('local_image.png')
downloaded_image = Image.open('downloaded_image.png')
# 比较图片是否相同
if local_image.mode != downloaded_image.mode or local_image.size != downloaded_image.size or \
not ImageChops.difference(local_image, downloaded_image).getbbox():
print("Images are identical")
else:
print("Images are not identical")
对于文件下载对比,可以先将下载的文件保存到本地,然后使用 Python 的 filecmp 库进行文件比较。以下是一个示例代码:
import os
import filecmp
# 下载文件保存到本地后的路径
downloaded_file_path = 'downloaded_file.txt'
# 本地文件路径
local_file_path = 'local_file.txt'
# 比较文件是否相同
result = filecmp.cmp(downloaded_file_path, local_file_path)
if result == True:
print('Files are identical')
else:
print('Files are not identical')
希望以上代码示例可以为您的自动化测试框架开发提供一些帮助。
这里提供两种方法,第一种是用python里面的库实现,第二种是给没有python环境的人测试用(要有execl)
一、使用python将温度数据保存为图片
python懂的小伙伴都懂,不做过多解释,直接上代码
直接Image库里面一步到位生成保存图像,自行研究
#!/usr/bin/env python
import cv2
import numpy as np
import matplotlib.pyplot as plt
from PIL import Image
import matplotlib
f = open(r"HWdata.txt")
val_list = f.readlines()
lists =[]
for string in val_list:
string = string.split(',')
lists.append(string[0:120])
a = np.array(lists)
a= a.astype(float)
a = np.array(a).reshape(160, 120)
#####
#interpolation=nearest 插值
#origin=upper 镜像
#cmap=plt.cm. jet\hsv\hot\cool\spring\summer\autumn\winter\gray\bone\copper\pink\lines
#####
#plt.imshow(a,interpolation='nearest',cmap=plt.cm.hot,origin='upper')
plt.imshow(a,interpolation='None',cmap=plt.cm.gray,origin='upper')
#温标 shrink=0.8
plt.colorbar()
plt.xticks(())
plt.yticks(())
plt.show()
#保存图片
#matplotlib.image.imsave('test.png',a)
二、使用execl将温度数据保存为图片
1、将txt文件中的温度数据放在execl中
此处是将数据放在了1列160行
2、将1列160行的温度数据拆分出来,转成160行120列
点击execl中的数据-分列
选择分隔符号点击下一步
选择逗号,点击下一步
最后点击完成,就可以得到160行120列的放在execl温度数据
3、对温度数据附上颜色
首先选中全部单元格将单元格缩小到像素值为1
(这个不知道用什么方法比较好,不是很会用execl,我用的方法是点击作左上角的小三角然后拖动单元格让他像素值为1)
这步也可以不操作,只是这样等下附上颜色出来的图片会比较大被拉伸了一样,尽量弄成正方形的单元格也行
可以先检查点击一下左上角的小三角检查一下数据量对不对
这里图片看不清,但是右下角计数显示是19200,刚好是160x120
数据没问题,继续下一步上色
我们在选中全部数据的状态下,在开始中蒂娜及条件格式,点击新建规则
在规则中设置为我下图那样,格式为三色刻度,中间50%的颜色选择一个灰色,最高最低可以分别设置为黑白
点击确定即可生成一张温度组成的红外图,颜色可以自行选择,这种保存的方法要自行摸索了,我也不是很了解execl
如果你将这个execl的单元格都设置成了上述的那样,那么就可以直接复制数据到着上面直接显示
总结一下
第二种方法主要给极端人士使用不推荐,如果需要其他温度数据我有空弄上传一些,祝大家新年快乐,点个赞吧。