首页 > 其他分享 >Pycharm — UnitTest

Pycharm — UnitTest

时间:2023-07-17 22:46:45浏览次数:22  
标签:TestSuite UnitTest 套件 测试用例 测试 Pycharm unittest 测试方法

UnitTest框架

介绍

是Python⾃带的一个单元测试框架,可以用来做单元测试

测试⼈员⽤来做⾃动化测试,作为⾃动化测试的执⾏框架,即管理和执⾏⽤例的

使用好处

  • 1. 能够组织多个⽤例去执⾏
  • 2. 提供丰富的断⾔⽅法
  • 3. 能够⽣成测试报告

UnitTest核心要素(组成)

 

  • 1. TestCase测试⽤例,⽤来书写真正的⽤例代码(脚本)
  • 2. TestSuite测试套件,⽤来组装(打包)TestCase(测试⽤例)的,即可以将多个⽤例脚本⽂件组装到⼀起
  • 3. TestRunner测试执⾏(测试运⾏),用来执⾏TestSuite(测试套件)
  • 4. TestLoader测试加载,是对 TestSuite(测试套件) 功能的补充,⽤来组装(打包) TestCase(测试⽤例)
  • 5. Fixture测试夹具,是⼀种代码结构,书写前置⽅法(执⾏⽤例之前的⽅法)代码和后置⽅法(执⾏⽤例之后的⽅法)代码,即⽤例执⾏顺序:前置 ---> ⽤例 ---> 后置

TestCase测试用例

一个测试用例就是一个.py文件,文件中可创建多个测试类,类中可创建多个测试方法。

测试用例编写示例:

  • 1. 导包:import unittest
  • 2. 定义测试类:新建测试类必须继承:unittest.TestCase
  • 3. 定义测试方法:测试方法名称命名必须以test开头
  • 4. 执行

TestSuite测试套件

将多条⽤例脚本集合在⼀起,就是套件,即⽤来组装⽤例的。

使用步骤:

1. 实例化测试套件:suite = unittest.TestSuite()

2. (方式一)添加一个测试类中的一个测试方法:

suite.addTest(ClassName("MethodName"))

其中,ClassName:类名;MethodName:方法名

(方式二)添加一个测试类:

suite.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(ClassName))

suite.addTest(unittest.makeSuite(ClassName))

把指定ClassName测试类中的测试用例全部添加到测试套件中

使用示例:

创建cal.py文件,编写TestAdd类和TestSub类,及类内方法

编写 hm_02_testsuite.py文件,右键运行

测试结果:

TestRunner测试执⾏

用来执⾏TestSuite(测试套件)

使用步骤:(示例看上图)

  • 1. 导包 import unittest
  • 2. 实例化 执⾏对象:unittest.TextTestRunner()
  • 3. 执⾏对象.run(套件对象)

TestLoader测试加载

TestSuite一次只能添加单个测试方法或单个测试类,而TestLoader能一次添加多个测试用例(.py文件)

用来加载TestCase到TestSuite中,即加载满足条件的测试用例,并把测试用例封装成测试套件。

使用unittest.TestLoader,通过该类下面的discover()方法自动搜索指定目录下指定开头的.py文件,并将查找到的测试用例组装到测试套件。

Fixture测试夹具

在⽤例执⾏前后会⾃动执⾏的代码结构

⽅法级别Fixture

在每个测试方法执⾏前后,会执行一次setUp和tearDown

比如:登录需要先验证码,可以把获取验证码的请求放在前置方法里。

类级别Fixture

在每个测试类执行前后,会执行一次setUpClass和tearDownClass

模块级别Fixture(了解)

模块,就是代码⽂件

在每个模块执⾏前后,会执⾏⼀次setUpModule和tearDownModule

示例:

UnitTest断言

使用代码自动的判断预期结果和实际结果是否相符

常用断言方法

assertEqual(预期结果,实际结果)

判断预期结果和实际结果是否相等,如果相等,用例通过;如果不相等,抛出异常,用例不通过。

assertIn(预期结果,实际结果)

判断预期结果是否包含在实际结果中,如果存在,用例通过,如果不存在,抛出异常,用例不通过。

断言使用方式

断言方法已经在unittest.TestCase类中定义了,我们自定义的测试类已经继承了TestCase,所以在测试方法中直接调用父类中的断言方法即可。

parameterized 参数化

安装 parameterized 插件

因为参数化的插件不是unittest自带的,所以想要使用,需要进行安装。

安装方式有多种,可以在终端Terminal通过代码安装;可以在Settings设置通过搜索来安装,还可以通过导入离线安装包来安装。

使用步骤

  • 1. 导包 from parameterized import parameterized
  • 2. 修改测试方法,将测试方法中的测试数据使用变量表示
  • 3. 组织测试数据,格式 [(), (), ()],一个元组就是一组测试数据
  • 4. 参数化,在测试方法上方使用装饰器 @parameterized.expand(测试数据)
  • 5. 运行(直接 TestCase 或者使用 suite 运行)

注意:测试数据的格式为列表内嵌元组:[(), (), ()],一个元组就是一组测试数据。

方法一:get()方法把需要的值取出,组成元组,再添加进列表。

方法二:values()方法获取所有值,转为元组,再添加到列表。(推荐)

测试报告

生成测试报告需要第三方工具插件,插件有很多。比如 HTMLTestReport 插件。

安装命令:pip install HTMLTestReport

使用步骤

  • 1. 导包:from htmltestreport import HTMLTestReport
  • 2. 封装测试套件:TestSuite或者TestLoader
  • 3. 实例化 HTMLTestReport 对象
  • 4. 执行测试套件

举例:登录用例测试,生成测试报告

1、创建一个目录:login_report

2、编写测试数据(login_data.json)

3、配置路径(config.py)

4、定义方法:读取测试数据、登录判断

5、编写测试用例,参数化

6、生成测试报告

跳过

对于一些未完成的或者不满足测试条件的测试函数和测试类,可以跳过执行。

使用方式

1.直接将测试函数标记成跳过

@unittest.skip('跳过的原因描述')

2.根据条件判断测试函数是否跳过

@unittest.skipIf(判断条件, reason='原因')     # 判断条件为 True, 执行跳过

举例

 

标签:TestSuite,UnitTest,套件,测试用例,测试,Pycharm,unittest,测试方法
From: https://www.cnblogs.com/lwj0126/p/17561497.html

相关文章

  • Pycharm安装CodeWhisper插件后登录仍然不显示“Pause Auto-Suggestions”选项的解决办
    一、检查PyCharm版本建议升级到最新,AWS不支持2022.03以前的版本。二、设置插件存储库FromtheJetBrainsmainmenu,openyour Preferences menu(expand File choose Settings,forWindowsusers).Fromthe Preferences/Settings menu,choose Plugins toope......
  • python:python解析器和pycharm编译器安装
    python解析器下载地址:https://www.python.org/getit/注意事项:1.建议下载3.6以以上的版本,2.官网下载比较慢,可以自行寻找其它网站下载,3.建议使用.exe安装包方式下载安装 下载完成后双击运行     验证是否安装成功:  pycharm编译器下载......
  • Python教程(4)——Python开发工具PyCharm的下载与安装
    PyCharm是一种专业的Python集成开发环境(IDE),由JetBrains公司开发和维护。它提供了丰富的功能和工具,帮助开发人员更高效地编写、调试和测试Python代码。如果是一些大型Python项目强烈推荐用这个来开发。今天我们来介绍一下PyCharm的下载与安装。PyCharm的下与载安装首先需要到PyCh......
  • Pycharm基础
    Pycharm基础1.添加解释器2.安装包的两种方式3.插件汉化插件以及一种使各分层括号颜色一致的插件......
  • PyCharm设置背景主题
    File->Settings->Appearance&Behavior->AppearanceIntellij:白色Darcula:黑色Highcontrast:亮黑色(高对比度) 1. Intellij:白色2. Darcula:黑色3. Highcontrast:亮黑色(高对比度) ......
  • Pycharm设置字体大小
    File->Settings->Editor->Font如下图:字体大小由17->24  ......
  • 全栈测试开发----unittest的设计及实现----自动化测试分层思想(1)
    通过unittest框架完成自动化分层操作,实现数据分离,减少代码于数据之间的依赖性,完成报告的生成并自动发送一系列操作。 前言:有人认为,在进行自动化测试过程中,测试代码只需要包含测试逻辑即可。其实不然,他需要包括很多类的代码,如URL拼接、访问UI控件、HTML/XML的解析等,如......
  • PyCharm external tools
    这个external tools 用来执行命令,就不用打开terminal了,尤其是带一堆参数的时候 在File->Settings->Tools->ExternalTools下,点击加号,就可以创建Name是最后的名字Program是一个可执行文件,比如py,pyuicArguments就是带的参数Working directory是这个命令执行的目录,相当于cd......
  • pycharm 安装成功点击图标无反应
    pycharm官网下载地址原因一解决方案:1、进入C:/Windows/System32目录;2、找到cmd.exe程序,右键选择“以管理员身份运行”;(可以通过win的搜索找到cmd)3、在打开的cmd窗口中执行【netshwinsockreset】命令;4、重启电脑原因二:破解激活pycharm错误所导致解决方案:c盘下搜索文件:pych......
  • pycharm git找不到远程服务器新建的分支
    1、从Termianl打开终端,进到.get目录2、执行命令:gitremoteupdateorigin--prune3、从Pycharm编写代码界面的右下角,可以看到一个master的按钮,搜索到最新分支4、checkout就切换到对应分支了......