自动化工具 接口测试提前介入和自动化测试

hunterecho · May 17, 2016 · Last by 萝卜 replied at July 22, 2019 · 2702 hits

仅仅是想说,测试开发大牛们,拜托别浪费这么多资源搞什么测试框架了。
有能力的直接转开发吧,也别再误导后来者了,让他们在最初的地方就认识到测试的前景和职责。
另外,真正的业务测试的人根本不需要你们提供的拗口框架,开发更不需要。

目前开源的这些框架足够用了
这里就简单罗列一些工具和思路

Jmeter:负责测试先行的脚本编写和执行;(包括测试的全部)
Jmeter-maven-plugin :负责测试脚本管理和运行控制;
TestNg:负责结果校验以及保障在 Jenkins 中查看结果有良好的阅读性;
Jenkins:负责持续运行;

优点:手工测试时用得脚本直接可被自动化运行,减少自动化测试资源投入。
缺点:可维护性、可读性不太好。

共收到 38 条回复 时间 点赞

观点很犀利啊,刚入行么

推荐用开源的框架. 你推荐的框架不太好. 推荐用 Swagger 框架. 支持所有语言. 也支持根据接口文档自动生成测试用例模板.
如果是研发, 可以使用自带的各种接口测试工具. 比如 spring 就自带了.
定制化的框架是有自己需求在里面的. 不推荐新手用任何一家不在 Github 上的工具或者项目.

哈哈,期待后续观点

能说明下测试对象吗,感觉楼主说的是 web,应用没有你说的这么简单吧

额,想问下上下文是啥?

移动应用怎么入手接口测试呢,爬了一堆百度谷歌还是一脸懵逼,参数请求都带设备信息,cookie。缺个像你这么简单直接的帖子。

额, 我感觉火辣辣的在打我的脸哈哈。话说这个标题和内容不符合阿?我很想知道大家对接口测试提前介入的想法

#2 楼 @seveniruby Swagger 也是管理 API 的么? 我们用的阿里的 RAP,可以做 mock server,也可以作为前端和后端的 API 约定管理

关键是开发可能只关心当前变更点,不测相关接口的影响有无,所以才有了自动化回归测试的必要性。不明觉厉,期待接口测试提前介入。

#8 楼 @ycwdaaaa Swagger 不仅仅是 API 的,很好用的

#10 楼 @monkey 还能? 我看了一下官方文档的介绍。貌似就是API呢

#8 楼 @ycwdaaaa Swagger 这种东西, 大多数测试人员掌握不了. 主要还是靠研发推动. RAP 我今天也刚听说, 看了下 star 数挺多. 貌似主要是用于手工 mock 数据. 我持保留意见. 大家可以试试看.

#7 楼 @ycwdaaaa 应用环境的差异,鸡窝没有工程设计没准盖得更快更好。接口测试提前介入,我们这边就是定义接口,假实现输出模拟数据,让测试先能转起来。后面再看进度迭代。之前没提前介入测试这概念,就是想提高效率。

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

其实我觉得吧,单测、MOCK 离大部分人都比较遥远吧。。。。为啥一定要做单元测试呢?
上次看一篇大牛写的 ANDROID 技术栈,测试只占不到 1/6,有太多的不会的了,当然能把一件事情做到极致也是非常牛 X 的了~
然后无论是开源还是框架,能修改,能适配才是真正会用;拿来用,一遇到坑就傻眼,还不如不用。
过度的推框架确实有点那啥了。。。

观点犀利啊。哈哈。

(至少从服务端来看,手机端不熟)测试界近 10 年,并没有什么重大的技术突破(开发技术突破较快,比如像 Hadoop, spark, storm, Docker 等等),理论还是那套,实践还总是那些工具 JUnit4(最近出了 JUnit5 重写了一遍), TestNG(inspired from junit), 测试系统大多数都是开发个 web 系统,做做管理、调度、展示,底层的还是那些东西。(吐槽哈)

嗯 开发届也有一句古话,那么多开源项目为什么还那么多人造轮子呢

#17 楼 @dongdong 赞同你的说话,每个公司的需求是各种各样的,符合自己需要的轮子还是有必要造的,造与不造根据实际需要。大航海行靠舵手,技术改革靠轮子,哈哈哈

#12 楼 @seveniruby RAP 我们也是刚用,之前有个 mock server, 但是需要写一些模板代码,有学习成本。后来听说 RAP 有 UI 做这个事情。不仅可以当 mock server 用,还可以用来管理 API 的定义。用来规范前端和后端的协议,相当于管理API的平台了。 但是我现在遇到个问题就是 RAP 对一个 API 只能有一个 mock 实现。就是说不管你传入什么参数,只返回那一个返回值。无法根据不同参数定制不同的 mock。Swagger 能做到这点么?

#13 楼 @frankliu 我觉得这样也是困难重重阿,我昨天也跟我们的开发人员讨论这个问题。能不能事先提供详细的接口文档,这样测试可以先写脚本。但是讨论中发现让开发人员在现在的迭代周期内把每个API的详细文档都写出来是比较困难的。

项目总是有各种需求,需要在来源框架上拓展的😄

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

支持使用 swagger 框架,自动生成接口文档,同时还可以运行,swagger.json 可以做一个自动导入到接口测试工具的脚本,同样可以自动测试和校验。感觉还是很方便的。

#19 楼 @ycwdaaaa RAP 平台是个不错的尝试. 他们也是开放出了首个支持 mock server 的 Web 工具. 我之所以是说持保留意见是怕打击他们的开源热情.

我是觉得他们还没完全理解 mock 的意义和场景. 只是做了一个 mock api 的管理系统. 重管理轻测试. 把精力都投入在如何构建一个支持增删改查的管理系统, 而忽视了 mock 的真正需求和使用场景. 当然我支持 RAP 的发展. 期待会有更好的设计.
其实包括 moco 这种获得世界大奖的 mock 项目, 设计的也还不够易用. 但是如果一定要做 mock, 我推荐这个框架.

先把不需要 mock 的端到端的接口测试搞定. 这样已经可以保证大部分的业务质量了. 然后再去解决 mock 问题.
对于 mock, 能用单测框架去解决的, 就不要去使用 GUI 的各种 XXX 管理系统. 等以后维护起来, 就知道会有多么的难用了.

当然想做 mock, 技术上会有一些偷懒的方式, 比如代理扩展, nginx 反代等方法. 大家可以玩玩.

#23 楼 @seveniruby 恩,对于 mock 的需求来说 RAP 确实比较弱小。我们搞 mock 主要倒不是为了测试人员使用,而是给开发人员用的。前端的同学想在 API 开发完之前就测试自己的代码。我看了一下 moco 的文档介绍。灵感来源于 mockito 的 stub。这个我还是很喜欢的。因为我一直推荐我们的开发使用 mockito。上一周还专门培训了开发如何使用 mocktio。我不知道我理解的对不对,我是建议开发人员在做单元测试的时候把持久化层 mock 掉增加运行速度和减少验证的复杂度。同时为了提高覆盖率使用 stub 模拟测试环境中很难出现的情况。其他的时候我建议少用 mock。我怕用多了会导致重构灾难

先 mark 一下 ,改天试试 Swagger

jmeter 做接口测试,刚入行练手可以,做深了感觉是个二不像

#20 楼 @ycwdaaaa
我觉得 swagger 也是一种可执行文档

不是一开始就有完备的设计,也不是要及时提供做好的东西的文档
边做边改,这段时间测试会一直失败,直到测试都通过,这时候软件实现和文档一致了
cucumber 老首页是个好描述

流程管理和技术相互配合,根据接口代码生成接口文档,接口文档生成接口用例,比较好的实践。
mock server 目的验证调用方的代码,单测阶段比较合适吧,个人观点

我想说 不同的公司 情况不太一样,用开源的可以呀,只要你们觉得能满足你的需求,
我相信开发测试框架的初衷应该是为了寻找更适合现在业务和效率上得到体现

#20 楼 @ycwdaaaa API 文档都超级简单(简单注释转的),有些和没有一样,我个人经验是从头到尾过一遍文档,有不明白的,集中问开发者。搞得的和丐帮打狗棒法似的,口口相传。我们这边同事绝大多数都比较友好,比较合作。我说的那个套路,是需要开发前期设计的好,如果接口定义随时在变那就玩不转了。

匿名 #31 · June 29, 2016

还是要根据实际情况

一直在做手工测试,很 low 逼吗?

#2 楼 @seveniruby 学习了,看了下 Swagger,正合适我们目前大多数微服务 Restful 接口测试

观点很是犀利。个人觉得,找到适合自己项目的东西去解决问题就好,不要过分排斥框架也不要过分排斥工具。

#23 楼 @seveniruby 请教大神,moco 或 rap 这种 mock server,是否能够支持性能测试,一方面是能否承载性能测试的压力,另一方面是测试数据按规则构造,不知道是否能够满足需求?

#35 楼 @zheteng 支持不了 做性能用 cache 服务器更好.

#36 楼 @seveniruby 感谢这么及时回答!没太明白您的意思,我是想弄一个用于性能测试的 mock server,您说的用 cache 服务器更好具体是指?

jiraqw 回复

是的

需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up