接口测试 接口自动化测试框架--请大家给点意见,好改进完善...

萌梓萌爸 · 2017年08月21日 · 最后由 萌梓萌爸 回复于 2017年08月24日 · 2419 次阅读

接口自动化测试框架
由于是第一次将自动化测试做成一个平台化的工具,所以存在很多设计问题,希望大家多多提建议。
这套框架主要分为两个部分,第一部分是界面化的一个平台,是面向使用者的部分。预想是用户可以在这个平台上进行测试用例的添加,创建测试计划,执行测试计划并生成测试报告,最后可以以邮件形式告知相关人员测试结果。
第二部分是接口测试具体实现的部分,就是测试计划执行以后具体做的那部分内容。这部分的话是一个不公开的部分,也就是只有框架的开发者会接触到,用户是不会具体去修改的。
可能我的文字描述不够好,大家先凑合看吧。以上是我对框架两部分期望工作的简单描述。

目前实现:
第一部分 (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。

以上是整套测试框架的大致内容。希望大家多给点意见,我会慢慢完善,后面页面慢慢把具体实现整理下。

共收到 16 条回复 时间 点赞

严格来说你这已经不叫框架了,有点向平台靠拢了

槽神 回复

😂 我也在向这方面努力,只是现在知识还是比较匮乏,需要慢慢努力。。

为啥要做成网页版的= =直接代码放到 Jenkins 里定时执行不好么

围城 回复

起初是为了维护测试用例可以界面化,后面慢慢有需求说不想配置 testng 的 xml,不想去修改项目里的配置文件。。当然现在还是利用 jenkins 来做定时任务,后期会慢慢改掉。会做成自动生成 testng 的 xml,生成 pom 文件等等。

#4 楼 @mzmb 你可以试着自己实现 testng 的的功能,不一定要依赖于它,只是个用例执行逻辑而已

—— 来自 TesterHome 官方 安卓客户端

土豆 回复

嗯。后续我会慢慢深入研究,现在是先完成可用,再完善,谢谢你的建议

我自己实现的平台跟你思路有点类似,给个建议,不要用 testng 或者 junit 方式作为执行,直接使用 httpclient 方式执行,支持多线程方式,结果写入到 mysql,
增加调试,支持版本管理,支持用例集处理,自己根据结果生成对应的报表

—— 来自 TesterHome 官方 安卓客户端

根据实际需求可能需要考虑测试数据预置回收,上下接口依赖等;很早的时候也搞了个和你思路差不多的,不过界面丑多了最后没用起来,需求人员要求很多,能力不足......你要向谁推广,多多了解调研实际需求会比较好

感觉应该是在已经有完整的自动化测试框架之后,再来做的平台。
能否再开文章,详细的讲讲测试用例是如何定义、保存和调用的吗?

多谢。

CC 回复

嗯嗯,谢谢你的思路,我也这样想过,不过按照先完成后完善的选择,先可以有产出,然后再慢慢去完善。以后有问题找你讨教哈

北溟 回复

是的,我也征询过使用者的意见,所以慢慢改过来的。。。要学的好多,好多以前都不了解

白虹李李 回复

执行层面的话很多人都写过了。如果你还有什么需要了解我们可以私下交流交流

匿名 #13 · 2017年08月22日

目前也在写这个,楼主很不错都已经做出来了,后面有机会可以交流一下,我在用 python 写

恩,什么语言实现无所谓,关键是思路,以后可以一起研究下

我也想做个类似的。。但是可以在线调试接口,然后保存到具体模块下面,然后调 jenkins 的 api 调度自动构建。。可以加个 qq 不,@mzmb

wuming 回复

调试我也在实现中。。加我微信吧。。344739770,QQ 不常上,微信号码也是这个

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册