分享httprunner 结合django实现平台接口自动化方案

说明,可以直接在某个视图集定义自定义接口来验证。

调试1:前端界面直接编写yaml文件.

  • 新增要实现存数据到mysql,同时存文件到testcase下, 如test.yaml
  • 更新yaml数据,同时做到更新 testcase下的文件,如test.yaml
python 复制代码
  @action(methods=['GET'], detail=True, url_path='mkfile')
    def mkfile_case(self,req,pk):
        # student = self.get_object()
        yaml_file = 'key: value\nlist:\n  - item1\n  - item2'
        yaml_name = 'test.yaml'
        yaml_path = os.path.join('testcase', yaml_name)

        with open(yaml_path, 'w') as f:
            f.write(yaml_file)

        return ResponseList(msg="make success")

调试2 :后端实现单用例的执行

python 复制代码
    @action(methods=["get"],detail=True)
    def run_case(self,request,pk):
        # student2 = Student.objects.get(pk=pk)

        # 这个写法同上
        student = self.get_object()

        path =f"testcase/{student.desc}"

        # 2.调用hr4的api,来执行我们的json文件
        # print(path)
        exit_code = main_run([path])

        # 3.返回执行结果
        if exit_code != 0:
            return ResponseError(msg="failed run case")

        # 4.返回执行结果
        return ResponseList(msg="run success")

调试3:后端实现多个用例的执行,并生成报告

后端:

前端:

一个测试计划可以选多个测试用例,然后点击执行,就运行多个测试用例

在测试报告菜单中,可以展示每个测试计划执行后的测试结果。

相关推荐
YCY^v^3 小时前
centos 7 开启80,443端口,怎么弄?
linux·运维·centos
北南京海4 小时前
[Linux]进程地址空间
linux·运维·服务器
yzx9910134 小时前
服务器生成图片
运维·服务器
小阳睡不醒9 小时前
小白成长之路-部署Zabbix7(二)
android·运维
杰克逊的日记9 小时前
GPU运维常见问题处理
linux·运维·gpu
caolib9 小时前
无需云服务器的内网穿透方案 -- cloudflare tunnel
运维·服务器·内网穿透·tunnel·cloudflared
奇舞精选9 小时前
k8s基本概念初探
运维
誰能久伴不乏10 小时前
Linux系统调用概述与实现:深入浅出的解析
linux·运维·服务器
程序员学习随笔10 小时前
Linux进程深度解析(2):fork/exec写时拷贝性能优化与exit资源回收机制(进程创建和销毁)
linux·运维·服务器
-SGlow-10 小时前
MySQL相关概念和易错知识点(2)(表结构的操作、数据类型、约束)
linux·运维·服务器·数据库·mysql