接口测试 基于 rest-assured 的接口测试工具

xinxi · 2018年10月21日 · 最后由 寒月守护 回复于 2018年12月07日 · 1673 次阅读

愿景

通过配置 yaml 文件就能进行简单的接口测试,降低编写代码的成本,让接口测试更加容易

使用方式

https://github.com/xinxi1990/HttpTools.git

把该工具打包成jar包,jar包在target目录下

打包命令:mvn package

java -jar HttpTools-1.0-SNAPSHOT.jar 
-f /Users/xinxi/get_temp.yaml 测试用例路径
-r /Users/xinxi/Desktop 保存的文件目录
-v ALL 日志等级

框架选择

使用 rest-assured + junit + extentreports 作为框架

rest-assured 是一款开源的接口测试框架,java 开发的.内置了很多发送请求方法、解析数据方法.

extentreports 作为报告输入的模版,比原生报告和 ReportNG 都要美观.

定义模型

接口测试无非就三个条件,请求参数、接口名、断言数据

在 rest-assured 框架中,对应的是 give、when、then,所以定义了这三个模型类.

yaml 模版

get请求


- info:
    name: "查询快递"
  given:
    queryParam:
      type: "shentong"
      postid: "111111"
    headers:
      Accept: "*/*"
    request: "get"
  when:
    url: "http://www.kuaidi100.com/query"
  then:
    statusCode: 200
    body:
    - eq : ["message", "ok"]


post请求

- info:
    name: "电子书详情页"
  given:
    body:
      bid: 3210
      userInfo:
        uid: "229461915"
    headers:
      Content-Type: "application/json"
    request: "post"
  when:
    url: "https://m.igetget.com/hybrid/api/v1/ebook/detail"
  then:
    statusCode: 200
    body:
     - eq : ["errCode", "0"]

请求类型

目前支持 post、get 请求,get 其中 header 和 queryParam 参数可以不写.post 中 body 参数必须写.

断言

1.支持一个请求多次断言,断言失败可以继续后续断言
2.支持等于、不等于、大于、小于方式的断言

响应解析

使用 jsonpath 语法解析响应

["message", "ok"]
["data.size()", "8"]

报告

根据-r 的入参数路径生成在该文件夹路径下,case 失败会有具体的报错信息

共收到 6 条回复 时间 点赞


又是 DJI 作品?

尹全旺 回复

参考了 httprunner 的用例组织

仅楼主可见
寒月守护 回复

对啊 这个是必要参数,case 的路径

仅楼主可见
仅楼主可见
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册