前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python接口自动化之ExtentHTMLTestRunner测试报告

Python接口自动化之ExtentHTMLTestRunner测试报告

作者头像
全栈测试开发日记
发布2023-02-02 18:11:31
2580
发布2023-02-02 18:11:31
举报

  引言

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

  示例

代码语言:javascript
复制
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:
代码语言:javascript
复制
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:

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

代码语言:javascript
复制
__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()

  运行结果:

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

   总结:

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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-07-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  •   引言
  •   示例
  •   案例讲解
    •   方法1:
      •   方法2:
      •    总结:
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档