接口自动化测试框架
由于是第一次将自动化测试做成一个平台化的工具,所以存在很多设计问题,希望大家多多提建议。
这套框架主要分为两个部分,第一部分是界面化的一个平台,是面向使用者的部分。预想是用户可以在这个平台上进行测试用例的添加,创建测试计划,执行测试计划并生成测试报告,最后可以以邮件形式告知相关人员测试结果。
第二部分是接口测试具体实现的部分,就是测试计划执行以后具体做的那部分内容。这部分的话是一个不公开的部分,也就是只有框架的开发者会接触到,用户是不会具体去修改的。
可能我的文字描述不够好,大家先凑合看吧。以上是我对框架两部分期望工作的简单描述。
目前实现:
第一部分 (springboot+angularjs+jpa+mysql+bootstrap):
目前已经实现的内容(目前测试计划这部分未完成):
用户登录:由于测试项目比较多,且用户可能不只本小组的人,所以需要做一个权限控制。每个人能访问的项目会存在差异,这里的访问的权限的配置由一个最高权限的账号来配置完成。
测试项目管理:因为存在多个测试项目,所以这个是权限控制的最小单位。用户可以进行增删改查 (逻辑删除)。
测试模块管理:测试项目下一级是测试模块管理,在测试项目下,用户可以创建 n 的测试模块,并可以进行增删改查操作。还有一个操作是进行公共配置操作。
例如:
3 DEV {"env":"http://www.test.com,encoding:utf8"}
每个不同的环境一组配置信息。比如还可以添加 uat,prod 环境的配置
测试用例管理:测试用例的话除了 get/post 请求的增删改查以为,还可以关联测试用例,这里使用的是正则表达式来实现。目的是下一个请求可以使用上一个请求的结果。
当然也可以使用数据库中的预先准备的数据。数据验证方面的话暂时支持 json,string,contains。
报告:这是执行结果的一个查看(具体报告是自定义的 reportng)。
第二部分(testng+httpclient+mybaties)
主要是具体执行 http 请求,这部分其实和大部分 http 协议接口测试一样的差不多,只是数据驱动改为 mysql。
以上是整套测试框架的大致内容。希望大家多给点意见,我会慢慢完善,后面页面慢慢把具体实现整理下。