伍佰目录 短网址
  当前位置:海洋目录网 » 站长资讯 » 站长资讯 » 文章详细 订阅RssFeed

结对测试算法性能优化(代码层面)

来源:本站原创 浏览:151次 时间:2021-09-02

在《接口自动化测试框架-AIM》这篇博客中,提到了parewise算法。

这次对其进行性能优化,共3点。

一、

因为笛卡尔积和两两拆分,是有序的。

就保证了两两拆分后的每列都是相同位置的元素。

所以在比较时,不用跨列去比较。

只需要比较同一列的值就可以了。

flag = Falsefor j2 in range(len(s2[i2])):    if s[i][j] == s2[i2][j2] and j == j2:        t = t + 1        flag = True        breakif flag:    break

简化为

if s[i][j] == s2[i2][j]:    t = t + 1    break

笛卡尔积2187条,优化前60s,优化后45s。

二、

如果某一列没有出现重复的元素,那就不用继续找后面的列了。

说明这一行用例是需要保留的。

        for j in range(len(s[i])):  # 对每行用例的两两拆分进行判断,是否出现在其他行            flag = False            for i2 in [x for x in range(len(s2)) if s2[x] != s[i]]:  # 找同一列                if s[i][j] == s2[i2][j]:                    t = t + 1                    flag = True                    break            if not flag:  # 同一列没找到,不用找剩余列了                break

笛卡尔积2187条,优化前45s,优化后40s。

三、

优化到这里,逐段代码研究,发现没多少优化余地了。

最外层的for循环是笛卡尔积2187次。

每次循环平均0.02s。

4����,����0.85s是2187次累加起来的。

无可奈何。

只能优化用户体验了,哈哈哈。

加了个进度条。

过程也有些曲折。

1.

按网上例子print \r end=

c = int(i / 10)jd = '\r %2d%% [%s%s]'a = '■' * cb = '□' * (10 - c)print(jd % (i, a, b), end='')

单独的py文件跑没问题,pycharm用unittest跑显示不出来。

2.

那就百度,换sys.stdout.write

c = int(i / 10)jd = '\r %2d%% [%s%s]'a = '■' * cb = '□' * (10 - c)sys.stdout.write(jd % (i, a, b))sys.stdout.flush()

成功显示了。但是在用HTMLTestRunner跑的时候,又显示不出来进度条了!

3.

再百度,无果。

看源码,发现是输出重定向了。

联想到log日志是能打印控制台的。

于是“偷奸耍滑”,在Log里面复用了一下。

搞定。

版权申明:本文为博主原创文章,转载请保留原文链接及作者。

  推荐站点

  • At-lib分类目录At-lib分类目录

    At-lib网站分类目录汇集全国所有高质量网站,是中国权威的中文网站分类目录,给站长提供免费网址目录提交收录和推荐最新最全的优秀网站大全是名站导航之家

    www.at-lib.cn
  • 中国链接目录中国链接目录

    中国链接目录简称链接目录,是收录优秀网站和淘宝网店的网站分类目录,为您提供优质的网址导航服务,也是网店进行收录推广,站长免费推广网站、加快百度收录、增加友情链接和网站外链的平台。

    www.cnlink.org
  • 35目录网35目录网

    35目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向35目录推荐、提交优秀网站。

    www.35mulu.com
  • 就要爱网站目录就要爱网站目录

    就要爱网站目录,按主题和类别列出网站。所有提交的网站都经过人工审查,确保质量和无垃圾邮件的结果。

    www.912219.com
  • 伍佰目录伍佰目录

    伍佰网站目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向伍佰目录推荐、提交优秀网站。

    www.wbwb.net

关闭

关闭