Eolink神技之一:基于数据库智能生成API文档
Eolink数据库智能API文档解决的问题
数据库脚本测试,是在我们CMMI3项目管理中比较重要的一个步骤,需要根据业务逻辑进行完整的sql功能测试,其实很多的时候作为DBA也是很麻烦的创建一堆的文档来记录,特别是在执行批量脚本的时候麻烦的很,那么,我们可以使用Eolink的这个功能来记录、测试、导入导出 API ,这样对于DBA来说就会节约很多的时间以及免掉整个文档处理的麻烦事情。 并且可以在移交测试人员的过程中更为顺利。
演示流程
1、环境准备
2、数据库与数据表的准备
3、引入MySQL数据库
4、创建测试用例
5、完成CRUD测试
一、环境准备
这个步骤中我们主要准备Eolink的环境以及MySQL的环境,MySQL的环境我使用的是阿里的数据库,缴费时间还有800多天,这两年测试用我这个数据库就行。免费提供。
演示步骤
1、Eolink环境准备
2、数据库测试环境
3、创建测试数据库与表
1、Eolink环境
Eolink官网地址:Eolink-一站式API开发协作平台
一键Next式的安装,安装完成后建议使用微信登录,很方便。

2、数据库测试环境:
阿里的ECS:MySQL数据库5.7.32-log版本
rm-bp1zq3879r28p726lco.mysql.rds.aliyuncs.com
可以直接测试使用。我用于教学的。
1 userName:qwe8403000
2
3 pwd:Qwe8403000
截止日期到未来的823天,放心测试。

3、创建测试数据库与表
数据库名称
eolink_test
1 create datebase eolink_test;

建表语句
1 CREATE TABLE `eolink_mysql_api` (
2 `id` int(8) NOT NULL AUTO_INCREMENT COMMENT '编号' ,
3 `createDate` datetime NOT NULL COMMENT '创建时间' ,
4 `modifyDate` datetime NOT NULL COMMENT '修改时间' ,
5 `phone` varchar(20) NOT NULL COMMENT '手机号' ,
6 `userName` varchar(20) NOT NULL ,
7 `pwd` varchar(200) NOT NULL COMMENT '加密方式不定义故而写200' ,
8 `introduce` varchar(200) NOT NULL COMMENT '简介' ,
9 PRIMARY KEY (`id`),
10 UNIQUE INDEX `only_phone` (`phone`) USING BTREE
11 )
12 COMMENT='测试Eolink的数据表'
13 ;

插入测试数据
1 insert into eolink_mysql_api VALUES
2 (0,NOW(),NOW(),15633558181,'Eolink_admin','123456','专为开发者设计的API协作平台'),
3 (0,NOW(),NOW(),15733558181,'Eolink_support_get','123456','Eolink_支持_GET协议'),
4 (0,NOW(),NOW(),15333558181,'Eolink_support_post','123456','Eolink_支持_POST协议'),
5 (0,NOW(),NOW(),15533558181,'Eolink_support_put','123456','Eolink_支持_PUT协议'),
6 (0,NOW(),NOW(),15833558181,'Eolink_support_delete','123456','Eolink_支持_DELETE协议'),
7 (0,NOW(),NOW(),15933558181,'Eolink_support_mock','123456','Eolink_支持_MOCK'),
8 (0,NOW(),NOW(),15833558182,'Eolink_support_MySQL','123456','Eolink_支持_MySQL')
9 ;
创建视图
1 创建视图
2 create VIEW eolink_view as select * from eolink_mysql_api where introduce LIKE '%P%';
3 # 查询视图
4 select * from eolink_view;

二、测试脚本编写
演示步骤
1、准备测试sql脚本
2、Eolink引入MySQL
1、准备测试sql脚本
增加语句
1 增加语句
2 insert into eolink_mysql_api VALUES(0,NOW(),NOW(),'13472040766','Eolink_super_admin','123456','专为开发者设计的API协作平台');
删除语句
1 删除语句
2 DELETE from eolink_mysql_api where phone = '13472040766';
修改语句
1 修改语句
2 update eolink_mysql_api set pwd =PASSWORD('123456') where userName = 'Eolink_admin';
查询语句
1 查询语句
2 select * from eolink_mysql_api where userName = 'Eolink_admin';
视图调用
1 查询视图
2 select * from eolink_view;
2、Eolink引入MySQL
演示步骤
1、打开eolink
2、添加项目
3、操作面板变化
4、添加MySQL数据库连接
5、在线连接MySQL
6、MySQL连接成功
2.1 打开eolink
我这里使用的是Eolink客户端,下载完成后进行注册登录。

2.2 添加项目
点击左上角的【API管理】,选择【API自动化测试】

页面效果:

选择添加项目

添加一个项目,输入测试名称与备注,点击确定。

进入项目

2.3 操作面板变化
我们终于找到数据库连接了。

2.4 添加MySQL数据库连接
在第4步骤中我们看到了数据库连接的选项,我们进行点击,点击之后看到的面板中我们选择【添加数据库连接】

2.5 在线连接MySQL
这个步骤麻烦一些,按照下图逐一操作即可。我都标注顺序了,如果你没有在线的数据库可以使用我的,使用时间绝对保证你能彻底掌握这个操作。

2.6 MySQL连接成功

三、添加MySQL用例
演示步骤
1、添加用例
2、编辑用例
3、添加数据库用例操作
1、添加用例
返回【用例】,选择【添加用例】。

输入用例名称,点击确认创建【用例】。

2、编辑用例
直接点击我们创建好的用例就能进入编辑了。

页面效果:

3、添加数据库用例操作
点击【添加测试步骤】右侧的下拉菜单,选择【添加数据库操作】。

页面效果:

四、MySQL用例测试
演示步骤
1、无参数查询语句测试
2、有参查询语句
3、增删改语句测试
4、视图测试
1、无参数查询语句测试
无参的测试是一个基础测试,我们干活的时候基本上都会跑一个无参的测试一下环境。

输入查询返回结果:
1 eo.info(db_result["query"][0]["result"]);

编辑完成后点击保存按钮。

查询测试

结果展现,一目了然。

2、有参查询语句
重复步骤【3.3】添加新的数据库操作,来完成下列有参的测试步骤。

添加参数【★★★★★】
这里得先手动添加【${变量名}】才会出现后面的【请求参数】对话框。一定要注意,我找了好久才测试出来的,老不容易了。就这个地方必须值你的三连。

添加结果验证:

校验代码:
1 if(db_result["status"]=="success"){
2 if(db_result["query"][0]["result"][0]["userName"]=="Eolink_admin"){
3 eo.info("查询结果的userName是Eolink_admin所以测试成功");
4 }else{
5 eo.stop("返回结果与需求不符");
6 }
7 }
8 else{
9 //执行失败
10 eo.stop("数据库语句执行失败");
11 }
保存后我们去测试:

错误返回
由于我们没有添加单引号,故而SQL语句报错,我们去修改一下。

从下图中我们能看到,通过与未通过的提示。

成功测试:
修改sql:
1 select * from eolink_mysql_api where userName = '${userName}';
测试成功

3、增删改语句测试
下面我对增删改语句的测试,其对参数的操作多操作几次就会很熟悉了,我在突破这里的时候我就摸索了好一会,您可以看着我的教程直接操作。很节约时间的。
3.1 插入语句
带变量参数的插入语句
1 insert into eolink_mysql_api VALUES(0,NOW(),NOW(),'$${phone}','$${userName}','$${pwd}','$${introduce}');

依然在【自定义校验规则】中添加【eo.info(db_result["query"][0]["result"]);】,后面的删除与修改都要添加哦。

保存测试:

3.2 删除语句
1 DELETE from eolink_mysql_api where phone = '${phone`

测试结果:

3.3 修改语句
1 update eolink_mysql_api set pwd =PASSWORD('$${pwd}') where userName = '$${userName}';

测试结果:

4、视图测试
1 select * from eolink_view;

在结果中可以看到,视图也是可以直接调用的。

五、批量测试与导出API文档
这里就是我们正式工作中的步骤了,批量测试,查看通过率,都测试通过了代表我们的数据库是可以经得起考验的,是可以提交给下一个部门的时候了。
演示步骤
1、批量测试
2、导出API文档
3、导回API脚本
1、批量测试
点击【批量操作】

勾选所有步骤。

测试结果

2、导出API文档
2.1 返回用例面板
滚动条拉动到最右侧,选择更多的【导出】功能。

2.2 等待生成用例脚本

2.3 下载生成的用例脚本

json类型

2.4 脚本格式
脚本为【UTF-8】编码格式的【JSON】数据格式。

3、导回API脚本
我们讲导出的脚本导回到项目中,相当于我们更换设备的时候就更加方便了。

导入过程需要等一会。

导回成功:

测试:

六、总结
Eolink的这个功能还是非常不错的,相当于对实施工程师和DBA都有一定的帮助。特别是实施,很多的时候需要只有一个查询的权限,但是各种老板又各种需求,有了Eolink的这个功能就可以根据项目进行划分,为每个企业定制不同的查询需求,并且是在线可用的,相当可以。
主要还得是用在【数据库测试】中,很多时候【DBA】会给测试人员一堆【SQL】,我们就可以直接使用这个功能,编辑完成后批量测试,刷刷刷就出结果,怎一个痛快了得,值得推荐,非常棒的【神技】。
