先看下我们的项目目录:

不要吐槽我取的名字...

KEYWORDS: 存放各种关键字
- Business_Keys: 按照产品分类存放需要测试的接口以供后面 test case 和创建流程类关键字来调用;
其中单个接口的关键字放在 api 文件夹下(接口参数完全可以根据用例自定义传入);
流程类的接口关键字放在 combo_api 下(部分是多个接口的组合,部分是某个参数较多的接口仅对外暴露少量的请求参数方便在 test case 中调用走个流程的,例如处理一个用户单子封成只需要传入用户 id 就好,其他参数都有默认值)
- NoBusiness_Keys: 和接口无关的关键字,主要调用到 lib 文件夹下自定义方法
各种断言关键字
数据转换关键字
需要查询数据库或者 redis 的关键字(例如:随机获取一个在线状态下的用户)
其他和业务无关的关键字(例如:获取一个随机的手机号码,获取当前日期,时间,生日等)

RESOURCE:存放资源文件

File: 存放图片等文件,供图片上传这些接口使用
Properties: 叫配置好像有点不合适…其实就是放了被测接口公共参数的默认值,每次发送请求时候会将公共参数拼接起来
Schema: 接口返回值的基本结果对比开始我们自己写了方法,后面直接用了 jsonschema(http://json-schema.org/),这边就是存放模版的位置
Sql:給某些 test case 用来创建数据的 sql 脚本(数据好插入好删除,轻松不留痕)

RunTestSuite.bat: 为什么是 bat 呢。。因为我们放 windows 上跑的,这个主要是起测试脚本,然后调用一个 python 脚本生成一个统计的简易报告,robot framework 有高大上的报告,但是排错感觉并不方便,因此自己做了一个简易报告直接插入到邮件里面,主要就是返回了请求内容和返回值内容以及希望结果,一目了然有木有~(有点长图截不全)

结构大概就是这样~

如何添加一个用例

我们的小规则:

  1. 对接口的参数尽量不要写死,能随机尽量随机(随机,或者随机从数据库取),我固执的觉得更容易发现问题哈
  2. 接口请求的地方会看到一个用户的帐号密码参数,可能大家觉得不理解,大部分接口如果需要用户 id 都是通过 token 来传(以前我们也这么干!),在实际写用例过程中发现,找 token 太麻烦,懒......但是帐号密码我记得很清楚(因为测试环境密码都一样的哈),因此我将接口下层调用的一个 postapi 的关键字优化了下(见下图),拿到帐号密码后去请求这个用户的 token,然后在拼接其他参数和公共参数,发起接口请求,这样妈妈就再也不用烦找 token 的事情了。。。缺点:如果登录接口挂了,其他接口都不能跑了,但是登录接口都挂了开发不是应该赶紧的修吗,不然都没法做功能测试了!

怎么跑?

怎么写?

个人觉得这样子组织的优点是对返回结果的校验比较全面,添加用例比较快(在 combo api 中的关键字可以大幅度加快我们用例的添加速度),缺点是...个人觉得层次是不是多了点熟悉需要点时间,另外校验的关键字也封的比较重(原本需要好几步写出来的都给封成一步做完,这样就不如一步一步做起来好理解~)

好像写的也不是很清楚~大家随便看看吧也不知道能不能帮助到大家~

求工作~有老板收留吗...


↙↙↙阅读原文可查看相关链接,并与作者交流