接口测试 大家在做接口测试时,会用 HTTP 请求录制工具吗

LinuxSuRen for 开源技术兴趣小组 · 2023年06月07日 · 最后由 lsq54264 回复于 2023年06月21日 · 6941 次阅读

如题,用 YAML 或者其他格式来表述接口测试用例的话,学习、记忆工具的语法总是个麻烦事情,下面是我实践的接口录制功能。

  • 首先,启动 HTTP 代理服务:atest-collector --filter-path /answer/api/v1
  • 然后,给浏览器设置代理,并打开业务系统进行操作。
  • 最后,关闭代理服务,自动生成 YAML 格式的测试用例。

正如你上面看到的,这个工具提供了一个 URL 路径的过滤器,基本能够过滤到希望录制的 API 请求。当然,像 Query、Payload、Header 等也都能记录下来。

希望了解的是,大家都还会对 HTTP 接口录制有哪些诉求呢?下面先给一个录制的结果样例,欢迎留言交流。

#!api-testing
# yaml-language-server: $schema=https://gitee.com/linuxsuren/api-testing/raw/master/sample/api-testing-schema.json
name: Sample
items:
- name: publickey
  request:
    api: https://demo.halo.run/login/public-key
    method: GET
- name: login
  request:
    api: /login
    method: POST
    body: |
      {
        "username": "demo",
        "password": "P@ssw0rd123"
      }

参考链接:https://github.com/LinuxSuRen/api-testing/pull/85

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 5 条回复 时间 点赞

我之前也尝试过通过代理的方式录制接口,但是录制完成后,怎么分辨这个接口是干什么的是一道难题

lsq54264 回复

好问题,可以通过约定的方式来优化。例如:获取页面 head 标签中的 title,并写入到用例描述中。后续考虑下如何把类似的功能做进去。

之前做过类似的,但当时通过自研 chrome 浏览器插件的方式来录制生成 yaml,但缺点在于不能拿到 response 消息体;

Unmurphy 回复

我也考虑过浏览器插件的方案,这个方案就需要依赖浏览器环境,不同浏览器要做不同的插件。代理的方式,就会有很好的兼容性。目前遇到的问题是 HTTPS 拿不到内容,但应该不是什么大问题,内部系统大多也可以用 HTTP 协议。

LinuxSuRen 回复

反正我没想出来好的办法,楼主有好办法记得 @ 一下我。😂

获取 title 是一种方法,难点也有,一是页面 title 从接口录制的层面不好做,估计还得做个页面自动化啥的。还有一个就是目前很多使用 vue 和 react 这种单页面的框架,title 不会随着页面改变

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