十三、python中ddt的使用和excel数据读取

ddt的使用和excel数据读取:

ddt:数据驱动测试

观念:把测试数据和用例代码进行分离,通过外部数据去生成测试用例,方便后期维护,以为测试数据的管理

ddt的使用:

1、测试类前面使用@ddt

2、在测试方法面前@list_data

3、在测试方法中定义一个参数用来接收用例数据

4、如果要添加用例描述,需要在测试数据中添加一个title字段(测试数据需要是字典类型)。或者在方法下面添加("""用例描述""")

```python
import unittest
#导入功能函数login_dxc
from testcases.login import login_dxc
#导入ddt,list_data
from unittestreport import ddt, list_data
#用例数据
cases = [
    {'expected': {'code': 0, 'msg': '登录成功'}, 'params': {"username": "duanxc", "password": 123456}},
    {'expected': {'code': 1, 'msg': '账号和密码不正确'}, 'params': {"username": "duanxc", "password": 12345}}
]

#在类前@ddt
@ddt
class test_login(unittest.TestCase):
    
    #在方法面前@list_data()括号里面传入用例数据
    @list_data(cases)
    #方法参数里面,写一个变量去接受cases的数据
    def test_login_01(self, item):
        # 准备用例数据
        data = item["params"]
        expected = item["expected"]
        # 调用被测试的函数,获取实际结果
        res = login_dxc(**data)
        # 断言
        self.assertEqual(expected, res)
```

excel数据读取:

```python

import openpyxl
#基础用法
#1、加载excel文件为工作簿对象
res = openpyxl.load_workbook(r"E:\Study\datas\cs.xlsx")
#查看所有表单名
sheet=res.sheetnames
# print(sheet)
#2、选中表单
sheet1=res['Sheet1']
# print('sheet1')
#3、读取数据
data= sheet1.cell(row=1,column=1)#row行,column列
print(data.value)
```

1、rows:按行获取表单中所有的格子,每一行格子放到一个元祖中

```python
import openpyxl

wookbook = openpyxl.load_workbook(r"E:\Study\datas\cs.xlsx")
sh = wookbook["Sheet1"]
# rows:按行获取表单中所有的格子,每一行格子放到一个元祖中
res = list(sh.rows)
# 获取第一行的数据
item = [i.value for i in res[0]]

cases = []
#遍历除第一行以外的所有数据
for items in res[1:]:
    # 获取该行的数据
    data = [i.value for i in items]
    # 第一行的数据和当前行的数据打包为字典
    ress = dict(zip(item, data))
    # 把字典添加到cases这个列表中
    cases.append(ress)
    
print(cases)
```
 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值