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


    大家好~我是米洛

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

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

    回顾

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

    新的征程

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

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

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

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

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

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

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

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

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

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

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

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

    • 由于各个公司的发布系统构成都不一样,如果有这方面需求,我们可以提供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))
    

    在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功能。

  • 相关阅读:
    JavaEE基础(十九)/异常和File
    JavaEE基础(十八)/集合
    JavaEE基础(十七)/集合
    JavaEE基础(十六)/集合
    快排、插入、冒泡排序
    函数技巧总结
    读书笔记-你不知道的JS中-函数生成器
    读书笔记-你不知道的JS中-promise(3)
    异步API
    读书笔记-你不知道的JS中-promise(2)
  • 原文地址:https://www.cnblogs.com/we8fans/p/15842687.html
Copyright © 2020-2023  润新知