Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【PyUnit】一、如何让测试用例按序执行

【PyUnit】一、如何让测试用例按序执行

作者头像
用户5521279
发布于 2019-09-16 08:25:21
发布于 2019-09-16 08:25:21
1.2K0
举报
文章被收录于专栏:搜狗测试搜狗测试

PyUnit(unittest) 是 Python 自带的单元测试框架,用于编写和运行可重复的测试。PyUnit 是 xUnit 体系的一个成员,xUnit 是众多测试框架的总称,PyUnit 主要用于进行白盒测试回归测试

PyUnit 具有如下好处:

  • 可以使测试代码与产品代码分离。
  • 针对某一个类的测试代码只需要进行较少的改动,便可以应用于另一个类的测试。
  • PyUnit 开放源代码,可以进行二次开发,方便对 PyUnit 的扩展。

PyUnit具有如下特征:

  • 使用断言方法判断期望值和实际值的差异,返回 bool 值。
  • 测试驱动设备可使用共同的初始化变量或实例。
  • 测试包结构便于组织和集成运行。

对于unittest框架的使用,建议参考详细的官方文档,本文主要分享在使用unittest过程中,测试用例执行顺序问题及扩展问题。

本期以三种unittest自带的方法为例,下期详述扩展示例。

unittest中的执行顺序

测试用例编写之后运行,发现执行顺序并不是按照我们编写的顺序/位置来执行,许多前后有关联的测试用例在这种情况下就没有办法保证其执行的顺序性,因此使得有前后关联的测试用例执行失败。例:下图打开微信/支付宝和关闭微信/支付宝是相关联的case,因为没有按照顺序执行,导致两个关闭的case失败。

在unittest中,loader.py的loadTestsFromTestCase方法里边,调用了getTestCaseNames方法来获取测试用例的名称,使用functools.cmp_to_key的方法对测试用例进行排序,如下图:

该方法默认是根据ASCII码的顺序加载测试用例,数字与字母的顺序为:0-9,A-Z,a-z。

基于unittest的机制,如何控制用例执行顺序呢?

查阅相关资料主要有如下几种方法。

通过TestSuite添加

通过TestSuite类的addTest方法,按顺序加载测试用例,如下图:

手动修改函数名称

在命名时,对函数名称进行编号,test后紧跟数字编号,根据ASCII码排序保证顺序执行,示例如下图:

通过TestLoader添加

通过TestSuite类的addTest方法,按顺序加载测试用例,如下图:

该方法可以同时测试多个类,并且同TestSuite方法相类似,该方法的执行需要对层级进行编号,以按照特定顺序执行。

从如上三种方法可以看出,人工排序不可避免,代码繁琐、不好维护,那如何在不修改每条case,不手动添加代码的情况下,让测试用例按照编写的顺序依次执行呢?关注公众号,下期将分享通过excel和其他扩展方法,实现测试用例顺序执行方法。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-09-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 搜狗测试 微信公众号,前往查看

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
python接口自动化(二十二)--unittest执行顺序隐藏的坑(详解)
  大多数的初学者在使用 unittest 框架时候,不清楚用例的执行顺序到底是怎样的。对测试类里面的类和方法分不清楚,不知道什么时候执行,什么时候不执行。虽然或许通过代码实现了,也是稀里糊涂的一知半解,这样还好,好歹自己鼓
北京-宏哥
2019/09/11
2.7K0
python接口自动化(二十二)--unittest执行顺序隐藏的坑(详解)
Python单元测试框架unittest使用全解析(文末赠书)
unittest是Python语言自带的单元测试框架,不仅适用于单元测试,还可以适用于web自动化测试,提供了很多断言方法,可以组织执行测试用例,生成测试结果等。
吾非同
2021/11/16
1.4K0
Python单元测试框架unittest使用全解析(文末赠书)
unittest测试框架原理_学软件测试4个月没找到工作
unittest 是python 的单元测试框架,unittest 单元测试提供了创建测试用例,测试套件以及批量执行的方案, unittest 在安装pyhton 以后就直接自带了,直接import unittest 就可以使用。
全栈程序员站长
2022/11/04
4420
unittest测试框架原理_学软件测试4个月没找到工作
python接口自动化(二十一)--unittest简介(详解)
  前边的随笔主要介绍的requests模块的有关知识个内容,接下来看一下python的单元测试框架unittest。熟悉 或者了解java 的小伙伴应该都清楚常见的单元测试框架 Junit 和 TestNG,这个招聘的需求上也是经常见到的。python 里面也有单元
北京-宏哥
2019/09/11
1.7K0
python接口自动化(二十一)--unittest简介(详解)
自动化课程之unittest后总结记录
又到了Python自动化课程了,每一个自动化都涉及到单元测试框架及驱动框架,而unittest是py下的主流架构,所有的自动化框架都应该掌握:概念,类方法及应用:
TestOps
2022/04/07
3420
自动化课程之unittest后总结记录
pytest测试框架和unittest_python性能测试框架
单元测试是开发者编写的一小段代码,用于经验被测代码的一个很小的,很明确的功能是否正确,通常而言,一个单元测试是用于判断某个特定条件(或者场景)下某个特定函数的行为。
全栈程序员站长
2022/11/04
7190
PyUnit+uiautomator2实现应用自动化回归测试实践
上篇文章中,小编对Python-UiAutomator2使用、环境搭建、应用及操作进行了介绍,基于PyUnit+uiautomator2+HTMLTestRunner,本篇将介绍在项目中实现冒烟级别用例、定制需求等自动化测试执行的实践。
用户5521279
2019/06/02
1.5K0
自动化测试用例管理执行方法之测试套件
本文来自Python自动化测试实战(作者:无涯)学习衍生,学学他人的知识点,一步一步变为自己的知识点,也可以从中衍生新的测试思想与方法.
测试小兵
2020/05/15
1.5K0
五大自动化测试的 Python 框架
Python在各大排行榜上一直都是名列前茅。目前,它在Tiobe指数中排名第二,仅次于C。随着该编程语言的广泛使用,基于Python的自动化测试框架也应运而生,且不断发展与丰富。
测试小兵
2021/08/05
9.5K0
五大自动化测试的 Python 框架
unittest自动化测试框架_unittest批量加载用例
测试框架-unittest,相当于是一个 python 版的 junit。python 里面的单元测试框架除了 unittest,还有一个 pytest 框架,这个实际上用的比较少,后面有空再继续介绍和分享。unittest单元测试框架不仅可以适用于单元测试,还可以适用WEB自动化测
全栈程序员站长
2022/11/04
8790
【自动化测试】Python - uni
用Python搭建自动化测试框架,需要组织用例以及测试执行,大部分推荐的是unittest。现在用的也是这个,随着了解,也有其他的框架,有时间再多去学习,保持持续学习哦~ 附上官方文档地址:链接描述 https://docs.python.org/2.7/l...
py3study
2020/01/02
4780
[接口测试 - 基础篇] 03 unittest测试框架了解多少才够?
概述 Python单元测试框架(The Python unit testing framework),简称为PyUnit, 是Kent Beck和Erich Gamma这两位聪明的家伙所设计的 JUnit 的Python版本。 而JUnit又是Kent设计的Smalltalk测试框架的Java版本。它们都是各自语言的标准测试框架。 自从 Python 2.1 版本后,PyUnit成为 Python标准库的一部分。 所以不需要安装直接就用。 构建测试用例 在测试过程中,一般一
苦叶子
2018/04/09
6880
Selenium 4 Python的最佳测试框架
随着Python语言的使用越来越流行,基于Python的测试自动化框架也越来越流行。在项目选择最佳框架时,开发人员和测试人员会有些无法下手。做出选择是应该判断很多事情,框架的脚本质量,测试用例的简单性以及运行模块并找出其缺点的技术。这篇文章总结了测试自动化领域,适合Web端自动化框架(基于Python语言)以及它们相对于其他方面的优缺点。因此,可以帮助一些人根据需要和实际情况选择合适的的Python框架进行测试自动化。
FunTester
2019/12/17
1.7K0
python中unittest框架_unittest框架原理
在编写接口自动化用例时,我们一般针对一个接口建立一个.py文件,一条测试用例封装为一个函数(方法),但是在批量执行的过程中,如果其中一条出错,后面的用例就无法执行。使用测试框架可以互不影响的用例执行及更灵活的执行控制。
全栈程序员站长
2022/11/07
9540
python中unittest框架_unittest框架原理
python unittest接口自动化测试实战_pytest测试框架从入门到精通
unittest最核心的四部分是:TestCase,TestSuite,TestRunner,TestFixture
全栈程序员站长
2022/11/04
3860
python接口自动化测试 - unittest框架suite、runner详细使用
前三个文件是包含了单元测试类的文件,第四个文件是负责运行所有单元测试类,不包含测试用例
小菠萝测试笔记
2020/06/09
7210
python接口自动化测试 - unittest框架suite、runner详细使用
unittest 测试框架
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/04
8550
unittest 测试框架
Python自动单元测试实例
[work@db-testing-com06-vm3.db01.baidu.com test]$ python widget_unittest.py .. ---------------------------------------------------------------------- Ran 2 tests in 0.000s
阳光岛主
2019/02/20
5940
Python接口自动化-7-unittest
unittest简介 unittest是python自带的一个单元测试框架,详细介绍可参看官网:https://docs.python.org/3.4/library/unittest.html unittest.TestCase: TestCase类,所有测试用例类继承的基本类 unittest.main(): 将一个单元测试模块变为可直接运行的测试脚本,main()方法使用TestLoader类来搜索所有包含在该模块中以“test”命名开头的测试方法,并自动执行他们。执行方法的默认顺序是:根据ASCII
企鹅号小编
2018/01/24
7300
Python接口自动化-7-unittest
【说站】python TestRunner执行测试用例
以上就是python TestRunner执行测试用例的方法,希望对大家有所帮助。更多Python学习指路:python基础教程
很酷的站长
2022/11/24
3610
推荐阅读
相关推荐
python接口自动化(二十二)--unittest执行顺序隐藏的坑(详解)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档