HTTPRunner


一、HTTPRunner项目准备

1.1 安装

在cmd中输入命令pip install httprunner==2.3.0
输入hrun -V打印出版本就是安装成功了。
在这里插入图片描述

1.2 新建项目

在想要新建项目的文件夹中打开cmd,输入hrun --startproject 项目名称即可在当前目录下创建项目。.

在这里插入图片描述

1.3 HttpRunnser 2.x工程目录结构

  • api目录

    • a.主要存放接口的最小执行单元(正向用例)
  • reports目录

    • 用于存放测试报告
  • testcases目录

    • 用于处理接口的复杂执行逻辑
    • 实现接口与接口之间的依赖
  • testsuites目录

    • 用于添加多条测试用例,批量执行
    • 处理数据驱动测试(参数化)
  • env文件

    • 用于定义全局环境变量
    • 可以在整个项目的测试脚本中调用
  • debugtalk.py文件

    • 用于处理动态参数
    • 也可以处理参数化动态数据

1.4 YAML配置文件的格式要求

  • yaml是数据格式,不是数据类型
  • yaml配置文件的后缀为.yaml或者.yml
  • yaml配置文件中使用#进行注释,不可以在yaml数据行内进行注释
  • yaml为key: value,key往往与冒号之间不加空格,value与冒号之间必须得加空格
  • yaml配置文件中,同一区域的key不能重复
  • yaml中value的数据类型,如果value中含有字母,会识别为字符串类型(false、true、on、off、null除外),可以无需添加引号
  • 可以使用成对的单引号或者双引号来指定字符串类型
  • 如果value为数字,会指定识别为int或float类型
  • yaml是一个强缩进的数据格式,同级键值对缩进必须一致,默认缩进2格
  • 如果使用- 代表为数组结构(列表)

二、登录接口测试用例设计

2.1 基础的测试用例结构

/api/login_api.yml

# 指定当前用例的名称
name: "登录接口-正向用例"

# 指定接口的请求信息
request:
    # 指定当前用例的url
    url: 'http://127.0.0.1:8000/user/login/'
    # 指定当前接口的请求方式
    method: POST
    # 指定请求头参数
    headers:
        Content-Type: "application/json"
    # 指定json请求参数
    json:
        username: 'aaron123'
        password: '123456'

# 指定断言信息
validate:
    # 方式一:
    # - 断言方式: ["实际值", 期望值]
    - eq: ["status_code", 200]
    # 方式二(不常用):
    # 完整定义
    # - {"check": "实际值", "comparator": "断言方式", "expect": 期望值}
	# - {"check": "status_code", "comparator": "le", "expect": 201}

2.2 运行测试用例

2.2.1 使用命令行运行

输入命令hrun 需要运行的用例路径(相对路径和绝对路径均可),即可运行测试用例。
在这里插入图片描述

2.2.2 使用py文件运行

from httprunner.api import HttpRunner

obj = HttpRunner(log_level="DEBUG")

obj.run(r'E:\httprunner_dev06\testsuites\login_testsuite.yml')
res = obj.summary

2.3 修改输出的日志级别

输入命令hrun 需要运行的用例路径 --log-level 指定的等级即可修改输出的日志级别。

HttpRunner 是一个基于 Python 的开源接口自动化测试框架,它支持 YAML/JSON 格式编写测试用例,并能够生成详细的测试报告。该框架的设计理念是将测试脚本与测试数据分离,从而提高测试用例的可维护性和复用性 [^3]。 ### 安装 HttpRunner 在开始使用 HttpRunner 之前,需要先安装它。可以通过 pip 命令来安装: ```bash pip install httprunner ``` 安装完成后,可以使用 `hrun --version` 来验证是否安装成功 [^3]。 ### 编写第一个测试用例 HttpRunner 支持多种格式的测试用例文件,如 YAML 或 JSON。下面是一个简单的 YAML 测试用例示例,用于测试登录接口: ```yaml config: name: 登录接口测试 variables: username: admin password: VCfa......gnw== msg: "" teststeps: - name: 获取 token request: url: "${ENV(HOST)}/users/login" method: POST headers: SID: "bf5eadddf8eb496bb7788474f8322c6e" json: username: "$username" password: "$password" validate: - eq: ["body.message", "$msg"] ``` 保存为 `login.yml` 文件后,可以直接通过 `hrun` 命令运行测试: ```bash hrun login.yml ``` ### 参数化测试 HttpRunner 支持参数化测试,这意味着可以在同一个测试用例中多次运行不同的输入组合。以下是如何定义参数化的例子: ```python import pytest from httprunner import Parameters from httprunner import HttpRunner, Config, Step, RunRequest class TestCaseLogin(HttpRunner): @pytest.mark.parametrize( "param", Parameters( { "username-password-msg": [ ["admin", "VCfa......gnw==", None], ["nimda", "VCfa......gnw==", "用户不存在或者已冻结"], ["admin", "123456", "解密失败,请确认传输加密方式"], ] } ), ) def test_start(self, param): super().test_start(param) config = Config("登录") teststeps = [ Step( RunRequest("获取token") .post("${ENV(HOST)}/users/login") .with_headers(**{"SID": "bf5eadddf8eb496bb7788474f8322c6e"}) .with_json({"username": "$username", "password": "$password"}) .validate() .assert_equal("body.message", "$msg") ), ] if __name__ == "__main__": TestCaseLogin().test_start() ``` ### 生成测试报告 运行完测试之后,HttpRunner 会自动生成 HTML 格式的测试报告,帮助你快速查看测试结果。默认情况下,报告会被保存在当前目录下的 `_output` 文件夹中 [^4]。 ### 使用技巧 - **环境变量**:可以使用 `${ENV(key)}` 语法引用环境变量,这对于管理不同环境下的配置非常有用。 - **调试模式**:使用 `--log-level debug` 可以开启调试日志,有助于排查问题。 - **测试报告定制**:如果默认的测试报告不符合需求,还可以自定义模板 [^3]。 ### 注意事项 - 在使用 HttpRunner 时,请确保你的项目结构清晰,便于管理和维护测试用例。 - 对于复杂的业务逻辑,建议将公共部分抽象成组件或函数,以便重用 。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值