电商网站建设需要多少钱一年,企业vi品牌设计公司,网站的回到顶部怎么做,内部网站建设方案目录
一、参数化环境准备
1、方式一#xff1a;在终端#xff08;cmd#xff09;安装parameterized
2、方式二#xff1a;在Pycharm中安装parameterized
二、参数化
1、什么事参数化#xff1f;
2、参数化引入案例
#xff08;1#xff09;需求
#xff08;2在终端cmd安装parameterized
2、方式二在Pycharm中安装parameterized
二、参数化
1、什么事参数化
2、参数化引入案例
1需求
2代码实现
3发现问题
3、参数化的作用
4、参数化的使用方式
5、案例参数化断言实现测试多组数据
三、练习 一、参数化环境准备 unittest测试框架本身不支持参数化但是可以通过安装unittest扩展插件parameterized来实现参数化 Python中插件包/模块的安装使用pip工具PIP是一个python包管理工具提供了对python包的查找、下载、安装、卸载等功能 1、方式一在终端cmd安装parameterized 安装命令pip install parameterized 通过pip list查看python中的所有包包含parameterized即说明安装成功或通过File-Setting-Project:pythonproject-Python Interpreter查看parameterized是否安装成功或直接在文件中导parameterized查看是否安装成功有时需重启Pycharm才能导包
2、方式二在Pycharm中安装parameterized 二、参数化
1、什么事参数化 将测试数据定义到json文件使用 写在用例脚本中
2、参数化引入案例
1需求 定义一个实现加法操作的函数并对该函数进行测试 要求对多组测试数据进行测试
2代码实现 3发现问题 一条测试数据就需要定义一个测试函数代码冗余度太高 如果一个测试函数中测试多条数据最终只会有一个测试结果
3、参数化的作用 通过参数的方式来传递测试数据从而实现测试数据和用例脚本分离并实现用例的重复执行 其实就是在书写用例方法时用变量代替测试数据在执行时再将测试数据传递给变量
4、参数化的使用方式 导包 --- from parameterized import parameterizd 使用parameterized.expand装饰器为测试方法中的参数进行参数化 5、案例参数化断言实现测试多组数据
# add.py中定义的add函数
def add(x,y):return xy1、导包
2、将测试方法中的测试数据用变量表示
3、组织测试数据格式[(),(),()],一个元组就是一组测试数据
4、参数化在测试方法上用装饰器parameterized。expand(测试数据)
5、运行直接在测试类或测试方法上运行使用suite运行使用unittest.main运行
import unittest
from unittest_csh.add import add
from parameterized import parameterizeddata [(1, 0, 1), (2, 0, 2), (3, 0, 4)]class TestAdd(unittest.TestCase):parameterized.expand(data)def test_add01(self, x, y, expected):print(x{} y{} expected{}.format(x, y, expected))result add(x, y)self.assertEqual(result, expected)if __name__ __main__:unittest.main()
三、练习 需求 将测试数据定义为json文件读取json文件完成参数化 实现思路 从json文件中读取数据通过参数化的方式传到用例方法中实现一个用例测试多组数 据通过suite执行用例 定义add函数
# 定义在add.py文件中的函数
def add(x,y):return xy
定义json文件
[{x: 1,y: 0,expected: 1},{x: 2,y: 0,expected: 2},{x: 3,y: 0,expected: 4}
]
读取json文件编写测试用例
import unittest
from unittest_csh.add import add
from parameterized import parameterizedimport json
# 读取json文件中的测试数据
def data_link():with open(add_data.json,encodingutf-8) as f:data_list json.load(f)#print(type(data_list)) #class list#print(data_list) #[{x: 1, y: 0, expected: 1},{}]new_list []for data in data_list: #data 字典x data.get(x)y data.get(y)expect data.get(expect)new_list.append((x,y,expect))return new_list # new_list [(1,0,1),(),()]class TestAdd01(unittest.TestCase):parameterized.expand(data_link())def test_add001(self,x,y,expect):result add(x,y)print(x{} y{} expected{}.format(x,y,expect))self.assertEqual(expect,result)
执行测试用例
import unittest
from unittest_csh.addtest_adddata import TestAdd01suite unittest.TestSuite()
suite.addTest(unittest.makeSuite(TestAdd01))
runner unittest.TextTestRunner()
runner.run(suite)