zoukankan      html  css  js  c++  java
  • Httprunner学习

    一、简介

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

    核心特性:

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

    二、安装

    1. 首次安装:pip install httprunner

    2. 升级到最新:pip install -U HttpRunner

    三、命令

    • hrun:核心命令 
    • locusts:基于Locust实现性能测试 
    • har2case:辅助工具,将har格式地文档转换为yml/json格式的测试用例 

    四、用例简述

    • 测试用例集:单个测试用例或多个测试用例的集合,表现形式为一个json文件
    • 测试用例:单次http请求和响应过程,表现形式为json文件中的一个test
    • config:全局配置项,作用于整个测试用例集,一个测试用例集中只有一个config
    • test:作用于单个测试用例,包含单个请求、响应、校验过程,作用域仅限于单个接口,一个测试用例集中可以有多个test
    • 如果一个变量在config中定义了,在test中没有定义,则test会继承该变量
    • 如果一个变量在config和test中都定义了,则test会使用自己定义的变量值
    • 各个test的空间相互独立,互不影响

    五、结果校验器

    1. 结果校验器功能:主要辅助测试人员执行测试用例时判断系统的功能是否正常。对于每一个test,可以指定0个或多个校验项,放置在validate中。在自动化测试执行的时候,会在发起HTTP请求、解析结果响应之后,逐个检查各个校验项,若存在任意校验项不通过的情况,则该test将终止并被标记为失败。

    例:

    - test:
        name: get token
        request:
            url: https://ape-api.yuanfudao.ws/win/login
            method: GET
        extract:
            - token: content.token
        validate:
            - {"check": "status_code", "comparator": "eq", "expect": 200}
            - {"check": "content.token", "comparator": "len_eq", "expect": 16}

    2. 如上例所示,每一个校验项均为一个json结构,里面包含checkexpectcomparator三个属性字段。其中,check对应着要检查的字段,expect对应着检查字段预期的值,这两项是必须指定的;comparator字段对应着比较方法,若不指定,则默认采用eq,即检查字段与预期值相等。

    3. 其他检查方法:

    HttpRunner除了eq,还内置了大量的检查方法。例如,我们可以通过gtgeltle等比较数值大小,通过len_eqlen_gtlen_lt等比较长度是否相等(列表、字典、字符串均适用),通过containscontained_by来判断包含关系,通过startswithendswith判断字符串的开头结尾,甚至通过regex_match来判断是否满足正则匹配等。

    详细的比较方式还有许多,需要时可查看comparator表格。

    六、运行

     1. Charles抓包,导出.har格式文件

    2. 转换格式:

    har2case xxx.har xxx.json

    3. 运行:

    4. 查看报告:

    5. 其他:

    • 日志级别:需要查看到更详尽的信息,例如请求的参数和响应的详细内容,可以将日志级别设置为DEBUG,即在命令中添加--log-level debug。
    • failfast:若希望测试用例集在运行过程中,遇到失败时不再继续运行后续用例,则可通过在命令中添加--failfast实现。

    • 指定报告名称:如需指定生成报告的名称,可以使用 --html-report-name 参数。(会在reports目录下生成相应名称的文件夹,里面包含相同名称的报告)
  • 相关阅读:
    mysql
    Hexo多台电脑同步
    Kaggle入门(一)——Digit Recognizer
    【视频编解码·学习笔记】13. 提取PPS信息程序
    【视频编解码·学习笔记】12. 图像参数集(PPS)介绍
    【视频编解码·学习笔记】11. 提取SPS信息程序
    【视频编解码·学习笔记】10. 序列参数集(SPS)介绍
    【视频编解码·学习笔记】9. 熵编码算法:指数哥伦布编解码程序
    【视频编解码·学习笔记】8. 熵编码算法:基本算法列举 & 指数哥伦布编码
    【视频编解码·学习笔记】7. 熵编码算法:基础知识 & 哈夫曼编码
  • 原文地址:https://www.cnblogs.com/ydnice/p/9268665.html
Copyright © 2011-2022 走看看