接口自动化框架思考及源码

思考^整理思路

思考这么几个问题:我想做一个什么样的自动化平台?用什么方式去实现?怎么去完成我的这个想法?

再做之前尽可能多的问自己一些问题,这样的思考可以让思路逐渐清晰。然后就开始憧憬,这个平台用例编写的入口应该单独的保存,这样维护用例会相对方便;需要一个转换用例的中心,将编写的用例转换成程序识别的样子,必读json格式的;需要一个组装用例的地方将用例打包好,策略运行;需要一个保存测试结果的功能;保存的结果需要及时通知给关注者。想了尽可能多的问题,不一定要一次想到,基本的思路有了可以简单整理一下:
在这里插入图片描述
有了思路接下来就容易了,根据自己的所学开始垒代码咯。

用例维护中心

用例维护不外乎excle、数据库、csv、yaml等格式保存。只是存储的格式有所差异,我选择的yaml格式。用例需要包括哪些东西呢?可参考选择:用例编号、前置处理、用例名称、接口地址、接口请求方式、参数、依赖用例、预期结果、后置处理等。不外乎这些东西够用了吧,不全没关系,在使用中有必要的再加。当然接口数据大多需要参数化的功能、需要查询数据库取数据、可能还需要自己写函数个性化参数等,在设计时需要考虑进去,预留好口子。采用关键字驱动,需要用到的就按照格式编写即可。

- CaseNo: 1  ------------------------------------------------用例编号
  Extract:   ------------------------------------------------用例变量,用例中需要用到的变量在这里面定义,调用--形如:$变量$
    biz_no:  ------------------------------------------------生命变量名,需要使用用两个$包起来,支持自定义函数、数据库查询、常量等
  Preposition: -----------------------------------------依赖用例编号
    - 1
  ProjectName: 模块名字 ---------------------------------------模块名
  CaseNmae: 功能描述---------------------------------------用例名
  Method: post  -------------------------------------------接口请求方式
  param: --------------------------------------------------参数标识
      method: 接口
      bizContent:
        taskNoList:
        - key: $biz_no$ -------------------------------------使用变量
          value: sql-apv_wf:select * from where a='$biz_no$' --是用变量 并操作数据库查询替换,数据库格式入sql-库名:
          remark: $1$:res["flag"]---------------------------------------------------使用依赖用例结果
        toUser: $user$ ----------------------------------------使用变量
  headers: ---------------------------------------------------header标识
    Cookie: $headers$ ---------------------------------------使用变量
  ExpectedResults: -----------------------------------------断言标识,list格式,暂时支持数据库比较、接口结果比较。list第一个值实际结果,第二值为预期结果(接口比较入:-res['flag'] - S)
    - sql-apv_wf: select user_no from wf_task
    - xiaoming

配置中心

编写测试用例可能需要用到数据库操作、运行用例可能需要选择多个环境等,这种东西最好存在一个文件中,以便维护。

开箱即用

代码

传送门
开箱即用
在线编辑用例
查看测试报告
前后端分离

猜你喜欢

转载自blog.csdn.net/kairui_guxiaobai/article/details/115182853