https://github.com/HttpRunner/HttpRunnerManager

HttpRunnerManager

Design Philosophy

基于HttpRunner的接口自动化测试平台: HttpRunnerdjcelery and Django_. HttpRunner手册: http://cn.httprunner.org/

Key Features

  • 项目管理:新增项目、列表展示及相关操作,支持用例批量上传(标准化的HttpRunner json和yaml用例脚本)
  • 模块管理:为项目新增模块,用例和配置都归属于module,module和project支持同步和异步方式
  • 用例管理:分为添加config与test子功能,config定义全部变量和request等相关信息 request可以为公共参数和请求头,也可定义全部变量
  • 场景管理:可以动态加载可引用的用例,跨项目、跨模快,依赖用例列表支持拖拽排序和删除
  • 运行方式:可单个test,单个module,单个project,也可选择多个批量运行,支持自定义测试计划,运行时可以灵活选择配置和环境,
  • 分布执行:单个用例和批量执行结果会直接在前端展示,模块和项目执行可选择为同步或者异步方式,
  • 环境管理:可添加运行环境,运行用例时可以一键切换环境
  • 报告查看:所有异步执行的用例均可在线查看报告,可自主命名,为空默认时间戳保存,
  • 定时任务:可设置定时任务,遵循crontab表达式,可在线开启、关闭,完毕后支持邮件通知
  • 持续集成:jenkins对接,开发中。。。

对HttpRunnerManager的学习做个记录....环境部署均可在github中查看。记录部署中存在改动的地方。

本地开发环境部署

拉代码下载

ubuntu@MITTE-SERVER:/opt$ git clone https://github.com/HttpRunner/HttpRunnerManager.git
Cloning into 'HttpRunnerManager'...
remote: Enumerating objects: 1, done.
remote: Counting objects: 100% (1/1), done.
remote: Total 3313 (delta 0), reused 0 (delta 0), pack-reused 3312
Receiving objects: 100% (3313/3313), 36.25 MiB | 971.00 KiB/s, done.
Resolving deltas: 100% (2154/2154), done.
Checking connectivity... done.

  • 安装mysql数据库服务端(推荐5.7+),并设置为utf-8编码,创建相应HttpRunner数据库,设置好相应用户名、密码,启动mysql

在MySQL安装目录的 bin 目录下执行命令:
mysqld --initialize --console
执行完成后,会打印 root 用户的初始默认密码,比如:

2018-06-15T08:35:07.750836Z 0 [System] [MY-013169] [Server] G:\Tools\mysql\mysql-8.0.11-winx64\mysql-8.0.11-winx64\bin\mysqld.exe (mysqld 8.0.11) initializing of server in progress as process 9716
2018-06-15T08:35:22.138130Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: Lf#HW/=jZ1g:
2018-06-15T08:35:30.402889Z 0 [System] [MY-013170] [Server] G:\Tools\mysql\mysql-8.0.11-winx64\mysql-8.0.11-winx64\bin\mysqld.exe (mysqld 8.0.11) initializing of server has completed

注意!执行输出结果里面有一段: [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: rI5rvf5x5G,E 其中root@localhost:后面的“rI5rvf5x5G,E”就是初始密码(不含首位空格)。在没有更改密码前,需要记住这个密码,后续登录需要用到。
要是你手贱,关快了,或者没记住,那也没事,删掉初始化的 datadir 目录,再执行一遍初始化命令,又会重新生成的。当然,也可以使用安全工具,强制改密码,用什么方法,自己随意。

在MySQL安装目录的 bin 目录下执行命令:
mysqld --install [服务名]
后面的服务名可以不写,默认的名字为 mysql。当然,如果你的电脑上需要安装多个MySQL服务,就可以用不同的名字区分了,比如 mysql5 和 mysql8。
安装完成之后,就可以通过命令net start mysql启动MySQL的服务了。通过命令net stop mysql停止服务。通过命令sc delete MySQL/mysqld -remove卸载 MySQL 服务

在MySQL安装目录的 bin 目录下执行命令:
mysql -u root -p
这时候会提示输入密码,记住了上面第3.1步安装时的密码,填入即可登录成功,进入MySQL命令模式

在MySQL中执行命令:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';
修改密码,注意命令尾的;一定要有,这是mysql的语法

到此,安装部署就完成了。官方说测试速度MySQL8比5快两倍

mysql> select user,host,authentication_string from mysql.user;
+------------------+-----------+-------------------------------------------+
| user | host | authentication_string |
+------------------+-----------+-------------------------------------------+
| mysql.infoschema | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| mysql.session | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| mysql.sys | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| root | localhost | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
+------------------+-----------+-------------------------------------------+
4 rows in set (0.00 sec)

管理员root的host是localhost,代表仅限localhost登录访问。如果要允许开放其他ip登录,则需要添加新的host。如果要允许所有ip访问,可以直接修改成“%”

创建用户:

CREATE USER 'lamw'@'%' IDENTIFIED WITH mysql_native_password BY 'xxh123!@#';

#(需要注意:mysql8.0加密方式修改了)
#检查用户

select user, host, plugin, authentication_string from user\G;

授权远程数据库

#授权所有权限
GRANT ALL PRIVILEGES ON *.* TO 'xxh'@'%';
#授权基本的查询修改权限,按需求设置
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER ON *.* TO 'xxh'@'%';

查看用户权限
show grants for 'xxh'@'%';

例如:新建用户

CREATE USER 'lamw'@'%' IDENTIFIED WITH mysql_native_password BY '123456';

登录的时候 ip地址用localhost 可以用root登录,填写本机ip无法登录,不知是啥问题导致
密码123456

  • 修改:HttpRunnerManager/HttpRunnerManager/settings.py里DATABASES字典和邮件发送账号相关配置

    1.      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' # 邮箱密码
  • 安装rabbitmq消息中间件,启动服务,访问:http://host:15672/#/ host即为你部署rabbitmq的服务器ip地址 username:guest、Password:guest, 成功登陆即可
service rabbitmq-server start 小编这边执行这句的时候报错了,其实安装好rabbitmq直接可以登录了

安装rabbitMQ之前,需要先安装Erlang 
http://www.erlang.org/downloads

1.安装Erlang
所以在安装rabbitMQ之前,需要先安装Erlang 。
小编使用的是otp_win64_20.3 ,需要其他版本或者32位系统的,可以去官网下载。
全部点击“下一步”就行
有的选择其他的安装方式,可能需要添加一下系统环境变量(正常安装的也要检查下):

(1):下载erlang,原因在于RabbitMQ服务端代码是使用并发式语言erlang编写的,下载地址:http://www.erlang.org/downloads,双击.exe文件进行安装就好,安装完成之后创建一个名为ERLANG_HOME的环境变量,其值指向erlang的安装目录,同时将%ERLANG_HOME%\bin加入到Path中,最后打开命令行,输入erl,如果出现erlang的版本信息就表示erlang语言环境安装成功;
2.安装RabbitMQ
下载运行rabbitmq-server-3.7.6 ,需要其他版本或者32位系统的,可以去官网下载。
依旧可以不改变默认进行安装。
需要注意:默认安装的RabbitMQ 监听端口是5672

3.配置
激活 RabbitMQ's Management Plugin
使用RabbitMQ 管理插件,可以更好的可视化方式查看Rabbit MQ 服务器实例的状态。
打开命令窗口:
输入命令:
"G:\Tools\rabbitMQ\RabbitMQ Server\rabbitmq_server-3.7.6\sbin\rabbitmq-plugins.bat" enable rabbitmq_management
执行这个命令的时候一直报错,关闭cmder重新打开就可以了

账号密码均是guest

  • 修改: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 #小编并未对这段代码做修改
  • 在Python36\Scripts目录下命令行窗口执行pip install -r requirements.txt 安装工程所依赖的库文件

    (需要在G:\Tools\软件安装包\Httprunner\HttpRunnerManager-master\HttpRunnerManager-master目录下 复制requirements.txt 到G:\Tools\Python\Python36\Scripts目录下,PS:这里需要注意的是 小编一开始用3.7,各种报错,所以建议是用3.6 )

  • 命令行窗口切换到HttpRunnerManager目录 生成数据库迁移脚本,并生成表结构
  python manage.py makemigrations ApiManager #生成数据迁移脚本
python manage.py migrate #应用到db生成数据表

如果遇到

报:Django migrate No changes detected
去数据库查看没有生成相应表格, 删除migrations/ __pycache__的 __pycache__文件夹
然后执行

python manage.py migrate

  • 创建超级用户,用户后台管理数据库,并按提示输入相应用户名,密码,邮箱。 如不需用,可跳过此步骤
 python manage.py createsuperuser

  • 启动服务
  python manage.py runserver 0.0.0.0:8000

  • 启动worker, 如果选择同步执行并确保不会使用到定时任务,那么此步骤可忽略
 python manage.py celery -A HttpRunnerManager worker --loglevel=info  #启动worker
python manage.py celery beat --loglevel=info #启动定时任务监听器
celery flower #启动任务监控后台

未完待续

基于HttpRunner的接口自动化测试平台HttpRunnerManager(二)的更多相关文章

  1. HttpRunner Manager接口自动化测试平台实践(Windows)

    1. 源码下载 github: https://github.com/HttpRunner/HttpRunnerManager 下载后放入项目目录,结构如下: 2.依赖环境  根据根目录require ...

  2. Linux下搭建接口自动化测试平台

    前言 我们今天来学习一下在Linux下如何搭建基于HttpRunner开发的接口自动化测试平台吧! 需要在Linux上提前准备的环境(下面是本人搭建时的环境): 1,Python 3.6.8 (可参考 ...

  3. Jmeter+ant+jenkins接口自动化测试 平台搭建(一)

    平台简介 一个完整的接口自动化测试平台需要支持接口的自动执行,自动生成测试报告,以及持续集成.Jmeter 支持接口的测试,Ant 支持自动构建,而 Jenkins 支持持续集成,所以三者组合在一起可 ...

  4. 接口自动化测试平台 http://120.79.232.23

    接口自动化测试平台 http://120.79.232.23 T Name Latest commit message Commit time .idea 修改自动化用例修改接口时,其他接口信息被删的 ...

  5. Django 接口自动化测试平台

    本项目工程 github 地址:https://github.com/juno3550/InterfaceAutoTestPlatform 0. 引言 1. 登录功能 2. 项目 3. 模块 4. 测 ...

  6. APP接口自动化测试JAVA+TestNG(二)之TestNG简介与基础实例

    前言 继上篇环境篇后,本篇主要对TestNG进行介绍,给出最最基础的两个实例,通过本文后,学会并掌握TestNG测试用例的编写与运行,以及生成美化后的报告.下一篇为HTTP接口实战(国家气象局接口自动 ...

  7. 接口自动化测试平台-接入持续集成jenkins

    开篇提到,自动化测试最终期望还是能接入持续集成系统jenkins,下面记录下Go接口自动化测试平台是如何设计接入jenkins的. 回到Go接口自动化测试平台,在web系统中触发测试任务执行的入口为: ...

  8. 基于Jmeter的接口自动化测试实践

    在去年实施了一年的三端(PC.无线M站.无线APP[Android.IOS])后,今年7月份开始,我们开始进行接口自动化的实施,目前已完成了整个框架的搭建以及接口的持续测试集成.今天做个简单的分享. ...

  9. Jmeter+Ant+Jenkins构建接口自动化测试平台(Windows)

    一.首先先介绍下我的环境: 1. win10系统 2. ant版本:apache-ant-1.10.1(作用:执行脚本,便于后期的持续集成,下载地址:http://ant.apache.org/bin ...

随机推荐

  1. Prometheus 简介

    Prometheus 是一个开源的服务监控系统和时间序列数据库. 特性: 高维度数据模型 自定义查询语言 可视化数据展示 高效的存储策略 易于运维 提供各种客户端开发库 警告和报警 数据导出   gi ...

  2. Python 3 利用 Dlib 实现人脸检测和剪切

    0. 引言 利用 Python 开发,借助 Dlib 库进行人脸检测 / face detection 和剪切:   1. crop_faces_show.py : 将检测到的人脸剪切下来,依次排序平 ...

  3. Springboot的优点和实现

    一 优点 1.创建独立的Spring应用程序 2.嵌入式的Tomcat,不需要部署war包 3.简化Maven配置 4.自动配置Spring 5.提供生产就绪型功能,如指标,健康检查,和外部配置 6. ...

  4. hadoop 之Hadoop生态系统

    1.Hadoop生态系统概况 Hadoop是一个能够对大量数据进行分布式处理的软件框架.具有可靠.高效.可伸缩的特点. Hadoop的核心是HDFS和Mapreduce,hadoop2.0还包括YAR ...

  5. BZOJ4974:[lydsy1708月赛]字符串大师

    浅谈\(KMP\):https://www.cnblogs.com/AKMer/p/10438148.html 题目传送门:https://lydsy.com/JudgeOnline/problem. ...

  6. Docker安装ShowDoc

    ShowDoc就是一个非常适合IT团队的在线文档分享工具,它可以加快团队之间沟通的效率. 一.下载showDoc资源 打开 https://github.com/star7th/showdoc 复制其 ...

  7. Jmeter接口压测小思路

    1.压力接口测试分2种:一种是单场景,压一个接口:第二种是混合场景,多个有关联的接口.压测时间,一般场景都运行10-15分钟.如果是疲劳测试,可以压一天或一周,根据实际情况定. 2.压测前要明确压测功 ...

  8. 面试常考知识点——Java(JVM,JDK,JRE)

    1. 什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”? 答:(1)Java虚拟机是一个可以执行Java字节码的虚拟机进程.Java源文件被编译成能被Java虚拟机执行的字节码文件. ...

  9. C#软件安全 反编译 加密与安全等等

    我最近开发了一些C#语言的软件,但是由于这是一种解释型语言,也就是会转化成中间件语言,很容易就被反编译解密,包括exe和dll库等等,这时候我们真的需要使用一些技巧来将自己的成果进行加密,加壳等办法. ...

  10. 在ubuntu下,进行php7源码安装

    作为一名php的攻城师,如果没有玩php源码安装是说不过去的.我们知道php之所以这么流行,跟它的开源文化和lamp配套有很大关系.由于PHP7废弃了很多功能,所以一些依赖这些功能的程序可能无法运行, ...