遇一山,过一山,处处有风景;只要勇敢向前,一路尽是繁花盛开。 | (点击查看→)【测试干货】python/java自动化、持续集成、性能、测开、简历、笔试面试等

python接口自动化系列(02):yaml测试数据文件设计

 

本系列汇总,请查看这里https://www.cnblogs.com/uncleyong/p/18033074

实现目标

对测试数据进行设计,数据设计决定了后续读取数据的代码该如何实现。

 

关于被测试接口

配套练习环境(含相关接口):https://www.cnblogs.com/uncleyong/p/17165143.html

 

常用数据

用例数据频繁使用到的值,我们可以放到一个变量中,这样避免修改值的时候大面积修改

多个常用的变量放到variables.yaml中

---
'#{username}': tester
'#{password_correct}': 123456
'#{password_wrong}': 1234567
'#{productname}': thinkpad

内容是字典:

  • key是变量名,#{xxx}整体表示变量名

  • value是变量值

 

测试用例数据

放case.yaml中

---
- epic: 全栈测试笔记
  feature: user
  story: register
  title: 用户注册成功
  description: 这是用户注册成功的用例
  severity: blocker
  request:
    url: /qzcsbj/user/register
    method: post
    headers: {'Content-Type':'application/json'}
    cookies:
    files:
    params: {"username":"#{username}","password":"#{password_correct}","realName":"#{username}","sex":"1","birthday":"1990-06-16","phone":"13500000006","utype":"1","adduser":"#{username}"}
  initSql: ["delete from user where username = '#{username}';"]
  globalVariables:
  assertFields: $.msg=注册成功;

内容是字典元素的列表:

  • 每个json字符串是一条用例数据

  • epic、feature、story、title、description、severity是为了集成allure的时候,动态添加allure报告描述,用法详见:https://www.cnblogs.com/uncleyong/p/18030825

  • request是请求相关的内容,包含:url(只写路径,不需要写ip、端口)、method(目前只支持post、get)、headers(请求头)、cookies(预留,暂未使用)、files(预留,暂未使用)、params(请求参数,如果是非关联变量,也就是上面的常用变量,填写为#{xxx},如果是关联参数,填写为${xxx})

  • initSql:初始化sql,要求是json列表,例如:[{"sqlNo":"1","sql":"delete from users where username = '#{username}';"}],用到的常用变量,填写为#{xxx}

  • globalVariables:需要关联的参数值,样例:token=$.token;,左侧是字段名,右侧是其jsonpath路径,并以英文分号结尾,多个断言字段用英文分号间隔

  • assertFields:要断言字段的jsonpath路径以及值,并以英文分号结尾,多个断言字段用英文分号间隔,如:

$.code=9550;$.msg=success;

 

posted @ 2024-03-03 20:36  全栈测试笔记  阅读(820)  评论(0编辑  收藏  举报
浏览器标题切换
浏览器标题切换end