大家好~我是米洛

我正在从0到1打造一个开源的接口测试平台, 也在编写一套与之对应的教程,希望大家多多支持。

欢迎关注我的公众号米洛的测开日记,获取最新文章教程!

回顾

上一节我们把邮件那块的通知做好了,算是到了分水岭。目前来看的话,我们的任务从新增构建通知,已经有了一个相对完善的结局。

新的征程

考虑到明年可能要当奶爸了,接下来也没很多空闲时间来卷了。

所以在此之前,打算先立些功能项,按照喜好在这几个月内慢慢实现

  • 用例操作日志功能 ⭐⭐⭐⭐
    主要记录用例相关变动,包括新增、更新、删除等记录。
  • 完善后置条件 ⭐⭐⭐⭐⭐
    后置条件我们还没有做呢,这块是个比较重要的问题。
  • 重构用例新增/编写页面 ⭐⭐⭐
  • 打通httprunner ⭐⭐⭐⭐
    这里的打通是可以导入httprunner的yaml数据,导出的话暂定
  • 支持编写python脚本作为前置条件 ⭐⭐⭐⭐⭐
  • 完成数据工厂功能 ⭐⭐⭐⭐
  • 统计页 ⭐⭐⭐⭐
    这块功能还是比较重要的,用例的数据,执行的数据,自动化率等等。
  • 工作台 ⭐⭐⭐
    工作台做的好的话,可以快速完成很多事情。
  • 跟yapi打通 ⭐⭐⭐⭐⭐
    作为一个接口自动化测试平台,干啥都不能脱离接口。一般的公司都有用到yapi,如果没有的话,rap2或者swagger文件都需要进行支持。
  • 用例评价系统 ⭐⭐⭐⭐
    为了提高用例的编写质量,需要这套系统。
  • oss系统 ⭐⭐⭐⭐
    需要支持主流的阿里云sdk,七牛云sdk,腾讯云sdk。目的是能够支持文件上传类型的case。
  • 其他通信协议接口测试grpc、dubbo等⭐⭐⭐⭐
    这个也很重要,如果只支持http,相对比较鸡肋。
  • 用户管理功能 ⭐⭐⭐⭐
    其实比较鸡肋,可以做简单点,可以禁用用户这样的就可以了。因为公司一般都是内网系统,如果离职了人也登录不进来了。
  • 打通CI
    由于各个公司的发布系统构成都不一样,如果有这方面需求,我们可以提供openapi出去,让他们可以根据app_id或者git地址来执行我们制定的case。
  • 在线执行测试计划 ⭐⭐⭐⭐⭐
  • 在线调试用例 ⭐⭐⭐⭐⭐
  • 用户个人资料设置 ⭐⭐

以上还只是部分内容,要做完善还是需要花费一些时间。但好在还有很长时间,我们慢慢完善吧。

执行测试计划

先看看原先的执行测试计划功能:

测试平台系列(89) 编写执行测试计划功能 - 图1

可以看到核心方法已经有了,我们只需要为之编写接口即可。

  1. @router.get("/plan/execute")
  2. async def run_test_plan(id: int, user_info=Depends(Permission(Config.MEMBER))):
  3. try:
  4. await Executor.run_test_plan(id, user_info['id'])
  5. return PityResponse.success()
  6. except Exception as e:
  7. return PityResponse.failed(str(e))

在app/routers/testcase/testplan.py加上如上方法,注意这里权限我们稍作了一些替换:

GUEST换成了MEMBER,语义上更为贴切

修改前端

测试平台系列(89) 编写执行测试计划功能 - 图2

我们在这中间要加一个执行按钮,并且执行完毕后弹出对话框问对方需不需要跳转到报告链接

  • src/pages/ApiTest/TestPlan.jsx新增onExecute方法

测试平台系列(89) 编写执行测试计划功能 - 图3

测试报告执行完成后,是否跳转到报告页面。

  • Table操作字段新增运行按钮

测试平台系列(89) 编写执行测试计划功能 - 图4

  • src/models/testplan.js新增executeTestPlan方法

测试平台系列(89) 编写执行测试计划功能 - 图5

  • src/services/testplan.js新增executeTestPlan方法

测试平台系列(89) 编写执行测试计划功能 - 图6

看看效果

执行下,然后等待后跳转到报告链接

测试平台系列(89) 编写执行测试计划功能 - 图7

可以看到邮件里的执行人也进行了修改

测试平台系列(89) 编写执行测试计划功能 - 图8

修改报告页面

报告页面目前是没有测试计划标识的,我们需要给它来个提示。

测试平台系列(89) 编写执行测试计划功能 - 图9

页面有点不够放,我们修改下Table组件

测试平台系列(89) 编写执行测试计划功能 - 图10

由于本身有mode属性,所以我们根据这个来判断类型就好,其实这个有个缺点,虽然是测试计划,但是没显示测试计划的名称

那这个问题就留到下一节解决了~

下一节我们编写阿里云sdk和七牛云sdk,完成oss crud功能。