cucumber框架+rest-assured框架+jsonPa
2021-01-04 本文已影响0人
Coding测试
整体项目关注点
- 项目思想:BDD
行为驱动开发的思想褒贬不一,这里不多说。遵循的宗旨能解决业务痛点的思想就是好思想。 - 前置条件
1、需要一个IDEA编辑器,这里这里已准备好下载激活地址,点击下载
2、会使用cucumber框架的feature文件书写和jsonPath取值方式 - 测试过程
1、单接口可在同一feature文件内定义,包含正向逆向测试。
2、多接口上下游的参数值传递通过jsonPath提取定义变量,下一接口取出变量值传递。 - 期望结果
项目拉下来,只写业务的feature文件接口即可完成接口测试 -
项目目录结构
接口测试实战(整个框架不仅仅局限于接口测试)
只关注cucumber的feature约束文件书写,即可完成接口测试。
废话不多说直接进入实战
- 实战示例:以企业微信员工查询、新增、修改、删除操作接口为例
cucumber框架+rest-assured框架+jsonPath框架各自的使用请自行百度查询
- 第一步配置IDEA编译器全局接口服务器地址
企业微信服务端接口地址:https://qyapi.weixin.qq.com
备注:如果需要单个执行feature文件,需要对应的文件配置下服务器地址
image.png -
feature文件说明
1、feature文件关键字说明
2、feature文件执行顺序说明
以feature命名的名字(字母或者数字尽行排序)如:A-Z或者1-N - 第二步编写接口用例
1、企业微信获取access_token接口(后续员工查询、新增、修改、删除均会使用到)
测试专业企业微信信息不保密
企业微信API文档:点击查看
Feature: ["获取access_token"]
Scenario Outline: 获取access_token
Given API "/cgi-bin/gettoken"
And Param
"""
corpid : ww27d6f876d80ceec6
corpsecret: yiXycY2QFDwD9HysYNk6hF7NFnt1CxBybuei1YKVaVw
"""
When GET
Then STATUS "200"
Then JSONPATH_ASSERT "<jsonPath>" equals "<value>"
Then JSONPATH_GET_MONGO
|access_token|getToken|
Examples:
| jsonPath | value |
| errmsg | ok |
2、读取人员接口
Feature: ["读取人员接口"]
Scenario Outline: 读取人员接口_正向測試
Given API "/cgi-bin/user/get"
And Param
"""
access_token: ${getToken}
userid: CuiZhongYuan
"""
When GET
Then STATUS "200"
Then JSONPATH_ASSERT "<jsonPath>" equals "<value>"
Examples:
| jsonPath | value |
| errmsg | ok |
Scenario Outline: 读取人员接口_逆向测试(缺少token鉴权,期望的错误)
Given API "/cgi-bin/user/get"
And Param
"""
access_token:
userid: CuiZhongYuan
"""
When GET
Then STATUS "200"
Then JSONPATH_ASSERT "<jsonPath>" equals "<value>"
Examples:
| jsonPath | value |
| errcode | 41001 |
- 新增人员接口
Feature: ["新增成员接口"]
Scenario Outline: 新增人员接口_正向测试
Given API "/cgi-bin/user/create?access_token=${getToken}"
And Body
"""
{
"userid": "TESTER",
"name": "张三",
"alias": "jackzhang",
"mobile": "13800000004",
"department": [2],
}
"""
When POST
Then STATUS "200"
Then JSONPATH_ASSERT "<jsonPath>" equals "<value>"
Examples:
| jsonPath | value |
| errcode | 0 |
请求参数类型说明
Param:支持url路径跟的参数和form-data格式参数
Body: 支持raw原生的json格式参数
变量定义和取值
测试运行结果
Jenkins插件cucumber美化报告直观
项目源码地址:点击查看
- 项目涉及的核心jar包,公众号[Coding测试]回复cucumber即可获取依赖jar
<dependency>
<groupId>com.weixin.api</groupId>
<artifactId>cuke</artifactId>
<version>jxc_2.2.2</version>
<scope>test</scope>
</dependency>