• unittest + airtest + HTMLTestRunner 执行脚本并生成测试报告


    使用场景:功能回归测试、list清单检查或者单元测试场景

    airtest脚本

    1、poco控件
    2、图片识别

    区别在于:

    • 用poco控件编写的脚本容错率较低,兼容性更强,更适合跑兼容性测试,但需要项目接入poco-sdk
    • 用图片识别编写的脚本容错率较高,兼容性较弱,没有代码权限无法尝试接入poco-sdk时可以选择此方式

    结合unittest单元测试框架和HTMLTestRunner

    测试报告模板使用HTMLTestRunner

    difference
    另外在此模板的基础上,添加了截图显示,在报告中点击缩略图会跳转显示原图

    脚本内需要导入(使用poco需要另外导入相应模块):

    # airtest模块
    from airtest.core.api import *
    # unittest是python的单元测试框架
    import unittest
    # HTMLTestRunnerCN是专门为unitest搞的html测试报告
    import HTMLTestRunnerCN
    

    setUp()方法用于测试用例执行前的初始化工作。
    如测试用例中需要访问数据库,可以在setUp中建立数据库连接并进行初始化。如测试用例需要登录web,可以先实例化浏览器
    在这里我主要是用于移动端测试,所以在setUp中建立手机连接

    def setUp(self):
        auto_setup(__file__, logdir=True, devices=[
            f"android://127.0.0.1:5037/{devices}?cap_method=javacap&touch_method=adb",
        ])
    

    生成测试报告

    # 获取当前时间,这样便于下面的使用。
    now = time.strftime("%Y-%m-%d-%H_%M_%S", time.localtime(time.time())) + '.html'
    # filePath:测试报告保存的路径
    filePath = os.path.join(os.getcwd(), 'report', now)
    fp = open(filePath, 'wb')
    # 测试报告的title、描述
    runner = HTMLTestRunnerCN.HTMLTestReportCN(stream=fp,
                                               title='自动化回归测试报告',
                                               description='',
                                               tester='屈闯'
                                               )
    runner.run(suite)
    # 最后记着关闭文件
    fp.close()
    

    报告展示

    report_1

    report_2

    其他问题

    使用图片识别写脚本,可以正常运行,但是报告中会显示报错

    error: (-213:The function/feature is not implemented) 
    This algorithm is patented and is excluded in this configuration; 
    Set OPENCV_ENABLE_NONFREE CMake option and rebuild the library in function 'cv::xfeatures2d::SURF::create'
    

    bug_1
    谷歌一下,发现是sift算法已经申请专利,开源OpenCV没有版权,新的OpenCV去掉了这个算法

    解决方法:
    1.卸载已安装的高版本
    pip uninstall opencv-python
    pip uninstall opencv-contrib-python
    2.安装低版本
    pip install --upgrade -i https://pypi.tuna.tsinghua.edu.cn/simple opencv-python==3.4.2.16
    pip install --upgrade -i https://pypi.tuna.tsinghua.edu.cn/simple opencv-contrib-python==3.4.2.16
    完美解决

  • 相关阅读:
    leetcode74
    leetcode59
    leetcode1283
    0079. Word Search (M)
    0067. Add Binary (E)
    0203. Remove Linked List Elements (E)
    用async 解放你的大脑
    Python 类属性和方法
    Python 类装饰器
    Python 装饰器
  • 原文地址:https://www.cnblogs.com/qvchuang/p/14447811.html
Copyright © 2020-2023  润新知