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

相关推荐
whitelbwwww11 分钟前
c++ 多线程
开发语言·c++·算法
乌药ice17 分钟前
c#中一个多线程安全的HashSet
开发语言·c#
秋名RG18 分钟前
Java 异常处理全攻略:从入门到实战(JDK 21 版)
java·开发语言
盟道科技18 分钟前
Redis+Lua 实现滑动窗口限流:从固定窗口踩坑到生产可用的完整方案
redis·junit·lua
努力努力再努力wz19 分钟前
【Docker入门系列】:从架构演进到容器化:一文建立 Docker、虚拟化与 Namespace 的底层心智模型
运维·开发语言·数据结构·c++·docker·容器·架构
wuyk55524 分钟前
13.堆排序:基于完全二叉树的高效排序算法一、什么是堆排序?
开发语言·算法·排序算法
runningshark26 分钟前
Lecture: The ‘Why & How‘ Principle: Moving Beyond Simple Statements
开发语言·前端·javascript
学逆向的42 分钟前
PE——RVA与FOA的转换
开发语言·网络安全·pe
zz-zjx1 小时前
Python实用转换模板
开发语言·前端·python
zuozong_1 小时前
C++类与对象
开发语言·c++·算法