Eolink神技之二、API全生命周期管理
目录
Eolink神技之二、API全生命周期管理
Eolink全API全生命周期管理解决的问题
演示过程
一、创建项目文档
1.1、创建项目
1.2、项目管理
1.2.1、项目设置
1.2.2、全局测试设置
1.2.3、查看日志
二、接口用例管理与自动化接口测试
2.1、引入API接口文档
2.2、自动化用例测试
2.3、自主添加用例
三、API接口管理
3.1、启动API接口服务
3.2、添加API
3.3、API测试
3.4、批量导入API示例
3.4.1、导入swagger步骤
3.4.2、批量引入API
3.4.3、切换测试环境
3.4.4、自动批量测试
3.4.5、自动生成测试报告
四、API微服务网关
五、API监控
5.1、功能位置
5.2、添加项目
5.3、导入测试API
5.4、监听状态开启
5.5、结果提示
5.6、关闭监控
六、总结
体验地址
Eolink全API全生命周期管理解决的问题
整个项目中的API管理是一个非常麻烦的事情,从代码接口文档管理到接口用例管理以及自动化接口测试、API网关、API监控等,都是一系列的问题。根本不是一两个人能全部搞完的,那么很大程度上出现了人资的困难,Eolink很好地解决了整个生命周期的内容,大大的降低了在API转部门操作的时候出现的无数问题,并且还提供了第三方API商店、OpenAPI共享平台等接口全生命周期管理工具。
演示过程
我会从生命周期的开始演示到最终交付,所以步骤较多,咱们逐一来演示。
一、创建项目文档
二、接口用例管理与自动化接口测试
三、API接口管理
四、API微服务网关
五、API监控
演示中我也会对第三方的API商店与OpenAPI规范的swagger一键导入进行讲解。
一、创建项目文档
由于我们后面需要进行自动化接口测试,故而我们这里直接选择【API自动化测试】,在这里面创建项目。
1.1、创建项目
这里我们选择添加下拉菜单中的添加项目,虽然整个工具都是中文的,但是创建所有的变量以及使用的名称不太建议使用中文。因为显得很【厉害】啊。
在这里我用的API_Cycle的API周期来命名的。
默认会返回面板,我们在右侧正文面板中能看到我们刚创建的【Eolink_API_Cycle】的Project。
项目面板,在左侧一列可以看到所有的大功能模块。
1.2、项目管理
我们这里对项目管理中的【项目设置】、【全局测试设置】、【日志】均进行功能演示。
1.2.1、项目设置
这里我要最先说一下【项目设置】,因为这里是控制版本的地方。版本为先,不然搞着搞着全乱了套了,我之前共的一些版本控制器就总有这个烦恼,这里直接说明了,非常棒的功能。
建议:每个版本确立后都即刻导出一个用作备份。
导出项目
保存完成后我们修改成1.1版本。
1.2.2、全局测试设置
设置超时时间与证书、请求头。
1.2.3、查看日志
添加环境用作日志查阅
添加环境操作步骤1:
添加环境操作步骤2,配置完成后点击【保存】。
我这里是本地环境故而是:【http://127.0.0.1:8080/】
保存效果如下图:
日志效果:
由于测试日志比较少,我们无法查看各种日志筛选,这个功能是存在无误的。
二、接口用例管理与自动化接口测试
2.1、引入API接口文档
为了方便大家,我做了一个MySQL的演示文档。我们先来看一下。
直接复制制作成一个json文件即可使用,我用的是我在线的服务器,可以直接测试,很方便查阅测试效果。
{"caseList":[{"caseID":553171,"caseName":"Eolink_MySQL_API","caseDesc":"","caseType":0,"caseCode":"","caseTag":"","userID":643871,"priority":0,"caseStyle":"general","commonCaseList":[],"commonCaseApiConnCaseList":[],"caseSingleList":[],"dbStepList":[{"connID":6492,"caseID":553171,"apiName":"1\u3001\u65e0\u53c2\u6570\u67e5\u8be2","dbID":1022,"caseData":"{\"params\":[],\"keepGoing\":1,\"sqlCode\":\"select * from eolink_mysql_api;\"}","orderNumber":1,"isLock":0,"delayTime":0,"matchType":2,"matchRule":"\/\/\u6570\u636e\u5e93\u8fd4\u56de\u7ed3\u679c\u6821\u9a8c\u811a\u672c\u793a\u4f8b\n\/\/\u6570\u636e\u5e93\u64cd\u4f5c\u7ed3\u679c\u793a\u4f8b\u8bf7\u67e5\u770b\u5e2e\u52a9\u4e2d\u5fc3\u6559\u7a0b\n\/\/\u6570\u636e\u5e93\u6267\u884c\u7684\u8fd4\u56de\u7ed3\u679c\u50a8\u5b58\u5728\u53d8\u91cfdb_result\u4e2d\nif(db_result[\"status\"]==\"success\"){\n\t\/\/\u6570\u636e\u5e93\u8bed\u53e5\u6574\u4f53\u6267\u884c\u6210\u529f\n\t\/\/\u6bcf\u4e00\u6761\u6570\u636e\u5e93\u8bed\u53e5\u7684\u6267\u884c\u7ed3\u679c\u50a8\u5b58\u5728db_result[\"query\"][...]\u6570\u7ec4\u4e2d\n\t\/\/\u53ef\u4ee5\u901a\u8fc7\u5982db_result[\"query\"][0][\"result\"]\u53d6\u51fa\u7b2c\u4e00\u6761\u8bed\u53e5\u6267\u884c\u7684\u8fd4\u56de\u7ed3\u679c\n\t\/\/\u53ef\u4ee5\u901a\u8fc7\u5982db_result[\"query\"][0][\"info\"][\"status\"]\u53d6\u51fa\u7b2c\u4e00\u6761\u8bed\u53e5\u6267\u884c\u7684\u72b6\u6001\n\t\/\/\u53ef\u4ee5\u901a\u8fc7\u5982db_result[\"query\"][0][\"info\"][\"time\"]\u53d6\u51fa\u7b2c\u4e00\u6761\u8bed\u53e5\u6267\u884c\u7684\u65f6\u95f4\n\teo.info(db_result[\"query\"][0][\"result\"]);\n}\nelse{\n\t\/\/\u6267\u884c\u5931\u8d25\n\teo.stop(\"\u6570\u636e\u5e93\u8bed\u53e5\u6267\u884c\u5931\u8d25\");\n}","generateResponseCode":"","updateTime":"2022-11-29 18:43:29","createTime":"2022-11-29 18:43:29","isExecute":1,"resultParam":"[]","customInfo":"{}","operationGroupID":0,"dbConnectName":"Eolink_MySQL_Test","dbCreateTime":"2022-11-29 18:25:40","dbInfo":{"dbID":1022,"dbConnectName":"Eolink_MySQL_Test","dbType":0,"dbInfoList":"[{\"envID\":0,\"port\":\"3306\",\"name\":\"eolink_test\",\"host\":\"C82b0XR5i89FWlGw6tQULUe7Ca+c6jquXsNF1UIzDZD1gP9\/Ac9cC6686FZW9zSs\",\"user\":\"Hy51ZQGees0ZX5lkDBa2xA==\",\"password\":\"NY18bypH9WTLsMMxErulHg==\"}]","dbDesc":"\u6d4b\u8bd5Eolink\u8fde\u63a5MySQL\u5e76\u521b\u5efa\u6d4b\u8bd5","createTime":"2022-11-29 18:25:40","dbCreateTime":"2022-11-29 18:25:40"}},{"connID":6493,"caseID":553171,"apiName":"2\u3001\u6709\u53c2\u67e5\u8be2\u8bed\u53e5","dbID":1022,"caseData":"{\"params\":[{\"paramKey\":\"userName\",\"paramNotNull\":\"0\",\"paramInfo\":\"Eolink_admin\"}],\"keepGoing\":1,\"sqlCode\":\"select * from eolink_mysql_api where userName = '${userName}';\"}","orderNumber":2,"isLock":0,"delayTime":0,"matchType":2,"matchRule":"\nif(db_result[\"status\"]==\"success\"){\n\tif(db_result[\"query\"][0][\"result\"][0][\"userName\"]==\"Eolink_admin\"){\n\t eo.info(\"\u67e5\u8be2\u7ed3\u679c\u7684userName\u662fEolink_admin\u6240\u4ee5\u6d4b\u8bd5\u6210\u529f\");\n\t}else{\n\t eo.stop(\"\u8fd4\u56de\u7ed3\u679c\u4e0e\u9700\u6c42\u4e0d\u7b26\");\n\t}\n}\nelse{\n\t\/\/\u6267\u884c\u5931\u8d25\n\teo.stop(\"\u6570\u636e\u5e93\u8bed\u53e5\u6267\u884c\u5931\u8d25\");\n}","generateResponseCode":"","updateTime":"2022-11-29 18:57:50","createTime":"2022-11-29 18:54:46","isExecute":1,"resultParam":"[]","customInfo":"{}","operationGroupID":0,"dbConnectName":"Eolink_MySQL_Test","dbCreateTime":"2022-11-29 18:25:40","dbInfo":{"dbID":1022,"dbConnectName":"Eolink_MySQL_Test","dbType":0,"dbInfoList":"[{\"envID\":0,\"port\":\"3306\",\"name\":\"eolink_test\",\"host\":\"C82b0XR5i89FWlGw6tQULUe7Ca+c6jquXsNF1UIzDZD1gP9\/Ac9cC6686FZW9zSs\",\"user\":\"Hy51ZQGees0ZX5lkDBa2xA==\",\"password\":\"NY18bypH9WTLsMMxErulHg==\"}]","dbDesc":"\u6d4b\u8bd5Eolink\u8fde\u63a5MySQL\u5e76\u521b\u5efa\u6d4b\u8bd5","createTime":"2022-11-29 18:25:40","dbCreateTime":"2022-11-29 18:25:40"}},{"connID":6494,"caseID":553171,"apiName":"\u589e\u52a0\u8bed\u53e5","dbID":1022,"caseData":"{\"params\":[{\"paramKey\":\"phone\",\"paramNotNull\":\"0\",\"paramInfo\":\"13472040766\"},{\"paramKey\":\"userName\",\"paramNotNull\":\"0\",\"paramInfo\":\"Eolink_super_admin\"},{\"paramKey\":\"pwd\",\"paramNotNull\":\"0\",\"paramInfo\":\"123456\"},{\"paramKey\":\"introduce\",\"paramNotNull\":\"0\",\"paramInfo\":\"\u4e13\u4e3a\u5f00\u53d1\u8005\u8bbe\u8ba1\u7684API\u534f\u4f5c\u5e73\u53f0\"}],\"keepGoing\":1,\"sqlCode\":\"insert into eolink_mysql_api VALUES(0,NOW(),NOW(),'${phone}','${userName}','${pwd}','${introduce}');\"}","orderNumber":3,"isLock":0,"delayTime":0,"matchType":2,"matchRule":"\/\/\u6570\u636e\u5e93\u8fd4\u56de\u7ed3\u679c\u6821\u9a8c\u811a\u672c\u793a\u4f8b\n\/\/\u6570\u636e\u5e93\u64cd\u4f5c\u7ed3\u679c\u793a\u4f8b\u8bf7\u67e5\u770b\u5e2e\u52a9\u4e2d\u5fc3\u6559\u7a0b\n\/\/\u6570\u636e\u5e93\u6267\u884c\u7684\u8fd4\u56de\u7ed3\u679c\u50a8\u5b58\u5728\u53d8\u91cfdb_result\u4e2d\nif(db_result[\"status\"]==\"success\"){\n\t\/\/\u6570\u636e\u5e93\u8bed\u53e5\u6574\u4f53\u6267\u884c\u6210\u529f\n\t\/\/\u6bcf\u4e00\u6761\u6570\u636e\u5e93\u8bed\u53e5\u7684\u6267\u884c\u7ed3\u679c\u50a8\u5b58\u5728db_result[\"query\"][...]\u6570\u7ec4\u4e2d\n\t\/\/\u53ef\u4ee5\u901a\u8fc7\u5982db_result[\"query\"][0][\"result\"]\u53d6\u51fa\u7b2c\u4e00\u6761\u8bed\u53e5\u6267\u884c\u7684\u8fd4\u56de\u7ed3\u679c\n\t\/\/\u53ef\u4ee5\u901a\u8fc7\u5982db_result[\"query\"][0][\"info\"][\"status\"]\u53d6\u51fa\u7b2c\u4e00\u6761\u8bed\u53e5\u6267\u884c\u7684\u72b6\u6001\n\t\/\/\u53ef\u4ee5\u901a\u8fc7\u5982db_result[\"query\"][0][\"info\"][\"time\"]\u53d6\u51fa\u7b2c\u4e00\u6761\u8bed\u53e5\u6267\u884c\u7684\u65f6\u95f4\n\teo.info(db_result[\"query\"][0][\"result\"]);\n}\nelse{\n\t\/\/\u6267\u884c\u5931\u8d25\n\teo.stop(\"\u6570\u636e\u5e93\u8bed\u53e5\u6267\u884c\u5931\u8d25\");\n}","generateResponseCode":"","updateTime":"2022-11-29 19:02:02","createTime":"2022-11-29 19:02:02","isExecute":1,"resultParam":"[]","customInfo":"{}","operationGroupID":0,"dbConnectName":"Eolink_MySQL_Test","dbCreateTime":"2022-11-29 18:25:40","dbInfo":{"dbID":1022,"dbConnectName":"Eolink_MySQL_Test","dbType":0,"dbInfoList":"[{\"envID\":0,\"port\":\"3306\",\"name\":\"eolink_test\",\"host\":\"C82b0XR5i89FWlGw6tQULUe7Ca+c6jquXsNF1UIzDZD1gP9\/Ac9cC6686FZW9zSs\",\"user\":\"Hy51ZQGees0ZX5lkDBa2xA==\",\"password\":\"NY18bypH9WTLsMMxErulHg==\"}]","dbDesc":"\u6d4b\u8bd5Eolink\u8fde\u63a5MySQL\u5e76\u521b\u5efa\u6d4b\u8bd5","createTime":"2022-11-29 18:25:40","dbCreateTime":"2022-11-29 18:25:40"}},{"connID":6495,"caseID":553171,"apiName":"\u5220\u9664\u8bed\u53e5","dbID":1022,"caseData":"{\"params\":[{\"paramKey\":\"phone\",\"paramNotNull\":\"0\",\"paramInfo\":\"13472040766\"}],\"keepGoing\":1,\"sqlCode\":\"DELETE from eolink_mysql_api where phone = '${phone}';\"}","orderNumber":4,"isLock":0,"delayTime":0,"matchType":2,"matchRule":"\/\/\u6570\u636e\u5e93\u8fd4\u56de\u7ed3\u679c\u6821\u9a8c\u811a\u672c\u793a\u4f8b\n\/\/\u6570\u636e\u5e93\u64cd\u4f5c\u7ed3\u679c\u793a\u4f8b\u8bf7\u67e5\u770b\u5e2e\u52a9\u4e2d\u5fc3\u6559\u7a0b\n\/\/\u6570\u636e\u5e93\u6267\u884c\u7684\u8fd4\u56de\u7ed3\u679c\u50a8\u5b58\u5728\u53d8\u91cfdb_result\u4e2d\nif(db_result[\"status\"]==\"success\"){\n\t\/\/\u6570\u636e\u5e93\u8bed\u53e5\u6574\u4f53\u6267\u884c\u6210\u529f\n\t\/\/\u6bcf\u4e00\u6761\u6570\u636e\u5e93\u8bed\u53e5\u7684\u6267\u884c\u7ed3\u679c\u50a8\u5b58\u5728db_result[\"query\"][...]\u6570\u7ec4\u4e2d\n\t\/\/\u53ef\u4ee5\u901a\u8fc7\u5982db_result[\"query\"][0][\"result\"]\u53d6\u51fa\u7b2c\u4e00\u6761\u8bed\u53e5\u6267\u884c\u7684\u8fd4\u56de\u7ed3\u679c\n\t\/\/\u53ef\u4ee5\u901a\u8fc7\u5982db_result[\"query\"][0][\"info\"][\"status\"]\u53d6\u51fa\u7b2c\u4e00\u6761\u8bed\u53e5\u6267\u884c\u7684\u72b6\u6001\n\t\/\/\u53ef\u4ee5\u901a\u8fc7\u5982db_result[\"query\"][0][\"info\"][\"time\"]\u53d6\u51fa\u7b2c\u4e00\u6761\u8bed\u53e5\u6267\u884c\u7684\u65f6\u95f4\n\teo.info(db_result[\"query\"][0][\"result\"]);\n}\nelse{\n\t\/\/\u6267\u884c\u5931\u8d25\n\teo.stop(\"\u6570\u636e\u5e93\u8bed\u53e5\u6267\u884c\u5931\u8d25\");\n}","generateResponseCode":"","updateTime":"2022-11-29 19:05:31","createTime":"2022-11-29 19:05:11","isExecute":1,"resultParam":"[]","customInfo":"{}","operationGroupID":0,"dbConnectName":"Eolink_MySQL_Test","dbCreateTime":"2022-11-29 18:25:40","dbInfo":{"dbID":1022,"dbConnectName":"Eolink_MySQL_Test","dbType":0,"dbInfoList":"[{\"envID\":0,\"port\":\"3306\",\"name\":\"eolink_test\",\"host\":\"C82b0XR5i89FWlGw6tQULUe7Ca+c6jquXsNF1UIzDZD1gP9\/Ac9cC6686FZW9zSs\",\"user\":\"Hy51ZQGees0ZX5lkDBa2xA==\",\"password\":\"NY18bypH9WTLsMMxErulHg==\"}]","dbDesc":"\u6d4b\u8bd5Eolink\u8fde\u63a5MySQL\u5e76\u521b\u5efa\u6d4b\u8bd5","createTime":"2022-11-29 18:25:40","dbCreateTime":"2022-11-29 18:25:40"}},{"connID":6496,"caseID":553171,"apiName":"\u4fee\u6539\u8bed\u53e5","dbID":1022,"caseData":"{\"params\":[{\"paramKey\":\"pwd\",\"paramNotNull\":\"0\",\"paramInfo\":\"123456\"},{\"paramKey\":\"userName\",\"paramNotNull\":\"0\",\"paramInfo\":\"Eolink_admin\"}],\"keepGoing\":1,\"sqlCode\":\"update eolink_mysql_api set pwd =PASSWORD('${pwd}') where userName = '${userName}';\"}","orderNumber":5,"isLock":0,"delayTime":0,"matchType":2,"matchRule":"\/\/\u6570\u636e\u5e93\u8fd4\u56de\u7ed3\u679c\u6821\u9a8c\u811a\u672c\u793a\u4f8b\n\/\/\u6570\u636e\u5e93\u64cd\u4f5c\u7ed3\u679c\u793a\u4f8b\u8bf7\u67e5\u770b\u5e2e\u52a9\u4e2d\u5fc3\u6559\u7a0b\n\/\/\u6570\u636e\u5e93\u6267\u884c\u7684\u8fd4\u56de\u7ed3\u679c\u50a8\u5b58\u5728\u53d8\u91cfdb_result\u4e2d\nif(db_result[\"status\"]==\"success\"){\n\t\/\/\u6570\u636e\u5e93\u8bed\u53e5\u6574\u4f53\u6267\u884c\u6210\u529f\n\t\/\/\u6bcf\u4e00\u6761\u6570\u636e\u5e93\u8bed\u53e5\u7684\u6267\u884c\u7ed3\u679c\u50a8\u5b58\u5728db_result[\"query\"][...]\u6570\u7ec4\u4e2d\n\t\/\/\u53ef\u4ee5\u901a\u8fc7\u5982db_result[\"query\"][0][\"result\"]\u53d6\u51fa\u7b2c\u4e00\u6761\u8bed\u53e5\u6267\u884c\u7684\u8fd4\u56de\u7ed3\u679c\n\t\/\/\u53ef\u4ee5\u901a\u8fc7\u5982db_result[\"query\"][0][\"info\"][\"status\"]\u53d6\u51fa\u7b2c\u4e00\u6761\u8bed\u53e5\u6267\u884c\u7684\u72b6\u6001\n\t\/\/\u53ef\u4ee5\u901a\u8fc7\u5982db_result[\"query\"][0][\"info\"][\"time\"]\u53d6\u51fa\u7b2c\u4e00\u6761\u8bed\u53e5\u6267\u884c\u7684\u65f6\u95f4\n\teo.info(db_result[\"query\"][0][\"result\"]);\n}\nelse{\n\t\/\/\u6267\u884c\u5931\u8d25\n\teo.stop(\"\u6570\u636e\u5e93\u8bed\u53e5\u6267\u884c\u5931\u8d25\");\n}","generateResponseCode":"","updateTime":"2022-11-29 19:07:42","createTime":"2022-11-29 19:07:42","isExecute":1,"resultParam":"[]","customInfo":"{}","operationGroupID":0,"dbConnectName":"Eolink_MySQL_Test","dbCreateTime":"2022-11-29 18:25:40","dbInfo":{"dbID":1022,"dbConnectName":"Eolink_MySQL_Test","dbType":0,"dbInfoList":"[{\"envID\":0,\"port\":\"3306\",\"name\":\"eolink_test\",\"host\":\"C82b0XR5i89FWlGw6tQULUe7Ca+c6jquXsNF1UIzDZD1gP9\/Ac9cC6686FZW9zSs\",\"user\":\"Hy51ZQGees0ZX5lkDBa2xA==\",\"password\":\"NY18bypH9WTLsMMxErulHg==\"}]","dbDesc":"\u6d4b\u8bd5Eolink\u8fde\u63a5MySQL\u5e76\u521b\u5efa\u6d4b\u8bd5","createTime":"2022-11-29 18:25:40","dbCreateTime":"2022-11-29 18:25:40"}},{"connID":6497,"caseID":553171,"apiName":"\u89c6\u56fe\u67e5\u8be2","dbID":1022,"caseData":"{\"params\":[],\"keepGoing\":1,\"sqlCode\":\"select * from eolink_view;\"}","orderNumber":6,"isLock":0,"delayTime":0,"matchType":2,"matchRule":"\/\/\u6570\u636e\u5e93\u8fd4\u56de\u7ed3\u679c\u6821\u9a8c\u811a\u672c\u793a\u4f8b\n\/\/\u6570\u636e\u5e93\u64cd\u4f5c\u7ed3\u679c\u793a\u4f8b\u8bf7\u67e5\u770b\u5e2e\u52a9\u4e2d\u5fc3\u6559\u7a0b\n\/\/\u6570\u636e\u5e93\u6267\u884c\u7684\u8fd4\u56de\u7ed3\u679c\u50a8\u5b58\u5728\u53d8\u91cfdb_result\u4e2d\nif(db_result[\"status\"]==\"success\"){\n\t\/\/\u6570\u636e\u5e93\u8bed\u53e5\u6574\u4f53\u6267\u884c\u6210\u529f\n\t\/\/\u6bcf\u4e00\u6761\u6570\u636e\u5e93\u8bed\u53e5\u7684\u6267\u884c\u7ed3\u679c\u50a8\u5b58\u5728db_result[\"query\"][...]\u6570\u7ec4\u4e2d\n\t\/\/\u53ef\u4ee5\u901a\u8fc7\u5982db_result[\"query\"][0][\"result\"]\u53d6\u51fa\u7b2c\u4e00\u6761\u8bed\u53e5\u6267\u884c\u7684\u8fd4\u56de\u7ed3\u679c\n\t\/\/\u53ef\u4ee5\u901a\u8fc7\u5982db_result[\"query\"][0][\"info\"][\"status\"]\u53d6\u51fa\u7b2c\u4e00\u6761\u8bed\u53e5\u6267\u884c\u7684\u72b6\u6001\n\t\/\/\u53ef\u4ee5\u901a\u8fc7\u5982db_result[\"query\"][0][\"info\"][\"time\"]\u53d6\u51fa\u7b2c\u4e00\u6761\u8bed\u53e5\u6267\u884c\u7684\u65f6\u95f4\n\teo.info(db_result[\"query\"][0][\"result\"]);\n}\nelse{\n\t\/\/\u6267\u884c\u5931\u8d25\n\teo.stop(\"\u6570\u636e\u5e93\u8bed\u53e5\u6267\u884c\u5931\u8d25\");\n}","generateResponseCode":"","updateTime":"2022-11-29 19:09:55","createTime":"2022-11-29 19:09:55","isExecute":1,"resultParam":"[]","customInfo":"{}","operationGroupID":0,"dbConnectName":"Eolink_MySQL_Test","dbCreateTime":"2022-11-29 18:25:40","dbInfo":{"dbID":1022,"dbConnectName":"Eolink_MySQL_Test","dbType":0,"dbInfoList":"[{\"envID\":0,\"port\":\"3306\",\"name\":\"eolink_test\",\"host\":\"C82b0XR5i89FWlGw6tQULUe7Ca+c6jquXsNF1UIzDZD1gP9\/Ac9cC6686FZW9zSs\",\"user\":\"Hy51ZQGees0ZX5lkDBa2xA==\",\"password\":\"NY18bypH9WTLsMMxErulHg==\"}]","dbDesc":"\u6d4b\u8bd5Eolink\u8fde\u63a5MySQL\u5e76\u521b\u5efa\u6d4b\u8bd5","createTime":"2022-11-29 18:25:40","dbCreateTime":"2022-11-29 18:25:40"}}],"dbStepApiConnCaseList":[],"dataCollectionData":null}],"commonDatabasesList":[{"dbID":1022,"dbConnectName":"Eolink_MySQL_Test","dbType":0,"dbInfoList":"[{\"envID\":0,\"port\":\"3306\",\"name\":\"eolink_test\",\"host\":\"C82b0XR5i89FWlGw6tQULUe7Ca+c6jquXsNF1UIzDZD1gP9\/Ac9cC6686FZW9zSs\",\"user\":\"Hy51ZQGees0ZX5lkDBa2xA==\",\"password\":\"NY18bypH9WTLsMMxErulHg==\"}]","dbDesc":"\u6d4b\u8bd5Eolink\u8fde\u63a5MySQL\u5e76\u521b\u5efa\u6d4b\u8bd5","createTime":"2022-11-29 18:25:40","updateTime":"2022-11-29 18:25:40"}],"caseType":"sceneCase"}
在添加分组的下拉菜单中选择【导入】
这里是选择文件。
选择我们需要引入的json文件。
这里直接点击确定即可。
导入需要点之间,我们在任务中心中可以查看进度。
添加完成。
引入成功,引入组名【Default Group】
2.2、自动化用例测试
我提供的这个组是一套数据库的sql测试,我们可以选中后直接进入控制台,点击右侧的【测试】按钮,等待测试完毕后我们能看到测试结果,测试结果是可以具体查看的,我们点击测试的结果,这里的结果是【通过,查看详情】。
批量测试显示结果的空间是有限的,我们无法查看所有的接口具体测试结果,所以有了查看详情的操作。我们点击查看详情。
这里我们能看到查询的sql语句但是无法查询最终返回的结果,我们可以进入到用例中具体的查看API所返回的结果。
2.3、自主添加用例
我们这次需要自己添加一个用例来存放API,那么,我们先来添加一个分组。
输入用例名称:
添加用例功能位置
添加用例名称:
创建完毕后我们直接点击进入用例即可。
测试用例的测试步骤面板
其实用例操作非常简单,Eolink将操作步骤已经优化的很精简了,只要稍微操作一下就会找到窍门的。
三、API接口管理
3.1、启动API接口服务
我自己启动了个本地的接口服务,从注释上就能看出来,这是Eolink的全自动注释,后面我会有对应的文章进行具体的配置讲解。
确认接口可以访问:
3.2、添加API
我们开始正式的添加最底层的API操作了,首先我们演示的是添加API请求操作。
输入API基础信息:
添加返回的json信息注释
输入信息完毕后点击【保存】按钮。
3.3、API测试
API的【测试】【修改】【删除】操作都在对应的用例接口列表中,我们可以直接操作,现在的步骤我们点击【测试】。
测试成功,但是未能直接看到测试的所有过程,我们点击【空白数据集】来查看所有的返回数据。
非常详细的一个面板,做数据分析都够了。
其实,作为一个资深的程序员,我对接口的总反应时间是非常看中的,我们打开【API请求时间分析】,在其中我们能看到各步骤的时间消耗,对于接口的优化非常有帮助。
响应的数据内容我们有三种格式展示,还有整理操作,数据量大的话就可以直接下载。
3.4、批量导入API示例
我们通过OpenAPI的工具例如Swagge就能批量到导入到【API管理】中,在从【API管理】中直接导入【API自动化测试】内。
3.4.1、导入swagger步骤
其它->添加来源->【[推荐] 通过 Swagger URL】->【下一步】
我们查看一下批量导入的效果:
3.4.2、批量引入API
这里选择【从API文档中添加API请求】
选一个引入的组,将API接口全部选项,并点击确定。
3.4.3、切换测试环境
3.4.4、自动批量测试
我们先选择批量操作。
勾选所有要测试的接口,点击【执行测试】
可以看到自动测试成功,并且返回测试结果。
3.4.5、自动生成测试报告
我们在【测试报告】就能看到我们刚刚所有的测试过程产生的测试报告,非常的方便,还提供详情信息与下载的功能。
四、API微服务网关
Eolink有API微服务网关的服务,并且我搜索了资料,还是非常前沿的,非常赞。
在Eolink的产品中就可以看到API微服务网关的功能。
API微服务网关
特性 | 描述 |
超高性能 | 通过网关转发的时间损耗小于直接转发的10%,单个网关节点的性能与Kong相比还要高10%,是Tyk的30倍 |
自主研发 | 基于 Golang 的完全自主研发的 API 网关,拥有完全的自主知识产权 |
灵活的路由规则 | 支持自定义 Header(包括 Host、Cookie 等)、Query、Location 等路由方式;修改路由立即生效,无需重启服务器 |
强大的插件系统 | 所有 API 网关的过滤器采用插件化的思路实现,并且使用纯 Go 代码开发插件比使用 JS 脚本和 Java 的网关性能更高 |
内置的监控统计 | 对 API 进行完善的监控统计,包括请求数、超时数、响应时间等,提供图表数据;还可将数据对接到 Prometheus、Graphite 等第三方组件 |
服务发现 | 可对接 Eureka、Consul、Nacos、Kubernetes 等市面上常见的服务发现组件 |
数据转换 | 可重写请求URL、请求方法、请求参数,并且对返回数据做整合、过滤等操作,还可将数据转换成 JSON 或 XML 的返回格式 |
服务编排 | 对多个后端 API 进行聚合并发布为一个新的 API,将后端返回的数据进行转换和再组装 |
细粒度的熔断和降级 | 支持API级别的熔断和降级,API 的重要性和事务要求不同所以必须要能进行细粒度的超时及熔断策略配置 |
统一的认证和限流 | 支持常见鉴权方式:OAuth2.0、JWT、AK/SK、API Key、Basic 等,支持用户级别与 API 级别的限流,后端只需专注于业务逻辑 |
云原生架构 | 支持 Kubernetes 云原生应用的部署和运行,提供镜像管理和集群管理能力,轻松实现应用的弹性伸缩,应对突发大流量的情况 |
操作易用 | 开箱即用,全界面配置,操作简单,解决大部分的开源 API 网关采用 XML 或 JSON 进行配置以及使用和运维成本高等问题 |
我为大家找到了Eolink开源网关地址:Eolink开源网关地址
Eolink自主研发的企业级 API 网关,高性能、可视化、成熟稳定。相当不错。有兴趣可以去【API微服务网关】试试。
五、API监控
API监控是个非常好的技能可以直接显示出过程的所有数据,上报任务的时候是非常快捷迅速的。
5.1、功能位置
这个功能在左上角的选项中,我们选择【API监控】
5.2、添加项目
我们先添加一个项目
输入项目名称并点击确定。
创建成功,但是现在没有数据。
5.3、导入测试API
我们添加一组API来做测试。
选了一组,点击确认即可。
查看添加效果:
5.4、监听状态开启
添加成功,但是不是默认开启状态的。我们需要点击后面的更多按钮来开启监控。
用作测试够用了,都是免费的:
5.5、结果提示
直接点击监听的API,我们查看效果,由于这个功能监听万维网上的接口,故而我们这本地测试接口是访问不到的,故而出现了一场提示,是正确回馈,已经能证明其有效性了。
5.6、关闭监控
六、总结
在今天的整个测试过程中我感受到了Eolink在真正的用心做这个产品,简化了很多操作步骤,仅仅环境这个功能就解决了好多测试人每次换环境的尴尬,每次后台服务地址一换就得跟着更换,老麻烦了,这回有了环境就添加一个环境直接点几下就成功了,非常的NICE。并且测试过程中的各种批量处理真的是舒服,节约了很多工作时间,可以更好更高效的完成本职的工作内容,非常棒。强烈推荐。下放有地址链接: