自动化测试框架Pytest(四) ——数据驱动

1196 篇文章 46 订阅
762 篇文章 11 订阅

我们搭建一个自动化框架需要包括以下几个方面:

数据驱动

关键字驱动

全局配置文件的封装

日志监控

selenium、requests二次封装

断言

报告邮件

更多。。。

今天这章来谈谈数据驱动。

所谓数据驱动,可以简单的理解为数据的改变从而驱动自动化测试的执行,最终引起测试结果的改变。

pytest的数据驱动有两种方式。一是parametrize驱动,二是yaml驱动。今天我们来分别试试两种驱动的优缺点。

一、parametrize数据驱动

用到装饰器,args_name代表变量名,args_value代表需要测试的数据。

可以是单个变量也可以是多个变量。

  1. @pytest.mark.parametrize(args_name,args_value)
    args_name:参数名称
    args_value:参数值

例子:

import pytest
class Test05:
    @pytest.mark.parametrize("args_name", ['百里','婉儿','露露'])    def test_get_token(self,args_name):        print('测试参数'+args_name)

如果参数是多层嵌套:

import pytest
class Test05:
    @pytest.mark.parametrize("name,age", [['百里','11'],['婉儿','22'],['露露','33']])    def test_get_token(self,name,age):        print(f'姓名:{name},age:{age}')

二、yaml文件

一种数据格式,一般用于配置文件以及接口自动化的用例

由两种数据格式组成:
1.map对象:键:(空格)值。
name: 百里
2.list列表:用一组-开头。同一个级别的-是同一个list
- name1: 百里
- name2: 婉儿

1、安装pyyaml模块

pip install pyyaml

2、在用例同目录新建yaml文件test_05.yaml

-  name: 获取token接口1  request:    method: get    data:      name: 百里      age: 18    url: https://www.baidu.com  validate: None-  name: 获取token接口2  request:    method: get    data:      name: 婉儿      age: 17    url: https://www.baidu.com  validate: None

3、添加读取yaml的工具类yaml_util.py

import yaml
def read_yaml(yaml_path):    with open(yaml_path,encoding='utf‐8') as f:        value = yaml.load(f,Loader=yaml.FullLoader)        return value

4、用例读取数据​​​​​​​

import pytest
from commons.yaml_util import read_yaml
class Test05:
    @pytest.mark.parametrize("args", read_yaml("./testcase/test_05.yaml"))    def test_get_token(self,args):        print(args)        print(args['request']['data']['name'])

通过以上两种方式我们就可以将测试代码和测试数据区分开了!


学习资源分享

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走

这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助…….

如果你不想再体验一次自学时找不到资料,没人解答问题,坚持几天便放弃的感受的话,可以加入下方我的qq群大家一起讨论交流,里面也有各种软件测试资料和技术交流。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值