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;
__EOF__
关于博主:擅长性能、全链路、自动化、企业级自动化持续集成(DevTestOps)、测开等
面试必备:项目实战(性能、自动化)、简历笔试,https://www.cnblogs.com/uncleyong/p/15777706.html
测试提升:从测试小白到高级测试修炼之路,https://www.cnblogs.com/uncleyong/p/10530261.html
欢迎分享:如果您觉得文章对您有帮助,欢迎转载、分享,也可以点击文章右下角【推荐】一下!