文 / 中国邮政储蓄银行软件研发中心 焦烨 辛新 张丰超 赵薇
在自动化测试中,脚本编写是至关重要的环节,脚本编写的效率和质量直接影响着整体测试的效率和质量。传统的自动化测试脚本编写需要测试人员具备一定的编程能力,并且需要花费大量的时间和精力进行代码编写和调试。邮储银行金牛座自动化测试系统提供了图形化界面的方式进行测试脚本编写。然而,在实际实施过程中,由于脚本编写量级较大、组合场景案例流程较长、参数处理复杂等原因,导致脚本编写人力成本较大,且质量参差不齐。
随着大模型技术的快速发展,自动化测试领域迎来了新的机遇,大模型的应用为提高测试效率、降低测试成本提供了新的解决方案。为降低自动化测试脚本编写成本,金牛座自动化测试系统以大模型技术为基础,结合知识库、录制、报文解析、图像识别等技术,针对不同的场景提供了脚本智能生成功能。
大模型技术概述及选型
1.大模型技术概述
大模型是指具有大量参数和复杂结构的机器学习模型,能够处理海量数据、完成各种复杂的任务。大模型通过训练海量数据来学习复杂的模式和特征,从而具备更强大的泛化能力,可以对未见过的数据做出准确的预测,在自然语言处理、计算机视觉、语音识别等多个领域都有广泛的应用。在自然语言处理领域,大语言模型通过大量的数据和参数进行训练,从而具备了对自然语言进行理解、生成和处理的能力。
为智能生成自动化测试脚本,邮储银行利用开源大模型进行本地私有化部署,在实践过程中,聚焦提示工程解决实际问题,通过构建合理的prompt不断生成和修正答案,使其生成质量更高;此外,收集自动化测试领域相关知识,使用外挂知识库的方式,将大模型与邮储银行特色业务逻辑相结合,提高脚本生成的准确性。
2.模型选型
在自动化测试脚本智能生成实践过程中,邮储银行尝试了多个模型,包括不同量级的chatGLM模型、盘古模型和千问模型等,制作评估规则进行评估,并根据评估结果和资源情况进行最终选型。
根据试点模型的评估结果,同一系列的模型参数量级越大,效果越好,但消耗的资源也越多,生成效率也更低,且超过一定量级后,效果提升不明显,可根据实际的资源情况选择合适的参数量级;此外,不同系列的模型,需要针对性的调整提示词,且生成效果存在差异,建议根据所选模型调整提示词。
自动化测试脚本智能生成
金牛座自动化测试系统支持接口自动化测试脚本和UI自动化测试脚本的编写及执行,其中接口自动化测试脚本又分为单接口脚本和多接口组合场景脚本两种。为降低自动化测试脚本编写成本,金牛座自动化测试系统分别针对这三种脚本进行了脚本智能生成的探索。
1.单接口脚本批量生成
单接口测试脚本主要用于单接口测试,其特点是编写简单,主要需要配置请求参数及断言,但脚本量级较大,需要根据接口各字段取值进行正例及反例的覆盖。金牛座自动化测试系统针对单接口测试场景,提供了单接口脚本批量生成功能,有效解决了单接口测试脚本编写量级较大的问题。
首先,系统提供了接口管理功能,可以通过swagger导入、json导入、接口文档导入等方式导入接口定义,并进行管理。然后系统根据接口定义生成请求报文示例,测试人员输入测试要点,主要包括要覆盖的字段取值,字段是否必填等,系统将这些信息组装成prompt,利用大模型生成多个测试用例。
图1 利用大模型生成接口测试用例
测试人员查看生成的测试用例,可以进行修改调整。确认后,选取多个测试用例,分别根据请求报文示例、测试用例描述、测试点利用大模型生成对应的请求报文及断言内容,系统根据大模型返回的结果生成对应的单接口脚本。
图2 利用大模型生成单接口测试脚本
2.多接口组合场景脚本智能生成
多接口组合场景脚本主要用于测试业务流程,其难点主要在于接口请求参数获取,入参来源分析,以及一些复杂的测试场景需要编写beanshell脚本处理数据。金牛座自动化测试系统针对组合场景脚本,采用录制+智能分析+辅助编写的方案智能生成脚本。其中录制功能用于录制接口请求;智能分析模块利用大模型分析接口之间的调用关系及多个接口入参之间的关系,自动进行参数化处理,并过滤无关请求;辅助编写模块用于复杂参数处理或数据获取等场景,利用大模型辅助编写beanshell脚本。这种方案降低了脚本编写难度及人力成本,同时提升了脚本质量底线。
(1)录制
录制功能主要用于获取整个业务流程的接口请求及对应的参数。系统通过代理端口,获取用户操作过程中涉及的所有接口请求及其对应的请求参数和响应报文。
(2)智能分析
智能分析模块用于分析接口之间的调用关系及多个接口入参之间的关系。系统将录制到的接口请求参数及响应报文传递给大模型,利用大模型自动分析接口之间的关系,得到每一个参数的来源,外部输入前面接口的返回值,或是前面接口的入参值,系统根据这些信息进行参数化处理。此外,接口录制可能会录制到与本次业务逻辑无关的请求,大模型分析出接口关系后,系统根据结果自动过滤无关请求。
图3 利用大模型智能分析后生成脚本
(3)辅助编写
对于一些复杂的测试场景,测试人员可能需要编写beanshell脚本等对参数数据等进行处理,对此,系统提供脚本辅助编写功能,可以根据用户输入的场景描述,利用大模型理解需求,自动生成所需的beanshell脚本代码、SQL语句或正则表达式等。此外,为使生成的脚本更加符合银行业务逻辑,邮储银行使用外挂知识库的方式,将大模型与银行特色知识库、特色业务逻辑相结合,提高了脚本生成的准确性。
3.UI测试脚本智能生成
对于UI自动化测试,现在的通用做法是通过录制生成脚本或者三层架构编写脚本,免不了人工一步步执行或者编写的成本投入。借助大模型技术,可以根据简单的用例描述,直接自动生成测试脚本。首先利用大模型和图像识别技术识别被测页面上的元素,然后将分析出来的元素以及测试用例描述传递给大模型,通过大模型分析并预测下一步操作,循环多次生成一系列动作列表,如果模型预测无需下一步动作,则循环结束。
以转账汇款为例,测试需求为“向张三账号6666转账100元”。第一步分析提取首页上的页面元素,第二步结合测试需求预测下一步动作是“点击转账汇款”,第三步执行动作跳转到新的页面,重复循环上面的一二三步,直至点击“确定”并预测没有后续操作为止。目前此方案还在探索实践中。
未来规划
基于大模型技术的自动化测试脚本智能生成功能在试点过程中取得了良好的应用效果,降低了脚本编写成本,提升了测试效率,后续将进一步扩大试点范围,收集应用数据,并持续进行效果优化,利用模型微调训练、检索增强等技术,不断提高生成结果的可信度和可靠性。此外邮储银行还将在自动化测试领域的其他环节持续进行大模型的应用探索及落地实践,推动自动化测试效能提升,助力业务快速发展。
新媒体中心
主任 / 邝源
编辑 / 姚亮宇 傅甜甜 张珺 邰思琪