接口自动化的ymal数据驱动:把数据从用例中抽取出来

接口自动化的数据驱动是指:把数据从用例中抽取出来。

一.接口自动化测试框架Ymal数据驱动的封装

@pytest.mark.parameterize(args_name,args_value)

args_name:参数名

args_valus:参数值(可使用:list列表,tuple元组,字典列表,字段元组等)在数据中有多少个值,那么接口用例就会被执行多少次。

ps: args_valus可以是填入的值,也可以是一个有返回值的函数。

案例1 : list列表

import pytest

class TestDemo3:
    @pytest.mark.parametrize("args",["张山","李四"])
    def test_getInfo(self,args):
        print(args)
if __name__ == '__main__':
    pytest("TestDemo2_test.py")

 result: 

TestDemo3_test.py::TestDemo3::test_getInfo[\u5f20\u5c71] PASSED          [ 50%]张山

TestDemo3_test.py::TestDemo3::test_getInfo[\u674e\u56db] PASSED          [100%]李四

 

案例2: 值是list中嵌套list

import pytest
class TestDemo3:
    @pytest.mark.parametrize("args",[["张山",13],["李四",16]])
    def test_getInfo(self,args):
        print(args)
if __name__ == '__main__':
    pytest("TestDemo2_test.py")

 result:

TestDemo3_test.py::TestDemo3::test_getInfo[args0] PASSED                 [ 50%]['张山', 13]

TestDemo3_test.py::TestDemo3::test_getInfo[args1] PASSED                 [100%]['李四', 16]

 

案例3:当value是嵌套的list或者元组时,可以用多个参数来接收--这称之为“解包”

class TestDemo3:
    @pytest.mark.parametrize("name,age",[["张山",13],["李四",16]])
    def test_getInfo(self,name,age):
        print(name,age)
if __name__ == '__main__':
    pytest("TestDemo2_test.py")

result:

TestDemo3_test.py::TestDemo3::test_getInfo[\u5f20\u5c71-13] PASSED       [ 50%]张山 13

TestDemo3_test.py::TestDemo3::test_getInfo[\u674e\u56db-16] PASSED       [100%]李四 16

二. Ymal详解

ymal也是一种数据格式。

ymal主要作用:

1.做 配置文件

2.做 测试用例的数据

ymal数据组成:

1.map对象:键值对格式 ,键(冒号)值

name: 张三

2.列表: 用横向-开头

  names:
     -name1:张山
     -name2:李四

ps:

1.如果是列表的值,就用横线-表示

2.如果有多组数据,也用横线-分隔

三。案例:

 

ps:

一条用例一个ymal文件,如果这个用例会验证多个场景: 就在ymal文件中用横线-隔开。那么ymal文件有多少个横线,这条用例就会被执行多少次!

四.如何写断言

 断言:在yaml文件中写。

五.如果用例的参数是动态变化的,那么ymal如何处理这类用例的数据参数化呢

 

1. ymal如何使用动态参数。 (直接在yaml中调用外部的函数)

2.如何使用文件上传api.(直接在ymal文件里面写文件路径即可)

3.如何实现断言。(在ymal文件中写)

4.ymal文件中数据量太大怎么办呢?(使用csv)

5.如果有多个环境怎么办呢?()

6.接口关联(支持正则提取以及json提取)

 

六. pytest如何做日志管理

https://blog.51cto.com/u_15688254/5391561

posted @ 2023-05-06 17:41  苹果芒  阅读(72)  评论(0编辑  收藏  举报