zoukankan      html  css  js  c++  java
  • HttpRunner接口自动化测试框架

    简介

    HttpRunner是一款面向 HTTP(S) 协议的通用测试框架,只需编写维护一份 YAML/JSON 脚本,即可实现自动化测试、性能测试、线上监控、持续集成等多种测试需求。

    框架流程

    核心特性

    • 继承 Requests 的全部特性,轻松实现 HTTP(S) 的各种测试需求
    • 测试用例与代码分离,采用YAML/JSON的形式描述测试场景,保障测试用例具备可维护性
    • 测试用例支持分层机制,充分实现测试用例的复用
    • 测试用例支持参数化和数据驱动机制
    • 使用 skip 机制实现对测试用例的分组执行控制
    • 测试请求支持完善的 hook 机制
    • 支持热加载机制,在文本测试用例中轻松实现复杂的动态计算逻辑
    • 基于 HAR 实现接口录制和用例生成功能(har2case)
    • 结合 Locust 框架,无需额外的工作即可实现分布式性能测试
    • 执行方式采用 CLI 调用,可与 Jenkins 等持续集成工具完美结合
    • 测试结果统计报告简洁清晰,附带详尽统计信息和日志记录
    • 具有可扩展性,便于扩展实现 Web 平台化(HttpRunnerManager)

    下载安装

    使用pip命令进行安装

      pip install httprunner
    

    安装后效验是否安装成功,可以使用如下命令进行效验

      hrun -V
      1.4.2
    
      har2case -V
      0.1.8
    

    若版本号正常显示,则说明安装正常。

    入门使用

    测试场景

    用例设计

    HttpRunner的测试用例支持两种文件格式:YAML 和 JSON。这里以YAML为例。

      # test_httpbin.yml
      - config:
          name: httpbin api test
          request:
              base_url: http://www.httpbin.org
      - test:
          name: get request
          request:
              url: /get
              method: GET
          validate:
              - eq: [status_code,200]
    
    • config:作为整个测试用例集的全局配置项
    • test:对应单个测试用例
    • name 这个test的名字
    • request 这个test具体发送http请求的各种信息, 如下:
    • url 请求的路径 (若config中有定义base_url, 则完整路径是用 base_url + url )
    • method 请求方法 POST, GET等等
    • validate 完成请求后, 所要进行的验证内容. 所有验证内容均通过该test才算通过,否则失败

    运行测试

    使用hrun执行测试,如下所示:

    C:UsersShuqing>hrun D:api_testHttpRunner_test	est_httpbin.yml
    get request
    INFO     GET /get
    INFO     status_code: 200, response_time(ms): 1967.35 ms, response_length: 273 bytes
    INFO     start to validate.
    .
    
    ----------------------------------------------------------------------
    Ran 1 test in 1.976s
    
    OK
    INFO     Start to render Html report ...
    INFO     Generated Html report: C:UsersShuqing
    eports1533092144.html
    

    查看测试报告

    打开html报告如下:

    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.安装mysql数据库服务端(推荐5.7+),并设置为utf-8编码,创建相应HttpRunnerManager数据库,设置好相应用户名、密码,启动mysql。
    2.将HttpRunnerManager下载下来,解压放在任意盘符位置,例如我放在D盘根目录,并重命名为HttpRunnerManager

    环境配置

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

    erlang

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

    下载地址:http://www.erlang.org/downloads

    Rabbitmq

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

    下载地址:http://www.rabbitmq.com/download.html 下载后双击rabbitmq-server-3.7.7.exe文件进行安装。

    安装完成后如下图如所示,选中RabbitMQ Service -start 然后以管理员身份运行。

    可以通过访问 http://localhost:15672 进行测试,默认的登陆账号为:guest,密码为:guest。

    相关资料:RabbitMQ Windows环境安装官方手册

  • 相关阅读:
    jmeter对数据库进行简单的压测
    数据库语言sql
    (二)变量的概念与分类
    (一)Java关键字与标识符
    socket之远程执行命令
    python文件操作
    UDP基础server与client
    TCP基础server与client
    Python 之 杂谈(迭代器iter)、偏函数
    python 之解决socket 粘包
  • 原文地址:https://www.cnblogs.com/sunyllove/p/13497417.html
Copyright © 2011-2022 走看看