采用 excel 的方式写测试用例,格式比较死板,比较容易出错,采用 yaml / yml 格式来写用例。
首先安装 pyyaml:pip install pyyaml
建立一个 login.yaml 文件(或login.yml,这两种后缀是一样的),内容如下,可见内容中的key会变颜色,如果没有变颜色,冒号后面加个空格。
username: joseph passwd: 123456 cpasswd: 123456 name: joseph
建立 a.py 文件读取 login.yaml
1 import yaml 2 f = open('login.yaml',encoding='utf-8') 3 res = yaml.load(f) 4 print(res)
运行结果如下:可见,从 yaml 文件中读出来的是一维字典。
{'username': 'joseph', 'name': 'joseph', 'passwd': 123456, 'cpasswd': 123456}
修改 login.yaml 文件,再次执行 a.py 查看运行结果。
url: /api/user/login method: post data: username: joseph #顶头使用一个tab,否则会报错 passwd: aA123456 #冒号后面加一个空格 headers: user-agent: Firefox cookies: sign: ssassssss check: error_code: 0
运行结果:可见,增加一个tab 后,就变成了二维字典。
{'check': {'error_code': 0}, 'data': {'username': 'joseph', 'passwd': 'aA123456'}, 'cookies': {'sign': 'ssassssss'}, 'url': '/api/user/login', 'headers': {'user-agent': 'Firefox'}, 'method': 'post'}
但是,这种方法有一个弊端,在 yaml 中录入多个用例时,后面的用例会把前面的用例覆盖,如下文中的两个用例。(在 yaml 中注视同 python一样,前面加 #)
#正常登录 url: /api/user/login method: post data: username: joseph passwd: aA123456 headers: user-agent: Firefox cookies: sign: ssassssss check: error_code: 0 #密码错误 url: /api/user/login method: post data: username: joseph passwd: aaaaaaa headers: user-agent: Firefox cookies: sign: ssassssss check: error_code: 3007