关于#自动化#的问题,如何解决?

大环境下,公司要求从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代码红外温度矩阵、温度数据转为图片保存为PNG格式中的 温度矩阵转图片方法 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 这里提供两种方法,第一种是用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的单元格都设置成了上述的那样,那么就可以直接复制数据到着上面直接显示
    在这里插入图片描述

    总结一下
    第二种方法主要给极端人士使用不推荐,如果需要其他温度数据我有空弄上传一些,祝大家新年快乐,点个赞吧。
    在这里插入图片描述