由于年后工作地方更换,V2.0 版本这才迟迟与大家见面,新版本主要增加了定时任务,异步执行,报告持久化、日志保存以及数据类型支持,QQ 群欢迎提问:628448476。https://github.com/HttpRunner/HttpRunnerManager
安装 mysql 数据库服务端 (推荐 5.7+),并设置为 utf-8 编码,创建相应 HttpRunner 数据库,设置好相应用户名、密码,启动 mysql
修改:HttpRunnerManager/HttpRunnerManager/settings.py 里 DATABASES 字典相关配置:NAME(默认 HttpRunner)
USER(用户名,建议 root 用户,需要有增删改查权限!)、PASSWORD(对应登录用户名密码)、HOST(数据库所在服务器 ip 地址)
PORT(数据库服务监听端口,默认 3306)
安装 rabbitmq 消息中间件,service rabbitmq-server start 启动服务,访问:http://host:15672/#/ host 即为你部署 rabbitmq 的服务器 ip 地址
username:guest、Password:guest, 成功登陆即可
修改:HttpRunnerManager/HttpRunnerManager/settings.py 里 BROKER_URL = 'amqp://guest:guest@127.0.0.1:5672//'将 127.0.0.1 替换为步骤 3 的 host
命令行窗口执行 pip install -r requirements.txt 安装工程所依赖的库文件
命令行窗口切换到 HttpRunnerManager 目录,执行 python manage.py makemigrations ApiManager 生成数据库迁移脚本
执行 python manage.py migrate 对应 HttpRunner 数据库生成相应表结构
执行 python manage.py createsuperuser 根据提示输入用户名,邮箱,密码
执行 python manage.py runserver
shell 或 dos 窗口切换到 HttpRunnerManager 目录执行:python manage.py celery -A HttpRunnerManager worker --loglevel=info 启动 worker
shell 或 dos 窗口切换到 HttpRunnerManager 目录执行:python manage.py celery beat --loglevel=info 开启定时任务配置
CLI 窗口执行:celery flower 访问:http://localhost:5555/dashboard 即可查看任务列表和状态
浏览器输入:http://127.0.0.1:8000/api/register/ 注册用户,开始享用
浏览器输入http://127.0.0.1:8000/admin/ 输入步骤 6 设置的用户名、密码,登录后台运维管理系统
HttpRunner 数据驱动,hook 功能还未来得及开发,3.0 版本会同步支持,邮件提醒,报告下载,运行方式选择以及调用 java 进行加签加密后面会全部支持,谢谢大家支持
贴个赞赏码哇,必须得赞赏一个。
赞👍
已部署成功,开始试用
使用新增模块功能是,填写好信息点击新增模块,但是在模块列表中并没有提交上去的模块信息。pycharm 中似乎有没有看到 post 请求,请问是哪里的操作问题吗
厉害~做出产品来了。
厉害了,终于出来了
666 明天就训练开发试用
@yinquanwang 能否制作个 docker 部署
下一步可以考虑延伸扩展支持其他协议,最后可以叫 Xrunner 哈
很赞,作为一枚测试,先提个 bug 为敬
如果有删除再添加的动作,这个 id 就会重复,然后提交参数就会。。。
支持开源!
这个会比较难,现在底层都完全依赖于 Python-requests
库,近期也计划整合新出的 requests_html
库,所以只能支持 HTTP(S) 协议。
刚刚试了下,还需要这两个依赖包
pip install colorama
pip install colorlog
①、将项目拉 clone 至本地,并按照 requirements.txt 安装必要的依赖库;
②、安装 mysql 服务端,推荐使用 mysql5.7+,安装方法参考下面链接即可https://jingyan.baidu.com/article/cd4c2979033a17756f6e6047.html;
安装过程中可能会弹出提示缺少 vs2015 等必要组件的窗口,此时,点击底下 “execute” 即可,时间较长,耐心等待;
安装完成后,只需命令行新建 QCMANAGER 数据库,后面会用到;
进入数据库命令行状态:mysql -u root -p xxxxx(密码);
新建数据库:create database qcmanager;
③、更改 HttpRunnerManager/settings 里 DATABASES 相关配置:USER、PASSWORD、HOST、PORT;基本就是改下密码就行了;
④、命令行运行 django 命令:makemigrations(生成数据库迁移脚本)、migrate(应用数据库脚本生成相应数据库表结构);
这里可能要进入到项目的目录下,因为需要查找 manage.py 文件。然后命令行运行 python manage.py makemigrations,然后再运行 python manage.py migrate;
该项目是用 python3 来编写的,所以运行项目最好安装 python3.6,不然会提示很多语法和编码的错误;
命令行运行 runserver 启动服务 (开发者模式):python manage.py runserver 8000,然后打开地址http://localhost:8000/api/register/;
应该够详细了吧
好像用例需要一个一个往里面添加,后面是否会支持现成 yml 格式用例批量导入呢?
有没有演示地址?
已部署,一直关注着。学习学习。
厉害啊!加油加油。
昨天拉的代码,按照说明的部署下来也没有什么问题。但是,为什么注册后一直登录不进去,也没有任何提示信息呢??日志里面也没有任何报错信息。。。
嗯,现在真遇到一个问题。模块列表中有模块,但是在新增配置和用例到时候,module 无法加载出模块列表,无法选择模块。这样保存到时候就会提示 “请先选择模块”。。
这个也是我的错,应该要先点击一下 project,然后才会加载 module 列表。我看见 project 已经选上了,以为会自动加载 molue 列表。。。
新增模块怎么一直开小差呀 0.0 想这些错误 我好在哪里可以看 然后分析是为啥
安装 mysqlclient 依赖时报错了,有没有知道怎么改的亲呀
➜ HttpRunnerManager git:(master) ✗ sudo pip install mysqlclient==1.3.12
Password:
The directory '/Users/macpro/Library/Caches/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
The directory '/Users/macpro/Library/Caches/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
Collecting mysqlclient==1.3.12
Downloading https://mirrors.aliyun.com/pypi/packages/6f/86/bad31f1c1bb0cc99e88ca2adb7cb5c71f7a6540c1bb001480513de76a931/mysqlclient-1.3.12.tar.gz (89kB)
100% |████████████████████████████████| 92kB 4.2MB/s
Complete output from command python setup.py egg_info:
/bin/sh: mysql_config: command not found
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/private/tmp/pip-build-yqjpse8f/mysqlclient/setup.py", line 17, in <module>
metadata, options = get_config()
File "/private/tmp/pip-build-yqjpse8f/mysqlclient/setup_posix.py", line 44, in get_config
libs = mysql_config("libs_r")
File "/private/tmp/pip-build-yqjpse8f/mysqlclient/setup_posix.py", line 26, in mysql_config
raise EnvironmentError("%s not found" % (mysql_config.path,))
OSError: mysql_config not found
[06/Mar/2018 15:59:39] "POST /api/add_module/ HTTP/1.1" 500 21088
找到解决办法了
ln -s /usr/local/mysql/bin/mysql_config /usr/local/bin/mysql_config
参考了这个文章:https://www.cnblogs.com/fengtengfei/p/5642173.html
已部署,谢谢楼主,加油
试了好多次 发现都是这样 0.0
这个接口文件是在哪个文件里呀 我去看看
还有就是我们设置的登录时间是多少呀 有时候莫名奇妙就要重新登录了
session 默认有效期为 10min,在 setting.py 里
添加模块视图 views.py:
建议你开启前端调试工具看下,
请问,新增模块,日期有什么格式吗?
TypeError: expected string or bytes-like object
[06/Mar/2018 17:56:53] "POST /api/add_module/ HTTP/1.1" 500 20521
建议组织个群,大家试用时学习交流下
嗯嗯,我新建一条用例,点运行,会报错(见截图),不知道是不是 python 版本问题
Traceback (most recent call last):
AttributeError: 'int' object has no attribute 'split'
ERROR Internal Server Error: /api/run_batch_test/
Traceback (most recent call last):
TypeError: run_batch_test() takes 1 positional argument but 2 were given
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
AttributeError: 'int' object has no attribute 'split'
[06/Mar/2018 21:53:26] "POST /api/run_batch_test/ HTTP/1.1" 500 134622
另外我用的驱动是 pymysql,mysql 是用 docker 起的,应该跟这个关系不大吧。。
和 mysql 没关系,看起来是前端提交了 int 类型的表单数据,后台用的切割字符串,所以报错,我本地没有问题,明天看了回复你
628448476,我建了个 qq 群,大家有问题在里面交流吧,一起完善
支持下,昨天开始安装,还没有安装成功。。
@yinquanwang 你好,支持环境选择配置嘛?比如,同一个用例,分别选择开发环境,或者线上环境来运行?
啊啊啊我终于找到这个问题的原因了,case_name 为数字时就会出现这个问题,而且为数字时修改用例还会提示 “用例或配置已在该模块中存在,请重新命名”;
还有一个小问题,在 test report 页面,detail 那里的点击按钮,当我点击 traceback 按钮后,再点 log 那个,log 按钮经常为鼠标指针,变成小手反应迟钝;
还有一个建议,用例添加修改页面能不能不要左右滑动的,当我用鼠标选择某一行内容时,随便一拉就滑到别的页面了
@yinquanwang 你好,目前发现一个 bug【Comparator】每次选择的是【string_equal】但是加载出来就会变成【equal】,
这个已经修复,请更新
还有就是,目前发现在做结果断言的时候,没法对接口比较深的返回值进行解析,这是我使用方法有误么?
可以的呀,参考 httprunner 说明,支持 json 任意层次的,还有正则提取也可以
为啥我的登陆不成功??也没有报错?还有想问下你的数据库 <:makemigrations(生成数据库迁移脚本)、migrate(应用数据库脚本生成相应数据库表结构)>具体要怎么做,是不我的这个库没有创建成功
谢谢,已经可以了
断言应该如何添加?
支持,这是一个平台最基本的东西吧
大佬用的 Python 几哦
跟我想写的好像啊,我目前前端就写了 3 个配置的增删改查
为什么我的界面长这么丑
你用了 django 的 admin 方便呀,前端页面很难受,自己写的说不定更丑
这个是后台管理界面,django 自带的,系统界面不是这样啊
感谢楼主的分享。
弄了一天终于部署到自己服务器上了,django 部署的坑是真不少。。
看了下密码居然是明文的,,emmm 我觉得可以考虑将密码进行一种加密算法后存到数据库
然后用户登录的时候用同样的加密算法加密后和数据库的数据进行校验,这样安全性会不会好一点?
有 java 版的吗
楼主好,这边运行 python manage.py makemigrations 这条命令报错,报错内容为 “django.db.utils.OperationalError: (1049, "Unknown database 'httprunner'")”,麻烦看下是什么情况哈
怎么校验 response 中的 body 里面的 json 串的某个 key 的值?
github 上有类似的基于 flask 的接口自动化平台:
一些设计思想可以参考,比如定时任务
https://github.com/liwanlei/FXTest
没明白配置列表和 extract 那边怎么用?
可以看下 httprunner 脚本编写教程,抽取的可以给后面的 test 用也可以作为断言,json 抽取 :content.key 形式
二维码扫不出来
谢谢作者的无私分享