<h1 align="center" style="text-align:center;">
  APIAuto
</h1>
 
<p align="center">☔ HTTP 接口 机器学习零代码测试 和 一站式智能开发管理 工具</p>

<p align="center" >
  <a href="https://github.com/TommyLemon/APIAuto#%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B">使用文档</a>
  <a href="https://space.bilibili.com/437134249/search/video?keyword=apiauto">视频教程</a>
  <a href="http://apijson.cn/api">在线体验</a>
</p>

<p align="center" >
  <img src="https://raw.githubusercontent.com/TommyLemon/APIAuto/master/img/logo.png" />
</p>

---
敏捷开发最强大易用的 HTTP 接口工具，机器学习零代码测试、生成代码与静态检查、生成文档与光标悬浮注释。<br />
提供集 文档、测试、Mock、调试、管理 于一体的一站式体验，还有一键 格式化、注释/取消注释 等高效易用的快捷键。<br />
在常用功能上远超 Postman, Swagger, YApi, Rap 等其它各种 开源、商业 的 API 文档/测试 工具。<br />
支持 HTTP GET/POST API，智能显示和切换；支持一键导入 Swagger, Rap, YApi 的用例和文档。<br />
不仅适用于 RESTful、类 RESTful、GRPC 的 API，还是腾讯 [APIJSON](https://github.com/Tencent/APIJSON) 官方建议的文档与测试工具。<br />
腾讯内部用户包括 IEG 互动娱乐事业群、TEG 技术工程事业群、CSIG 云与智慧事业群 等， <br />
外部用户包含 工商银行某地分行、500强上市公司传音、跨境电商龙头 SHEIN、行业领头羊社保科技 等。

<h3 align="center" style="text-align:center;">
腾讯 AI 测试圈子演讲(部分)
</h3>

![](https://raw.githubusercontent.com/TommyLemon/StaticResources/master/APIAuto/APIAuto_Tencent_TEG_AITestCircle_quick_and_slow.gif)


#### 腾讯内先后被 TEG 工具开发组、微信支付部门、IEG 工具开发组、CDG 金融支付组、IEG PC 游戏平台部 邀请分享了 
* APIAuto-机器学习 HTTP 接口工具
* 零代码测试工具与实践(API•单元•UI)
* 零代码开发和测试(API测试•单元测试•API开发)
* 零代码开发和测试(API测试•单元测试•API开发)
* 零代码开发和测试(接口测试•单元测试•接口开发)

#### 质效无双线上技术访谈-零代码智能测试工具实践介绍-第11期
https://testwo.cn1.quickconnect.cn/vs/sharing/iiP8VK1C#!aG9tZV92aWRlby0xMQ==
![https://testwo.cn1.quickconnect.cn/vs/sharing/iiP8VK1C#!aG9tZV92aWRlby0xMQ==](https://user-images.githubusercontent.com/5738175/179575169-de9cc578-6d90-4aec-bbf4-f28147277ed2.png)

#### 和华为云副总裁并列，QECon-全球软件质量&效能 大会分享总结
零代码开发和测试 成为大会主会场回看预约海报唯一分会场演讲范例 <br /><br />
<img width="1360" alt="wecom-temp-377bbd0daf5aed716baf7ebcb003d94c" src="https://user-images.githubusercontent.com/5738175/121370207-1b35de00-c96f-11eb-840e-cc2ff2995888.png">

<img width="390" src="https://user-images.githubusercontent.com/5738175/125167121-86bed580-e1d1-11eb-9dc6-2ea190146fe6.png">

现场录播回放视频：QECon大会-零代码开发和测试(APIJSON和APIAuto)<br />
https://www.bilibili.com/video/BV1yv411p7Y4
<br />

![](https://raw.githubusercontent.com/TommyLemon/StaticResources/master/APIAuto/APIAuto_mltesting.gif)
![](https://raw.githubusercontent.com/TommyLemon/StaticResources/master/APIAuto/APIAuto_mltest_check_result.gif)


![image](https://user-images.githubusercontent.com/5738175/145665614-f9208e35-9dc2-4a02-a8c9-0d7c9f4a87bc.png)
![APIJSON 和 APIAuto - 零代码开发和测试-QECon 大会-图像 008](https://user-images.githubusercontent.com/5738175/145665488-42b04a4b-1f74-4fb8-8a62-db3535f4256c.jpeg)
![APIJSON 和 APIAuto - 零代码开发和测试-QECon 大会-图像 009](https://user-images.githubusercontent.com/5738175/145665490-d90dda3f-2439-44d2-b7ae-88fb6f7e6c92.jpeg)
![APIJSON 和 APIAuto - 零代码开发和测试-QECon 大会-图像 010](https://user-images.githubusercontent.com/5738175/145665492-65409dd7-10ef-4c70-928e-48affe020df4.jpeg)
![APIJSON 和 APIAuto - 零代码开发和测试-QECon 大会-图像 012](https://user-images.githubusercontent.com/5738175/145665496-628f7cc4-f6b9-4329-a759-8d0185de4f87.jpeg)
![APIJSON 和 APIAuto - 零代码开发和测试-QECon 大会-图像 013](https://user-images.githubusercontent.com/5738175/145665502-94231804-5ea8-4784-b30d-d5558aad0f8d.jpeg)
![APIJSON 和 APIAuto - 零代码开发和测试-QECon 大会-图像 014](https://user-images.githubusercontent.com/5738175/145665504-a6d6b251-0284-4026-9d62-0cc7937082b1.jpeg)
![APIJSON 和 APIAuto - 零代码开发和测试-QECon 大会-图像 016](https://user-images.githubusercontent.com/5738175/145665508-0c02afe0-0e13-4f5f-8fd8-f0a017ed6e26.jpeg)
![APIJSON 和 APIAuto - 零代码开发和测试-QECon 大会-图像 017](https://user-images.githubusercontent.com/5738175/145665509-cf1d841a-a7a6-441c-8b68-eaf65b452bfc.jpeg)
![APIJSON 和 APIAuto - 零代码开发和测试-QECon 大会-图像 018](https://user-images.githubusercontent.com/5738175/145665512-86b5f067-c490-4de6-afa7-78c0f328c9cd.jpeg)
![APIJSON 和 APIAuto - 零代码开发和测试-QECon 大会-图像 019](https://user-images.githubusercontent.com/5738175/145665514-b22e7180-237a-4f13-acc1-8eb21c9b5b37.jpeg)
![APIJSON 和 APIAuto - 零代码开发和测试-QECon 大会-图像 020](https://user-images.githubusercontent.com/5738175/145665516-61e2693b-ec34-4775-9a71-52b5af5d3ede.jpeg)
![APIJSON 和 APIAuto - 零代码开发和测试-QECon 大会-图像 021](https://user-images.githubusercontent.com/5738175/145665518-a35bc996-9cc2-478a-a1de-7ba731dbe557.jpeg)
![APIJSON 和 APIAuto - 零代码开发和测试-QECon 大会-图像 022](https://user-images.githubusercontent.com/5738175/145665522-8f0ff509-5510-4d94-96e2-d088aecf6fce.jpeg)
![APIJSON 和 APIAuto - 零代码开发和测试-QECon 大会-图像 023](https://user-images.githubusercontent.com/5738175/145665525-a624f521-4a6f-4315-9aa3-a7309348d083.jpeg)
![APIJSON 和 APIAuto - 零代码开发和测试-QECon 大会-图像 024](https://user-images.githubusercontent.com/5738175/145665527-4a5da35a-da8c-4abd-8fb7-71059fbb4520.jpeg)
![APIJSON 和 APIAuto - 零代码开发和测试-QECon 大会-图像 025](https://user-images.githubusercontent.com/5738175/145665528-dabbcaa0-617a-41e7-b3d3-cc66251934b1.jpeg)
![APIJSON 和 APIAuto - 零代码开发和测试-QECon 大会-图像 026](https://user-images.githubusercontent.com/5738175/145665530-5b3b1cbd-0962-49fa-ab59-b307672b7c62.jpeg)
![APIJSON 和 APIAuto - 零代码开发和测试-QECon 大会-图像 027](https://user-images.githubusercontent.com/5738175/145665531-2449009f-7fea-435c-ad0e-f7f2f525d4e5.jpeg)
![APIJSON 和 APIAuto - 零代码开发和测试-QECon 大会-图像 028](https://user-images.githubusercontent.com/5738175/145665535-b86d4e49-cfa5-4aa5-8f71-d8e68a85828a.jpeg)
![APIJSON 和 APIAuto - 零代码开发和测试-QECon 大会-图像 030](https://user-images.githubusercontent.com/5738175/145665537-de24b9b6-b47f-45cd-82bf-b7d06d156ce6.jpeg)
![APIJSON 和 APIAuto - 零代码开发和测试-QECon 大会-图像 031](https://user-images.githubusercontent.com/5738175/145665538-983ffe6f-f293-466a-ab4c-d5de12e20fae.jpeg)
![APIJSON 和 APIAuto - 零代码开发和测试-QECon 大会-图像 033](https://user-images.githubusercontent.com/5738175/145665542-2e1b0a43-ed06-4305-8e7d-b7c475dad0f9.jpeg)
![APIJSON 和 APIAuto - 零代码开发和测试-QECon 大会-图像 034](https://user-images.githubusercontent.com/5738175/145665545-00229bae-726a-4426-ae76-d43ed45df65d.jpeg)
![APIJSON 和 APIAuto - 零代码开发和测试-QECon 大会-图像 036](https://user-images.githubusercontent.com/5738175/145665552-05259dac-9546-4819-9db3-bb23e332f742.jpeg)
![APIJSON 和 APIAuto - 零代码开发和测试-QECon 大会-图像 037](https://user-images.githubusercontent.com/5738175/145665553-68403dcb-4cdd-42d4-9ffc-e32657e16b2b.jpeg)


<br /><br />

### 特点功能

* 自动生成接口文档，光标悬浮注释
* 自动校验与格式化参数，支持高亮和收展
* 自动生成各种语言前后端代码，一键下载
* 自动机器学习零代码测试接口，一键运行
* 自动管理接口测试用例，一键共享
* 自动给请求JSON加注释，一键切换
* 自动保存历史请求记录，一键恢复

以上是简略图，机器学习测试、自动生成代码、自动静态检查、自动生成注释 等详细的功能介绍见 <br />

[https://github.com/TommyLemon/APIAuto/blob/master/apijson/README.md](https://github.com/TommyLemon/APIAuto/blob/master/apijson/README.md)

### 演讲稿件
[APIAuto-机器学习 HTTP 接口工具](https://github.com/TommyLemon/StaticResources/tree/master/APIAuto/Share) <br />
[QECon 大会-腾讯 Tommy-零代码开发和测试](https://github.com/TommyLemon/StaticResources/tree/master/APIAuto/Share)

### 视频教程
[Bilibili](https://space.bilibili.com/437134249/search/video?keyword=apiauto) <br />
[优酷](https://i.youku.com/i/UNTg1NzI1MjQ4MA==)

### 相关推荐
[别再生成测试代码了！](https://mp.weixin.qq.com/s/G1GVNhhFbSX5GoyRU6GURg)

### 百度、搜狗、抖音公网接口调用演示<br />
因为这些接口不支持 CORS 跨域，所以需要开启托管服务代理。<br />
可以复制 Chrome 等浏览器、Charles 等抓包工具的请求文本，<br />
粘贴到 APIAuto 的 URL 输入框，会自动填充 URL, JSON, Header 等。<br />
https://github.com/TommyLemon/APIAuto/issues/16 

#### 百度
![APIAuto_request_thirdparty_api_baidu](https://user-images.githubusercontent.com/5738175/154853951-558b9ce0-b8a5-4f35-a811-3c3fbee1235a.gif)

#### 搜狗
![APIAuto_request_sogou_api](https://user-images.githubusercontent.com/5738175/154854769-dbb0da94-ce59-41a9-8e79-f500c61e17b3.gif)

#### 抖音
![APIAuto_request_douyin_api](https://user-images.githubusercontent.com/5738175/154854538-d21f22cc-d9f1-4f84-ae2f-8e63bfd02f8f.gif)

<br />

**还可以参考视频：APIAuto 测试请求第三方 HTTP API** <br />
https://www.bilibili.com/video/BV1JZ4y1d7c8
![image](https://user-images.githubusercontent.com/5738175/160234764-a8e02ca4-1d0e-407b-8ac7-2f85c9f200d6.png)


<br/>

### 快速上手

本项目是纯静态 SPA 网页，下载源码解压后：<br />
可以用浏览器打开 index.html，建议用 [Chrome](https://www.google.com/intl/zh-CN/chrome) 或 [Firefox](https://www.mozilla.org/zh-CN/firefox) (Safari、Edge、IE 等可能有兼容问题)，注意此方法不显示 svg 图标。<br />
也可以用 [IntelIJ Webstorm](https://www.jetbrains.com/webstorm/), [IntelliJ IDEA](https://www.jetbrains.com/idea/), [Eclipse](https://www.eclipse.org/) 等 IDE 来打开。<br />
也可以部署到服务器并用 [Nginx](https://www.jianshu.com/p/11fa3a1a6d65) 或 [Node](https://segmentfault.com/a/1190000039744899) 反向代理，或者 [把源码放到 SpringBoot 项目的 resources/static 目录](https://github.com/APIJSON/APIJSON-Demo/tree/master/APIJSON-Java-Server)。 <br />
还可以直接访问官方网站 http://apijson.cn/api <br />
<br />
把左侧 URL 输入框内基地址改为你主机的地址(例如 http://localhost:8080 )，<br />
然后在右上角 设置 下拉菜单内修改 数据库类型Database、数据库模式Schema。<br />
<br />
右上角登录的默认管理员账号为 13000082001 密码为 123456，<br />
右侧上方中间 3 个标签是默认的测试用户账号，点击登录/退出，左侧 - 删除，右侧 + 新增。<br />
<br />
**自动生成文档、自动管理测试用例 这两个功能 需要部署 APIJSON 后端，建议用 APIJSONBoot 系列之一 Demo，见** <br /> 
https://github.com/APIJSON/APIJSON-Demo/tree/master/APIJSON-Java-Server

**建议使用已 [内置 APIAuto](https://github.com/APIJSON/APIJSON-Demo/tree/master/APIJSON-Java-Server/APIJSONBoot-MultiDataSource/src/main/resources/static) 的 [APIJSONBoot-MultiDataSource](https://github.com/APIJSON/APIJSON-Demo/tree/master/APIJSON-Java-Server/APIJSONBoot-MultiDataSource)，可以避免以下常见问题 1, 3, 4**

### 后台 Headless 无 UI 模式回归测试
Jenkins、蓝盾 等 CI/CD 等流水线不支持带 UI 测试，所以提供了这个模式， <br />
通过调用 HTTP API 即可执行用例和查看进度，方便集成到 CI/CD 流水线。
![image](https://user-images.githubusercontent.com/5738175/199452068-dee4cbcb-ca4c-484a-8953-84b6bd238982.png)
![image](https://user-images.githubusercontent.com/5738175/199453742-b1e897f5-6950-40e2-8bfc-80b826966c6b.png)

#### 1.配置 Node 环境及 NPM 包管理工具
https://nodejs.org

#### 2.安装相关依赖
https://koajs.com
```sh
nvm install 7
npm i koa
```

#### 3.使用后台 HTTP 服务
先启动 HTTP 服务
```sh
cd js
node server.js
```
如果运行报错 missing package xxx，说明缺少相关依赖，参考步骤 2 来执行
```sh
npm i xxx
```
然后再启动 HTTP 服务。<br />

启动成功后会有提示，点击链接或者复制到浏览器输入框打开即可。<br /><br />
如果托管服务是用 [APIJSONBoot-MultiDataSource](https://github.com/APIJSON/APIJSON-Demo/tree/master/APIJSON-Java-Server/APIJSONBoot-MultiDataSource) 部署的，<br />
链接 host 后可以加上 /api，例如 http://localhost:3000/api/test/start，<br />
通过这个接口来放宽前端执行时查询测试用例、参数配置等列表的条数，一次可批量执行更多用例。

<br /><br />

### 常见问题

**本网页工具基本每个按钮/输入框等 UI 组件都有注释或悬浮文档等形式的操作提示，<br />
很多问题都不需要看文档/视频，可以直接通过把光标放上去等简单尝试来得到解答**

#### 1.无法访问接口
如果是 APIAuto 本身调用的后端接口，则一般是 Chrome 90+ 对 CORS 请求禁止携带 Cookie  <br />
或 Chrome 80-89 强制 same-site Cookie 的策略导致，打开以下链接查看解决方法 <br />
https://github.com/TommyLemon/APIAuto/issues/9

如果是其它接口，则一般是以上原因或者被接口不支持 CORS 跨域，可以改为支持， <br />
或者在 APIAuto 右上角设置开启托管服务器代理，通过后端代理访问接口， <br />
注意默认是官网的托管服务器 http://apijson.cn:9090 ，仅支持公网， <br />
如果是贵公司内网，请按以上 [部署方法](https://github.com/TommyLemon/APIAuto#%E9%83%A8%E7%BD%B2%E6%96%B9%E6%B3%95) 文档来部署 APIJSON 后端到内网，并修改托管服务器地址。

#### 2.没有生成文档
右上角设置项与数据库实际配置不一致 等  <br />
https://github.com/Tencent/APIJSON/issues/85

#### 3.托管服务器访问不了
不能代理接口、不能展示文档、不能对断言结果纠错 等 <br />
https://github.com/TommyLemon/APIAuto/issues/12

#### 4.apijson.cn 访问不了
托管服务地址改为 http://47.74.39.68:8080  <br />
https://github.com/TommyLemon/APIAuto/issues/13

更多问题及解答 <br />
https://github.com/TommyLemon/APIAuto/issues

<br />

### 感谢开源
* jsonon
* editor.md
* vue.js

### 技术交流
##### 关于作者
[https://github.com/TommyLemon](https://github.com/TommyLemon)<br />
<img width="1279" alt="image" src="https://user-images.githubusercontent.com/5738175/199979403-ace8b574-cd64-4582-8c19-b51571945214.png">

如果有什么问题或建议可以 [提 issue](https://github.com/TommyLemon/APIAuto/issues)，交流技术，分享经验。<br >
如果你解决了某些 bug，或者新增了一些功能，欢迎 [提 PR 贡献代码](https://github.com/Tencent/APIJSON/blob/master/CONTRIBUTING.md)，感激不尽。
<br />
<br />

### 其它项目

[APIJSON](https://github.com/Tencent/APIJSON) 🚀 腾讯零代码、全功能、强安全 ORM 库 🏆 后端接口和文档零代码，前端(客户端) 定制返回 JSON 的数据和结构

[UnitAuto](https://github.com/TommyLemon/UnitAuto) 机器学习单元测试平台，零代码、全方位、自动化 测试 方法/函数 的正确性和可用性

[SQLAuto](https://github.com/TommyLemon/SQLAuto) 智能零代码自动化测试 SQL 语句执行结果的数据库工具，任意增删改查、任意 SQL 模板变量、一键批量生成参数组合、快速构造大量测试数据

[apijson-doc](https://github.com/vincentCheng/apijson-doc) APIJSON 官方文档，提供排版清晰、搜索方便的文档内容展示，包括设计规范、图文教程等

[APIJSONdocs](https://github.com/ruoranw/APIJSONdocs) APIJSON 英文文档，提供排版清晰的文档内容展示，包括详细介绍、设计规范、使用方式等

[apijson.org](https://github.com/APIJSON/apijson.org) APIJSON 官方网站，提供 APIJSON 的 功能简介、登记用户、作者与贡献者、相关链接 等

[APIJSON.NET](https://github.com/liaozb/APIJSON.NET) C# 版 APIJSON ，支持 MySQL, PostgreSQL, SQL Server, Oracle, SQLite

[apijson-go](https://github.com/glennliao/apijson-go) Go 版 APIJSON ， 基于Go(>=1.18) + GoFrame2, 支持查询、单表增删改、权限管理等
  
[apijson-go](https://gitee.com/tiangao/apijson-go) Go 版 APIJSON ，支持单表查询、数组查询、多表一对一关联查询、多表一对多关联查询 等

[apijson-hyperf](https://github.com/kvnZero/hyperf-APIJSON.git) PHP 版 APIJSON，基于 Hyperf 支持 MySQL

[APIJSON-php](https://github.com/xianglong111/APIJSON-php) PHP 版 APIJSON，基于 ThinkPHP，支持 MySQL, PostgreSQL, SQL Server, Oracle 等

[apijson-php](https://github.com/qq547057827/apijson-php) PHP 版 APIJSON，基于 ThinkPHP，支持 MySQL, PostgreSQL, SQL Server, Oracle 等

[apijson-node](https://github.com/kevinaskin/apijson-node) 字节跳动工程师开源的 Node.ts 版 APIJSON，提供 nestjs 和 typeorm 的 Demo 及后台管理

[uliweb-apijson](https://github.com/zhangchunlin/uliweb-apijson) Python 版 APIJSON，支持 MySQL, PostgreSQL, SQL Server, Oracle, SQLite 等

[apijson-practice](https://github.com/vcoolwind/apijson-practice) BAT 技术专家开源的 APIJSON 参数校验注解 Library 及相关 Demo

[Android-ZBLibrary](https://github.com/TommyLemon/Android-ZBLibrary) Android MVP 快速开发框架，Demo 全面，注释详细，使用简单，代码严谨


### 持续更新
https://github.com/TommyLemon/APIAuto/commits/master


### 我要赞赏
创作不易，右上角点 ⭐Star 支持下本项目吧，谢谢 ^_^ <br />
https://github.com/TommyLemon/APIAuto
