• 接口自动化测试框架详解


    接口自动化测试框架只需要编写yaml(excel)测试用例即可完全实现零代码落地实施自动化测试。

    1、核心技术

    1.1 热加载封装(全网最早应用于自动化测试框架的封装技术)

    1.2 requests统一请求封装

    1.3 接口关联封装以及接口关联封装改进

    1.4 规范yaml测试用例封装

    1.5 统一接口断言封装,包括常规断言和数据库断言

    1.6 yaml测试用例数据驱动封装

    1.7 base_url举出路径封装

    1.8 logging日志封装

    1.9 接口加密封装

    1.10 接口签名封装

    1.11 零代码极限封装

    1.12 企业级Allure报告的定制

    1.13 流程用例封装,异常处理封装,常规基础模块封装等

    注意事项:有关联用例,关联的上一个接口用例必须在上面(也可以放到a文件夹或者是通过修改yaml的文件名实现)

    同时,我也准备了一份软件测试视频教程(含接口、自动化、性能等),需要的可以直接在下方观看,或者直接关注VX公众号:互联网杂货铺,免费领取

    软件测试视频教程观看处:

    字节大佬教你逼自己如何在15天内掌握自动化测试(接口自动化/APP自动化/Web自动化/性能测试),内含项目实战

    2、yaml编写测试用例常规可用的关键字

    feature:模块名(必填)

    story:接口名(必填)

    title:用例标题(必填)

    request:请求(必填)

    method:请求方式(必填)

    url:请求路径(必填)

    headers:请求头

    params:url之后的参数

    data:表单数据

    json:json数据

    files:文件上传

    validate:断言(必填)

    codes:断言状态码

    equals:相等断言

    contains:包含断言

    db_equals:数据断言

    3、单接口测试用法(常规关键字填写接口数据)

    1. -
    2. feature: 用户管理模块
    3. story: 获取access_token鉴权码接口
    4. title: 测试获取access_token鉴权码接口成功
    5. request:
    6. method: get
    7. url: https://api.weixin.qq.com/cgi-bin/token
    8. params:
    9. "grant_type": client_credential
    10. "appid": wxd87yu92q8ehyd
    11. "secret": f7384gf785ty8394fjre98yt45
    12. validate: null

    4、测试需要接口关联的接口(通过extract关键字实现)

    4.1上一个接口提取变量使用extract关键字

    extract:

            token: url(.*?)tp://101.34        (正则表达式提取)

            order_id: $.data.data[0].id        (jsonpath提取)

    1. -
    2. feature: 用户管理模块
    3. story: 获取access_token鉴权码接口
    4. title: 测试获取access_token鉴权码接口成功
    5. request:
    6. method: get
    7. url: https://api.weixin.qq.com/cgi-bin/token
    8. params:
    9. "grant_type": client_credential
    10. "appid": wxd87yu92q8ehyd
    11. "secret": f7384gf785ty8394fjre98yt45
    12. extract:
    13. access_token: $.access_token
    14. validate: null

    4.2下一个接口使用变量(token即extract提取的变量名)

    ${read_yaml(token)}

    1. -
    2. feature: 用户管理模块
    3. story: 查询标签接口
    4. title: 测试查询标签接口成功返回
    5. request:
    6. method: get
    7. url: https://api.weixin.qq.com/cgi-bin/tags/get
    8. params:
    9. access_token: ${read_yaml(access_token)}
    10. validate: null

    5、测试需要数据驱动的接口(通过parametrize关键字实现)

    parametrize:

            - ["order_id","username","index"]

            - ["654646","admin",0]

            - ["www","baili",1]

    使用:

    $ddt{token}

    1. -
    2. feature: 用户管理模块
    3. story: 获取access_token鉴权码接口
    4. title: $ddt{title}
    5. request:
    6. method: get
    7. url: https://api.weixin.qq.com/cgi-bin/token
    8. params:
    9. "grant_type": $ddt{grant_type}
    10. "appid": $ddt{appid}
    11. "secret": $ddt{secret}
    12. extract:
    13. access_token: $.access_token
    14. parametrize:
    15. - [ "title","grant_type","appid","secret" ]
    16. - [ "测试获取access_token鉴权码接口成功","client_credential","wxd87yu92q8ehyd","f7384gf785ty8394fjre98yt45" ]
    17. validate: null

    6、断言

    validate:断言

            codes

            equals

            contains

            db_equals

    1. -
    2. feature: 用户管理模块
    3. story: 查询标签接口
    4. title: 测试查询标签接口成功返回
    5. request:
    6. method: get
    7. url: https://api.weixin.qq.com/cgi-bin/tags/get
    8. params:
    9. access_token: ${read_yaml(access_token)}
    10. validate:
    11. codes: 200
    12. contains: tags

    7、基础路径的配置

    在config.yaml里面设置基础路径,然后再在yaml测试用例中使用热加载:${read_config(base_url)}

    base_url: https://api.weixin.qq.com/cgi-bin

    1. -
    2. feature: 用户管理模块
    3. story: 查询标签接口
    4. title: 测试查询标签接口成功返回
    5. request:
    6. method: get
    7. url: ${read_config(base_url)}/tags/get
    8. params:
    9. access_token: ${read_yaml(access_token)}
    10. validate: null

    8、流程用例测试方法

    1. -
    2. feature: 用户管理模块
    3. story: 获取access_token鉴权码接口
    4. title: 第一个测试步骤
    5. request:
    6. method: get
    7. url: https://api.weixin.qq.com/cgi-bin/token
    8. params:
    9. "grant_type": client_credential
    10. "appid": wxd87yu92q8ehyd
    11. "secret": f7384gf785ty8394fjre98yt45
    12. validate: null
    13. -
    14. feature: 用户管理模块
    15. story: 获取access_token鉴权码接口
    16. title: 第二个测试步骤
    17. request:
    18. method: get
    19. url: https://api.weixin.qq.com/cgi-bin/token
    20. params:
    21. "grant_type": client_credential
    22. "appid": wxd87yu92q8ehyd
    23. "secret": f7384gf785ty8394fjre98yt45
    24. validate: null

    9、总结 

    PS:这里分享一套软件测试的自学教程合集。对于在测试行业发展的小伙伴们来说应该会很有帮助。除了基础入门的资源,博主也收集不少进阶自动化的资源,从理论到实战,知行合一才能真正的掌握。全套内容已经打包到网盘,内容总量接近500个G。如需要软件测试学习资料,关注公众号(互联网杂货铺),后台回复1,整理不易,给个关注点个赞吧,谢谢各位大佬!

    ☑ 240集-零基础到精通全套视频课程
    ☑ [课件+源码]-完整配套的教程
    ☑ 18套-测试实战项目源码
    ☑ 37套-测试工具软件包
    ☑ 268道-真实面试题
    ☑ 200个模板-面试简历模板、测试方案模板、软件测试报告模板、测试分析模版、测试计划模板、性能测试报告、性能测试报告、性能测试脚本用例模板(信息完整)

    这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。

  • 相关阅读:
    神经辐射场 (NeRF) 概念
    【打卡】21天学习挑战赛—RK3399平台开发入门到精通-day9
    药物与生物大分子的相互关系(分子与药物以及人体关系)
    使用Spring AOP实现系统操作日志记录
    AcWing 1289. 序列的第k个数
    【反编译系列】二、反编译 .pyc 文件(uncompyle6)
    2022年了,零基础转行计算机还可靠么?
    官宣!软考机考模拟练习平台于10月16日至11月3日开放
    分布式主键算法
    常用位操作
  • 原文地址:https://blog.csdn.net/cs888zsy/article/details/133825074