• 用 yaml 写测试用例


    采用 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'}}]
     
  • 相关阅读:
    CentOS7安装mysql
    strusts2的开发包
    CentOS7配置mavne国内镜像
    卸载linux自带的jdk
    Centos7安装nodejs
    redis启动方式
    bash学习笔记——Shell变量
    bash学习笔记——bash是什么
    教育管理系统——android家长客户端
    php入门学习——php与jsp对比
  • 原文地址:https://www.cnblogs.com/pengzhuopeng/p/9127637.html
Copyright © 2020-2023  润新知