码迷,mamicode.com
首页 > 其他好文 > 详细

用 yaml 写测试用例

时间:2018-06-03 10:51:37      阅读:1139      评论:0      收藏:0      [点我收藏+]

标签:没有   cookie   建立   读取   yml   username   ref   error   循环   

采用 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
View Code

执行 a.py 后,运行结果如下:

{check: {error_code: 3007}, url: /api/user/login, method: post, data: {username: joseph, passwd: aaaaaaa}, headers: {user-agent: Firefox}, cookies: {sign: ssassssss}}

那我们采用什么方式来写多条测试用例呢,可以采用在每一个用例之前加上 ‘-’ ,下方用例顶头都加上 tab ,如下所示:

技术分享图片
-
  url: /api/user/login
  method: post
  datail: 正常登录
  data:
    username: joseph
    passwd: aA123456
  check:
    userId: 1
    error_code: 0

-
  url: /api/user/login
  method: post
  datail: 密码错误
  data:
    username: joseph
    passwd: aA123123
  check:
    error_code: 3007

-
  url: /api/user/login
  method: post
  datail: 密码不传
  data:
    username: joseph
  check:
    error_code: 3001
View Code

运行 a.py ,运行结果如下,可见,运行结果变成了一个列表。可以对列表进行循环,读出每一个用例。

[{method: post, check: {userId: 1, error_code: 0}, datail: 正常登录, url: /api/user/login, data: {passwd: aA123456, username: joseph}}, {method: post, check: {error_code: 3007}, datail: 密码错误, url: /api/user/login, data: {passwd: aA123123, username: joseph}}, {method: post, check: {error_code: 3001}, datail: 密码不传, url: /api/user/login, data: {username: joseph}}]

 

用 yaml 写测试用例

标签:没有   cookie   建立   读取   yml   username   ref   error   循环   

原文地址:https://www.cnblogs.com/pengzhuopeng/p/9127637.html

(1)
(1)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!