zoukankan      html  css  js  c++  java
  • Python接口自动化之ExtentHTMLTestRunner测试报告

      引言

      结合HTMLTestRunner做的改动,页面内容拿的HttpRunnerManager中的测试报告模板(感谢HttpRunnerManager),HttpRunnerManager是直接将结果数据传递给报告,结合原HTMLTestRunner是在执行测试的同时将结果写到测试报告中,功能还不够完善,但是基本功能都已ok;模板地址:https://github.com/wishchen/ExtentHTMLTestRunner

      示例

    from ExtentHTMLTestRunner import HTMLTestRunner
    
    
    filename="/*/result.html"
    fp=open(filename,'wb')
    
    runner=HTMLTestRunner(
                          stream=fp,
                          title='自动化测试报告',
                          description='用例执行情况:')
    

      

      在报告中展示截图:

    • 截图须和html报告在同一目录下;
    • 需要在对应的case中打印一下截图名称,截图名称以 screenshot_*.png 格式命名.
    • 报告需要的extent.js、extent.css可能下载不了,如果报告展示有问题可能是这些资源没有拿到,注意检查下。

      案例讲解

      项目结构:

      

      方法1:

    from ExtentHTMLTestRunner import HTMLTestRunner
    import unittest
    
    class InterfaceTest(unittest.TestCase):
        def test_1(self):
            print("测试")
            print("screenshot_baidu.png")
    
        def test_2(self):
            a = 1
            b = 2
            return  a*b
    if __name__ == '__main__':
        suite = unittest.TestSuite()
        suite.addTest(unittest.makeSuite(InterfaceTest))
    
        filename="result22.html"
        fp=open(filename,'wb')
    
        runner=HTMLTestRunner(
                              stream=fp,
                              title='自动化测试报告',
                              description='用例执行情况:')
        runner.run(suite)
        fp.close()
    

      运行结果:

       第二条用例没有输出什么,所以是空

      方法2:

      项目结构和上面是一样的,只是用例代码不一样:

    __author__ = 'Leo'
    
    from ExtentHTMLTestRunner import HTMLTestRunner
    import unittest,os,requests
    
    # 获取根目录
    BASE_DIR = os.path.dirname(os.path.dirname(__file__))
    # 获取指定目录test_case
    TEST_CASE = os.path.join(BASE_DIR,"test_case")
    
    
    class InterfaceTest(unittest.TestCase):
        def test_1(self):
            url = 'https://api.apiopen.top/getWangYiNews'
            data = {
                'page':1,
                'count':1
            }
            r = requests.post(url=url,data=data)
            print(r.text)
        def test_2(self):
            a = 1
            b = 2
            # Name and print in this format "screenshot_*.png" if you want to show screenshot in report.
            print("screenshot_baidu.png")
            return  a*b
    if __name__ == '__main__':
        # suite = unittest.TestSuite()
        # suite.addTest(unittest.makeSuite(InterfaceTest))
    
        discover = unittest.defaultTestLoader.discover(TEST_CASE, pattern='test_002.py')
    
        filename="result.html"
        fp=open(filename,'wb')
        runner=HTMLTestRunner(
                              stream=fp,
                              title='自动化测试报告',
                              description='用例执行情况:')
        runner.run(discover)
        fp.close()
    

      运行结果:

      第二条用例使用了截图功能,如图所示:

       总结:

      喜欢的朋友可以学习一下,后面还可以平台化,另外对测试及测试开发感兴趣的伙伴,可以加入到我们的学习沟通群,一起提升自己!

  • 相关阅读:
    eVC4系列下载地址[更新](增加sp4)
    ABAP如何生成年月的输入帮助
    BW BW Connectivity(最佳实践适合BW3.5)
    MM公司委托加工流程
    ABAP一个读取EXCEL单元格的内容超过256个字符的代码样例
    ABAP如何实现合计字段分单位合计
    ABAPABAP程序员需要参加的课程
    ABAP关于ABAP Dictionary的一些简单问题
    FI分期收款发出商品物料数据(仅供参考)
    ABAP关于abap的subroutines的几个注意点
  • 原文地址:https://www.cnblogs.com/liudinglong/p/13379045.html
Copyright © 2011-2022 走看看