接口测试 利用 HTTP 代理录制接口测试用例

LinuxSuRen for 开源技术兴趣小组 · 2023年06月08日 · 最后由 LinuxSuRen 回复于 2023年06月09日 · 5270 次阅读

虽然,我们可以用 YAML 文件(或其他格式)来描述接口测试用例,并借助接口测试工具来执行用例。但,不同工具可能采用了不同的格式,上手、记忆都有一定程度的障碍。

为了让 atest 这个接口测试工具使用起来更轻松、便捷,我提供了一个基于 HTTP 代理的录制工具。大致的原理是,利用代理拦截、过滤目标接口,并把这些接口的请求、响应按照既定的格式输出到 YAML 测试用例文件中。

首先,通过下面的命令启动代理服务。需要注意的是参数 --filter-path 是 API 路径的过滤(前缀),支持添加多个前缀过滤。

docker run -p 7890:8080 -v /var/tmp:/var/tmp ghcr.io/linuxsuren/api-testing:master atest-collector --filter-path /answer/api/v1

然后,给你的浏览器配置代理,并打开你的业务系统,执行相应的操作。

最后,关闭代理服务,就能拿到生成的用例文件(/var/tmp/sample.yaml)。

需要注意的是,目前不支持 HTTPS 协议。访问业务系统时,请不要使用 localhost127.0.0.1 这样的路径。
如果你对该工具感兴趣,请参考 https://github.com/LinuxSuRen/api-testing

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

标准做法:
1、创建 proxy-server
2、录制操作,记录操作的 node(功能点)和数据
3、根据记录结果,使用 canvas 生成有向图,提供一套 GUI 的操作途径,前端也可以手动断开某些 node 之间的关系,或者添加逆向操作关系等等
4、根据 BFS 遍历图,生成流程 case 列表
5、手动再次裁剪明显无效的 case——至此,自动化创建 web api 流程测试已经完成
6、造数工具或平台给录制的每个操作 node 在不同的 case 里分别生成测试数据
7、运行测试,拿到结果
8、附加题一:对于 springboot 这样的应用可以配合 swagger 之类的工具,静态扫描 web api 的 url 和代码文件的映射关系,然后每次测试只需要拿变更集文件清单就可以逆向推导出哪些 node 需要测试,然后在前面说的有向图里面 pick 出这些 node,临时自动化创建 api 流程测试的 case,拿到数据……跑起来,新增 web api 如何处理?每次运行之前都扫一次 api 列表就行了,发现新增的,自己手动去图里添加 node 和连线……
9、附加题二:自动化性能测试的应用、测试环境监控的应用、移动端的测试应用、测试结果(发现 bug 比重)评估……等等等等~

槽神 回复

赞!努力往这个方向做。

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