广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python中unittest框架应用详解
  • 693
分享到

python中unittest框架应用详解

2024-04-02 19:04:59 693人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

目录1、Unittest为python内嵌的测试框架,不需要特殊配置2、编写规范 总结1、Unittest为Python内嵌的测试框架,不需要特殊配置 2、编写规范 需要导入 im

1、Unittest为Python内嵌的测试框架,不需要特殊配置

2、编写规范

需要导入 import unittest

测试类必须继承unittest.TestCase

测试方法以 test_开头

模块和类名没有要求

TestCase 理解为写测试用例

TestSuite 理解为测试用例的集合

TestLoader 理解为的测试用例加载

TestRunner 执行测试用例,并输出报告


import unittest
from class_api_login_topup.demo import Http_request
from class_api_login_topup.http_attr import Get_Attr  # 反射的值 获取 cookies
# 这是文件http_attr中的Get_Attr类
class Get_Attr:
    cookies = None

class Login_Http(unittest.TestCase):
    def __init__(self, methodName, url, data, method, expected):
        super(Login_Http, self).__init__(methodName)  # 超继承
        self.url = url
        self.data = data
        self.expected = expected
        self.method = method
    def test_api(self):  # 正常登录
        res = http_request().request(self.url, self.data, self.method, getattr(Get_Attr, 'cookies'))
        if res.cookies:
            setattr(Get_Attr, 'cookies', res.cookies)
        try:
            self.assertEqual(self.expected, res.JSON()['code'])
        except AssertionError as e:
            print("test_api's, error is {0}", fORMat(e))
            raise e
        print(res.json())

if __name__ == '__main__':
    unittest.main()

执行一:


import unittest
from class_demo_login_topup.http_tools import Login_Http
suite = unittest.TestSuite()
loader = unittest.TestLoader()
test_data = [{'url': 'http://test.lemonban.com/futureloan/mvc/api/member/login',
              'data': {'mobilephone': 'xxxx', 'pwd': '123456'}, 'expected': '10001', 'method': 'get'},
             {'url': 'http://test.lemonban.com/futureloan/mvc/api/member/login',
              'data': {'mobilephone': 'xxxx', 'pwd': '12345678'}, 'expected': '20111', 'method': 'get'},
             {'url': 'http://test.lemonban.com/futureloan/mvc/api/member/recharge',
              'data': {'mobilephone': 'xxxx', 'amount': '1000'}, 'expected': '10001', 'method': 'post'},
             {'url': 'http://test.lemonban.com/futureloan/mvc/api/member/recharge',
              'data': {'mobilephone': 'xxxx', 'amount': '-100'}, 'expected': '20117', 'method': 'post'}]
# 遍历数据,执行脚本 addTest 单个执行
for item in test_data:
    suite.addTest(Login_Http('test_api', item['url'], item['data'], item['method'], item['expected']))
#  执行
with open('http_TestCase.txt', 'w+', encoding='UTF-8') as file:
    runner = unittest.TextTestRunner(stream=file, verbosity=2)
    runner.run(suite)
# 运行结果
{'status': 1, 'code': '10001', 'data': None, 'msg': '登录成功'}
{'status': 0, 'code': '20111', 'data': None, 'msg': '用户名或密码错误'}
{'status': 1, 'code': '10001', 'data': {'id': 10011655, 'regname': '小蜜蜂', 'pwd': 'E10ADC3949BA59ABBE56E057F20F883E', 'mobilephone': 'xxxx', 'leaveamount': '150000.00', 'type': '1', 'regtime': '2021-07-14 14:54:08.0'}, 'msg': '充值成功'}
{'status': 0, 'code': '20117', 'data': None, 'msg': '请输入范围在0到50万之间的正数金额'}

执行二:把test_data的数据放在EXCEL中运行。


import unittest
from class_demo_login_topup.http_tools import Login_Http
suite = unittest.TestSuite()
loader = unittest.TestLoader()
test_data = Httpexcel('test_api.xlsx', 'python').real_excel()
for item in test_data:
    suite.addTest(Login_Http('test_api', item['url'], eval(item['data']), item['method'], str(item['expected'])))
with open('http_TestCase.txt', 'w+', encoding='UTF-8') as file:
    runner = unittest.TextTestRunner(stream=file, verbosity=2)
    runner.run(suite)   

执行三、直接用装饰器ddt


import unittest
from class_api_login_topup.demo import http_request
from class_api_login_topup.http_attr import Get_Attr  # 反射的值
from ddt import ddt, data, unpack
from class_demo_login_topup.http_excel import HttpExcel

test_data = HttpExcel('test_api.xlsx', 'python').real_excel()
@ddt
class Login_Http(unittest.TestCase):
    @data(*test_data)
    def test_api(self, item):  # 正常登录
        res = http_request().request(item['url'], eval(item['data']), item['method'], getattr(Get_Attr, 'cookies'))
        if res.cookies:
            setattr(Get_Attr, 'cookies', res.cookies)
        try:
            self.assertEqual(str(item['expected']), res.json()['code'])
        except AssertionError as e:
            print("test_api's, error is {0}", format(e))
            raise e
        print(res.json())

执行ddt方式一


import unittest
from class_demo_login_topup.http_tools import Login_Http
from class_demo_login_topup.http_excel import HttpExcel
suite = unittest.TestSuite()
loader = unittest.TestLoader()
from class_demo_login_topup import http_tools_1
suite.addTest(loader.loadTestsFromModule(http_tools_1))  # 执行整个文件
with open('http_TestCase.txt', 'w+', encoding='UTF-8') as file:
    runner = unittest.TextTestRunner(stream=file, verbosity=2)
    runner.run(suite)

执行ddt方式二


import unittest
from class_demo_login_topup.http_tools import Login_Http  # 不用ddt的方法
from class_demo_login_topup.http_excel import HttpExcel
suite = unittest.TestSuite()
loader = unittest.TestLoader()
from class_demo_login_topup.http_tools_1 import * # http_tools_1文件是用ddt的方法
suite.addTest(loader.loadTestsFromTestCase(Login_Http))  # 执行http_tools_1 文件下的Login_Http类,按照类执行
with open('http_TestCase.txt', 'w+', encoding='UTF-8') as file:
    runner = unittest.TextTestRunner(stream=file, verbosity=2)
    runner.run(suite)

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注编程网的更多内容!

--结束END--

本文标题: python中unittest框架应用详解

本文链接: https://www.lsjlt.com/news/136086.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python中unittest框架应用详解
    目录1、Unittest为Python内嵌的测试框架,不需要特殊配置2、编写规范 总结1、Unittest为Python内嵌的测试框架,不需要特殊配置 2、编写规范 需要导入 im...
    99+
    2022-11-12
  • UnitTest单元测试框架详解
    一、什么是Unittest框架 unittest是python自带的一个单元测试框架,不仅适用于单元测试,还可用于Web、Appium、接口自动化测试用例的开发与执行;此框架可以组织执行测试用例,并且...
    99+
    2023-09-03
    python 单元测试
  • Python自动化测试框架之unittest使用详解
    目录1 unittest框架2 批量执行脚本2.1 构建测试套件2.2 用例的执行顺序2.3 忽略用例执行3 unittest断言4 HTML报告生成5 异常捕捉与错误截图6 数据驱...
    99+
    2023-05-18
    Python unittest Python 自动化测试框架 Python unittest框架
  • Python中的Unittest框架的用法
    本篇内容主要讲解“Python中的Unittest框架的用法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python中的Unittest框架的用法”吧!  Unittest  1.环境  Un...
    99+
    2023-06-02
  • python中unittest框架的作用是什么
    这篇文章给大家介绍python中unittest框架的作用是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。python是什么意思Python是一种跨平台的、具有解释性、编译性、互动性和面向对象的脚本语言,其最初的设...
    99+
    2023-06-14
  • 详解Django中的unittest及应用
    目录关于断言unittest模块属性说明unittest的属性TestCase类的属性TextTextRunner的属性unittest框架使用unittest是python的一个单...
    99+
    2022-11-12
  • Python中的flask框架详解
    Flask是一个Python编写的Web 微框架,让我们可以使用Python语言快速实现一个网站或Web服务。本文参考自Flask官方文档,大部分代码引用自官方文档。 安装flask...
    99+
    2022-11-13
  • python单元测试框架unittest基本用法案例
    目录案例12、生成测试报告断言基本操作数据驱动 ddt data巩固总结unittest是python单元测试框架,类似于JUnit框架 意义: 灵活的组织ui接口测试自动化用例让用...
    99+
    2022-11-11
  • Python中unittest的断言方法详解
    目录断言方法:方法有: 下面是做的例子,后边是运行结果:总结断言方法:         是unitte...
    99+
    2022-11-12
  • Python中unittest的数据驱动详解
    目录前言一.ddt简单介绍二.ddt处理各种类型数据1.分析ddt工作原理2.ddt测试元祖数据2.1测试单组元素2.2测试多组未分解元素 2.3测试多组分解元素 ...
    99+
    2022-11-11
  • 详解Python中Pytest和Unittest的区别
    目录1.安装和使用2.编写测试用例3.自动发现测试用例4.插件和扩展5.运行速度6.报告7.社区支持昨天在群里面,有两个新手的小伙伴提问:Pytest 和 Unittest是Pyth...
    99+
    2023-03-13
    Python Pytest Unittest区别 Python Pytest Unittest
  • Python Django框架中表单的用法详解
    目录文件上传Form表单表单字段字段参数widget参数表单的验证表单模型文件上传例子模型表单AJAXDjango保证表单的正确显示需要添加CSRF(防止网站跨站请求伪造而默认开启的...
    99+
    2022-11-11
  • 详解python调度框架APScheduler使用
    最近在研究python调度框架APScheduler使用的路上,那么今天也算个学习笔记吧! # coding=utf-8 """ Demonstrates how to use the backgro...
    99+
    2022-06-04
    详解 框架 python
  • Python爬虫框架NewSpaper使用详解
    目录写在前面newspapernewspaper框架的使用例如:单条新闻内容获取newspaper文章缓存其他功能写在后面写在前面 原计划继续写一篇Portia的使用博客,结果在编写...
    99+
    2022-11-11
  • .NET中的MassTransit分布式应用框架详解
    目录引言快速体验核心概念MessageProducer发送命令发布事件Consumer无状态消费者有状态消费者应用场景MassTransit是一款优秀的分布式应用框架,可作为分布式应...
    99+
    2022-11-13
    .NET 分布式应用框架 MassTransit  .NET 分布式
  • pytorch框架的详细介绍与应用详解
    目录pytorch框架的详细介绍与应用一.pytorch概述1.pytorch概念2.pytorch与tensorflow的区别3.pytorch包含的内容二.pytorch常用模块...
    99+
    2023-05-15
    pytorch框架介绍 pytorch框架应用
  • 详解PythonFlask框架的安装及应用
    目录1.安装1.1 创建虚拟环境1.2 进入虚拟环境1.3 安装 flask2.上手2.1 最小 Demo2.2 基本知识3.解构官网指导 Demo3.1 克隆与代码架构分析3.2 ...
    99+
    2022-11-11
  • python爬虫之scrapy框架详解
    1.在pycharm下安装scrapy函数库 2.将安装好scrapy函数库下的路径配置到系统path的环境变量中 3.打开cmd终端输入:scrapy.exe检查是否安装成功 ...
    99+
    2022-11-12
  • Android应用框架之应用启动过程详解
    在Android的应用框架中,ActivityManagerService是非常重要的一个组件,尽管名字叫做ActivityManagerService,但通过之前的博客介绍,...
    99+
    2022-06-06
    启动 框架 Android
  • python miniWeb框架搭建过程详解
    框架概念 框架和web服务器关系 ·静态资源:不是经常变化的资源、往往是固定不变的资源 ·动态资源:经常变化的资源 ·模板文件:提供了一个显示的模板,显示的内容不同,但是结构是一样...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作