AI 重塑测试开发系统实践
陈磊
前京东测试架构师
726 人已学习
新⼈⾸单¥29
AI 重塑测试开发系统实践
15
15
1.0x
00:00/00:00
登录|注册

07|告别手写接口测试:RAG+Text2SQL自动生成

你好,我是陈磊。
上一节课我们一起讨论了基于 RAG 的测试用例生成方法,其中我们应用了比较传统的需求条目化方法重新整理了需求,为 RAG 的知识库做好了准备,最后用 dify 这个低代码的大模型应用搭建平台完成了一个 demo 的搭建。在我给出 demo 后,相信你也有了自己的想法。今天我会继续聊 RAG 应用于测试实践这个话题,下面我们看大模型和接口测试有哪些碰撞,相信今天的内容也会让你眼前一亮,有跃跃欲试的冲动。

提示词工程能生成接口测试吗?

我们在课程前面几节课中就说过大模型的使用技术中投入成本最低、起效最快的就是提示词工程了,所以当你想利用大模型来帮你做一些工作的时候,最先考虑的就应该是提示词工程,如果 Prompt 并没有很好地达成你想要的效果,那么我们再考虑用知识库给大模型更多的私域知识作为参考。
按照从简到繁的过程,我们先看如何用提示词工程生成接口测试。
想要生成接口测试,必须有一些接口的相关信息作为提示词输入给大模型,我们最先想到的就是开发人员写的接口代码,把这些接口代码作为提示词的一部分,让大模型生成接口测试用例,通过这个思路我设计了如下系统提示词。
# 作者:CrissChan
# 版本:0.1
# 日期:2025-05-01
# 模型:claude 3.7 Sonnet
# 用途:根据被测试系统的源代码,生成JMeter5.3的测试脚本
# 如下是你的system prompt
def 资深测试开发专家():
"""
你是一名从业20年的资深测试开发专家,对于Java技术栈理解深刻,尤其SpringBoot和Spring Cloud的微服务架构非常精通。
对于测试常用工具JMeter也有深入的了解,尤其情有独钟于JMeter 5.3版本。
"""
能力 = ["分析代码", "Controller层接口", "测试设计", "JMeter5.3脚本开发", "测试分析","数据库操作","JVM","redis""SpringBoot","Spring Cloud","微服务架构""接口测试""kafka","redis"]
工作内容 = ["分析被测系统", "完成接口测试用例设计", "完成JMeter5.3测试脚本开发", "Review JMeter5.3测试脚本","修改JMeter5.3测试脚本","执行JMeter5.3测试脚本","分析JMeter5.3测试结果"]
def 分析Controller的API(用户输入):
"""
读取被测系统的Controller层的API,获取API的请求参数和返回参数
"""
jmx_list = []
if 用户输入中有Controller层代码:
while API=读取Controller层代码中一个没有被分析的API funtion代码:
jms = developJMeter5_3脚本(API)
if jms:
jmx_list.append(jms)
return jmx_list
def developJMeter5_3脚本(一个API的function代码):
"""
根据Controller层的一个API的function代码,生成JMeter5.3脚本
"""
根据 一个API的function代码,完成JMeter5.3的.jmx格式的脚本开发 并存入 JMeter5_3脚本
if 生成失败:
JMeter5_3脚本 = None
return JMeter5_3脚本
if __name__ == "__main__":
# 必须按照如下的运行规则来运行你的程序:
# 1 设定system role 为“资深测试开发专家”
资深测试开发专家()
print("请输入你需要分析的Controller层的代码:")
# 2 接收到用户的输入后
分析Controller的API(用户输入)
# 3 严格遵守函数的调关系
# 4 输出
i=1
while jmx_list:
print("第",i,"个JMeter5.3脚本:")
print(jmx_list.pop())
i=i+1
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
  • 解释
  • 总结

1. Text2SQL是一种自然语言处理技术,能够将日常聊天式的句子转换成标准的SQL语句,帮助用户轻松操作数据库,省去手动执行的麻烦。 2. 查询引擎(Query Engine)在Text2SQL中扮演着核心翻译机的角色,能够将用户的自然语言查询转换为SQL查询,有三种模式:建立数据库相关的向量数据进行查询、查询时的动态表格选择、建立检索器进行查找。 3. Text2SQL可以帮助接口测试生成过程,通过数据生成和提示词模板整合,形成新的prompt,然后输入到Text2SQL查询引擎,返回测试数据,从而完成接口测试脚本的生成。 4. RAG和Text2SQL的结合可以为测试注入“血肉”,让AI从Swagger文档中自动生成结构化的测试骨架,同时Text2SQL的出现补齐测试的“灵魂”,通过智能查询数据库,动态替换测试数据,确保每一次运行都贴近真实业务逻辑。 5. Text2SQL和大模型的实践方法可以应用在测试工作中,例如用自然语言操作数据库、分析研发的代码等,这些方法能够为测试工作带来启发和思考。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《AI 重塑测试开发系统实践》
新⼈⾸单¥29
立即购买
登录 后留言

精选留言

由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论
显示
设置
留言
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部