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

相关推荐
“AI国潮设计-小江”3 分钟前
《【AIGC实战】Python+SDXL批量生成“猫咪英歌舞蛋挞”IP,附保持角色一致性的代码逻辑》
开发语言·人工智能·python·prompt·aigc
坤坤子吖19 分钟前
Linux 线程概念与控制——线程创建、退出与等待
linux·开发语言·c++·笔记·学习
薛一半20 分钟前
Redux实战:组件状态管理全解析
开发语言·前端·javascript·react.js
weixin_3077791324 分钟前
C++代码实现MATLAB中的fitnlm函数功能
开发语言·c++·算法·matlab
白帽攻防录9 小时前
SRC 挖洞:PostScript 打印机驱动双 RCE,打印服务器怎么变成内网跳板
开发语言·网络安全·php·内网安全
十年Java程序媛9 小时前
Java枚举Enum完整教程|替代静态常量,开发与面试要点
java·开发语言·spring boot·后端·面试
2603_965148119 小时前
电商选品调研:通过关键词搜索API获取市场热销商品,结合商品详情API分析竞品卖点与定价
开发语言·数据库·人工智能·python·信息可视化
xixiaoyunya10 小时前
Python 异步编程入门:用 asyncio 轻松实现并发任务
开发语言·python·php
学逆向的10 小时前
C 循环结构的执行效率分析
c语言·开发语言·数据结构·网络安全