51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3161|回复: 0
打印 上一主题 下一主题

[转贴] 测试小白简单聊聊关于UnitTest(一)

[复制链接]
  • TA的每日心情
    擦汗
    半小时前
  • 签到天数: 1047 天

    连续签到: 5 天

    [LV.10]测试总司令

    跳转到指定楼层
    1#
    发表于 2021-6-4 09:38:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    一、概念
      UnitTest是Python标准库中自带的一个模块,类似于Java中的Junit单元[url=]测试[/url]框架,其模块提供了许多类和方法处理各种测试工作,能够完善结合Selenium、Appium、Request等实现UI自动化与接口自动化。
      在学习之前,我们首先要了解几个概念:
      --TestCase:测试用例,一个完整的测试流程就是一个测试用例,通过一些特定的输入得到相应,并对结果进行校验的过程,所有的用例都是直接继承于unitTest.TestCase类,TestCase是最小的测试单元,具有独立性。
      --TestFixture:测试固件,在执行测试之前的准备工作,比如数据清理、创建临时[url=]数据库[/url]、目录、以及开启某些服务进程。在编写测试代码时,总会有一些重复的代码部分,比如测试一个网站的登录操作时,简单分为三个用例:账号和密码都正确,账号正确密码错误,账号错误密码正确,这三种情况在执行用例时都需要首先访问系统地址,再输入账号和密码,点击登录操作,完成之后浏览器执行关闭操作,我们就可以通过setUp()将访问地址作为前置条件,通过tearDown()将关闭浏览器作为后置条件。测试固件就是整合了代码的公共部分。
      --TestSuite:测试套件,把多个测试用例集合到一起,而测试套件和测试用例一样,也可以有多个,并且可以组合在一起形成更多的测试用例集合。
      --TestRunner:测试运行器,提供测试用例运行环境,通过run()方法来执行测试用例,并在执行完成后将测试结果输出。unittest框架的TextTextRunner()类,通过该类下面的run()方法来运行suite所组装的测试用例,入参为suite测试套件。

      二、UnitTest环境搭建
      Python安装时就已经默认封装好了UnitTest框架,调用框架的时候只需要import unittest即可。

      三、小试牛刀
    1. # 导包
    2. import unittest

    3. class UnitForTest(unittest.TestCase):
    4.     # 前置条件
    5.         def setUp(self) -> None:
    6.         print('this is setUp')

    7.     # 后置条件
    8.     def tearDown(self) -> None:
    9.         print('this is tearDown')

    10.     # 定义测试用例
    11.     def test_1(self):
    12.         print('this is test1!!!')

    13.     def test_3(self):
    14.         print('this is test3!!!')
    15.    
    16.     def test_2(self):
    17.         print('this is test2!!!')

    18. if __name__ == '__main__':
    19.     unittest.main()
    复制代码


      运行结果:


      如上图运行结果所示,setUp()会在每个单独的测试用例运行之前都执行一次,tearDown()会在每个单独的测试用例运行之后都执行一次。
      与setUp()和tearDown()类似的方法还有setUpClass()和tearDownClass(),setUpClass()在每个类执行前调用一次,tearDownClass()在每个类执行后调用一次,使用这两个方法时必须加 @classmethod 装饰器。
      UnitTest的语法规则:
      (1) UnitTest中,所有的用例类都是直接继承于unitTest.TestCase类;
      (2)UnitTest中,测试用例的定义都是以test_开头;
      (3)用例的运行顺序与代码中编写的顺序无关,运行顺序遵循A-Z,a-z,0-9;
      (4)单个测试类运行时必须有 unittest.main()方法。


    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-15 09:55 , Processed in 0.063406 second(s), 23 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表