postman+jmeter接口测试实战项目-客达天下

postman+jmeter接口测试实战项目-客达天下

项目链接:客达天下/

账户:admin/HM_2023_test

学习视频:postman和jmeter学习视频

jmeter基础知识:jmeter基础知识学习

请求路径:http://kdtx-test.itheima.***

1、Postman接口测试

登录

生成验证码:

URL: /api/captchaImage

Type: GET

Description: 生成验证码

Response-example:

响应状态码:200

响应数据:{ "msg": "操作成功", "img": "......", "code": 200, "uuid": "xxxxxx"}

实际操作步骤:

1、设置请求方式和接口地址

2、发送请求

3、查看响应结果:

登录:

URL: /api/login

Type: POST

Description: 登录方法

Request-header:

参数名称 参数值 是否必填 示例 备注
Content-Type application/json

Body-parameters:

参数名称 类型 描述 是否必填 备注
username string 用户名 True 如:manager
password string 用户密码 True 如:123456
code string 验证码 True 如:2
uuid string 唯一标识 True 生成验证码接口

Response:

参数名称 类型 描述 是否必填 备注
msg string 消息 True
code int64 业务代码 True
token string 令牌token False

Request-example:

{
    "username": "manager",
    "password": "123456",
    "code": "2",
    "uuid": "a5762bc30ec74055a58dba2c63b01087"
}

Response-example:

响应状态码:200

响应数据:

①:登录成功:{ "msg": "操作成功", "code": 200, "token": "xxxxxx"}

② 用户名或密码错误:{ "msg": "用户名或密码错误", "code": 500}

③ 验证码错误或过期:{"msg": "验证码已失效", "code": 500}/1

操作步骤:

1、设置请求方式和接口地址

2、设置请求头:

3.设置请求体:

4、发送请求

5、查看响应结果

验证码与登录接口关联

  1. 验证码接口:/api/captchaImage

  2. 登录接口:/api/login

  3. 登录接口请求体uuid字段->验证码接口返回uuid字段

操作步骤:

1、创建Environments并添加变量 (此处设置为uuid)

2、创建Collection并添加环境变量

3、验证码接口中配置

var jsonData=pm.response.json()
pm.environment.set("uuid", jsonData.uuid)

5、登录接口中使用变量uuid

6、需要先运验证码接口,在运行登录接口,查看响应结果

新增课程接口

需要添加代码

var jsonData = pm.response.json()
pm.environment.set("fileName", jsonData.fileName)
#fileName可以替换成任何环境(全局)变量

URL: /api/clues/course

Type: POST

Description: 新增课程管理

Request-header:

参数名称 参数值 是否必填 示例 备注
Authorization token Bearer eyJhbGjgfjG2INQjIHFirwSw 登录接口
Content-Type application/json

Body-parameters:

Parameter Type Description Required Since
name string 课程名称 True -
subject string 课程学科 True -
price int32 课程价格 True -
applicablePerson string 适用人群 True -
info string 课程介绍 false -

Request-example:

{
    "name": "测试开发提升课01",
    "subject": "6",
    "price": 899,
    "applicablePerson": "2",
    "info": "测试开发提升课01"
}

Response-example:

响应状态码:200

响应数据:

① 添加成功:{ "msg": "操作成功", "code": 200}

② 未登录:{ "msg": "请求访问:/clues/course,认证失败,无法访问系统资源", "code": 401}

③ 添加失败:{ "msg": "操作失败", "code": 500}

操作步骤:

1、在Environments中设置token

2、在登录接口中设置

3、创建请求:

4、发送请求

5、查看响应结果

合同上传接口

URL: /api/***mon/upload

Type: POST

Description: 合同上传

Request-header:

参数名称 参数值 是否必填 示例 备注
Authorization token Bearer eyJhbGjgfjG2INQjIHFirwSw 登录接口
Content-Type multipart/form-data

Body-parameters:

参数名称 数据类型 参数值 是否必填 Since
file string 文件路径 true

Response-example:

响应状态码:200

响应数据:

{
    "msg": "操作成功",
    "fileName": "/profile/upload/2023/01/05/0c8642af-4d79-47ca-8151-67e4f8921ca5.pdf",
    "code": 200,
    "url": "http://localhost:8080/profile/upload/2023/01/05/0c8642af-4d79-47ca-8151-67e4f8921ca5.pdf"
}

操作步骤:

1、创对应请求

2、发送请求,查看响应结果

添加合同(新增)

新增合同

URL: /api/contract

Type: POST

Description: 新增合同

Request-header:

参数名称 参数值 是否必填 示例 备注
Authorization token Bearer eyJhbGjgfjG2INQjIHFirwSw 登录接口
Content-Type application/json

Body-parameters:

Parameter Type Description Required Since
contractNo string 合同编号 True -
phone string 手机号 True -
name string 客户姓名 True -
subject string 意向学科 True -
channel string 渠道来源 false 0:线上活动<br>1:推广介绍
activityId int64 活动信息 false -
courseId int64 课程id True -
fileName string 文件名称 True -

Request-example:

{
    "name": "测试888",
    "phone": "13612341888",
    "contractNo": "HT10012004",
    "subject": "6",
    "courseId": 99,
    "channel": "0",
    "activityId": 77,
    "fileName": "/profile/upload/2023/01/05/86e5a3b8-b08c-470c-a17d-71375c3a8b9f.pdf"
}

Response-example:

响应状态码:200

响应数据:{ "msg": "操作成功", "code": 200}

操作步骤:

1、Environments中设置fileName

2、给合同上传中设置Tests

3、创建添加合同接口并设置对应属性

4、发送请求并查看响应结果(这里我怎么弄都是500,应该是服务端有问题)

查询合同列表

URL: /api/contract/list

Type: GET

Description: 查询合同列表

Request-header:

参数名称 参数值 是否必填 示例 备注
Authorization token Bearer eyJhbGjgfjG2INQjIHFirwSw 登录接口

Query-parameters:

Parameter Type Description Required Since
phone string 手机号 false -

Response-fields:

Field Type Description Since
total int64 总记录数 -
rows array 列表数据 -
code int32 消息状态码 -
msg string 消息内容 -
params map No ***ments found. -
└─any object object any object. -

Response-example:

响应状态码:200

响应数据:

{
    "total": 1,
    "rows": [
        {
            "createBy": "admin",
            "createTime": "2023-01-05 08:58:51",
            "id": "7417444345987875",
            "contractNo": "HT10012004",
            "phone": "13612341888",
            "name": "测试888",
            "subject": "6",
            "channel": "0",
            "activityId": 77,
            "activityName": "代金券测试888",
            "courseId": 99,
            "courseName": "接口测试001",
            "status": "1",
            "fileName": "/profile/upload/2023/01/05/86e5ad-71375c3a8b9f.pdf",
            "coursePrice": 998.0,
            "discountType": "代金券",
            "order": 898.0,
            "deptId": 103
        }
    ],
    "code": 200,
    "msg": "查询成功"
}

操作步骤:

1、创建对应请求:

2、发送请求并查看结果

删除合同:

URL: /api/contract/remove

Type: POST

Description: 删除课程管理

Request-header:

参数名称 参数值 是否必填 示例 备注
Authorization token Bearer xxxxxx 登录接口
Content-Type application/x-www-form-urlencoded

Body-parameters:

Parameter Description Required Since
id 合同id true

Request-example:

{ "id": 10950251898105098 }

响应状态码:200

响应数据:

① 删除成功:删除成功!

② 未登录:{ "msg": "请求访问:/contract/remove,认证失败,无法访问系统资源","code": 401}

③ 删除失败:删除失败!

④ 删除失败:缺少必填参数:id

操作步骤:

1、配置接口文档:

2、发送请求,查看结果(这个地方有很多种请求):

再删除一次就会显示:

单接口测试请看这个帖子:单接口测试:课程管理(增删改查)

2、jmeter接口测试

获取验证码

1、测试计划中添加线程组:

2、添加http请求,并配置路径

3、添加监听器-查看结果树

4、运行并查看结果

登录

1、根据接口文档,设置好请求信息

2、添加http信息头管理器

3、先禁用一下获取验证码,不让它uuid,再运行查看结果

4、上面步骤是手工复制uuid,下面用后置处理器来提取uuid,解决接口关联的问题:

此处需要学习一个路径表示方式:JSON Path

JSON Path:用于定位和提取JSON 数据的查询语言

语法:

$:根据结点对象表示整个JSON数据的起始点(表示的是外头的大括号)

. :获取子节点

[]:索引,根据索引访问数组中的元素

*:通配符,获取全部子节点

[?(<expression>)]:过滤器表达式。,。表达式结果必须是布尔值

@:过滤器处理的当前节点对象

与postman不同的是,uuid引用的方式不同了,在登录请求体中:

最终查看响应结果:

由于这些地址都是客达天下的网址,每一个都去改太麻烦了,这里可以去添加一个配置元件:http请求默认值:

新增课程

操作步骤:

1、根据接口文档,设置好请求信息

2、添加http请求头:

在登录接口添加后置处理器

3、设置新增课程的请求体信息:

4、查看响应结果(此处应该有一个课程ID的。但是我这个没有,postman里也没有,提取ID的方法和提取uuid、token一样的,在新增课程节点后添加后置处理器):

如下图:

5、点击查看结果树中,对于复杂的JSON数据,切换到JSON path tester,输入$.data.id,确认这个能提取出ID,然后将它复制过去:

6、发送请求查看响应结果:

查询课程列表:

1、根据接口文档,设置好请求信息

2、添加http请求头:

3、发送请求查看响应结果,如正确的截图

添加响应状态码断言和JSON断言:

1、添加状态码断言

2、进行运行,查看结果树

失败:

成功:

1、添加JSON数据断言:

2、进行运行,查看结果树

1、添加JSON断言:断言code值为200

转载请说明出处内容投诉
CSS教程网 » postman+jmeter接口测试实战项目-客达天下

发表评论

欢迎 访客 发表评论

一个令你着迷的主题!

查看演示 官网购买