最近有同学问我发布到gitee上的接口测试框架中的一些不明白的地方。现在把之前写好的文档分享给大家。
接口自动化框架有所变动,最近几天会同步更新到gitee上。之前有同学问我为啥不用github,因为github不稳定,经常掉,其次是慢,所以就放到了gitee上。后续也会把之前的ui的框架合并到这个接口框架中来。不过需要一段时间。
-
框架运行流程图
-
Yml文件说明
-
Page层yml
host: &host http://192.168.x.xxx
page_template:
type: "api"
# 接口相关的数据
api_data:
# 是否运行,当为None和true时,表示运行
run_whether: true
# 引用,访问地址
host: *host
path: /xxx/xxx/xxx/xxx/list
# data_type的值: params(get请求),data(post请求),json(post请求)
# 当更改data_type里的值后,要将request_data里的data的值也进行更改.
data_type: data
request_data:
method: post
url: ${url}
data:
id: ${id}
name: ${name}
student:
starttime:
endtime:
desc:
status:
# 是否需要上传文件,不需要时,则不需要该字段,或不填写具体的值.
# 目前框架中没及写files这块的逻辑
files:
# 是否有登录依赖(主要是获取token),默认值为false
dependence_login:
login_data:
# 当token_filepath不为None,大小不0,且在session有效期内,则会优先读取json文件中的token
# 若token_filepath不为None,当为0或过期了,会使用下面的login_data进行登录,
# 然后再将token保存到token_filepath指定的json文件里.
token_filepath: xxx/xxx.json
login_data:
username: ${username}
password: ${password}
# 是否有case数据依赖. 默认值为false
dependence_case:
dependence_case_data:
# 依赖类型,目前有4种值: json(默认),request,response,sql(暂不支持,未写具体的逻辑)
dependence_type: response
# 依赖的json数据,在jsonfile目录下所存放的相对位置
jsonfilepath:
# 要执行的sql语句(未实现),当dependence_type的值为sql时,要填该值.
sqlstatement:
# 所依赖的yml文件,当dependence_type为request 或 response时,填写该值.
# 这部分的值有两部分组成,case层的yml由case层写,依赖的page层的yml文件,则page层维护
case_id: xxx/xxx.yml::all
# 依赖的字段,list,要写jsonpath里的提取值的表达式.
dependence_key:
# 要替换的key,这些key为当前要执行的接口里的 request_data里的data里的某一个key.
replace_key:
# 是否保存当前接口的执行的响应结果,默认值为false
ensure_save_response:
save_response:
# 保存的文件类型,默认值为json.值有3种:json,sql,all(当为all时,是同时保存为json文件,和数据库中)
save_type:
# 响应结果保存的文件名称(含路径),是相对于jsonfile目录的相对路径
response_filepath:
# 是否需要进行数据校验(一般用于查询接口.来校验并找到目标数据后,保存起来,供其他接口进行调用),默认值为false
ensure_check:
check_data:
# 把当前的最终的校验保存到jsonfile目录下的,指定json文件中.
# 一般都要填写该值,因为查询数据后,对结果进行校验,获取到目标数据后,会将目标数据中的一些字段,传递给其他的接口使用.
save_jsonfilepath: &web_checkdata qingjia/web_query_check.json
# 当查找到目标数据时,要保存的字段.这些字段,必须为query_keys的真子集
save_keys: [id]
# 查询的字段,就是当查找到目标数据后,要从下面的一些字段中取值,并进行保存.
# 除amount为固定字段外,其余字段,均为动态字段,根据实际的需要进行填写即可
query_keys: