HttpRunner 开源一个自己写的接测平台,也是基于 HttpRunner 制作

匿名 · 2018年01月31日 · 3050 次阅读

写在前面的话

这是我第一个前端项目,第一个 web 项目,其实早就想做一个接测平台了,但是一个人从头开始太累了,时间也不富裕,正好看到 HttpRunner 这个非常优秀的框架,忍不住手痒,就开始写了。

项目前端用的 react 技术,后端是 django,第一次自己写项目,代码丑到自己都不忍直视,但还是发出来了,希望各位大佬轻喷。

感觉 py 确实很适合快速开发,包括 react,其实也就看了两三天语法就直接开干了,在过程里十分感谢开发的各位同事一直不吝赐教,最终才把这个弄了出来。

项目目前还有很多已知问题,不过要等段时间才能再迭代了,这段时间不是很有空了。

话不多说,放代码吧!

项目介绍

本项目后端用 Django 编写,使用 HttpRunner 作为执行框架,基本继承了 HttpRunner 的功能并加以 web 化。

支持自由扩展方法;

支持从上个接口的返回值提取数据保存以供其他接口使用;

支持自定义参数;

等等

项目地址:

前端(https://github.com/icesword0760/testcenter-web
后端(https://github.com/icesword0760/testcenter

使用说明

1.本项目需要 py 环境支持,MySql 环境支持

2.使用前请先 clone 到本地,(配置好 sql 环境后) 执行 Django 的生成数据库命令,数据库配置详见源码

页面展示

首页:

首页

模块界面:
模块
生成报告成功:
报告成功
Case 界面:
case1
case2
报告页面:
报告

一些已知问题

前端表单验证太少;

前端部分循化需要改为 foreach;

没有对后端接口返回错误(500)的情况做处理;

跳转相同 url 没有对路由做好处理;

后端缺少错误码;

等等

共收到 10 条回复 时间 点赞
匿名 #1 · 2018年01月31日

下一步准备完善多用户系统,增加单个 case 运行查看结果,增加邮件机制等等,估计要等段时间

react,我的最爱。么么踹~~😘

先学习一下

匿名 关闭了讨论 02月01日 14:43
匿名 重新开启了讨论 02月18日 11:36

你好,clone 下来部署的时候python manage.py makemigrations的时候提示如下报错,请问是缺少了什么必要参数,没找到这个参数

D:\testcenter>python manage.py makemigrations
Traceback (most recent call last):
  File "manage.py", line 23, in <module>
    execute_from_command_line(sys.argv)
  File "D:\application\python35\lib\site-packages\django-2.1-py3.5.egg\django\core\management\__init__.py", line 381, in execute_from_command_line
    utility.execute()
  File "D:\application\python35\lib\site-packages\django-2.1-py3.5.egg\django\core\management\__init__.py", line 357, in execute
    django.setup()
  File "D:\application\python35\lib\site-packages\django-2.1-py3.5.egg\django\__init__.py", line 24, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "D:\application\python35\lib\site-packages\django-2.1-py3.5.egg\django\apps\registry.py", line 112, in populate
    app_config.import_models()
  File "D:\application\python35\lib\site-packages\django-2.1-py3.5.egg\django\apps\config.py", line 198, in import_models
    self.models_module = import_module(models_module_name)
  File "D:\application\python35\lib\importlib\__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 986, in _gcd_import
  File "<frozen importlib._bootstrap>", line 969, in _find_and_load
  File "<frozen importlib._bootstrap>", line 958, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 673, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 673, in exec_module
  File "<frozen importlib._bootstrap>", line 222, in _call_with_frames_removed
  File "D:\testcenter\apitest\models.py", line 13, in <module>
    class TestSuite(models.Model):
  File "D:\testcenter\apitest\models.py", line 18, in TestSuite
    project_id = models.ForeignKey(TestProject, blank=True, null=True)
TypeError: __init__() missing 1 required positional argument: 'on_delete'


匿名 #7 · 2018年03月08日
ASFKJHKJ 回复

感觉不应该是缺少什么库的原因。。更像是代码错误,但我这边确定没有这样的问题,我看你的环境似乎是 py3?会不会是语法有不兼容的地方?
我这边的环境是 py 2.7 Django 1.10.1
或者可以参考这篇文章:https://www.cnblogs.com/phyger/p/8035253.html
在 models 里,将外键值的后面加上 on_delete=models.CASCADE

匿名 #8 · 2018年03月08日
ASFKJHKJ 回复

如果可以最好还是和我的开发环境保持一致比较好

9楼 已删除
匿名 #10 · 2018年03月09日

你好 mysql 版本是 Ver 14.14 Distrib 5.7.20;直接使用的 django 的 orm 操作数据库的;QQ 已加

仅楼主可见
匿名 #12 · 2018年03月13日
lzr 回复

加 Q Q 群吧 2 9 23 495 27

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册