HttpRunner 编写测试用例

一、先记住 4 个核心结构(所有用例都一样)

任何 HttpRunner 用例,都只由 4 部分 组成:

  1. config ------ 全局配置(域名、变量)
  2. teststeps ------ 测试步骤(发请求)
  3. extract ------ 提取返回值(给下一个接口用)
  4. validate ------ 断言(判断接口对不对)

就这 4 个!


二、直接给你一个 万能模板

你以后写接口,复制这个模板改一改就能用!

复制代码
config:
  name: "我的第一个接口测试用例"
  base_url: "https://postman-echo.com"  # 接口域名
  variables:
    username: "test123"
    password: "123456"

teststeps:
- name: "第一步:发送GET请求"
  request:
    method: GET
    url: /get
    params:
      name: $username
  validate:
    - eq: ["status_code", 200]

- name: "第二步:发送POST表单请求"
  request:
    method: POST
    url: /post
    headers:
      Content-Type: "application/x-www-form-urlencoded"
    body: "username=$username&password=$password"
  validate:
    - eq: ["status_code", 200]
    - eq: ["body.form.username", "test123"]

三、我一句一句教你写(超级小白版)

1)config:写接口域名 + 全局变量

复制代码
config:
  name: "测试用例名字"
  base_url: "https://xxx.com"   # 接口域名
  variables:                   # 变量
    username: "张三"

作用:

  • 所有步骤共用一个域名
  • 变量可以在任何地方用 $username

2)teststeps:发请求(一个 - 就是一步)

复制代码
teststeps:
- name: "登录接口"
  request:
    method: POST          # GET / POST
    url: /user/login      # 接口路径
    headers:
      Content-Type: application/json
    json:
      username: $username
      password: "123456"

你只需要改:

  • method
  • url
  • headers
  • body/json/params

3)extract:从返回结果里拿值(超级重要!)

比如返回是:

复制代码
{
  "body": {
    "token": "abcd1234"
  }
}

你想把 token 拿出来:

复制代码
extract:
  token: body.token

后面步骤就能用 $token


4)validate:断言(判断接口是否正确)

复制代码
validate:
  - eq: ["status_code", 200]          # 状态码必须200
  - eq: ["body.msg", "登录成功"]       # 返回消息必须正确
  - eq: ["body.code", 0]              # 业务码必须0

eq = 等于 所有断言都通过 → 用例成功 ✅


四、写 3 个最常用的示例

示例 1:GET 请求(带参数)

复制代码
config:
  name: "GET请求示例"
  base_url: "https://postman-echo.com"

teststeps:
- name: "GET带参数"
  request:
    method: GET
    url: /get
    params:
      id: 100
      name: "zhangsan"
  validate:
    - eq: ["status_code", 200]

示例 2:POST 表单(最常用)

复制代码
config:
  name: "POST表单示例"
  base_url: "https://postman-echo.com"

teststeps:
- name: "发表单"
  request:
    method: POST
    url: /post
    headers:
      Content-Type: "application/x-www-form-urlencoded"
    body: "username=zhangsan&password=123456"
  validate:
    - eq: ["status_code", 200]

示例 3:POST JSON(最常用)

复制代码
config:
  name: "POST JSON示例"
  base_url: "https://postman-echo.com"

teststeps:
- name: "发JSON"
  request:
    method: POST
    url: /post
    json:
      username: "zhangsan"
      password: "123456"
  validate:
    - eq: ["status_code", 200]

五、写完怎么运行?

复制代码
hrp run 你的用例.yml --gen-html-report

运行成功你会看到:

复制代码
result=true
result=true
result=true

六、容易犯的 3 个错

  1. 缩进不对(YAML 严格缩进,用空格,不要用 Tab)
  2. url 写错
  3. 断言写错字段(比如 body.data 写成 body.Data)

七、用AI工具写

你只要告诉它:

  1. 接口地址
  2. 请求方式(GET/POST)
  3. 参数
  4. 返回结果

它直接给你生成可运行的 HttpRunner 用例,复制就能跑!

相关推荐
qq_406981035 小时前
c++拷贝构造函数
开发语言·c++
爱喝雪碧的可乐5 小时前
MATLAB
开发语言·算法·matlab
努力努力再努力wz7 小时前
【Lua进阶系列】Lua 调试机制详解:从虚拟机调用栈、错误传播到 debug 库
junit·单元测试·lua
H.莓飛7 小时前
【C++】【STL】vector_OJ题
linux·服务器·开发语言·数据结构·c++·visual studio
j7~8 小时前
【C++ 八股文】(篇四)C++11 新特性
开发语言·c++·面试·c++11·八股文
eggwyw9 小时前
C++中大括号的用法合集
开发语言·c++
xiaoye-duck9 小时前
《C++ 项目:手写大模型接入 SDK》本地 Ollama 部署与适配
开发语言·网络·c++·语言模型
联犀9 小时前
联犀 Go SIMD 实战:视频转码从 16.5ms 到 5.46ms
开发语言·golang·音视频
octopus_c9 小时前
STL 之 string:auto 与范围 for、常用接口、模拟实现与深浅拷贝
开发语言·c++·算法
Nerd(BUG版)9 小时前
KMP学习day5--Kotlin Flow异步流基础
开发语言·学习·kotlin