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 用例,复制就能跑!

相关推荐
吃好睡好便好1 小时前
提取矩阵所有元素
开发语言·学习·线性代数·matlab·矩阵
笨蛋不要掉眼泪1 小时前
Java并发编程:深入剖析 ArrayBlockingQueue
java·开发语言·算法·并发
吃好睡好便好1 小时前
提取矩阵特定多列元素
开发语言·学习·线性代数·matlab·矩阵
yujunl1 小时前
MES系统的悟道过程
开发语言
小郑加油1 小时前
python_综合训练
开发语言·python
多彩电脑1 小时前
Kivy的事件向方法传递的event是什么?
开发语言·python
运维行者_1 小时前
使用Applications Manager监控的关键MongoDB指标
服务器·开发语言·网络·数据库·mongodb·机器学习·云计算
解决问题no解决代码问题1 小时前
设计模式分类介绍
java·开发语言·设计模式
sugar__salt1 小时前
从Python列表切片到LLM接口实战:零基础AI编程落地教程
开发语言·python·ai·prompt·transformer·ai编程