【python生成用例报告】unittest、HTMLTestReport、参数化demo

使用第三方的报告模版,生成报告 HTMLTestReport, 本质是 TestRunner
- 安装
pip install HTMLTestReport
- 使用
1. 导包 unittest、HTMLTestReport
2. 组装用例(套件, loader )
3. 使用 HTMLTestReport 中的 runner 执行套件
4. 查看报告

目录结构:
在这里插入图片描述
app.py:

import os
Base_Dir = os.path.dirname(__file__)
print(Base_Dir)

tools.py:

def login(username, password):
    if username == 'admin' and password == '123456':
        return '登录成功'
    else:
        return '登录失败'

login_data.json:

[
  {
    "desc": "正确的用户名和密码",
    "username": "admin",
    "password": "123456",
    "expect": "登录成功"
  },
  {
    "desc": "错误的用户名",
    "username": "root",
    "password": "123456",
    "expect": "登录失败"
  },
  {
    "desc": "错误的密码",
    "username": "admin",
    "password": "123456111",
    "expect": "登录失败"
  },
  {
    "desc": "错误的用户名和密码",
    "username": "admin1",
    "password": "1234561",
    "expect": "登录失败"
  }
]

login_case.py:

import json
import unittest
from parameterized import parameterized
from app import Base_Dir
from tools import login
# 处理数据方法
def login_data():
    file = Base_Dir + "/data/login_data.json"
    new_list = []
    with open(file,"r", encoding='utf-8') as fp:
        data_list = json.load(fp)
        for data in data_list:
            new_list.append(tuple(data.values()))
        return new_list

# test类
class LoginTest(unittest.TestCase):


    @parameterized.expand(login_data())
    def test_login(self,desc,username,pwd,expect):
        print(desc)
        print(f'username: {username}, password: {pwd}, expect: {expect}')
        self.assertEqual(expect,login(username,pwd))

login.py:

import unittest

from htmltestreport import HTMLTestReport
from case.login_case import LoginTest
from app import Base_Dir

suite = unittest.TestSuite()
# suite.addTest(LoginTest("test_login"))
suite.addTest(unittest.makeSuite(LoginTest))
# runner = unittest.TextTestRunner()
# runner.run(suite)

runner = HTMLTestReport(Base_Dir+"/report/login_report.html","登录测试报告","V1.0")
runner.run(suite)

运行结果:
在这里插入图片描述

生成报告:
在这里插入图片描述

  • 9
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值