支持私有云部署
AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


使用DeepSeek Function Calling构建智能测试助手

发布日期:2025-03-20 12:28:17 浏览次数: 1549 来源:东汉末年出bug
推荐语

AI技术如何革新软件测试领域?本文深入解析大语言模型的函数调用能力在智能测试助手中的应用。

核心内容:
1. 大语言模型技术在测试自动化中的应用前景
2. Function Calling技术解析与参数定义示例
3. 传统测试与函数调用方式的技术优势对比及实现方式

杨芳贤
53A创始人/腾讯云(TVP)最具价值专家

引言:当AI遇见测试自动化 

随着大语言模型(LLM)技术的突破性进展,特别是其中函数调用(Function Calling)能力的出现,软件测试这一传统而关键的软件开发环节,正逐步迎来AI化的变革与挑战。本文将探讨如何有效利用大语言模型的函数调用能力,构建智能化、高效能的测试助手。

function_calling技术解析 

什么是function_calling

function_calliing是大语言模型根据用户请求智能选择并调用预定义函数的能力。模型通过理解自然语言指令,自动匹配对应的函数模板并生成结构化参数。

# 传统测试参数定义示例
test_case = {
    "api""/user/login",
    "method""POST",
    "params": {"username""test""password""123456"}
}

# 函数调用参数定义示例
tools = [
    {
        "type""function",
        "function": {
            "name""execute_api_job",
            "description""执行接口测试任务",
            "parameters": {
                "type""object",
                "properties": {
                    "location": {
                        "type""string",
                        "description""任务名称,例如:用户中心测试任务",
                    }
                },
                "required": ["job"]
            },
        }
    }
]

技术优势对比

传统方式
函数调用方式
人工维护测试用例
自动生成测试逻辑
固定参数组合
动态参数生成
单一断言策略
智能断言机制
线性执行流程
自适应测试路径

实现方式 

定义函数

我们需要将我们要通过大模型调用的函数定义好:

tools = [
    {
        "type""function",
        "function": {
            "name""execute_api_job",
            "description""执行接口测试任务",
            "parameters": {
                "type""object",
                "properties": {
                    "location": {
                        "type""string",
                        "description""任务名称,例如:用户中心测试任务",
                    }
                },
                "required": ["job"]
            },
        }
    },
    {
        "type""function",
        "function": {
            "name""get_report",
            "description""查询测试报告",
            "parameters": {
                "type""object",
                "properties": {
                    "location": {
                        "type""string",
                        "description""任务名称:例如:消息中心测试任务",
                    }
                },
                "required": ["job"]
            },
        }
    },
{
        "type""function",
        "function": {
            "name""analysis_report",
            "description""分析测试报告数据",
            "parameters": {
                "type""object",
                "properties": {
                    "location": {
                        "type""string",
                        "description""任务名称,例如:订单中心任务",
                    }
                },
                "required": ["job"]
            },
        }
    }
]

实现函数

具体实现内容,根据自己项目来定义,这里提供简单的demo

def execute_api_job(job):
    """模拟执行测试任务"""
    returnf"已经开始执行测试任务:{job}"


def get_report(job):
    """模拟获取测试报告"""
    returnf"查看{job}的测试报告,请点击https://www.baidu.com"


def analysis_report(job):
    """模拟分析测试数据"""
    # 获取报告数据
    report = get_data(job)
    # 将测试数据发送给AI大模型进行分析
    response = send_messages(f"分析测试任务数据:{report}")
    returnf'测试结果分析:\n {response}'

调用大模型

import json
from openai import OpenAI


def send_messages(messages):
    msg = [{"role""user""content": messages}]
    response = client.chat.completions.create(
        model="deepseek-chat",
        messages=msg,
        tools=tools
    )
    mess = response.choices[0].message
    if mess.tool_calls:
        tool = mess.tool_calls[0]
        function_name = tool.function.name
        arguments = json.loads(tool.function.arguments)

        # 调用函数
        if function_name == 'execute_api_job':
            function_response = execute_api_job(arguments.get("location"))
        elif function_name == 'get_report':
            function_response = get_report(arguments.get("location"))
        elif function_name == 'analysis_report':
            function_response = analysis_report(arguments.get('location'))
        else:
            return response.choices[0].message
        return function_response
    else:
        return response.choices[0].message


client = OpenAI(
    api_key="your_api_key",
    base_url="https://api.deepseek.com",
)

执行

# 测试示例
if __name__ == "__main__":

    while True:
        user_input = input("用户输入:")
        if user_input.lower() == 'exit':
            break
        response = send_messages(user_input)
        print("助手回复:", response)
        print("\n" + "=" * 50 + "\n")

执行结果展示:


53AI,企业落地大模型首选服务商

产品:场景落地咨询+大模型应用平台+行业解决方案

承诺:免费场景POC验证,效果验证后签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

添加专属顾问

回到顶部

加载中...

扫码咨询