unittest自动化测试学习总结--01

python3安装HTMLTestRunner 【代码】python3安装HTMLTestRunner。 阅读详情

unittest工作原理简化一下就是:

先写好TestCase然后由TestLoader加载TestCase到TestSuite,然后由TextTestRunner来运行TestSuite,运行的结果保存在TextTestResult中,整个过程集成在unittest.main模块中,main会调用TextTestRunner中的run来执行,或者我们可以直接通过TextTestRunner来执行用例。在Runner运行的时候,我们的测试结果会被输出到控制台,可以清晰的看到,我们还可以输出到文件,运用HTMLTestRunner生成一个漂亮的报告。

unittest中有4个重要的概念:test fixture, test case, test suite, test runner再外加一个测试报告Test Report

  • Test Fixture(测试夹具):通过使用测试夹具,可以定义在单个或者多个测试执行之前的准备工作和测试执行后的清理工作。

比如你要测试一个接口(但该接口依赖于用户的登录状态),那么你需要先进行登录操作,这个登录活动就相当于准备工作。

  • Test Case(测试用例):一个测试用例是在unittest中执行测试的最小单元。它通过unittest提供的assert方法来验证一组特定的操作或输入以后得到的具体响应。unittest提供了一个名为TestCase的基础类,可以用来创建测试用例。
  • Test Suite(测试套件):一个测试套件是多个测试用例的集合,是针对被测程序的对应功能和模块创建的一组测试,一个测试套件内的测试将一起执行。
  • Test Runner(测试执行器):测试执行器负责测试执行调试并且生成测试结果给用户。测试执行器可以使用图形界面、文本界面或者特定的返回值来展示测试执行结果。
  • Test Report(测试报告):测试报告用来展示所有执行用例的成功或者失败状态的汇总,执行失败的测试步骤的预期结果与实际结果,还有整体运行状况及运行时间的汇总。注意,unittest本身是没有相应的内置模块来生成友好的报告,但我们可以借用unittest的扩展库HTMLTestRunner来实现,需要单独下载并放到python安装目录下lib/site-packages

unittest.TestCase:TestCase类,所有测试用例类继承的基本类。

class BaiduTest(unittest.TestCase):

unittest.main():使用她可以方便的将一个单元测试模块变为可直接运行的测试脚本,main()方法使用TestLoader类来搜索所有包含在该模块中以“test”命名开头的测试方法,并自动执行他们。执行方法的默认顺序是:根据ASCII码的顺序加载测试用例,数字与字母的顺序为:0-9,A-Z,a-z。所以以A开头的测试用例方法会优先执行,以a开头会后执行。

unittest.TestSuite():TestSuite类是用来创建测试套件的。因为执行测试用例的是通过调用unittest.mian()函数,它会将模块的测试用例收集起来并执行,然而当我们的测试用例增多了以后,这样的执行非常不灵活而且没有效率,此时unittest框架的TestSuite()类的优点就出现了。

TestLoader是用来加载TestCase到TestSuite,其中有几个loadTestFrom__( )方法,就是从各个地方寻找TestCase,创建它们的实例,然后add到TestSuite中,在返回一个TestSuite实例

1.先创建测试套件:

suite=unittest.TestSuite()

2.加载测试用例TestLoader类:它用于加载测试用例,然后返回一个测试用例集和有4个运行方式比较好:

unittest.TestLoader().loadTestsFromTestCase(类名)
unittest.TestLoader().loadTestsFromMoudule(模块名)但是我看源码提示是说在3.5已经移除使用,那就不用这个了
unittest.TestLoader().loadTestsFromName(方法名)
unittest.TestLoader().loadTestsFromNames(方法名,复数形式)

2.1.1创建一个.py文件,使用unittest.TestLoader().discover(“路径”,“匹配文件名”)也可以加载测试用例

3.再向测试套件里面添加case:addTest()方法是将测试用例添加到测试套件中

suite.addTests(unittest.TestLoader().loadTestsFromTestCase("LoginEvent"))

4.运行:TextTestRunner是用来执行测试用例的,其中的run(test)会执行TestCase中的run(result)方法。

unittest.TextTestRunner().run(suite)

 如下代码是run_main.py

def run_case():
    # 用例读取路径
    case_path = os.path.join(os.path.dirname(os.path.realpath(__file__)), "case")
    suite = unittest.TestLoader().discover(case_path)

    # 测试报告存放路径
    report_path = os.path.join(os.path.dirname(os.path.realpath(__file__)) + "/report/result_report.html")
    with open(report_path, "wb") as f:
        runner = HTMLTestRunner_PY3.HTMLTestRunner(stream=f,
                                                   title="Test Report",
                                                   description="Test Result",
                                                   verbosity=2)
        runner.run(suite)


run_case()

setup就是前置条件,tearDown就是后置条件,在我们执行完case之后,tearDown最好要写,做数据的还原,清理测试环境,比如退出浏览器、返回到手机的Home页面,保证后面的case不会执行失败。

这里有个坑,就是比如我们做测试打开百度页面的操作,每次执行用例就重新打开一次,这样就非常的浪费时间,我的本意是打开了百度的页面,我想做完所有的操作,然后再去关闭百度页面,这个时候就用到了装饰器(@classmethod)

  • 装饰器

用setUp与setUpClass区别

setup():每个测试case运行前运行

teardown():每个测试case运行完后执行

setUpClass():必须使用@classmethod 装饰器,所有case运行前只运行一次

tearDownClass():必须使用@classmethod装饰器,所有case运行完后只运行一次

Unittest二次开发实战-01-定制TestResult类 ddd 阅读详情

相关推荐

Tauri开发环境配置避坑指南:从Rust到Node.js的全流程实战

本文是一份详尽的Tauri开发环境配置实战指南,重点解析了从Rust工具链安装、Node.js版本管理到IDE配置的全流程。文章深入探讨了包管理器选择、依赖锁定、网络镜像加速等关键环节,并提供了开发与构建过程中典型问题的排查思路与解决方案,旨在帮助开发者高效避坑,顺利搭建跨平台桌面应用开发环境。

w3x4y的博客 292

”单元测试“理解与感悟

百度:单元测试(unittesting),是在计算机编程中,针对程序模块(软件设计的最小单位)来进行正确性检验的测试工作。程序单元是应用的最小可测试部件。对于单元测试中单元的含义,一般来说,要根据实际情况去判定其具体含义,如C语言中单元指一个函数,Java里单元指一个类,图形化的软件中可以指一个窗口或一个菜单等。总的来说,单元就是人为规定的最小的被测功能模块。单元测试是在软件开发过程中要进行的最低...

weixin_33908217的博客 184

LMS Virtual.Lab二次开发:声学仿真结果导出方法(VBScript、Python)

Siemens LMS Virtual.Lab 提供一套集成软件平台用以模拟机械系统的品质属性,如结构完整性、振动噪声、耐久性、系统动力学特性、驾驶的平顺性及操纵的稳定性等。

爱看书的小沐 6019

Unittest测试框架(学习总结分享1)

Unittest学习总结分享

weixin_44701654的博客 539

MatLab Desired port was :31515解决方案

前言:使用的MatLabR2022b今天突然出现了错误,在程序中打不开文件。后尝试了下面的方法,可以解决。后面还有另一种方法,上面方法如果行不通,大家可以尝试一下。搜索栏输入:firewall.cpl。找到相关项,右键属性,设置为允许。

qq_42212501的博客 1339

科研绘图神器Origin中文版安装后还是英文?手把手教你三步搞定界面汉化

本文详细介绍了Origin软件安装后界面仍显示英文的解决方案,包括基础语言切换、注册表修改和序列号破解三种方法。通过逐步指导,帮助用户快速实现界面汉化,提升科研绘图效率。特别针对教育版用户提供了有效的语言锁定解除方案。

weixin_42524708的博客 1130

Unittest单元测试总结

最近为了分享自动化框架,帮助功能测试理解,整理了一下 unittest 单元测试框架 Unittest单元测试框架的构成 TestCase 编写用例 TestSuit 组织用例 TestRunner 执行用例 TestFixture 处理用例,SetUp -预处理,用例开始,TearTown清理数据,用例结尾 这是我们封装的计算函数 math_method.py 包含加法结果,乘法结果 class MathMethod: def __init__(self, a, b): self

麟三岁的博客 6086

ArcGIS Pro中如何批量替换数据源

不知您是否遇到过下面情况:ArcGIS Pro的Map/Scene中所引用的数据源被移动或重命名了,导致Map/Scene中找不到之前的数据,出现红色叹号;已有一个Map模板文件,图层的样式符号都是设置好的,想批量设置成另外一个数据源,复用该模板文件中的样式符号。 如果您在ArcGIS Pro的使用过程中遇到了上面情况,那么可以参考本篇文章,本文以图层存储在同一GDB中为例介绍。 情况一:Map中已有图层的数据源被移动了 原始Map长这样: 当数据源位置改变之后,显示找不到数据源的红色叹号: 这时如果右

xinying180的博客 7946

python3使用HTMLTestRunner生成测试报告

需求:unittest自带的没有html报告输出,需要插件HTMLTestRunner的帮助。

sleeplover_soda的博客 782

【科学文献计量】标准参考出版年谱(Standard RPYS)和多维参考出版年谱(Multi RPYS)

@[TOC](标准参考出版年谱(Standard RPYS)和多维参考出版年谱(Multi RPYS)) 1 标准参考出版年谱与多维参考出版年谱 1.1 标准参考出版年谱(Standard RPYS) 标准参考出版年谱(Standard Reference Publication Year Spectroscopy)是由Marx, Bornmann, Barth, and Leydesdorff(2014)和Marx and Bornmann(2014)提出的一种量化历史出版物对研究领域影响的方法。该方法通

lys_828的博客 1103

电压跟随器在ADC采样电路中的作用分析

电压跟随器在ADC采集系统中扮演关键角色,它能解决分压电路因ADC输入阻抗导致的电压误差问题。通过运放构成的电压跟随器可隔离信号源与负载,保证采样精度,尤其适用于高阻抗传感器或高速采样场景。工程应用中需注意运放带宽、轨对轨输出能力及抗干扰设计。合理使用电压跟随器能显著提升信号完整性,在复杂电子系统中成为不可或缺的"信号桥梁。

硬核科技 655

学习笔记(01):Python自动化测试九章经-集成unittest

请务必到https://edu.youkuaiyun.com/bundled/detail/100?utm_source=banner下单购买课,方可添加图书寄送地址。 本页面,仅为观看视频页面,如需邮寄图书,请务必到https://edu.youkuaiyun.com/bundled/detail/100?utm_source=banner下单购买课 Python是当...

weixin_45589713的博客 290

基于YOLOv11的气象目标检测系统:台风眼与钩状回波检测

气象目标检测是计算机视觉在气象领域的重要应用,对台风预警和强对流天气监测具有重要意义。本文详细介绍了一种基于YOLOv11的气象目标检测系统,能够有效识别卫星云图中的台风眼和雷达图中的钩状回波。系统包含完整的数据处理流程、模型训练策略以及用户友好的Web界面。我们使用了公开的气象数据集进行训练和验证,并提供了完整的实现代码。实验结果表明,本系统在气象目标检测任务中达到了较高的准确率和实用性。关键词:气象目标检测;YOLOv11;台风眼检测;钩状回波;深度学习;计算机视觉台风眼检测数据集。

YOLO 473

Python+unittest+requests 接口自动化测试

首先配置好开发环境,下载安装Python并下载安装pycharm,在pycharm中创建项目功能目录。如果不会的可以百度Google一下,该内容网上的讲解还是比较多比较全的!

软件测试技术交流分享 3018

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Python 自动化测试框架unittest与pytest的区别

以上就是unittest与pytest测试框架的区别,七大主要区别,这里已讲了两个区别的实例,其他五个有时间再补充作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,坚持几天便放弃的感受的话,在这里我给大家分享一些软件测试的学习资源,这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,希望能给你前进的路上带来帮助。

百晓生说测试的博客 1792

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

自动化测试-python+requests+unittest框架

本文分享使用python+requests+unittest框架来辅助requests完成自动化测试并增加断言代码

Liu_GuoXing的博客 1171

接口自动化测试-Unittest自动化测试框架实战详解

1、UintTest是python内置的单元测试框架,具备编写用例、组织用例、执行用例、输出报告等自动化框架的条件2、UintTest单元测试框架不仅适用于单元测试,还可以适用WEB自动化测试、接口自动化测试的开发与执行。用处还是比较广的UintTest框架重要的概念1、使用UintTest前需要了解该框架的四个概念,即Test Case、Test Suite、Test Fixture、Test Runner作为单元测试的框架, unittest 也是可以对程序最小模块的一种敏捷化的测试。

2301_79535618的博客 1150

po+selenium+unittest自动化测试项目实战

1、新建一个包名:common(用于存放基本函数封装)(1)在common包下新建一个base.py文件,作用:页面操作封装。base.py文件代码如下:12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394

2301_80119579的博客 3417

unittest与pytest自动化测试框架

以上就是unittest与pytest测试框架的区别,七大主要区别,这里已讲了两个区别的实例,其他五个有时间再补充。

kk_lzvvkpj的博客 809

unittest自动化测试框架

单元测试:指的是在软件开发当中,对程序的最小单元(函数,方法)进行测试的过程。unittest不仅可以用于单元测试,还可以用于自动化测试用例的开发和执行。组织执行自动 化测试用例。并且提供一些丰富的断言方法,判断用例是否通过,最终能够生成测试报告。

naumy的博客 812

Unittest自动化测试框架vs Pytest自动化测试框架_unittest框架每个方法都执行一次

pytest更加方便快捷,用例格式简单,可以执行unittest风格的测试用例,无须修改unittest用例的任何代码,有较好的兼容性。pytest插件丰富,比如flask插件,可用于用例出错重跑,还有xdist插件,可用于设备并行执行,效率更高。参数化应用场景,一个场景的用例会用到多条数据来进行验证,比如登录功能会用到正确的用户名、密码登录,错误的用户名、正确的密码,正确的用户名、错误的密码等等来进行测试,这时就可以用到框架中的参数化,来便捷的完成测试。参数名:用来接收每一项数据,并作为测试用例的参数。

2501_90251383的博客 1108

Unittest框架

作用:测试用例的管理、运行、编写、输出测试报告等功能。 selunium定位方法,页面元素方法.控制浏览器的方法. ----砖瓦 unittest ----框架 selenium和unittest结合 ,才能造出“高楼大厦” 用这个框架可以做ui自动化,接口自动化,app自动化。具体做什么取决于里面的测试用例。框架搭成了里面放什么样的用例就是什么测试。Unittest官方文档环境搭建:不用搭环境,也不用安装,是python自带的,导包

aijaijgnaw的博客 7811
上一篇: python操作excel文件
下一篇: unittest测试框架学习--02
python_nice
博客等级 码龄8年 46粉丝 52原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值