operator实现text文本比较并生成html报告

前言:

最近在测试过程中遇到了一个短信测试用例。大概就是这样的,比如说我给A手机号发送一条“Hello Word”的短信,短信发送成功后查看A手机号实际收到的短信是否是“Hello Word”,如果不是的话说明这块短信发送功能是有缺陷的。一条短信我们通过手动操作是比较容易的,但是实际测试时有好几百条短信需要测试,如果单纯靠眼睛去看的话,是很耗时耗力的,而且伴随着眼疲劳还会有“误看,漏看”情况,因此我和小伙伴为了解决这一问题,就写了一个脚本来实现该短信内容自动比较的功能。

功能说明:

这个功能期中主要分为2大功能,期中一个是通过使用appium来获取实际短信内容,然后保存到本地txt文本中去。第二个是把获取的txt文本的实际和预期短信内容比较,我们提前把预期的短信内容也是保存到本地的另一个txt文本中,这样的话就比较方便2个txt文本的比较,在这里我们把文本内容中的大小写,空格不同也视为不同,然后计较结束后生成一个html报告。今天的话和大家分享的是怎么把获得的短信内容进行比较。

代码部分:


import difflib
import sys
import operator



'''用于比较两个text文本差异值'''
#读取text文件
def read_file(file_name):
    try:
        file_desc = open(file_name,encoding='utf-8')
        #读取后按行进行内容读取
        text = file_desc.read().splitlines()
        file_desc.close()
        return text
    except IOError as error:
        print('Read file error:{0}'.format(error))
        sys.eixt()

#比较两个文本并把结果生成一份html报告
def compare_file(file1,file2):
    if file1 == '' or file2 == '':
        print('文件路径不能为空:第一个文件路径:{0},第二个文件路径:{1}'.format(file1,file2))
        sys.exit()
    else:
        print('正在比较文件{0}和{1}'.format(file1,file2))
        text1_lines = read_file(file1)
        text2_lines = read_file(file2)
        diff = difflib.HtmlDiff() #创建HtmlDiff对象
        result = diff.make_file(text1_lines,text2_lines)

    #将结果写入到result_comparation.html中,生成一个html格式的文件
    try:
        with open('result_comparation.html','w',encoding = 'utf-8') as result_file:
            result_file.write(result)
            print('Succefully Finished!')

    except IOError as error:
        print('写入html文件错误:{0}'.format(error))

#文本内容比较,只比较是哪条不同,不打印具体是哪里不同。
def text_compare(file1,file2):
    countexp = 0
    count = 0
    compare_list = []
    content1 = read_file(file1)
    content2 = read_file(file2)
    if len(content1) != len(content2):
        compare_list.append('内容有漏发或者重发情况')
        return compare_list
    else:
        for i in range(len(content1)):
            countexp = countexp + len(content1[i])
            if not operator.eq(content1[i],content2[i]):
                result = '第' + str(i + 1) + '和预期结果内容不一致'
                compare_list.append(result)

            else:
                coumt = count + 1
        if countexp == count:
            print('测试结论:Pass')

        return compare_list



if __name__ == '__main__':
    file1 = 'D:\Log\smsactul.txt'
    file2 = 'D:\Log\smsexcept.txt'
    compare_file(file1,file2)

实际结果:

通过运行以上代码后,我们会获得实际比较结果,这里我生成的是html报告,如图所示:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值