某网站上有人提了一个问题:
“Postman体积庞大,运行缓慢,且充斥着我不需要的功能,有没有轻量级的替代品?”
我需要一款用于测试API的软件,我希望它能像Postman那样拥有json格式的请求集合,但我不想注册账号、探索其他API、邀请他人到我的个人资料、分享心情或做类似的事情。我只想要简单地通过GET、POST方法,以及设置请求头、请求体、认证信息等,向外部IP或本地服务器发送API请求。我尝试过Insomnia,但它既庞大又缓慢。这类应用是怎么回事?我只是想进行API调用,为什么它们要包含这么多冗余功能?
有没有轻量级且实用的替代软件?大家有什么建议吗?
提前感谢。
以下是一些网友的回复:
网友1:
Bruno 是一个完全免费的替代选择,非常适合进行探索性 API 测试。对于 API 测试,我个人更喜欢基于代码的测试框架。我使用 Supertest 与 Mocha 和 Chai 一起进行测试。
网友2:
Bruno 是最接近 Postman 的开源替代方案。但就个人而言,我会选择使用 Playwright API,但这需要更深入的知识。
网友3:
我之前从未听说过 Bruno,我希望大家能附上链接。
第一个提到它的人可以贴上一个 URL,这样就不用让成千上万的人去搜索了,我帮大家找到了链接:https://www.usebruno.com/。我顺便说一下,它看起来不错。
另外,我还喜欢这个https://www.thunderclient.com/ VS Code 的扩展。
网友4:
使用 Python 中的 requests 库并编写脚本。
网友5:
我也是,用 requests 库还没搞出啥大成果,但最近加了几个新测试,它们很快就运行起来了。我需要在我现有的基础上进行扩展,不仅仅是检查成功响应和返回的数据,但对我来说,这比使用 Postman 感觉顺畅多了。
网友6:
是的,我刚创建了一个 pytest 测试套件,用于断言状态码和正确的响应体。
网友7:
我也是,等我有机会的时候,我的下一步是研究 pytest-schema,并且看一下这个 Data Factory 文档:https://playwrightsolutions.com/the-definitive-guide-to-api-testcreating-a-datafactory-to-manage-test-data/。
我的响应可能会根据数据的不同而有所不同,而就目前而言,我的日常测试只确保为正确的用户请求提供了响应。
我很享受学习和做这些事情的过程,但是争取时间却很难。我要处理的项目太多了,以至于无法对每个项目都给予应有的关注。
网友8:
为什么选择 Python?任何现代语言都可以。
网友9:
我只是恰好使用 Python 进行 API 测试,但你说得对,任何语言都可以使用。
网友10:
是的,任何基于代码的工具都可以。
网友11:
把这个作为你进入基于代码的 API 测试的门户,所有工具都是免费的。你基本上已经知道如何编写请求和断言了。它可以帮你成为自动化测试工程师,这将大大增加你的就业机会和收入。
然后......把你的代码提交到 GitHub,现在你可以轻松地分享它了。你还能获得更多有助于简历建设的技能。
网友12:
还有以前叫 postwoman:https://hoppscotch.io/
网友13:
有些人使用 Insomnia(https://insomnia.rest/)。我个人更喜欢HTTP文件(https://learn.microsoft.com/en-gb/aspnet/core/test/http-files)。
网友14:
curl
网友15:
我最喜欢使用 curl 的一个功能就是能够将确切的请求粘贴到 Slack、电子邮件等通讯工具中,而其他人无需任何专有软件就可以执行它。
https://www.keycdn.com/support/popular-curl-examples
网友16:
我喜欢 jetbrains 的 .http 文件实现。它本质上只是一个 curl 格式化工具。
网友17:
来自老版 Insomnia 的创作者:https://yaak.app”
网友18:
太棒了。这就是我现在正在使用的。
网友19:
我更喜欢这个:https://httpie.io/
网友20:
我也推荐Curl。
网友21:
我发现自己写点东西更容易些。
网友22:
VS Code 的 Rest Client 插件。可以轻松地将 .http 文件添加到源代码中,为了防止密码泄露,你可以从设置、环境或包含的文件中导入凭据。可以使用 JsonPath/XPath 来解析出值,并将其传递给后续调用。
https://marketplace.visualstudio.com/items?itemName=humao.rest-client
网友23:
Cypress 也能很好地完成这项任务,你可以调用一个接口,然后在自动化浏览器中显示响应。
网友24:
使用行为驱动开发(BDD)...
网友25:
Playwright + 客户端 API 生成器。
网友26:
请告诉我更多关于第二部分的信息好吗?
网友27:
你可以使用这个强大的工具,根据 Swagger 定义生成完整的客户端 API:
https://openapi-generator.tech/
然后,你可以构建一个包装器,并在 Playwright 测试中使用它。这意味着你不需要创建新的端点或更改名称等,只需要一个脚本来下载 Swagger 文件并调用生成器。
说实话,这非常强大,是一个很好的组合。不过,至少对于这个生成器来说,不好的地方在于它的错误信息,简直就是一团糟。
网友28:
听起来真的很酷。不过我想我需要找一份指南,因为他们在网站上的说明看起来并不那么直接明了。
不知道它是否能在 Kotlin 中的 Rest Assured 中使用。
网友29:
我用 Python 写了一个测试生成器,它可以读取一个 Swagger 文件,并输出 Robot Framework 测试,同时还包括模式验证。根据 API 的复杂程度,这些测试可能需要一些调整,但是当一个 API 需要生成数百个测试时,它为我节省了大量时间。
网友30:
嗯,这是个好主意,我的朋友,谢谢!我会试试的。
各位同学,在你们平时的工作中,除了Postman还有哪些好用的测试工具呢?欢迎在评论区进行评论。