Giter Site home page Giter Site logo

tommylemon / apiauto Goto Github PK

View Code? Open in Web Editor NEW
1.9K 39.0 237.0 6.02 MB

☔ 敏捷开发最强大易用的 HTTP 接口工具,机器学习零代码测试、生成代码与静态检查、生成文档与光标悬浮注释,集 文档、测试、Mock、调试、管理 于一体的一站式体验。☔ The most advanced tool for HTTP API. Testing with machine learning, generating codes and static analysis, generating comments and floating hints, one site for document, testing, mocking, debugging and management.

Home Page: http://apijson.cn/api

License: Apache License 2.0

JavaScript 84.87% CSS 9.64% HTML 5.49%
apijson vuejs2 document-database autotesting javascript api api-testing apitesting documentation-tool headless

apiauto's Introduction

APIAuto

☔ HTTP 接口 机器学习零代码测试 和 一站式智能开发管理 工具

快速上手 视频教程 在线体验


敏捷开发最强大易用的 HTTP 接口工具,机器学习零代码测试、生成代码与静态检查、生成文档与光标悬浮注释。
集 文档、测试、Mock、调试、管理 于一体的一站式体验,还有一键 格式化、注释/取消注释 等高效易用的快捷键。
在常用功能上远超 Postman, Swagger, YApi 等各种 开源、商业 的 API 文档/测试 工具,并能一键导入用例和文档。
支持 GET, POST, PUT, PATCH, DELETE, HEAD 等各种 HTTP Method 及 Content-Type, URL /{Path}/{Variable}。
不仅适用于 RESTful、类 RESTful、GRPC 的 API,还是腾讯 APIJSON 官方建议的文档与测试工具。
腾讯内部用户包括 IEG 互动娱乐事业群、TEG 技术工程事业群、CSIG 云与智慧事业群 的多个部门及团队,
外部用户包含 华为、工商银行某地分行、500 强上市公司传音、跨境电商巨头 SHEIN、行业领头羊社保科技 等。

腾讯 AI 测试圈子演讲(部分)

腾讯内先后被 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==

和华为云副总裁并列,QECon-全球软件质量&效能 大会分享总结

零代码开发和测试 成为大会主会场回看预约海报唯一分会场演讲范例

wecom-temp-377bbd0daf5aed716baf7ebcb003d94c

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

image APIJSON 和 APIAuto - 零代码开发和测试-QECon 大会-图像 008 APIJSON 和 APIAuto - 零代码开发和测试-QECon 大会-图像 009 APIJSON 和 APIAuto - 零代码开发和测试-QECon 大会-图像 010 APIJSON 和 APIAuto - 零代码开发和测试-QECon 大会-图像 012 APIJSON 和 APIAuto - 零代码开发和测试-QECon 大会-图像 013 APIJSON 和 APIAuto - 零代码开发和测试-QECon 大会-图像 014 APIJSON 和 APIAuto - 零代码开发和测试-QECon 大会-图像 016 APIJSON 和 APIAuto - 零代码开发和测试-QECon 大会-图像 017 APIJSON 和 APIAuto - 零代码开发和测试-QECon 大会-图像 018 APIJSON 和 APIAuto - 零代码开发和测试-QECon 大会-图像 019 APIJSON 和 APIAuto - 零代码开发和测试-QECon 大会-图像 020 APIJSON 和 APIAuto - 零代码开发和测试-QECon 大会-图像 021 APIJSON 和 APIAuto - 零代码开发和测试-QECon 大会-图像 022 APIJSON 和 APIAuto - 零代码开发和测试-QECon 大会-图像 023 APIJSON 和 APIAuto - 零代码开发和测试-QECon 大会-图像 024 APIJSON 和 APIAuto - 零代码开发和测试-QECon 大会-图像 025 APIJSON 和 APIAuto - 零代码开发和测试-QECon 大会-图像 026 APIJSON 和 APIAuto - 零代码开发和测试-QECon 大会-图像 027 APIJSON 和 APIAuto - 零代码开发和测试-QECon 大会-图像 028 APIJSON 和 APIAuto - 零代码开发和测试-QECon 大会-图像 030 APIJSON 和 APIAuto - 零代码开发和测试-QECon 大会-图像 031 APIJSON 和 APIAuto - 零代码开发和测试-QECon 大会-图像 033 APIJSON 和 APIAuto - 零代码开发和测试-QECon 大会-图像 034 APIJSON 和 APIAuto - 零代码开发和测试-QECon 大会-图像 036 APIJSON 和 APIAuto - 零代码开发和测试-QECon 大会-图像 037



特点功能

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

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

https://github.com/TommyLemon/APIAuto/blob/master/apijson/README.md

演讲稿件

APIAuto-机器学习 HTTP 接口工具
QECon 大会-腾讯 Tommy-零代码开发和测试

视频教程

Bilibili:https://search.bilibili.com/all?keyword=APIAuto image


优酷:https://i.youku.com/i/UNTg1NzI1MjQ4MA== image

相关推荐

别再生成测试代码了!

百度、搜狗、抖音公网接口调用演示

因为这些接口不支持 CORS 跨域,所以需要开启托管服务代理。
可以复制 Chrome 等浏览器、Charles 等抓包工具的请求文本,
粘贴到 APIAuto 的 URL 输入框,会自动填充 URL, JSON, Header 等。
#16

百度

APIAuto_request_thirdparty_api_baidu

搜狗

APIAuto_request_sogou_api

抖音

APIAuto_request_douyin_api


还可以参考视频:APIAuto 测试请求第三方 HTTP API
https://www.bilibili.com/video/BV1JZ4y1d7c8 image


快速上手

本项目是纯静态 SPA 网页,下载源码解压后:
可以用浏览器打开 index.html,建议用 ChromeFirefox (Safari、Edge、IE 等可能有兼容问题),注意此方法不显示 svg 图标。
也可以用 IntelliJ Webstorm, IntelliJ IDEA, Eclipse 等 IDE 来打开。
也可以部署到服务器并用 NginxNode 反向代理,或者 把源码放到 SpringBoot 项目的 resources/static 目录
还可以直接访问官方网站 http://apijson.cn/apihttp://apijson.cn:8080

把左侧 URL 输入框内基地址改为你主机的地址(例如 http://localhost:8080 ),
然后在右上角 设置 下拉菜单内修改 数据库类型Database、数据库模式Schema。

右上角登录的默认管理员账号为 13000082001 密码为 123456,
右侧上方中间 3 个标签是默认的测试用户账号,点击登录/退出,左侧 - 删除,右侧 + 新增。

自动生成文档、自动管理测试用例 这两个功能 需要部署 APIJSON 后端,建议用 APIJSONBoot 系列之一 Demo,见
https://github.com/APIJSON/APIJSON-Demo/tree/master/APIJSON-Java-Server

建议使用已 内置 APIAutoAPIJSONBoot-MultiDataSource,可以避免以下常见问题 1, 3, 4


新增测试用例

可以使用以下几种方式:

1.从 Postman/Swagger/YApi/Rap 等其它接口工具/平台一键导入

点右上角登录 > 点右上角设置 > 导入第三方文档(平台 URL) > 如果默认设置不符你的需求,可以在弹窗内修改 > 点上传按钮

2.从浏览器 Network 接口信息界面或 Charles 等抓包工具复制后粘贴到 URL 输入框

https://github.com/TommyLemon/APIAuto#%E7%99%BE%E5%BA%A6%E6%90%9C%E7%8B%97%E6%8A%96%E9%9F%B3%E5%85%AC%E7%BD%91%E6%8E%A5%E5%8F%A3%E8%B0%83%E7%94%A8%E6%BC%94%E7%A4%BA

3.调用 /delegate 代理接口来录制请求的方法、参数、Header、响应等信息

https://github.com/APIJSON/APIJSON-Demo/tree/master/APIJSON-Java-Server/APIJSONBoot-MultiDataSource#%E4%BB%A3%E7%90%86%E6%8E%A5%E5%8F%A3%E5%8F%8A%E5%BD%95%E5%88%B6%E6%B5%81%E9%87%8F

4.打开分享链接来自动填充 URL、参数 JSON、请求头、参数注入配置、设置项 等

例如: http://apijson.cn/api/?send=true&type=JSON&url=http%3A%2F%2Fapijson.cn%3A8080%2Fget&json={%22[]%22:{%22Comment%22:{},%22User%22:{%22id@%22:%22%2FComment%2FuserId%22}}}

5.在界面手动填写 URL、参数 JSON、请求头 等再点击上传/分享按钮

可点击分享按钮生成分享链接,用浏览器打开即可自动填充。
退出登录后可设置 使用的请求类型,全部类型为 PARAM,JSON,FORM,DATA,GRPC


后台 Headless 无 UI 模式回归测试

Jenkins、蓝盾 等 CI/CD 等流水线不支持带 UI 测试,所以提供了这个模式,
通过调用 HTTP API 即可执行用例和查看进度,方便集成到 CI/CD 流水线。 image image

1.配置 Node 环境及 NPM 包管理工具

https://nodejs.org

2.安装相关依赖

https://koajs.com

nvm install 7
npm i koa

3.使用后台 HTTP 服务

先启动 HTTP 服务

cd js
node server.js

如果运行报错 missing package xxx,说明缺少相关依赖,参考步骤 2 来执行

npm i xxx

然后再启动 HTTP 服务。

启动成功后会有提示,点击链接或者复制到浏览器输入框打开即可。

如果托管服务是用 APIJSONBoot-MultiDataSource 部署的,
链接 host 后可以加上 /api,例如 http://localhost:3000/api/test/start,
通过这个接口来放宽前端执行时查询测试用例、参数配置等列表的条数,一次可批量执行更多用例。



常见问题

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

1.无法访问接口

如果是 APIAuto 本身调用的后端接口,则一般是 Chrome 90+ 对 CORS 请求禁止携带 Cookie
或 Chrome 80-89 强制 same-site Cookie 的策略导致,打开以下链接查看解决方法
#9

如果是其它接口,则一般是以上原因或者被接口不支持 CORS 跨域,可以改为支持,
或者在 APIAuto 右上角设置开启托管服务器代理,通过后端代理访问接口,
注意默认是官网的托管服务器 http://apijson.cn:9090 ,仅支持公网,
如果是贵公司内网,请按以上 部署方法 文档来部署 APIJSON 后端到内网,并修改托管服务器地址。

2.没有生成文档

右上角设置项与数据库实际配置不一致 等
Tencent/APIJSON#85

3.托管服务器访问不了

不能代理接口、不能展示文档、不能对断言结果纠错 等
#12

4.apijson.cn 访问不了

托管服务地址改为 http://47.98.196.224:8080
#13

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


感谢开源

  • jsonon
  • editor.md
  • vue.js

技术交流

关于作者

https://github.com/TommyLemon

如果有什么问题或建议可以 提 issue,交流技术,分享经验。
如果你解决了某些 bug,或者新增了一些功能,欢迎 提 PR 贡献代码,感激不尽。

其它项目

APIJSON 🚀 腾讯零代码、全功能、强安全 ORM 库 🏆 后端接口和文档零代码,前端(客户端) 定制返回 JSON 的数据和结构

UnitAuto 机器学习单元测试平台,零代码、全方位、自动化 测试 方法/函数 的正确性和可用性

SQLAuto 智能零代码自动化测试 SQL 语句执行结果的数据库工具,任意增删改查、任意 SQL 模板变量、一键批量生成参数组合、快速构造大量测试数据

UIGO 📱 零代码快准稳 UI 智能录制回放平台 🚀 自动兼容任意宽高比分辨率屏幕,自动精准等待网络请求,录制回放快、准、稳!

apijson-doc APIJSON 官方文档,提供排版清晰、搜索方便的文档内容展示,包括设计规范、图文教程等

APIJSONdocs APIJSON 英文文档,提供排版清晰的文档内容展示,包括详细介绍、设计规范、使用方式等

apijson.org APIJSON 官方网站,提供 APIJSON 的 功能简介、登记用户、作者与贡献者、相关链接 等

APIJSON.NET C# 版 APIJSON ,支持 MySQL, PostgreSQL, SQL Server, Oracle, SQLite

apijson-go Go 版 APIJSON , 基于Go(>=1.18) + GoFrame2, 支持查询、单表增删改、权限管理等

apijson-go Go 版 APIJSON ,支持单表查询、数组查询、多表一对一关联查询、多表一对多关联查询 等

apijson-hyperf PHP 版 APIJSON,基于 Hyperf 支持 MySQL

APIJSON-php PHP 版 APIJSON,基于 ThinkPHP,支持 MySQL, PostgreSQL, SQL Server, Oracle 等

apijson-php PHP 版 APIJSON,基于 ThinkPHP,支持 MySQL, PostgreSQL, SQL Server, Oracle 等

apijson-node 字节跳动工程师开源的 Node.ts 版 APIJSON,提供 nestjs 和 typeorm 的 Demo 及后台管理

uliweb-apijson Python 版 APIJSON,支持 MySQL, PostgreSQL, SQL Server, Oracle, SQLite 等

apijson-practice BAT 技术专家开源的 APIJSON 参数校验注解 Library 及相关 Demo

Android-ZBLibrary Android MVP 快速开发框架,Demo 全面,注释详细,使用简单,代码严谨

持续更新

https://github.com/TommyLemon/APIAuto/commits/master

我要赞赏

腾讯、**邮政、字节跳动、阿里巴巴、美团、网易、百度、京东、滴滴、平安、SHEIN、快手、携程、Bilibili、微众银行、VIVO、
58 集团、中兴 等 和国外 NVIDIA, Amazon, SAP, ThoughtWorks, Red Hat 等各大知名大厂员工点了 Star,感谢大家的支持~
image

创作不易、坚持更难,右上角点亮 ⭐Star 支持/收藏下本项目吧,谢谢 ^_^
https://github.com/TommyLemon/APIAuto

apiauto's People

Contributors

tommylemon avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

apiauto's Issues

首个 Python 零代码单元测试 unitauto-py 开源,UnitAuto Python 版

【UnitAuto+APIJSON前后端本地部署问题】-查看用例列表,远程共享数据数据没有展示出来

本地后端部署代码:
1、后端部署了APIJSONBoot5.4.0的代码
2、前端用的是UnitAuto-Admin最新的代码
3、sql执行的是5.4.0版本包里面的sql文件

查看、同步方法文档上传单元测试用例这个问题是正常的,存在以下几个问题点,望指教
1、未登录-点击查用例列表,远程共享数据数据没有展示出来
image

2、已登录-点击查看用例列表,提示登录用户不能get请求
image

点击“查看、同步方法文档:可先编辑再上传”-“上传”之后,显示成功了,但是没有拉取到用例,数据库中也没有发现记录

我用的是"APIJSON-Demo-6.0.0"
我在UnitAuto-Java-Demo原来的基础上新增了一个类包含3个方法
我上传的时候,没有异常,并且UnitAuto-Java-Demo中也没有异常,页面也提示上传成功。但是在/APIJSONBoot的控制台显示数据库错误
image
image
我在APIJSON-Java-Server/APIJSONBoot/src/main/java/apijson/demo/DemoSQLConfig.java中配置了我本地的数据库并且能登录成功和之前的用例(所以数据库的配置应该是正确的),请问这个错误是我需要从哪里修改配置吗

页面虽然显示了上传成功,但是我从“远程共享用例列表”没有找到我新建的类方法请问下,是不是和上面数据库报错有关系呢,请帮忙给点建议意见
image

请问机器学习在这其中做了什么

您好,请问ApiAuto这个项目中,机器学习采用什么算法,它起到了哪些作用,或者说哪些功能用到了机器学习的什么,多谢
另外,可否提供更方便的联系方式,方便沟通

解决 无法访问非同域名下的接口 或 登录后 Cookie 马上失效且自动退出登录

Chrome 80+ 强制 same-site Cookie 的策略导致。

Chrome 94+ 可以以下方式 或 使用旧版(偶尔失效)

打开 tab 页面 chrome://flags/#block-insecure-private-network-requests
将其 Block insecure private network requests 设置为 Disabled, 然后重启就行了, 这样子就相当于把这个功能禁用掉。
image

Chrome 90+ 其它版本可以用以下方式(推荐,目前每次测试都有效)

先完全退出 Chrome,然后终端命令启动

open -n /Applications/Google\ Chrome.app/ --args --disable-features=SameSiteByDefaultCookies,CookiesWithoutSameSiteMustBeSecure --disable-web-security --user-data-dir=~/MyChromeDevUserData/

会有一个报错弹窗:Chrome 无法对目录 MyChromeDevUserData 进行写入操作。
点击确定会启动开发调试模式的 Chrome,浏览器地址栏下会多出一栏:

image

然后再按以下方式修改 Chrome 设置

Chrome 87 以下可以修改 Chrome 设置

https://www.cnblogs.com/jingmo0319/p/13402645.html
还不行再试试把设置项 Reduce default 'referer' header granularity 改为 Enabled。
image

或安装和使用浏览器插件 Access-Control-Allow-Origin

https://chrome.google.com/webstore/detail/allow-cors-access-control/lhobafahddgcelffkeicbaginigeejlf

Chrome 87-89 目前经测试只能以关闭安全验证模式启动 Chrome(推荐,目前每次测试都有效)

Windows

Chrome.exe 文件快捷方式中属性 目标 添加

--disable-web-security --user-data-dir

具体见 https://www.cnblogs.com/q149072205/p/12162233.html

MacOS

终端输入命令

open -n -a /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome \ --args --user-data-dir="/tmp/chrome_dev_test" --disable-web-security

具体见 https://www.jianshu.com/p/2db73311fcbe/

如果以上都不行,或者还存在登录态总是失效问题

可以把 APIAuto 源码部署到和被测服务同一域名(最好是同一机器,SpringBoot 项目可放在 static 目录),
参考 APIAuto 使用的后端 APIJSONBoot-MultiDataSource
https://github.com/APIJSON/APIJSON-Demo/tree/master/APIJSON-Java-Server/APIJSONBoot-MultiDataSource

或者直接用旧版 Chrome(80 以下)
https://www.slimjet.com/chrome/google-chrome-old-version.php

机器学习零代码单元测试 UnitAuto 3 新增 Python&更新 Java, Go•优化算法

Admin

兼容 Go, Python 等语言的 多返回类型、指针 等场景;针对 Go, Python 设置默认用例;
前后对比新增支持深入数组子项;
机器学习测试:新增支持值重复断言,可通过前后置脚本 JSONResponse.COMPARE_VALUE_REPEAT = 1 或 2 开启;
Node:支持 CORS 跨域;新增 /test/compare 前后对比断言接口 和 /test/ml 机器学习断言接口,可脱离 UI 使用;
Headless 无 UI 后台测试:解决 Vue 版本兼容问题、document.cookie 报错 document undefnied;
随机与顺序测试:在用例列表项新增统计结果;在没有上传过对比标准时使用默认参数对应的 response 和 standard,也能比较精准地断言;

SDK

Java: 更新 jar 包;
Go: 新增支持 mock 各种 Struct 的成员变量,包括组合等复杂自定义对象;
Python: 新增 Python 版,还有单独的仓库 unitauto-py;

文档

新增支持的 Kotlin 版本说明;
新增关于新增测试用例 4 种方式的说明文档;
常见问题新增 5. 如何统计行覆盖率 / 分支覆盖率?

更多图文内容见
https://www.oschina.net/news/253259/unitauto-3-0-0

【UnitAuto+APIJSON前后端本地部署问题】上传用例报错 POST请求,请在 内传 TestRecord:{} !

本地后端部署代码:
1、后端部署了APIJSONBoot6.0.0的代码
2、前端用的是UnitAuto-Admin 2.9.0最新的代码
3、sql执行的是6.0.0版本包里面的sql文件

POST http://localhost:8080/post
Content-Type: application/json
Cookie: Hm_lvt_965ec968d2d53b729b90efc7ffb3ead2=1682177888; Hm_lpvt_965ec968d2d53b729b90efc7ffb3ead2=1682178312; JSESSIONID=8A2C0C39A5D76046FC399A7D9AC962EB
Host: apijson.cn:9090

{
"format":false,
"Method":{
"userId":82001,
"language":"Java",
"package":"unitauto.test",
"class":"TestUtil",
"method":"plus",
"this":null,
"constructor":null,
"classArgs":null,
"genericClassArgs":null,
"methodArgs":[
{
"type":"Number",
"value":97.66362
},
{
"type":"Number",
"value":93.2855
}
],
"genericMethodArgs":[
{
"type":"Number",
"value":97.66362
},
{
"type":"Number",
"value":93.2855
}
],
"type":"double",
"genericType":"double",
"static":1,
"ui":0,
"exceptions":null,
"genericExceptions":null,
"detail":"plus"
},
"TestRecord":{
"randomId":0,
"host":"unitauto.test.TestUtil.",
"response":""
},
"tag":"Method"
}

2023-04-23 01:05:01.455: AbstractVerifier.INFO: verifyRequest method = POST; name = ; target =
{"Method":{"INSERT":{"@ROLE":"OWNER"},"MUST":"method,class,package","REFUSE":"id"},"TestRecord":{"INSERT":{"@ROLE":"OWNER"},"UPDATE":{"documentId@":"Method/id"},"MUST":"response","REFUSE":"id,documentId"}}
request =
{"Method":{"userId":82001,"language":"Java","package":"unitauto.test","class":"TestUtil","method":"plus","methodArgs":[{"type":"Number","value":97.66362},{"type":"Number","value":93.2855}],"genericMethodArgs":[{"type":"Number","value":97.66362},{"type":"Number","value":93.2855}],"type":"double","genericType":"double","static":1,"ui":0,"detail":"plus","@method":"POST"}}
2023-04-23 01:05:01.457: AbstractVerifier.INFO: verifyRequest method = POST; name = Method; target =
{"INSERT":{"@ROLE":"OWNER"},"MUST":"method,class,package","REFUSE":"id"}
request =
{"userId":82001,"language":"Java","package":"unitauto.test","class":"TestUtil","method":"plus","methodArgs":[{"type":"Number","value":97.66362},{"type":"Number","value":93.2855}],"genericMethodArgs":[{"type":"Number","value":97.66362},{"type":"Number","value":93.2855}],"type":"double","genericType":"double","static":1,"ui":0,"detail":"plus","@method":"POST"}
2023-04-23 01:05:01.457: AbstractVerifier.INFO: parse return real = {"userId":82001,"language":"Java","package":"unitauto.test","class":"TestUtil","method":"plus","methodArgs":[{"type":"Number","value":97.66362},{"type":"Number","value":93.2855}],"genericMethodArgs":[{"type":"Number","value":97.66362},{"type":"Number","value":93.2855}],"type":"double","genericType":"double","static":1,"ui":0,"detail":"plus","@method":"POST","@ROLE":"OWNER"}
java.lang.IllegalArgumentException: POST请求,请在 内传 TestRecord:{} !
at apijson.orm.AbstractVerifier$1.onParseJSONObject(AbstractVerifier.java:651)
at apijson.orm.AbstractVerifier.parse(AbstractVerifier.java:964)
at apijson.orm.AbstractVerifier.parse(AbstractVerifier.java:878)
at apijson.orm.AbstractVerifier.verifyRequest(AbstractVerifier.java:643)
at apijson.orm.AbstractVerifier.verifyRequest(AbstractVerifier.java:599)
at apijson.orm.AbstractVerifier.verifyRequest(AbstractVerifier.java:548)
at apijson.orm.AbstractParser.objectVerify(AbstractParser.java:2340)
at apijson.orm.AbstractParser.batchVerify(AbstractParser.java:2243)
at apijson.orm.AbstractParser.parseCorrectRequest(AbstractParser.java:574)
at apijson.orm.AbstractParser.parseCorrectRequest(AbstractParser.java:882)
at apijson.orm.AbstractParser.onVerifyContent(AbstractParser.java:525)
at apijson.framework.APIJSONParser.onVerifyContent(APIJSONParser.java:180)
at apijson.orm.AbstractParser.parseResponse(AbstractParser.java:418)
at apijson.framework.APIJSONParser.parseResponse(APIJSONParser.java:117)
at apijson.orm.AbstractParser.parseResponse(AbstractParser.java:391)
at apijson.orm.AbstractParser.parse(AbstractParser.java:363)
at apijson.framework.APIJSONController.parse(APIJSONController.java:93)
at apijson.framework.APIJSONController.post(APIJSONController.java:175)
at apijson.boot.DemoController.post(DemoController.java:187)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1067)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:665)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:750)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:360)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:890)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1743)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:750)

【UnitAuto】查看、同步方法文档没有结果

1、下载项目,直接用IDEA打开【UnitAuto-Java-Demo】并运行
2、打开http://localhost:8081/,上传查看文档
image
3、报上图错误,继续上传,只导入了一个类的用例(看了一下这个类是jar包里的,demo里写的方法并没有生成用例)
image
4、试了在外面访问method/list,也失败了
image

请问正确的操作应该是怎么样的(比如将UnitAuto集成到自己的springboot项目,哪些配置是必需的)。

机器学习零代码单元测试平台 UnitAuto 2.9 新增 Go 版、Mock Java 复杂对象

Go:

新增 Go 版,支持 同步、异步 Func/Mehod,支持基本类型和自定义 Struct, Interface 等:
https://github.com/TommyLemon/UnitAuto/tree/master/UnitAuto-Go

还有单独的仓库 unitauto-go,单独发版:
https://github.com/TommyLemon/unitauto-go/releases

Java:

新增支持 mock 各种对象的成员变量,包括继承、嵌套等复杂自定义对象;

Admin:

新增自动智能补全、环境对比测试、前置与后置脚本等功能;

解决静态检查回调方法报错格式不对;
注释符 // 前空格改为 1 个;
同步前端代码到 Demo;

更多图文内容见
https://www.oschina.net/news/234690/unitauto-2-9-released

使用教程

TommyLemon你好,这个APIAUTO要怎么样使用来进行接口测试,clone工程到本地后打开index.html,但是不知道应该怎么导入yapi导出的接口,测试管理如何进行?

视频教程

视频教程有点粗糙呀,等我学会了,补个完整的哈哈

APIAuto优化建议

image
描述:正常情况鼠标移动至标记圈内时会显示下拉菜单项,但经常会出现鼠标移动到下拉菜单位置时,菜单项就消失了,目测应该是在鼠标经过上面和下拉框菜单有一个很小的边框距离导致失去焦点执行了隐藏,还请优化一下,致谢!

首个 Go 零代码单元测试 unitauto-go 1.1 发布,UnitAuto 的 Go 版

1.1 更新内容:
新增支持 mock 各种 Struct 的成员变量,包括组合等复杂自定义对象;
image

新增支持 static 静态标记字段,传 static: true 时,直接 test.Add 省去 test.Add.Add 中间的虚拟 class Add;
image

完善基本类型及对应数组类型;

兼容 Go 1.18+;
将接口服务逻辑从 main.go 迁移到 unitauto/server.go,并新增默认测试用例;
迁移打包的可执行文件到 TommyLemon/StaticResources/UnitAuto/file;

https://www.oschina.net/news/253251/unitauto-go-1-1-released

关于机器学习测试

您好 这个工具很不错
不过有一个意见机器学习测试中没有使用任何机器学习的算法,直接说是机器学习测试这样很不严谨

如何快速接入APIAuto

您好,我想问一下APIAuto是否可以本地私有化部署,如果可以,如何在公司接入ApiAuto

前端页面请求404

把项目下了下来,后端启动的是springboot demo项目,前端页面的数据库配置也改了,为啥请求错误
看路径请求的是/delegate,没有这个接口所以报错404
image

下面是通过idea请求,是正常的
image

百度、搜狗、抖音公网接口调用演示

因为这些接口不支持 CORS 跨域,所以需要开启托管服务代理。
可以复制 Chrome 等浏览器、Charles 等抓包工具的请求文本,
粘贴到 APIAuto 的 URL 输入框,会自动填充 URL, JSON, Header 等。

百度
APIAuto_request_thirdparty_api_baidu

搜狗
APIAuto_request_sogou_api

抖音
APIAuto_request_douyin_api

能力不足,折腾一下午,也没有跑通 go 的 UnitAuto

  1. 是不是现在还不能私有部署?
  2. UI 的各种问题(比如 cookies 共用)能不能想办法修复一下。。
  3. 扫描 Go 的代码在哪个组件完成的?
  4. 看文档说不用手动注册能够用 Admin 自动生成,实际上还是要手动录入 package struct 的吧?
  5. 机器学习如何解决 go 函数内的异步,数据 Mock 之类的问题的?文档上说对函数本身没什么要求。
  6. 这个比 LLM 生成的 UT 靠谱吗?
  7. 最后一个问题:如何证明这个项目不是一个噱头项目?现在从文档上看没有使用上的帮助,大部分都在吹,Google 也搜不到使用的文章,都在吹。。。包括这里:#36
  8. 老是在 issues 发 XXXX 连接了 ApiAuto,又不是小孩子了。。真好用,别人就发技术博客了。这边引用博客链接比什么都好使。

都放在 github 了,大家都在看的。

APIJSONBoot-MultiDataSource工程启动报错: !!!! 查询权限配置异常 !!! Unknown column 'apijson' in 'where clause'

【标题】:Unknown column 'apijson' in 'where clause'
【内容】:环境信息
系统: Windows 10 10.0
数据库: MYSQL 5.7.22
JDK: 1.8.0_181 amd64
APIJSON: 5.0.0

问题描述
Unknown column 'apijson' in 'where clause'

2022-04-21 07:46:24.770: APIJSONRouterVerifier.ERROR:
接口映射配置测试未通过!
请修改 Document 表里的记录!
保证前端看到的接口映射配置文档是正确的并且能正常使用!!!

原因:
查询权限配置异常 !

咱们这个apiauto有生成sql的功能吗

比如以下配置应该生成 2个sql
{
"User[]": {
"User": {
"id|{}": "<30000,>80000"
}
},
"s[]": {
"B_stone": {
"@column": "id"
}
}
}

select * from User where id < 30000 or id > 80000
select id from B_stone limit等

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.