### 1、自定义参数化函数编写

自定义函数在项目miracle.py文件中编写

```python
# miracle.py

def hello_world(name):
    return f"hello {name}"
```

### 2、自定义参数化函数使用

```txt
# 使用 ${函数名(位置参数, 关键字参数)}
# 注意：函数传参时字符串参数要添加引号 ${hello_world('wang')} or ${hello_world(name='wang')}
# 扩展：函数参数支持@{变量名.索引}进行数据替换 ${hello_world('@{name}')} name变量要先保存
```



```text
[
    {
        "caseLevel": "P1",
        "caseName": "购物车下单",
        "caseTier": "项目-首页-添加购物车-下单",
        "parametrize": [
            {"_title": "参数化数据1", "username": "A02441", "password":  "Xu173798"},
            {"_title": "参数化数据2", "username": "A02441", "password":  "xu1"}
        ],
        "caseNodes": [
            {
                "step_name": "登录飞熊平台",
                "driver": "api",
                "user": "user2",
                "param": {"data": "${hello_word('张三')}"}, # √
                "assert_content": [{"eq":["status_code", 200]}], # √
                "extract": [["token", "token"]]  # √
            }
        ]
    }
]
```



### 3、自定义类参数化

任意创建一个类

```python
# xxx.py
class DemoClass:
    def demo_func(self, a, b):
        return a + b
```

项目文件 settings.py导入该类 实例化后作为PARAMETRIC_CLASS列表元素

```python
# settings.py
from xxx import DemoClass
GIANT_SETTING = {
    "PARAMETRIC_CLASS": [DemoClass()],
}
```



### 4、自定义类参数化使用

直接使用参数化类函数名即可调用

```textmate
[
    {
        "caseLevel": "P1",
        "caseName": "购物车下单",
        "caseTier": "项目-首页-添加购物车-下单",
        "parametrize": [
            {"_title": "参数化数据1", "username": "A02441", "password":  "Xu173798"},
            {"_title": "参数化数据2", "username": "A02441", "password":  "xu1"}
        ],
        "caseNodes": [
            {
                "step_name": "登录飞熊平台",
                "driver": "api",
                "user": "user2",
                "param": {"data": "${demo_func(1, 2)}"}, # √
                "assert_content": [{"eq":["status_code", 200]}], # √
                "extract": [["token", "token"]]  # √
            }
        ]
    }
]
```

内置函数类：[faker （随机生成测试数据）](https://blog.csdn.net/qq_33528044/article/details/115460766)

可直接使用faker下自带的函数

### 5、运行时效果

