首页 > 编程语言 >【python生成用例报告】unittest、HTMLTestReport、参数化demo

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

时间:2024-07-11 16:27:02浏览次数:7  
标签:username python demo unittest expect import login data

使用第三方的报告模版,生成报告 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)

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

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

标签:username,python,demo,unittest,expect,import,login,data
From: https://blog.csdn.net/weixin_45953140/article/details/140350712

相关文章

  • 代码随想录算法训练营第六天 | Python | LeetCode242.有效的字母异位词、LeetCode349.
    哈希表理论https://programmercarl.com/%E5%93%88%E5%B8%8C%E8%A1%A8%E7%90%86%E8%AE%BA%E5%9F%BA%E7%A1%80.html一般哈希表都是用来快速判断一个元素是否出现集合里。数组/set/mapLeetCode242.有效的字母异位词题目链接:https://leetcode.cn/problems/valid-anagr......
  • 代码随想录算法训练营第四天 | Python | LeetCode24.两两交换链表中的节点、19.删除链
    LeetCode24.两两交换链表中的节点题目链接:https://leetcode.cn/problems/swap-nodes-in-pairs/description/文章/视频链接:https://programmercarl.com/0024.%E4%B8%A4%E4%B8%A4%E4%BA%A4%E6%8D%A2%E9%93%BE%E8%A1%A8%E4%B8%AD%E7%9A%84%E8%8A%82%E7%82%B9.html#%E7%AE%9......
  • Python的pip换源以及第三方库的安装
    pip换源该pycharm版本为2024.1.4,选择小齿轮选择加号这里推荐几个(1)阿里云http://mirrors.aliyun.com/pypi/simple/(2)豆瓣http://pypi.douban.com/simple/(3)清华大学https://pypi.tuna.tsinghua.edu.cn/simple/(4)中国科学技术大学http://pypi.mirrors.ustc.edu.cn/simpl......
  • 总结24个Python接单赚钱平台与详细教程,兼职月入5000+
     如果说当下什么编程语言最靠谱或者比较适合搞副业?答案肯定100%是:Python。python是所有语法中最简单易上手的语言,不需要特别的的英语词汇量,逻辑思维也不需要很差就能上手。而且学会了之后就能编写代码爬取各种数据,制作各种图表,提升工作效率。而且还能利用业余时间接点私活......
  • python基础知识(全部)
    2023年说明:如果代码有误的话,记得处理一下缩进,或者注释的问题,文章粘贴的代码在此处可能部分缩进有问题建议食用:目录一变量和简单数据类型输出二数整数.浮点数注释三列表定义和打印访问列表元素修改,添加,删除元素修改添加删除组织列......
  • [Python基础] matplotlib绘图的深入浅出学习
    matplotlib 是Python中最常用的绘图库之一,它提供了丰富的绘图功能,非常适合数据可视化。下面我将从整体逻辑开始,逐步深入到具体的例子matplotlib绘图整体逻辑:1、创建图像对象: plt.figure()2、绘制数据:plt.plot()等函数绘制数据 3、设置坐标轴、标签、图表标题等;现在,......
  • Python基础教学之五:异常处理与文件操作——让程序更健壮
    Python基础教学之五:异常处理与文件操作——让程序更健壮一、异常处理概念1.理解异常异常是程序运行中发生的错误或意外情况,比如除以零、访问不存在的列表元素等。如果不进行处理,异常会导致程序终止运行。在编程过程中,我们经常会遇到意料之外的情况,这些情况如果不加以处理,......
  • 给想学好Python编程的小伙伴的一些建议
    关于Python技术储备学好Python不论是就业还是做副业赚钱都不错,但要学会Python还是要有一个学习规划。最后大家分享一份全套的Python学习资料,给那些想学习Python的小伙伴们一点帮助!保存图片微信扫描下方博客园官方认证二维码免费领取【保证100%免费】 一、Python所......
  • 第五篇:python字符串
    一.字符串的定义在Python中,字符串是由一系列字符组成的序列,用于存储文本信息。字符串可以用单引号('')、双引号("")或三引号(''''''或"""""")来定义。三引号通常用于定义多行字符串。二.字符串的遍历遍历字符串意味着逐个访问字符串中的每个字符。这可以通过for循环实现。......
  • Python-NumPy 库编写复杂程序
    1、解释说明NumPy是一个用于Python编程语言的库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。NumPy是开源的,并且广泛地使用于各种科学计算和数据分析领域。NumPy的核心功能如下:-ndarray(N-dimensionalarrayobject):一个具有向量运算能力的快......