测试平台系列(89) 编写执行测试计划功能.md

2022/6/13 测试平台接口测试FastApiPythonReact

大家好~我是米洛
我正在从0到1打造一个开源的接口测试平台, 也在编写一套与之对应的教程,希望大家多多支持。
欢迎关注我的公众号米洛的测开日记,获取最新文章教程!

# 回顾

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

# 新的征程

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

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

  • [ ] 用例操作日志功能 ⭐⭐⭐⭐

    主要记录用例相关变动,包括新增、更新、删除等记录。

  • [ ] 完善后置条件 ⭐⭐⭐⭐⭐

    后置条件我们还没有做呢,这块是个比较重要的问题。

  • [ ] 重构用例新增/编写页面 ⭐⭐⭐

  • [ ] 打通httprunner ⭐⭐⭐⭐

    这里的打通是可以导入httprunner的yaml数据,导出的话暂定

  • [ ] 支持编写python脚本作为前置条件 ⭐⭐⭐⭐⭐

  • [ ] 完成数据工厂功能 ⭐⭐⭐⭐

  • [ ] 统计页 ⭐⭐⭐⭐

    这块功能还是比较重要的,用例的数据,执行的数据,自动化率等等。

  • [ ] 工作台 ⭐⭐⭐

    工作台做的好的话,可以快速完成很多事情。

  • [ ] 跟yapi打通 ⭐⭐⭐⭐⭐

    作为一个接口自动化测试平台,干啥都不能脱离接口。一般的公司都有用到yapi,如果没有的话,rap2或者swagger文件都需要进行支持。

  • [ ] 用例评价系统 ⭐⭐⭐⭐

    为了提高用例的编写质量,需要这套系统。

  • [ ] oss系统 ⭐⭐⭐⭐

    需要支持主流的阿里云sdk,七牛云sdk,腾讯云sdk。目的是能够支持文件上传类型的case。

  • [ ] 其他通信协议接口测试grpc、dubbo等⭐⭐⭐⭐

    这个也很重要,如果只支持http,相对比较鸡肋。

  • [ ] 用户管理功能 ⭐⭐⭐⭐

    其实比较鸡肋,可以做简单点,可以禁用用户这样的就可以了。因为公司一般都是内网系统,如果离职了人也登录不进来了。

  • [ ] 打通CI

    由于各个公司的发布系统构成都不一样,如果有这方面需求,我们可以提供openapi出去,让他们可以根据app_id或者git地址来执行我们制定的case。

  • [ ] 在线执行测试计划 ⭐⭐⭐⭐⭐

  • [ ] 在线调试用例 ⭐⭐⭐⭐⭐

  • # [ ] 用户个人资料设置 ⭐⭐

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

# 执行测试计划

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

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

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

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

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

# 修改前端

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

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

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

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

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

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

# 看看效果

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

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

# 修改报告页面

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

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

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

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

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