美文网首页
[PPJ_24] 接口自动化测试平台HttpRunnerMana

[PPJ_24] 接口自动化测试平台HttpRunnerMana

作者: Fighting_001 | 来源:发表于2018-11-28 00:00 被阅读282次

    目录结构

    一、HttpRunnerManager简介
    二、HTTPRunnerManager下载安装
        1.创建HttpRunnerManager数据库
        2.下载HttpRunnerManager项目
        3.安装依赖文件
            1)erlang
            2)RabbitMQ
    三、HttpRunnerManager配置启动
        1.数据库配置
        2.安装依赖库文件
        3.数据库迁移
        4.启动Django服务
        5.前台访问HttpRunnerManager系统
    

    一、HttpRunnerManager简介

    HttpRunnerManfger:是基于HttpRunmer的接口自动化测试平台,该工具是对HttpRumner的包装和Web图形化。同时还增加了一些新概念(项目/模块)用来组织用例,若对YAML语法、httprunner命令不熟悉,则可使用该平台执行接口自动化测试。

    核心特性

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

    二、HTTPRunnerManager下载安装

    1.创建HttpRunnerManager数据库

    安装Mysql数据库服务端,并设置为utf-8编码,创建相应HttpRunnerManager数据库;设置好相应用户名、密码,启动mysql

    本地Mysql的连接账户为:
    username:root
    password:root

    2.下载HttpRunnerManager项目

    将HttpRunnerManager项目下载,解压放在任意盘符位置,并重命名为HttpRunnerManager
    GitHub项目:https://github.com/HttpRunner/HttpRunnerManager

    3.安装依赖文件

    HttpRunnerManager支持分布式执行,模块和项目执行可选择为同步or异步方式,因此需要安装相关依赖工具。具体如下:

    1)erlang

    Erlang是一种通用的面向并发的编程语言,它由瑞典电信设备制造商爱立信所辖的CS-Lab开发,目的是创造一种可以应对大规模并发活动的编程语言和运行环境。
    下载传送门:http://www.erlang.org/downloads

    ERLANG环境变量配置:
    检查环境变量,若未配置则配置erl的环境变量,如下:
    新建ERLANG_HOME变量,值为C:\Program Files\erl10.1
    Path变量中添加 %ERLANG_HOME%\bin;

    2)RabbitMQ

    RabbitMQ是一个由Erlang语言开发的AMQP(高级消息队列协议)的开源实现,它支持多个消息传递协议。RabbitMQ可以部署在分布式和联合配置中,以满足高规模、高可用性的需求,另外安装rabbitmq需要先安装erlang。
    下载传送门:http://www.rabbitmq.com/download.html

    本次将RabbitMQ安装在非默认的目录(C:\Program Files),因该目录包含有空格,可能会对RabbitMQ服务启用有影响,因此另选无空格的安装路径(如:E:\RabbitMQ

    RabbitMQ环境变量配置:
    检查环境变量,若未配置则配置RabbitMQ的环境变量,如下:
    新建RABBITMQ_SERVER变量,值为E:\RabbitMQ\rabbitmq_server-3.7.9
    Path变量中添加 %RABBITMQ_SERVER%\sbin;

    以上安装完成后,右键选择【RabbitMQ Service - start】,然后以管理员身份运行

    可通过访问 http://localhost:15672 进行测试,默认登录账户为:guest / guest

    PS:以上若不能正常访问RabbitMQ界面,则需要首先启动其管理模块

    确保已切换到RabbitMQ安装目录的sbin目录下,再使用操作命令
    (如:C:\Program Files\RabbitMQ Server\rabbitmq_server-3.7.9\sbin

    # 开启RabbitMQ节点
    rabbitmqctl start_app
    # 开启RabbitMQ管理模块的插件,并配置到RabbitMQ节点上
    rabbitmq-plugins enable rabbitmq_management
    # 关闭RabbitMQ节点
    rabbitmqctl stop
    

    此时,RabbitMQ管理模块的插件已经配置到RabbitMQ节点上。
    再次回到浏览器中访问 http://localhost:15672 即可成功打开RabbitMQ管理界面,如下:

    以用户名/密码(guest / guest)登录RabbitMQ之后的界面如下:

    三、HttpRunnerManager配置启动

    1.数据库配置

    需要修改的文件:...\HttpRunnerManager\HttpRunnerManager\settings.py
    1)修改settings.py中 DATABASES 的字典、邮件发送账号相关配置

    if DEBUG:
        DATABASES = {
            'default': {
                'ENGINE': 'django.db.backends.mysql',
                'NAME': 'HttpRunnerManager',  # 新建数据库名
                'USER': 'root',  # 数据库登录名
                'PASSWORD': 'root',  # 数据库登录密码
                'HOST': '127.0.0.1',  # 数据库所在服务器ip地址
                'PORT': '3306',  # 监听端口 默认3306即可
            }
        }
        STATICFILES_DIRS = (
            os.path.join(BASE_DIR, 'static'),  # 静态文件额外目录
        )
    else:
        DATABASES = {
            'default': {
                'ENGINE': 'django.db.backends.mysql',
                'NAME': 'HttpRunnerManager',  # 新建数据库名
                'USER': 'root',  # 数据库登录名
                'PASSWORD': 'root',  # 数据库登录密码
                'HOST': '127.0.0.1',  # 数据库所在服务器ip地址
                'PORT': '3306',  # 监听端口 默认3306即可
            }
        }
        STATIC_ROOT = os.path.join(BASE_DIR, 'static')
    
    EMAIL_SEND_USERNAME = ''  # 定时任务报告发送邮箱,支持163,qq,sina,企业qq邮箱等,注意需要开通smtp服务
    EMAIL_SEND_PASSWORD = ''     # 邮箱密码
    

    2)修改settings.py中 worker 的相关配置

    djcelery.setup_loader()
    CELERY_ENABLE_UTC = True
    CELERY_TIMEZONE = 'Asia/Shanghai'
    # 127.0.0.1即为rabbitmq-server所在服务器ip地址
    BROKER_URL = 'amqp://guest:guest@127.0.0.1:5672//' if DEBUG else 'amqp://guest:guest@127.0.0.1:5672//'
    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 = 1 if DEBUG else 10 # celery worker的并发数 也是命令行-c指定的数目 根据服务器配置实际更改 一般25即可
    CELERYD_MAX_TASKS_PER_CHILD = 100  # 每个worker执行了多少任务就会死掉,我建议数量可以大一些,比如200
    

    2.安装依赖库文件

    打开cmd命令窗口,切换到HttpRunnerManager目录,安装需要的依赖库文件

    pip install -r requirements.txt
    

    本系统使用 pip3 install -r requirements.txt

    【备注】requirements.txt 内容为:

    Django == 2.0.3
    PyYAML == 3.12
    requests == 2.18.4
    eventlet == 0.22.1
    mysqlclient == 1.3.12
    django-celery == 3.2.2
    flower == 0.9.2
    dwebsocket == 0.4.2
    paramiko == 2.4.1
    HttpRunner == 1.5.8
    

    3.数据库迁移

    # 生成数据迁移脚本
    python manage.py makemigrations ApiManager
    # 应用到Database生成数据表
    python manage.py migrate
    

    打开Navicat中查看所创建的数据库httprunnermanager其下生成的数据表:

    创建超级用户、用户后台管理数据库,并按提示输入相应用户名、密码、邮箱

    Python manage.py createsuperuser
    

    超级用户:
    Username: admin
    Password: admin123456
    Email: admin@666.com

    4.启动Django服务

    python manage.py runserver
    

    5.前台访问HttpRunnerManager系统

    以上,Django服务启动成功之后,即可进入到不同的页面:

    可尝试注册一个测试账号,如:
    Account: test001
    Email: test001@666.com
    Password: 123456

    若填写注册信息符合要求,则点击"Register"注册成功后,系统会自动跳转到以下登录界面

    输入以上注册的账户信息(test001 / 123456),点击“登录”即可登录成功,界面如下:

    可用来管理用例、执行用例、模块管理、测试计划、报告管理...

    输入超级用户的账户(admin / admin123456)即可成功登录,如下:

    相关文章

      网友评论

          本文标题:[PPJ_24] 接口自动化测试平台HttpRunnerMana

          本文链接:https://www.haomeiwen.com/subject/bgybqqtx.html