接口测试用YAML写测试用例
代码和用例分离时,测试用例用YAML或excel写都可以。一般接口测试用YAML写测试用例
原因:
1.方便的字典和YAML之间切换
2.YAML有数据类型
数据组成:
1.对象:通过字典表示
key: value
2.数组:通过列表表示,通过一组对齐的 - 表示(YAML里面字符串一般不写引号)
- name: 获取接口统一鉴权码token接口1 request: method: get url: https://api.weixin.qq.com/cgi-bin/token data: grant_type: client_credential appid: wx74a8627810cfa308 secret: e40a02f9d79a8097df497e6aaf93ab80 headers: null validate: null
3.基本数据类型
DDT数据驱动(不同于参数化)
方法:
@pytest.mark.parametrize(args_name, args_value)
args_name: 参数名,自定义
args_value:参数值,要么是list,要么是tuple(数组)
用法一:
@pytest.mark.parametrize("name", [{"花花":18},{"火火":16}])
用法二:解包
list里还有list
@pytest.mark.parametrize("name,age", [["花花":18],["火火":16]])
def read_yaml(path): with open(path, 'r', encoding='utf-8') as f: value = yaml.load(stream=f, Loader=yaml.FullLoader) return value
@pytest.mark.parametrize("name", read_yaml("./testcases/test_api/test_02.yaml")) def test_02_gan_ju(self, name): print(name)
YAML 或EXCEL都要解决的问题:
1.url怎么做到测试环境和生产环境切换
2.接口关联
3.动态参数
4.类型转换
5.文件上传
6.一个接口大概有几十个用例
7.处理断言