原文:
https://sutune.me/2018/08/05/httprunner/
https://www.cnblogs.com/suitcases/p/10181049.html
HttpRunner
简介
HttpRunner 是一款面向 HTTP(S) 协议的通用测试框架,只需编写维护一份 YAML/JSON
脚本,即可实现自动化测试、性能测试、线上监控、持续集成等多种测试需求。
HttpRunnerManager
简介
HttpRunnerManager是基于HttpRunner
的接口自动化测试平台,该工具是对 HttpRunner
的包装和Web图形化, 另外还增加了一些新概念(项目/模块)用来组织用例。
如果对yaml语法格式不熟悉,以及对于httprunner命令不熟悉的可以使用该平台执行接口自动化测试。
项目地址:https://github.com/HttpRunner/HttpRunnerManager
核心特性
- 项目管理:新增项目、列表展示及相关操作,支持用例批量上传(标准化的HttpRunner json和yaml用例脚本)
- 模块管理:为项目新增模块,用例和配置都归属于module,module和project支持同步和异步方式
- 用例管理:分为添加config与test子功能,config定义全部变量和request等相关信息 request可以为公共参数和请求头,也可定义全部变量
- 场景管理:可以动态加载可引用的用例,跨项目、跨模块,依赖用例列表支持拖拽排序和删除
- 运行方式:可单个test,单个module,单个project,也可选择多个批量运行,支持自定义测试计划,运行时可以灵活选择配置和环境,
- 分布执行:单个用例和批量执行结果会直接在前端展示,模块和项目执行可选择为同步或者异步方式,
- 环境管理:可添加运行环境,运行用例时可以一键切换环境
- 报告查看:所有异步执行的用例均可在线查看报告,可自主命名,为空默认时间戳保存,
- 定时任务:可设置定时任务,遵循
crontab
表达式,可在线开启、关闭,完毕后支持邮件通知 - 持续集成:jenkins对接,开发中。。。
环境安装
1、安装docker、mysql、rabbitmq并启动
docker search mysql
docker pull mysql:5.7
docker images |grep mysql
docker run -p 3306:3306 --name bj_qa_mysql -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
docker ps
sudo docker exec -it bj_qa_mysql bash
mysql -h 127.0.0.1 -u root -p 密码123456
CREATE DATABASE HttpRunner DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
docker search rabbitMq
docker pull rabbitmq:3.7-management
docker run -d --name rabbitmq -e RABBITMQ_DEFAULT_USER=user -e RABBITMQ_DEFAULT_PASS=password -p 15672:15672 -p 5672:5672 rabbitmq:3.7-management
cd /var/lib/docker
sudo docker exec -it rabbitmq bash
rabbitmqctl add_user admin 123456
rabbitmqctl set_permissions -p / admin '.*' '.*' '.*'
2、安装git,拉取代码
git clone https://github.com/HttpRunner/HttpRunnerManager.git
3、修改配置
修改:HttpRunnerManager/HttpRunnerManager/settings.py里DATABASES字典和邮件发送账号相关配置
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'HttpRunner', # 新建数据库名
'USER': 'root', # 数据库登录名
'PASSWORD': 'lcc123456', # 数据库登录密码
'HOST': '127.0.0.1', # 数据库所在服务器ip地址
'PORT': '3306', # 监听端口 默认3306即可
}
}
EMAIL_SEND_USERNAME = 'username@163.com' # 定时任务报告发送邮箱,支持163,qq,sina,企业qq邮箱等,注意需要开通smtp服务
EMAIL_SEND_PASSWORD = 'password' # 邮箱密码
修改:HttpRunnerManager/HttpRunnerManager/settings.py里worker相关配置
djcelery.setup_loader()
CELERY_ENABLE_UTC = True
CELERY_TIMEZONE = 'Asia/Shanghai'
BROKER_URL = 'amqp://guest:guest@127.0.0.1:5672//' # 127.0.0.1即为rabbitmq-server所在服务器ip地址
CELERYBEAT_SCHEDULER = 'djcelery.schedulers.DatabaseScheduler'
CELERY_RESULT_BACKEND = 'djcelery.backends.database:DatabaseBackend'
CELERY_ACCEPT_CONTENT = ['application/json']
CELERY_TASK_SERIALIZER = 'json'
CELERY_RESULT_SERIALIZER = 'json'
CELERY_TASK_RESULT_EXPIRES = 7200 # celery任务执行结果的超时时间,
CELERYD_CONCURRENCY = 10 # celery worker的并发数 也是命令行-c指定的数目 根据服务器配置实际更改 默认10
CELERYD_MAX_TASKS_PER_CHILD = 100 # 每个worker执行了多少任务就会死掉,我建议数量可以大一些,默认100
4、执行pip install -r requirements.txt 安装工程所依赖的库文件
5、切换到HttpRunnerManager目录(cd /home/HttpRunnerManager) 生成数据库迁移脚本,并生成表结构
python manage.py makemigrations ApiManager #生成数据迁移脚本
python manage.py migrate #应用到db生成数据表
6、创建超级用户,用户后台管理数据库,并按提示输入相应用户名,密码,邮箱。 如不需用,可跳过此步骤
python manage.py createsuperuser
7、启动服务
python manage.py runserver
python manage.py runserver & &作用:回到linux控制台服务不会停掉
8、访问并使用
浏览器输入:http://192.168.3.143:8000/api/register/ 注册用户,开始尽情享用平台
浏览器输入:http://192.168.3.143:8000/admin/ 输入步骤6设置的用户名、密码,登录后台运维管理系统,可后台管理数据
可选择异步生成测试报告,异步之前需先启动支持异步的相关服务:
1、RebbitMQ信息
浏览器输入:http://192.168.3.143:15672 默认的登陆账号为:guest,密码为:guest
2、进入到HttpRunnerManager目录,启动worker
python manage.py celery -A HttpRunnerManager worker --loglevel=info
3、启动任务监控后台
celery flower