51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

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

[原创] 单元测试框架Unittest你知道多少?

[复制链接]
  • TA的每日心情
    无聊
    10 小时前
  • 签到天数: 943 天

    连续签到: 2 天

    [LV.10]测试总司令

    跳转到指定楼层
    1#
    发表于 2022-9-9 14:31:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    一.框架介绍
      1. unittest框架是python 自带的一个作为单元测试的测试框架,在最初叫pyUnit,相当与Java语言中的Junt.
      2. Unittest可以结合seleenium,requests来实现 UI 与接口自动化.
      3. 由unittest框架 再衍生出pytest框架,pytest 可以完美结合unittest 来实现自动化。(pytest相当于unittest的升级版).
      4. unittest 无需额外安装,因python 中已直接加载了unittest.
      二.四大组件
      1. test fixture:测试固件 setUp 与 tearDown为执行测试用例的前置条件与后置条件
      2. Test.Case:测试用例 ,用例语法规范:(1).test_ 开头,(2).用例执行顺序:A-Z,a-z,0-9
      3. Test suite:测试套件
      4. Test runner:运行器
      三. DDT数据驱动
      1. 数据驱动益处:
      (1).避免编写重复代码
      (2).数据与测试脚本分离
      (3).通过使用数据驱动测试,来验证多组数据测试场景
      (4).通常上,多用于单元测试于接口测试
      2. DDT 介绍
      (1).DDT 全称 Data-Drivern Test,即数据驱动测试,可以实现不同数据运行同一个测试用例。
      (2).DDT本质就是装饰器,一组数据一个场景
      (3).装饰器前面需加@
      3. DDT使用
      (1).Ddt导入:from ddt impot ddt,data,unpack
      (2).Ddt.ddt:装饰类,也就是继承TestCase方法,存放在class类前面,即:@ddt
      (3).Ddt.data:装饰测试方法,存放参数值;存放在测试用例前面,即:@data(参数值)
      (4).Ddt.unpack:解包;比如说列表或者元组,添加unpack后,ddt会自动把元组或列表对应到多个参数上
      存放在 @data() 下面,即:@data(*read_file()) #read_file函数 读取文件数据
      @unpack()
      四.yaml操作
      yaml文件是jdk 完美兼容的文件格式:
      yaml文件内的数据一般为:字典格式数据(key:value格式)
      yaml文件以 *.yaml 为文件后缀
      yaml安装:pip.exe install pyyaml
      传入的参数是字典格式,不需要@unpack 进行数据的解包
      五.Unittest 断言
      断言:自动化测试主要用于对流程来进行测试,断言就是自动化测试中的预期结果与实际结果的对比。
      六.skip的应用
      1. 无条件跳过本条用例
      @unittest.skip()
      2. 判断用例是否为 false,当为false 跳过本条用例
      @unittest.skipUnless()
      3. 判断用例是否为true, 当为true 跳过本条用例
      @unittest.skipIf()
      4. 判断当断言失败,就忽略掉本条用例,并不把本条用例算入失败的用例中
      unittest.expectedFailure

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

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-5-7 22:03 , Processed in 0.061651 second(s), 23 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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