遇一山,过一山,处处有风景;只要勇敢向前,一路尽是繁花盛开。 | (点击查看→)【测试干货】python/java自动化、持续集成、性能、测开、简历、笔试面试等

unittest单元测试框架中的参数化及每个用例的注释

相信大家和我有相同的经历,在写自动化用例脚本的时候,用例的操作是一样的,但是就是参数不同,比如说要测一个付款的接口,付款有很多种渠道,另外只有部分参数不一样,如果我们一个渠道一个渠道的写,在unittest里面就要写很多个用例脚本,而且大部分内容都是一样的,这样脚本就显得比较冗余了。

我们可以把不同的参数写在一个列表中,然后循环列表获取参数执行用例,python有第三方模块parameterized来实现循环列表获取参数执行用例的功能。

另外,之前写用例脚本,每个用例下面增加三引号注释,可以增加脚本可读性,而且在报告中也可以显示注释,但是,现在接口用例只写一个,里面的参数都参数化了,如何显示不同参数情况下的用例的注释呢?parameterized下的expand方法已经给我们做好了这些,唯一的缺点是,报告中只能显示英文注释,不能显示中文注释。

 

 

完整用例代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import os, sys
 
path = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.insert(0, path)
import unittest
from core import HTMLTestRunner
from parameterized import parameterized
from core import logger
import inspect
from core.tools import p
 
 
def cacl(a, b):
    return a + b
 
 
class MyCacl2(unittest.TestCase):
    def setUp(self):
        pass
        # print('测试用例开始执行...')
 
    def tearDown(self):
        pass
        # print('测试用例执行完成...')
 
    @parameterized.expand(
        [
            ("fushujiaxiaoshu",-1, 1.5, 0.5),  # 负数加小数
            ("xiaoshujiaxiaoshu",1.1, 2.2, 3.3),  # 小数相加
 
        ]
    )
    def test_cacl(self,a, b, c, d):  # 此处a不能省略
        try:
            res = cacl(b, c)
        except TypeError as e:
            res = '类型错误'
        self.assertEqual(res, d)

  

报告,可以看到用例后显示了英文注释

 

posted @   全栈测试笔记  阅读(2643)  评论(0编辑  收藏  举报
编辑推荐:
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 用 C# 插值字符串处理器写一个 sscanf
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
阅读排行:
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· DeepSeek 解答了困扰我五年的技术问题。时代确实变了!
· 本地部署DeepSeek后,没有好看的交互界面怎么行!
· 趁着过年的时候手搓了一个低代码框架
· 推荐一个DeepSeek 大模型的免费 API 项目!兼容OpenAI接口!
历史上的今天:
2017-06-26 找到第一个只出现一次的字符并返回它的位置(Python)
2017-06-26 青蛙跳台阶(C、Python)
浏览器标题切换
浏览器标题切换end
点击右上角即可分享
微信分享提示