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

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

 

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

实现目标

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

 

关于被测试接口

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

 

创建测试数据文件

目录caseData下创建数据文件

说明:本次优先分享的是测试数据存excel中,文末有yaml数据样例

 

常用数据

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

示例

sheet名称:variables

解释:标题行

每个单词首字母大写,因为代码里面反射会用到

解释:字段数据

Name:变量名,#{xxx}整体表示变量名

Value:变量值

Description:变量的描述

 

测试用例数据

示例

sheet名称:case

解释:标题行

每个单词首字母大写,因为代码里面反射会用到

解释:字段数据

Url:只写路径,不需要写ip、端口

RequestType:目前只支持post、get

Headers:json格式字符串,如果没有请求头,填写为{}

Cookies:预留,暂未使用

Parameters:json格式字符串,如果是非关联变量(也就是上面的常用变量),填写为#{xxx},如果是关联参数,填写为${xxx}

UploadFile:预留,暂未使用

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

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

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

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

 

补充:测试数据存yaml

caseData.yaml,和上面excel中测试数据一样

---
- caseId: 1
  apiName: register
  describe: 注册
  url: /qzcsbj/user/register
  requestType: post
  headers: {'Content-Type':'application/json'}
  cookies: 
  parameters: {"username":"#{username}","password":"#{password_correct}","realName":"#{username}","sex":"1","birthday":"1990-06-16","phone":"13500000006","utype":"1","adduser":"#{username}"}
  uploadFile: 
  initSql: [{"sqlNo":"1","sql":"delete from user where username = '#{username}';"}]
  globalVariables: 
  assertFields: $.msg=注册成功;

- CaseId: 2
  ApiName: login
  Describe: 登录
  Url: /qzcsbj/user/login
  RequestType: post
  Headers: {"Content-Type":"application/json"}
  Cookies: 
  Parameters: {"username":"#{username}", "password":"#{password_correct}"}
  UploadFile: 
  InitSql: 
  GlobalVariables: token=$.data.token;
  AssertFields: $.msg=登录成功;

- CaseId: 3
  ApiName: add
  Describe: 添加商品
  Url: /qzcsbj/product/add
  RequestType: post
  Headers: {"Content-Type":"application/json"}
  Cookies: 
  Parameters: {"product":{"price":9999,"productName":"#{productname}"},"token":"${token}"}
  UploadFile: 
  InitSql: [{"sqlNo":"1","sql":"delete from product where product_name = '#{productname}';"}]
  GlobalVariables: 
  AssertFields: $.msg=添加商品成功;

- CaseId: 4
  ApiName: findByName
  Describe: 查询商品
  Url: /qzcsbj/product/findByName
  RequestType: get
  Headers: {}
  Cookies: 
  Parameters: {"name":"#{productname}"}
  UploadFile: 
  InitSql: 
  GlobalVariables: 
  AssertFields: $.msg=查询商品成功;

- CaseId: 5
  ApiName: findByName
  Describe: 查询商品
  Url: /qzcsbj/product/findByName
  RequestType: get
  Headers: {}
  Cookies: 
  Parameters: {"name":"#{productname}"}
  UploadFile: 
  InitSql: 
  GlobalVariables: 
  AssertFields: $.msg=查询商品成功啦;

 

yaml数据校验

 

posted @ 2023-12-17 11:47  全栈测试笔记  阅读(1130)  评论(0编辑  收藏  举报
浏览器标题切换
浏览器标题切换end