httprunner接口间参数依赖处理方式——extract+content.参数名

这篇博客介绍了如何使用API自动化测试工具进行身份验证和依赖接口的脚本编写。首先,通过.env文件配置登录所需的账号和密码,然后在login_test.yml脚本中进行登录请求。接着,获取登录成功后的token,并在getSchoolList.yml脚本中利用该token进行身份验证以获取学校列表。在test_case_getschoollist.yml中,使用extract关键字提取token并进行学校列表的测试。最后,在test_suite_getschoollist.yml中组合测试用例,完成整个流程的自动化测试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

场景一:一些接口请求需要身份认证成功之后才能获取到数据

场景二:依赖上游接口的返回参作为下一个接口参数

示例接口:

getSchoolList----获取用户的所有学校列表

postman:直接调用getSchoolList接口,接口响应:没有token

在请求头里将登录成功返回的token放在cookie里,再次请求,身份鉴权成功,接口返回数据

ps:本次实践还是遵循api-testcase-testsuite分层,进行脚本编写

1、创建一个.env文件(引入概念:.env文件为全局默认配置文件

先配置一下参数

# 域名地址 
BASE_URL = http://xxx.xxx.com 
# 登录账号+密码 
MOBILE = 1782683xxxx
PASSWORD = 69f600a1be1d7aa6318ea5b274c09ae6

2、在api文件下,完善login_test.yml脚本,引用.env文件里的配置变量:${ENV(变量名)}

name: login_api
base_url: ${ENV(BASE_URL)}
# 公共变量
variables:
        account: ${ENV(MOBILE)}
        password: ${ENV(PASSWORD)}
        status: 200
request:
    headers:
        Content-Type: "application/json;charset=UTF-8"
        User-Agent:
          "Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.30
          (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1 Edg/92.0.4515.159"
    json:
        account: $account
        password: $password
    method: POST
    url: /nbugs-auth-center-test/xyhauth/checkPwd
validate:
-   eq:
    - status_code
    - 200
-   eq:
    - body.code
    - 200

3、在api文件下,新增getSchoolList.yml脚本,引用.env文件里的配置变量:${ENV(变量名)}

Cookie: nbugs=$token

name: getSchoolList
base_url: ${ENV(BASE_URL)}

request:
  headers:
    Content-Type: application/json;charset=UTF-8
    Cookie: nbugs=$token
# get请求,用params接收参数
  params:
    moblie = ${ENV(MOBILE)}
  method: GET
  url: /nbugs-auth-center-test/xyhauth/getSchoolList

validate:
-   eq:
    - status_code
    - 200
-   eq:
    - body.code
    - 200

4、在testcases文件下,新增test_case_getschoollist.yml脚本

引入关键字概念:extract

登录后提取响应结果里的token,用关键字extract,然后通过content.参数名

以下响应结果为登录成功返回的,要提取data里面的值,用content.data

{
   "code": 200,
   "msg": "success",
   "data": "5149750101f314083aeecbd27b7cfa277",
   "success": true,
   "requestId": "286b30a0-4379-11ec-883d-6f05a975e30c"
}

脚本内容:

config:
  name: getshcoollist

teststeps:
-
  name: 正常登录
  api: "test_httprunner/api/login_test.yml"
  extract:
    token: content.data
-
  name: 获取学校列表
  api: "test_httprunner/api/getSchoolList.yml"
  validate:
    - eq:
        - status_code
        - 200
    - eq:
        - body.code
        - 200

5、在testsuites文件下,新增test_suite_getschoollist.yml脚本

config:
  name: 获取学校列表

testcases:
-
   name: 获取学校列表
   testcase: testcases\test_case_getschoollist.yml

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值