httprunner自动化实例(二)

第一篇实现了一个单接口的测试,第二篇我们来实现串接口的测试。首先我们需要搭建一个可测试的系统,可以直接在github上找一个商城系统,或者直接在公司系统测试环境进行测试。

为什么需要串接口?

我们知道“单接口”的测试非常好完成,可以通过各种接口请求工具比如postman,python request包等去发起post,get请求。但是单接口无法验证我们的业务逻辑,只能验证这个单接口是否能够请求,试想一下,万一开发那天觉得自己以前写的代码不够美观,然后改动了一下,没有通知你,但是一上线就发现业务逻辑跑不通了,造成了很严重的影响,后果可想而知…

如何用httprunner实现串接口

1、概念基本解释:

相较与教程(一)中的目录,我添加了order项目,在order中新增了api、testcases、testsuites以及debugtalk.py(在上一篇文章中有说明)
在这里插入图片描述
文件夹说明:
api:用来存放单接口相关信息
testcases:引用api中定义的接口,组成测试用例
testsuites:测试用例集的集合
字段说明:
variables:用来定义变量,必须在api中定义相关变量,在testcases中引用变量时,必须先在api中引用
validate:断言,用来比较定义预期结果
extract:接口返回的数据
(如图中取出token数据,json.data.token )
在这里插入图片描述

2、定义单接口

api 中定义单接口的各项参数,
请求url ,请求方式,请求参数等
login.yml

name: 用户登陆
base_url: http://192.168.0.120:8080
variables:
  status: 0
  username: admin1
  password: admin1
request:
  url: /auth
  method: POST
  params:
    userName: $username
    password: $password
validate:
  - eq: [json.status,$status]
3、定义测试用例

config中定义的是全局变量
test中引入api中定义的相关参数
extract将上一个接口的返回值,放入到下一个接口的请求参数中
${authorization()} 调用在debugtalk中定义的函数,封装了token格式

- config:
    name: 查询订单
    base_url: http://192.168.0.120:8080
    variables:
      status: 0
      username: admin1
      password: admin1

- test:
    name: 用户登陆
    api: project/order/api/login.yml
    variables:
      userName: $username
      password: $password
    extract:
      data_token: json.data.token
    validate:
      - eq: [json.status,$status]

- test:
    name: 获取订单信息
    api: project/order/api/order_info.yml
    variables:
      token: ${authorization($data_token)}
    validate:
      - eq: [json.status,$status]
4、测试用例集合

将已经封装好的测试用例,添加到testcases中

config:
  name: 订单相关测试用例合集

testcases:
-
  name: 查询订单
  testcase: testcases/order_cases.yml

5、执行用例
 hrun project/order/testsuites/order_suites.yml

项目代码地址:
https://github.com/627886474/httprunner

commit记录:
git checkout b39d9f6eb864b318c89c914f8fb24dc025f180e5

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章