接口测试 公司需要做一个接口容错自动化测试寻求想法

cczhang · 2018年05月15日 · 最后由 cczhang 回复于 2018年05月22日 · 2431 次阅读

需要达到的效果:1、可以在管理后台设置接口配置信息,比如接口返回502、404等
2、前端请求接口,第一次请求该接口返回502,第二次请求该接口返回404,依次类推

说真的,我觉得好难啊,目前想到的方案就是二次开发fiddler,然后结合ui自动化

共收到 48 条回复 时间 点赞

就是 mock 吗

charles有个locate功能

用mitmdump 写个脚本,自定义mock response header 或者body。。然后再用flask做个简单的页面去调mitmdump的脚本。

看过社区一位童鞋说的,写的再多,还不如直接自己写代码测试,看开发源码逻辑。搞这种平台实话说,虚大于实

easy mock了解一下

arrow 回复

太感谢了,我到时候看看

hu_qingen 回复

九四九四,我都好想去搞别的,正好有空了,大佬就叫我搞这玩意儿,我这边的方案就是二次开发fiddler,然后结合UI自动化,但是想想这难度,可怕

jerrylizilong 回复

是Mock,但是要实现自动化,单纯的Mock达不到大佬想要的

mixure 回复

这个类似fiddler来修改返回了,我们需要的是自动化,每次运行的时候,什么配置都不要

奇奇怪怪的要求。做这个东西的意义在哪里?

他不放弃让他出个方案啊;竟是这样的领导,没方案,没脑子,就要结果,你去解决, 放kpi里;

filder的脚本能会写的人就不多, 我这本子安装太费劲,放弃.

基本方案就俩

在客户端那mock,这个难度真的比较大,要能搞定基本可以当开发去改bug;
做个假的服务器
- 各种语言可以实现,相当于开发了一个后台
- 然后我说的charles locate,是直接返回结果,不是在中间修改后返回,只修改的话还是需要真的server

然后感谢楼下说的mitmdump,最近客户端有bug,用charles修改请求后定位,但手要快;
filder安装麻烦,还要学新的脚本.
找到了相关的一个文,https://juejin.im/post/5ac9ea6d518825364001b5b9,喜欢的人可以去看

jacksonchina 回复

我也想知道😂 我就想做些实实在在的工具,这种浪费时间,效率又低

还是有用的,主要是mock一些异常http或者异常key,value值用来检测APP是否有处理,出异常可以,但不能导致crash等

qwen 回复

目的是这样,但是很多种方式其实都可以做到这个效果,但是目前的难度就是自动化

cczhang 回复

可以实现啊,看这个mitmdump 的python脚本的引用。对response类,写个随机产生异常的方法,并记录产生了那些异常。

qwen 回复

哈哈,太感谢你了,刚刚研究了一下,你这个方案最佳方案,我把之前的方案彻底放弃了

mixure 回复

看到了看到了,谢谢,突然感觉世界都光明了

  1. 可以通过类似相关工具Fiddler, Anyproxy ,Nginx代理 定义一些rule 把接口url rewite到你自己的mock服务
  2. 你的mock服务对应接口读取一个配置标志位参数(可以数据库,redis配置)返回不同状态数据
  3. ui脚本执行前在访问接口前更新mock的接口配置参数
test_ha 回复

mock的方式试过了,然后需要前端写入代码,我们想要的效果是完全与前端开发隔离,所以方案还是被pass了,而且好复杂啊😂

我们公司团队做了一个接口容错自动化,用到了anyproxy,可以了解下

Oliviavia 回复

实现了哪些功能呢?

我们做的是用anyproxy mock数据,然后再结合UI自动化。

Oliviavia 回复

是实现了APP的接口容错自动化吗

cczhang 回复

😀 不客气。我个人觉得你们领导还是挺有想法的哦。。另外,坐等你的分享。

cczhang 回复

恩 是的 实现了APP的接口容错自动化。

cczhang 回复

Android和iOS都有实现

我们实现了这样的工具,不仅仅只是修改status_code,还包括了response字段的修改
能够接入自动化框架

用fiddler的AutoResponder就好了,或者参考大神写的这个。https://testerhome.com/topics/6383

cloudwind 回复

如果只是单纯的修改返回值,就可以用你那种方式了,但是要实现自动化

jacexh 回复

好厉害啊,能提供实现方式吗

Oliviavia 回复

好厉害

测试接口对所有情况是否都做了异常处理?

https://testerhome.com/topics/6257 这个帖子我感觉已经包含了各种异常情况了,你只是在它的基础上扩展就好了

cloudwind 回复

这个方案我有看过,代码能力差啊,看的好蒙蔽

cczhang 回复

可以一起交流下

Postman,Charles都有mock功能能做到这点

cscomic 回复

要的效果是不需要每次手动去改返回,而是自动化,如果你这种当时,都不会来问了😂

码代码吧,虽然很辛苦。

cczhang 回复

实现方式楼上某些人提到过,基于mitmproxy,而不是fiddler/charles这种
之后再完善下,考虑会开源出来

jacexh 回复

好人一生平安,哈哈,昨晚大神又给了我一套方案,到时候成功也分享出来

cloudwind 回复

代码肯定要的,主要是方案,哈哈

看你这个需求,测的是前端处理后端各类返回的测试?mock.js?

s6819059 回复

是的是的

s6819059 回复

没错,我们的工具也是基于这个出发点来设计的:

  1. 接口层负责完整业务逻辑的验证
  2. 前端(web、移动端)负责对不同response的展示、联动等测试

这样做的好处还可以解决前端对测试数据业务性的依赖

jacexh 回复

你那边完成的怎么样了呢

Oliviavia 回复

请问具体的思路是怎么样的?方便分享一下吗

mitmproxy 很好用的好好弄弄 没问题的

gz25605349 回复

哈哈,已经完成的差不多了

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