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

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

我经常逛论坛上面有关接口自动化的帖子,看到大多数框架配套都是 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
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册。