接口自动化测试用例是一个老生常谈的问题,在未引入人工智能之前,也有非常多的生成方案,比如如下所示,通过har生成接口自动化测试用例:
但是以上的生成方式依然是有一些弊端,比如 har 本身虽然能表述一定的接口信息和业务信息,但是毕竟无法用来表述全部的应用场景与用例场景。而大部分的应用场景和用例场景,均是通过自然语言进行描述的。而解析自然语言,则是大语言模型擅长做的事情。
实践演练
需求说明
以下内容为3条接口测试用例:
测试模块 | 测试标题 | 测试步骤 | 预期结果 |
接口功能 | 正常情况下的请求 | 发送一个正常的GET请求 | 响应状态码为 200 ,并返回请求者的IP地址 |
接口功能 | 非法请求方法 | 发送一个非GET请求,如POST或者PUT | 响应状态码为 405 |
接口功能 | 无效的请求路径 | 发送一个不存在的路径 | 响应状态码为404 |
以下为一个获取ip接口的har文件:
- 接口Har文件(需要可留言领取)
实现原理
接下来,将通过这两个数据文件自动生成对应的测试用例。
通过功能用例生成测试脚本
在这个过程中,测试用例本身是自然语言,自然语言的解析与处理本身就是大模型非常擅长的工作。而可以通过 LangChain 简化整个的实现的过程。
编写的提示词模版信息如下所示:
通过功能测试用例生成的自动化测试脚本如下所示:
当然,在此过程中可以很明显的发现,自动生成的用例是没有任何的接口信息的。原因是我们给到的数据里面就是没有接口信息的。
填充接口数据
接下来,将读取har文件中的接口数据信息,和脚本进行结合。
提示词模版如下:
生成结果如下:
完整代码
再将以上的过程结合之后,完整版的代码如下所示
总结
- 掌握接口自动化测试用例生成的原理。
- 了解如何通过大语言模型生成接口自动化测试脚本与数据。
- 掌握通过LangChain生成完整版接口自动化测试用例的方法。