# 自动化测试平台
**Repository Path**: gui-gui-123/CrazyTester
## Basic Information
- **Project Name**: 自动化测试平台
- **Description**: 集成接口、UI的易上手且功能强大的自动化测试平台
- **Primary Language**: Python
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 9
- **Created**: 2024-07-11
- **Last Updated**: 2024-07-11
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
## 前言
2022年4月6日18:57:42:
**代码已下架,仅开放使用文档为同好小伙伴提供设计思路**
**作者微信:SSR_SandMan(1、备注来意;2、不再提供代码,免开尊口)**
**☆ 功能介绍&使用文档详情可查看:**
github:https://github.com/GuoJinga/CrazyTester_pub
码云:https://gitee.com/Crazy__G/CrazyTester.git
**☆ 全栈开发简而精但功能又丰富强大、可视化强、用户易上手、高可用的自动化测试平台。
集成了接口、UI、MQTT、报表四大方向,并通过定时任务、报警通知、统计看板等功能持续监控产品质量,及时通知反馈任务测试结果。**
☆ **意义:降本提效**
1、摒弃传统手动测试阶段、代码框架管理阶段、直接进入可视化平台阶段。使即使不会代码的测试小伙伴也能轻松使用平台,参与自动化测试建设,实现自动化复测&回归;
2、团队在平台共同协作,将所有自动化测试数据资产落库留存,以便复用&流传;
3、通过自动化运行降低测试人员的测试时间成本、人力成本,提高测试效率、测试准确率、测试可靠性。
☆ **技术构架:**
前端bootstrap、后端python+Django、数据库mysql、消息列队RabbitMQ等
python包:requests、APScheduler、selenium、appium、阿里云SDK等
☆ **项目功能:**
登录、项目管理、分组管理、用例管理、测试任务(定时任务)、
全局环境(全局变量、全局域名、全局请求头、全局cookies)、
统计看板、测试报告、报告通知(企业微信、邮箱、办公OA)等
☆ **落地成果:**
总计管理13个项目,通过自动化运行,减少繁琐复杂的人工操作,在多套环境下减轻接口、 UI、MQTT、报表 复测与回归成本,为测试工作降本提效,持续监控产品质量并持续供质量保障。
1、**接口测试:**
目前管理 3126个接口、11032条用例、306个测试任务。
每日定时任务执行用例5455个,平均执行时长10min。相比手工执行5455min+,提效545倍+。
2、**UI测试:**
目前管理505条用例、18953步有效步骤。112个测试任务。
每个任务平均执行时长10min,每执行一个任务解放人力10min。
3、**MQTT测试:**
目前管理 1002条Topic、2612条用例、95个测试任务。
每日定时任务执行用例1033,平均执行时长15min。相比手工执行3099min+,提效206倍+。
4、**报表测试:**
目前管理报表43张。
# 自动化测试平台 使用文档
### 目录
- 平台简介
- [为什么实现平台化](#pingtai_youshi)
- [本平台接口测试优势](#api_youshi)
- [平台功能平铺图](#structure1)
- [平台功能结构图](#structure2)
- [接口业务使用流程](#api_liucheng)
- [接口单用例测试执行流程详解](#api_case_liucheng)
- [接口用例设计思想](#api_case_design)
- 基础通用功能
- [登录、登出](#lgoin)
- [项目配置](#project_config)
- [全局环境](#env)
- [参数化功能](#canshuhua)
- [报告通知](#report)
- [接口测试](#API)
- 快速上手
- [新增项目](#api_qiuck_add_project)
- [新增全局环境](#api_qiuck_add_env)
- 新增全局域名
- 新增全局变量
- 新增全局请求头
- 新增全局cookies
- [项目下创建分组、接口](#api_qiuck_add_group)
- 手动创建分组、接口
- 使用yapi同步功能 自动同步分组、接口
- [创建用例&用例调试](#api_qiuck_add_case)
- [创建任务&执行定时任务](#api_qiuck_add_task)
- 功能详情
- [系统看板](#xitongkanban)
- [项目管理](#api_project)
- [分组管理](#api_group)
- [接口管理](#api_api)
- [用例管理](#api_case)
- [用例参数详解](#api_case_detail)
- [测试任务](#api_task)
- [测试任务组](#api_task_group)
- [测试报告](#api_testreport)
- [定制功能-Yapi同步](#api_yapi)
- [定制功能-AKSK验证](#api_aksk)
- [MQTT测试](#MQTT)
- [UI测试](#UI)
- [报表测试](#RrpotForm)
# 平台简介
## 1. 为什么实现平台化
- 摒弃传统手动测试阶段、代码框架管理阶段、直接进入可视化平台阶段。使即使不会代码的测试小伙伴也能轻松使用平台,实现自动化测试建设。
- 团队在平台共同协作,将测试用例、测试数据等质量过程资产归档落库留存,以便复用&流传;
- 通过自动化运行降低测试人员的测试时间成本、人力成本,提高测试效率、测试准确率。在回归测试,冒烟测试等场景下效率显著。
### 2. 本平台接口测试优势
- 打通Yapi,支持Yapi项目接口一键同步到平台并生成初始化用例
- 丰富的用例功能,样例数据、断言、参数化、个性化前后置等操作
- 支持多用例串联集成场景化定时任务
- 支持多任务集成任务组,减少项目下多任务的繁琐管理
- 任务支持测试多套全局环境
- 报告支持发送至OA、邮箱,实现告警通知
- 支持接口AKSK鉴权
- 可通过任务接口打通devops平台
## 3、平台功能平铺图

## 4、平台功能结构图

### 5. 接口业务使用流程

### 6. 平台中单用例测试执行流程详解

### 7. 平台中接口用例设计思想
- 1、用例设计维度:
① 一个接口 由多条用例 不同数据 验证不同的验证点(即断言)
② 一条用例 由多条断言 去支撑测试结论
③ 一条用例 由多组数据 (样例数据)扩充用例的测试范围、支撑用例可靠性的强度
- 2、举例:新开发的登录接口
① 接口多条用例:账号不可为空、密码不可为空、密码错误、禁用账户....
② 一条用例多组数据:这10条密码应都错误
③ 禁用账户用例设置断言接口状态码成功400、返回code400、用户状态为-1
- 3、一条用例不代表只发送一次请求,会发送(样例数据+全局变量)次
- 4、样例数据虽然有多组数据,但视为一条用例,其中一组数据失败则用例失败
# 基础通用功能
### 一、登录、登出
#### 1. 登录
- 界面如下:

#### 2. 登出
- 点击页面右上方用户名按钮即可退出
- 界面如下:

### 二、项目配置
#### 1、新增项目

#### 2、项目配置参数

- 必填:
* 项目标题
* 可见用户:手动填写可见用户账号,用英文逗号分割,注意是测试平台人员账号
* 项目类型:一般填写接口项目
- 选填:
* 描述
* 版本
* MQTT实例
* 同步yapi配置信息:Yapi host、Yapi 项目id、Yapi 项目token
### 三、全局环境
#### 1、全局环境
- 全局环境包含:全局域名、全局变量、全局请求头、全局cookie。
- 在接口测试、UI测试、MQTT测试的单用例&任务测试中都需要选择全局环境。
#### 2、全局域名
- 接口测试专用

#### 3、全局变量
- 全局变量格式如下:
```json
[
{
"key": "参数名",
"value": "参数值",
"description": "参数描述",
"enabled": false // 是否启用
},
{
"key": "key",
"value": "value",
"description": "description",
"enabled": false
},
......
]
```

#### 4、全局请求头
- 接口测试专用
- 全局域名格式如下:
```json
{
"key1": "value1",
"key2": "value2",
"key3": "value3",
......
}
```

#### 5、全局cookies
- 接口测试专用
- 全局域名格式如下:
```json
{
"key1": "value1",
"key2": "value2",
"key3": "value3",
......
}
```

### 四、参数化功能
- #### 参数化来源
1. 全局变量:通过全局变量中的参数 参数化用例中的变量
2. 前置操作:通过前置操作获取的参数 参数化用例中的变量
3. 变量方法:通过特定方法 参数化用例中的变量
- #### 参数化格式
1. 普通参数化格式:{{variable}}
可被参数化的项:请求地址、请求参数、请求体、请求头、请求cookies、样例数据、方法断言
```
使用示例:
当前全局变量中数据:
[
{
"key": "name",
"value": "张三",
"description": "姓名",
"enabled": true
},
{
"key": "phone",
"value": "13120009968",
"description": "手机号",
"enabled": true
}
]
当前用例中请求体数据:
{
"name": "{{name}}",
"phone": "{{phone}}"
}
发送用例后,实际请求体数据:
{
"name": "张三",
"phone": "13120009968"
}
```
2. 变量方法格式:{@xxx}
```
变量方法:
{@date}:当天日期:2021-04-12
{@date+n}:当天日期+n天
{@date+n}:当天日期-n天
{@timestamp}: 毫秒级时间戳:1618209388194
{@num}: 自增长int数字,从1开始
使用示例:
参数化前:
{
"key1": "{@date} {@date+1} {@date-2} {@date}",
"key2": "{@timestamp} {@timestamp} {@timestamp}",
"key3": "{@num} {@num} {@num} {@num}"
}
参数化后:
{
"key1": "2021-04-17 2021-04-18 2021-04-15 2021-04-17",
"key2": "1618630477124 1618630477124 1618630477124",
"key3": "1 2 3 4"
}
```
### 五、报告通知
略
# 接口自动化测试
## 快速上手
- [新增项目](#api_qiuck_add_project)
- [新增全局环境](#api_qiuck_add_env)
- 新增全局域名
- 新增全局变量
- 新增全局请求头
- 新增全局cookies
- [项目下创建分组、接口](#api_qiuck_add_group)
- 手动创建分组、接口
- 使用yapi同步功能 自动同步分组、接口
- [创建用例&用例调试](#api_qiuck_add_case)
- [创建任务&执行定时任务](#api_qiuck_add_task)
#### 一、新增项目
- 1、新增项目

- 2、项目配置参数
- 必填:
* 项目标题
* 可见用户:手动填写可见用户账号,用英文逗号分割,注意是测试平台人员账号
* 项目类型:一般填写接口项目
- 选填:
* 描述
* 版本
* MQTT实例
* 同步yapi配置信息:Yapi host、Yapi 项目id、Yapi 项目token

#### 二、新增全局环境
- 位置

##### 1、新增全局域名
- 点击全局域名后面的+号

- 填写标题、选择项目、填写域名(字符串格式、按需填写)
- 域名示例:https://xxx-xxx.uat.xxx.com/

##### 2、新增全局变量
- 点击全局变量后面的+号
- 填写标题、选择项目、填写变量(json中[]格式、按需填写)
- 请求头示例:
``` json
[
{
"key": "cklphone",
"description": "登录账号",
"enabled": true,
"value": [
"18681552452"
]
},
{
"key": "变量名称",
"description": "变量描述",
"enabled": true, //是否禁用此变量
"value": [
"20210801" // 变量值
]
}
...
]
```

##### 3、新增全局请求头
- 点击全局请求头后面的+号
- 填写标题、选择项目、填写请求头内容(json中{}格式、按需填写)
- 请求头示例:
``` json
{
"Authorization": "123456xxx",
"Content-Type": "application/json"
...
}
```

##### 4、新增全局cookies
- 点击全局cookies后面的+号
- 填写标题、选择项目、填写cookies内容(json中{}格式、按需填写)
- cookies示例:
``` json
{
"token1": "79b134wIjoxNjY",
"token2": "r7XWRtudJ-qI"
...
}
```

##### 5、保存

#### 三、项目下创建分组、接口
- 方式一、手动创建分组&接口

- 方式二、使用yapi同步功能自动创建分组&接口
详情查看文档 `Yapi同步功能` 部分内容
#### 四、创建用例&用例调试
- 1、创建分组&接口后,点击接口名称,进入接口用例管理界面
- 2、填写用例数据
① 选择刚才创建的全局环境
② 填写url
③ 填写请求参数或请求体
④ 按需使用参数化:
示例中:调用全局变量参数: tenantId、account、password
⑤ 设计断言:
示例中:
1、验证状态码=200;
2、验证响应code=200
3、验证auth不为空
4、验证auth=123456(错误断言)

⑥ 将响应中userId数据取出,并放到全局变量命名为userId,以便后续接口调用全局变量
⑦ 将响应中auth数据取出,并放到全局请求头中命名为Authorization,后续接口请求头中会自动添加Authorization

⑧ 发送请求调试用例:看到请求成功,并且调试断言直至符合需求即可


#### 五、创建任务&执行定时任务
- 1、测试任务中,添加任务
- ① 填写任务名称
- ② 测试类型选择:场景测试(目前只场景测试即可)
- ③ 选择所属项目
- ④ 选择要运行的环境
- ⑤ 填写用例id:用例管理页面中会展示用例id

- ⑥ 勾选要运行的环境:
- ⑦ 选填定时表达式,六位:秒分时天月周:例子:0 17 8,13 * * 0-4
- ⑧ 配置报告接收
- ⑨ 保存即可

- 2 运行测试任务

- 执行完成后,从页面提示,或任务执行记录中查看执行详情

- 查看历史执行记录

- 查看执行详情

- 查看OA通知

- 填写定时任务并启动定时任务后,会定时执行任务
## 功能详情
### 一. 系统看板
#### 1. 用例统计图

#### 2. 测试任务分布图

#### 3. 最近7天测试结果统计图

#### 4. 近七周用户新增用例统计

#### 5. 用户新增统计

### 二. 项目管理
界面如下:

#### 1. 新增项目
> 按钮权限:仅超级管理员可见
> 新增后 项目只有创建者可见;添加可见用户格式: `zhangsan,lisi,wangwu`
#### 2. 上传excel用例
1. 用例模板可从分组、接口中下载用例的excel文件作为模板使用。
2. excel数据格式
① 项目名、分组名、接口名、接口描述、请求方式、用例状态、用例描述、请求地址 为 字符串格式
② 入参-url参数、入参-请求体、样例数据、headers、cookies、断言、前置操作、响应设置全局变量 为 json格式
每个json格式参数具体json内容,下载用例后参照已有数据。
3. 上传逻辑:
① 没有查到项目名称 则自动创建此新项目
② 没有查到分组名称 则在对应项目下创建分组
③ 没有查到接口名称 则在对应分组下创建接口
④ 没有查到用例名称 则在对应分组下创建用例
⑤ 同接口下 已存在相同用例名称 则会更新
#### 3. 项目配置
> 按钮权限:仅超级管理员可见
> 可配置项目名称、描述、版本号、可见用户
### 三. 分组管理
界面如下:

#### 1. 新增分组
1. 点击【分组管理】
2. 输入 分组名称
3. 点击【新增】
#### 2. 编辑分组
1. 点击【分组管理】
2. 选择 要编辑的分组
3. 输入 新的分组名称
4. 点击【更新】
#### 3. 删除分组
1. 点击【分组管理】
2. 选择 要编辑的分组
3. 输入 新的分组名称
4. 点击【删除】
#### 下载用例
> 下载所选分组下所有接口下的所有用例信息。文件格式:excel,下载后可修改excel后使用【上传用例】功能 上传更新
### 四. 接口管理
界面如下:

#### 1. 新增接口
1. 点击【新增接口】
2. 选择 所属分组、请求方式、接口名称、接口描述
3. 点击【新增】
4. 即可在所选分组下新增接口
#### 2. 编辑接口
#### 3. 删除接口
#### 4. 下载接口用例
> 下载接口下所有用例信息。文件格式:excel,下载后可修改excel后使用【上传用例】功能 上传更新
### 五. 用例管理
界面如下:

#### 1. 新增用例
- 方法一:新增
1. 点击【清空】
2. 填写用例数据
3. 点击【保存】
4. 即可将页面上用例数据作为一个新用例 新增到当前接口下
- 方法二:另存
1. 选择已有用例
2. 在用例中修改参数
3. 点击【另保】
4. 即可将页面上新数据作为一个新用例 新增到当前接口下
#### 2. 更新用例
1. 选择要修改的用例
2. 在页面修改用例数据
3. 点击【更新】
4. 此用例更新成功
#### 3. 删除用例
1. 选择要修改的用例
2. 点击【删除】
3. 删除后会自动进入下一个用例
#### 4. 清空用例
清空用例:所有数据清空(只是在页面展示上清空用例数据),不会做保存操作
### 六. 用例参数详解
- #### 用例标题、用例描述、用例url地址
类型:字符串
- #### 请求参数:请求参数query & 请求体body
- 请求参数query:
无论在get还是post请求中,都会把 键值对 拼接到地址中
- 请求体body:
在get请求方式中,拼接到地址中;
在post请求方式中,会作为单独的请求体;

- #### 样例数据
样例数据的作用是 期望自己添加的数据都符合断言,会循环请求每一条数据,直到数据都循环完毕,
如果某条数据断言失败则停止循环,断言会显示此条数据的失败信息
为了方便添加样例数据,可以在excel中粘贴数据,在点击【excel与json互转】是粘贴数据转为json格式数据
首行为数据名称(用例参数格式化名称),后面的每一行都为实际的数据

- #### 断言
* 1、字段说明
| 项 | 说明 |
| -------- | -----: |
| 状态 | 为1代表启用,非1代表禁用,默认1 |
| 变量路径 | 要取出的响应内容(python格式的取值写法格式) |
| 断言方式 | 提供了一些封装好的方法,也可以选择最后一个方式自己写代码断言 |
| 期望值 | 可以写str格式、json格式 |
| 实际值 | 发送请求后可查看实际值 |
| 断言结果 | 发送请求后可查看断言结果 |
* 2、断言方式如下:

* 3、部分断言方式实际使用示例:

- #### 实际请求参数
发送请求后,所有变量 都会被全局变量、前置操作、样例数据 参数化后的实际值
测试人员可参考`实际请求参数` 调试优化所写的断言、前置、后置。
发送请求后可查看`实际请求参数`
- #### 响应体
响应体:返送请求后展示响应的内容
发送请求后可查看`响应体`
- #### 请求头 & 响应头
请求头:请求接口所用的请求头,正常填写即可
响应体:返送请求后展示响应的内容
发送请求后可查看`响应体`

- #### 前置操作
1、功能说明:
可以调用其他用例,并取出指定响应数据,放到全局变量中
2、字段详情:
| 项 | 说明 |
| -------- | -----: |
| 状态 | 为1代表启用,非1代表禁用,默认1 |
| 调用用例id | 已有用例id |
| 设置参数名 | 为要取出的内容设置变量名 |
| 参数键 | 要取出的响应内容(python格式的取值写法格式) |
| 实际值 | 发送请求后可查看 |
- #### 后置操作:响应体中的参数设置到全局变量
1、功能说明:
本次用例执行完毕之后 ,将响应体中的参数提取出来放到全局变量中
2、字段详情:
| 项 | 说明 |
| -------- | -----: |
| 状态 | 为1代表启用,非1代表禁用,默认1 |
| 变量名称 | 为要取出的内容设置变量名 |
| 变量键 | 要取出的响应内容(python格式的取值写法格式) |
| 实际值 | 响应体中对应的值(发送请求后可查看) |
3、使用示例:
1. 发送请求后得到响应体:

2.
① 将响应体中的 ["code"] 设置到全局变量中(同名变量覆盖),并命名为code1
② 将响应体中的 ["code"] 设置到全局变量中(同名变量追加),并命名为code2

3. 发送请求后,查看全局变量是否设置成功
```
此时全局变量值:
[
{
"key": "code1",
"value": [
"200"
],
"enabled": true,
"description": ""
},
{
"key": "code2",
"value": [
"200",
],
"enabled": true,
"description": ""
}
]
```
可以看到都设置成功

- #### 后置操作:响应体中的参数设置到全局请求头
1、功能说明:
本次用例执行完毕之后 将相应体中的参数提取出来放到全局请求头中
具体操作同 [响应体中的参数设置到全局请求头]
- #### 后置操作:响应cookies全部设置到当前全局cookies中
1、功能说明:
本次用例执行完毕之后 将本次响应cookies放到全局cookies中
- #### 后置操作:清空全局cookies
1、功能说明:
本次用例执行完毕之后 清空全局cookies
- #### 自定义代码(前置、断言、后置)
0、功能说明:
在前置方法、断言方法、后置方法中无法完善用例时,可用自定义代码功能补充
自定义代码-前置:作用在发送请求之前
自定义代码-断言:作用在发送请求之后(偏重断言)
自定义代码-后置:作用在发送请求之后(偏重设置变量、请求头等)
1、自定义代码中可用的变量:
```
原生模块:time、json
响应体:response 类型--> response.json()["code"] # 响应体变量在自定义前置操作中不可用
错误信息:error_msg = "" # 错误信息为空代表设置成功,不为空代表失败,初始为空
全局域名:global_host --> str
全局变量:global_variable --> [{}, {},....]
全局请求头:global_header --> {}
全局cookies:global_cookie --> {}
请求地址:url --> str
请求url参数:params --> {}
请求体:data --> {}
请求头:headers --> {}
请求cookies:cookies --> {}
```
2、使用方法:
① 字符串str类型 只可修改:
```
示例数据:args = "这是一段str字符串"
改:args = "这是一段str文字" # 直接赋值即可
```
② 字典{}类型 增删改:
```
示例数据:args = {"key1": "value1"}
1、获取:xx = args["key1"] --> xx: value1
2、增:args["key2"] = "value2" --> args: {"key1": "value1", "key2": "value2"}
3、删:del["key1"] --> args: {}
4、改:args["key1"] = "new_value" --> args: {"key1": "new_value"}
```
③ 全局变量比较特殊,使用以下为提供的方法增删改:
```
示例数据 args:
args = [
{
"key":"示例key",
"value":[
"示例value"
],
"description":"示例描述",
"enabled":true
}
]
1、获取全局变量的值:xx = get_global_variable(key)
v = get_global_variable("示例key") --> v: 示例value
2、添加或修改全局变量都使用这个方法:add_global_variable(key, value, desc)
修改:add_global_variable("示例key", "更新的值 必填", "更新的描述 选填")
-->
args: [
{
"key":"示例key",
"value":[
"更新的值 必填"
],
"description":"更新的描述 选填",
"enabled":true
}
]
新增:add_global_variable("新的key", "新的key的值", "新的key的描述")
-->
args: [
{
"key":"示例key",
"value":[
"示例value"
],
"description":"示例描述",
"enabled":true
},
{
"key":"新的key",
"value":[
"新的key的值"
],
"description":"新的key的描述",
"enabled":true
}
]
3、删除某个全局变量:delete_global_variable(key) --> args: []
```
### 七. 测试任务
界面如下:

#### 1. 新增任务
界面如下:

> 全量测试:
测试范围:(`分组id`下所有接口 + `接口id`)去重后,所有接口下的用例,多线程执行用例
> 冒烟测试:
测试范围:(`分组id`下所有接口 + `接口id`)去重后,所有接口下的第二个用例(每个接口只测一条用例),多线程执行用例
> 场景测试:
测试范围:填写`用例id`,按顺序执行用例(只处理用例id,写分组id、接口id无效)
> 选择项目:
在全量测试、冒烟测试情况下,可以在`测试分组id`中填写"all", 代表测试此项目下所有分组所有接口所有用例
> cron表达式:
6位的cron表达式(秒 分 时 天 月 周):例: 每小时定时执行:0 0 * * * *
#### 2. 编辑任务
#### 3. 删除任务
#### 4. 开始定时任务/停止定时任务/查看正在进行中的任务
cron表达式为空,或者不符合规范时,会有错误提示。
#### 5. 执行记录
点击会跳转到报告列表页面,并且只展示此任务的执行报告记录。
#### 6. 详情
点击可查看任务详情,如果启动了此任务的定时任务,则会在详情中展示下次执行时间。
### 八. 任务组
界面如下:

> 把多个任务放到一起形成一个任务组,方便定时任务的统一管理和任务的复用
> 界面功能基本与测试任务一致
### 九. 测试报告
#### 1. 报告列表
界面如下:

#### 2. 报告详情
> ① 查看报告详情

> ② 查看失败用例详情
### 十、Yapi同步功能
#### 1、配置项目信息
- 1、在yapi项目的设置中找到以下三条信息:
* Yapi host:yapi域名,例:https://apidock.xxx.net(地址最后不要斜杠/)
* Yapi 项目id:例:9999
* Yapi 项目token:例:abcdefg1234567890abcdefg

- 在项目中配置yapi信息
- 
#### 2、同步yapi菜单&创建接口用例
- 进入项目后,点击【同步Yapi】-【立即同步】即可实现同步yapi菜单&接口,并自动创建一条初始化用例

- 如果有报错,会展示报错信息,没有报错展示统计信息
- ① 同步接口结果统计

- ② 新增接口后新增其下用例统计

#### 3、同步细则(了解即可)
```
yapi有分组,库里没有:新增分组、新增接口
yapi有分组,库里也有:更新(名称),并下探接口
1、yapi有,库里没有:新增
2、yapi有,库里也有:更新
3、yapi没有,库里有:提示“非yapi接口”,清空yapi_api_id
yapi没分组,库里有:提示“非yapi分组”,清空 分组中yapi_group_id,和其下接口中yapi_api_id
新增接口后是否新增用例:
请求方式:GET:
新增用例
请求方式:POST:
如果请求数据类型为json:
新增用例
如果请求数据类型为file、raw、form:
不新增
请求方式:其他:
不新增
```
### 十一、AKSK功能
#### 1、功能简介
AKSK:根据入参(请求头、请求体)、AK、SK 自动生成鉴权头authorization
#### 2、使用限制
- 请求体body仅限{}格式
- 请求方式仅限 GET、POST
#### 3、使用方法
- 1、接口启用AKSK:
新增或编辑时,勾选AKSK

- 2、全局变量中配置access_key、secret_key
配置参考如下:
```
[
{
"key": "access_key",
"value": [
"xxxxxxx"
],
"description": "",
"enabled": true
},
{
"key": "secret_key",
"value": [
"yyyyyyy"
],
"description": "",
"enabled": true
}
]
```
- 3、用例中自动生成AKSK鉴权头authorization
- 发送用例前:此时用例没有添加请求头authorization:

- 发送用例后:实际发送请求后会自动添加authorization:

# UI测试
> 核心思想与功能用法基本与`接口测试`一致,大同小异,略
# MQTT测试
**使用前请先了解MQTT整体使用流程、单用例测试流程&参数详解,以便高效进行MQTT测试。**
## 1. 阿里云MQTT与自动化平台交互构架

## 2. 界面展示

## 3. 相关参数

## 4. 单用例测试流程与用例参数详解

## 5. 功能使用
> 其他功能与`接口测试`使用思路基本一致,略
# 报表测试
> 定制化需求,略