灌水 接口自动化测试应该怎么选择框架 /工具?

醋精测试媛 · 2021年06月07日 · 最后由 醋精测试媛 回复于 2021年06月08日 · 2993 次阅读

我经常逛论坛上面有关接口自动化的帖子,看到大多数框架配套都是 requests+python+pytest+allure+Jenkins,这应该是比较主流的一套了,当然也看到开源项目里面的 HttpRunner。

但是我也有看到有建议说如果开发用的语言是 Java,最好也用 Java,Java 相应的虽然比较少,但是也有,比如我试用期用的是 Spring Mockmvc+JUNIT5(当时比较不懂,是跟着开发走的,所以不知道算不算接口自动化,感觉不太算,因为也没有生成什么测试用例和套件之类的,感觉是给开发自己用,自己写的,偏向于单纯的接口测试),看到有推荐是 TestNG+reportng。

问题 1:我个人的情况是之前写 Java 比较多,后来做 ui 自动化用的 python,现在 python 确实比较熟练,但是我觉得开发用的 Java,是不是也用 Java 比较好?
问题 2:如果用 Java/python,用什么框架组合比较好?有什么好的地方和不好的地方?
问题 3:公司有涉及到 PaaS 和 SaaS(有很多需要发出和收到通信的东西,如用到 RocketMq 之类的),可能有很多异步转同步的测试,联系到这一点,框架还有需要满足什么条件呢

至于框架的孰优孰劣不太懂,但是感觉 Java 和 python 做起来差异还是比较大的,而且还有需要 mock 数据之类的,综合考虑的话,我就觉得比较迷茫,所以想问问大家有什么看法?(如果可以的话可以详细讲讲选择的原因吗)

共收到 13 条回复 时间 点赞
仅楼主可见
nicolas 回复

请问是开源的吗

  1. 哪个顺手用哪个,我的经验是开发用啥我用啥,资源不够的时候好抓壮丁
  2. 根据需要自己组合就行,哪儿有什么好不好的。。。你这和 java 好还是 python 好这个问题差不多
  3. 涉及到第三方多的,一定要便于录制,比如自动录制 mock 数据什么的
仅楼主可见
Ouroboros 回复

便于录制是什么意思呢?

跑一下把请求返回以及对应的第三方请求返回录下来

  1. 如果公司有统一技术栈的要求,用公司规定的。若没有,用测试团队多数人擅长的。
  2. 取决于被测产品需求,严格点说是取决于项目需求。
  3. 多数测试框架都满足同步这条需求,至于还需要满足什么,回答同 2。

不用管开发用的哪种语言,只管目前你们公司测试团队擅长的语言。

UI 自动化不做了?

遇到楼主类似的问题,另外想问下楼主不考虑用现有的工具的原因是什么呀

testerming 回复

由于开发的原因,ios 搞不了了暂时

AIR神神 回复

感觉写代码更自由?其实我也不是很了解这些,而且也比较难找到了解的渠道。我们测试搞这个的只有我一个

  1. jmeter(虽然是压测可能可以用,不过我不了解有没有对应的校验工具)
  2. postman(可以做校验逻辑,但是鉴权不好写,是基于 js 的)
  3. 自己写程序逻辑做测试(python 或者 java 之类的),这个自定化是最高的,但是会比较麻烦

java 现在基本上 junit5 或者 testNg 都行,但是这个是研发自己来关心业务逻辑的时候的解决方案
用不用 Jenkins 取决于你的代码是否希望做定时运行,或者改了代码之后自动运行
至于语言的话,我是觉得如果你们测试有多个人同时写自动化测试,统一语言可以方便大家沟通和随时切换角色(比如说临时接任务,这各种情况下甚至建议代码结构统一)

接口自动化有两种概念,一种是研发自己写测试用例,然后用全新的数据库(可以是真的或者假的),然后调用 API 验证接口是否正常
另外一种是从业务逻辑出发,写个程序或者测试用例调用远程真实的 API,然后验证返回的值是否符合你的预期

第二种应该是要关心的吧,这种情况的话需要考虑怎么保证没有脏数据,怎么增加测试稳定性(比如因为用例之间的数据修改导致测试用例失败)

醋精测试媛 关闭了讨论 06月08日 15:17
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册