接口测试 打造接口测试框架 -- 架构篇

卡斯 · 2016年12月05日 · 最后由 测试小兵帅帅 回复于 2018年05月22日 · 6868 次阅读

市面上开源框架和商业工具那么多,为何还要造轮子?

关于商业工具

  • 贵!贵!贵!

  • 不支持二次开发

  • 只支持功能和压力

关于开源框架

  • 易用性较差

  • 解析框架耗时

  • 只支持功能和压力

  • and so on

我所理解的接口测试

接口测试分为四层,分别为功能/流程/压力/监控,对于市面上大部分已知框架而言,可能就只针对功能/压力进行了支撑

设计目标

  • 用例自动生成
  • 支持功能/流程/压力/监控
  • 异常容灾达到开发级

框架设计图

框架流程图

框架所用到的

服务层 Python + requests + pymysql

数据层 mysql

业务层 EasyUI

设计篇请移驾

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 44 条回复 时间 点赞

老司机开车啦😀

等老司机开车

可能就只针对功能/压力进行了支撑,这点不太认同。。能否西说下

@pacerron 功能一般是指单接口,压力这个比较好理解就是性能,流程是指多接口组成一个业务场景,监控是针对线上/线下

#5 楼 @kasi 既然支持单接口应该也能覆盖场景,监控应该也不成问题,无非弄点报警。可能我的理解简单。

@pacerron 难,你可以试试,基本很难,这个必须高度定制化才能实现,毕竟接口依赖之类的需要处理

#7 楼 @kasi jmeter 满足不了吗?

@pacerron 支持度不够,不过比其他工具好多了

嗷~等老司机开车,比上次看的更完整了

匿名 #36 · 2016年12月05日

#9 楼 @kasi 老司机,你说的场景,jmeter 都可以实现啊,不过,我更期待你的后续,工具实现的过程更有意思!加油

卡斯 #12 · 2016年12月05日 Author

@Tank007 对 jmeter 的理解有限啊,不过用那个要做很深针对源码级别的改造才能符合需求吧,容灾方面他的支持力度较低

匿名 #13 · 2016年12月05日

#12 楼 @kasi 容灾方面我没研究过,jmeter 也是配合 jenkins 使用的,不用修改 jmeter 的源码,至于功能和流程的接口测试,这个是可以满足的,快点啊,你的后续啊,我也用 python 的,所以很期待哦,又可以涨姿势了,嘿嘿

卡斯 #33 · 2016年12月05日 Author

@Tank007 哈哈 我这个是第一版本的用 python,后期会重构为 java

你的意思打造一个支持性能,安全,功能测试的接口测试框架,这样还是接口测试框架?,,,感觉太重了

反正我是看不懂 loadrunner 或者 jmeter,我也是用 requests 做接口测试😂 python 挺好的,没必要用 java。

卡斯 #17 · 2016年12月06日 Author

@lose 安全还没考虑,你说的那些本身就是属于接口的范畴,不会太重

卡斯 #29 · 2016年12月06日 Author

@0x88 简单的接口测试用 python 确实不错,但是要做平台级产品的时候建议还是用 java,毕竟 python 很难支持 java 系的工程

老司机又开车了

然后还想要有 mock server 功能😆

没用过深度二次开发的 jmeter、在多人合作开发、用例数量多的时候,用 jmeter 很影响体验的是:

1、版本控制工具提供不了太多帮助

2、Fragment、Controller 套了好多层,编写、理解和调试的时候,觉得图形操作反而不如好的 Terminal 加 IDE

卡斯 #21 · 2016年12月06日 Author

@sanlengjingvv mock 没有放里面,后续肯定是需要加的~

“用例自动生成” 比较感兴趣,能说下大概思路吗?

卡斯 #23 · 2016年12月06日 Author

@taflo 简单来说,设定好规则外加全对偶算法匹配

#23 楼 @kasi 哦,数据驱动模式,不错。

撒时候行动?我已经关注了。。哈哈,另外有个疑问,接口的检查点,是否需要去查数据库?

卡斯 #28 · 2016年12月06日 Author

@lose 下一篇应该下周放出来吧,目前都是做到一部分放一部分的节奏~ 接口的检查点,必然包括数据库查询,不过由于行业因素,目前设计的框架只针对流程来做

老司机 赞! 不过 soapUI 类的安全可以考虑,再来压测同时对自己本身的性能要求也挺高。

卡斯 #29 · 2016年12月07日 Author

@shijin880921 恩,soapui 是值得借鉴的一款,不过目前安全短期内不会去考虑,压测会等功能和流程做的比较完善了才启动,会借鉴一下成熟的体系

老司机带路,支持一个! 基于 jmeter 的平台用 360 的大白吧,覆盖了性能测试和接口功能测试,用例管理什么的

16楼 已删除

#27 楼 @kasi 接口参数检测
1 参数必填
2 参数类型
一个接口包含参数,a,b,设置 b 必填,a 非必填
这里就要对一个接口进行两次检测

a 参数正确,错误
b 参数正确,错误
这里一个接口就要有进行四次测试

那么正常一个接口需要六次测试,才能达到覆盖率完整?

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

卡斯 #33 · 2016年12月08日 Author

@lose 你可以看一下全对偶组合算法

看来大家都喜欢用全对偶😁 最近也在思考已有的接口自动化的改进方向,老司机快写。。。

卡斯 #35 · 2016年12月09日 Author

@cissy 不用全对偶的话 太多废弃组合了,又是算法渣,只能这样了

#35 楼 @kasi 是自己学算法,还是借助第三方工具来生成?

卡斯 #37 · 2016年12月09日 Author

@lose 借助第三方吧,网上开源的很多

期待,持续关注。。。

看来有个不错的团队呀,=。=!

关注,我也打算给自己搭建一个类似的,前些月虽然简单使用了网上的 python+Htmlrunner,感觉还是有待提升或修改的

卡斯 #40 · 2016年12月09日 Author

@icu200934 ⛽️

有开发完成吗

卡斯 #43 · 2018年05月22日 Author

很早就落地了

卡斯 回复

有 git 不?学习下

公司内部产品不对外

卡斯 回复

好的,懂,谢谢

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