腾讯企点有什么用/seo人人网

腾讯企点有什么用,seo人人网,集宁做网站,重庆网站建设解决方案及流程在测试工作中,查询功能是各类系统的核心模块,传统的测试用例编写往往耗时且重复。如何让老旧平台焕发新活力?本文将结合大模型技术,通过用户输入的字段信息,自动化生成高效、精准的测试用例。同时,我们还将…

在测试工作中,查询功能是各类系统的核心模块,传统的测试用例编写往往耗时且重复。如何让老旧平台焕发新活力?本文将结合大模型技术,通过用户输入的字段信息,自动化生成高效、精准的测试用例。同时,我们还将介绍如何在 Django 框架中异步调用阿里云的 DeepSeek-R1 API,避免阻塞主线程,从而进一步提升系统性能。点击底部小卡片了解更多AI测试话题。


一、传统查询功能的痛点

在老旧平台中,查询功能面临以下问题:

  1. 测试用例编写耗时:每次需求变更后,测试用例需要手动更新,效率低下。
  2. 用例质量参差不齐:测试人员的理解差异导致用例覆盖率和场景设计不足。
  3. 缺乏智能化:无法根据用户输入的字段信息自动生成测试用例,适应动态变化的需求。

二、大模型驱动的查询功能升级

2.1 升级方案概述

通过将用户输入的字段名称、字段类型、字段值等信息传递给大模型,我们可以自动生成符合标准的测试用例。以下是升级的基本逻辑:

  1. 用户输入查询条件(字段名称、类型、值等)。
    在这里插入图片描述

  2. 系统将输入的信息封装为提示词(Prompt),并发送给大模型。
    在这里插入图片描述

  3. 大模型根据模板自动生成测试用例,包括查询步骤和预期结果。 真拿来即用!
    在这里插入图片描述

[{"title": "根据机构、类型、开始日期、结束日期组合查询","steps": "1.进入页面;\n2.在机构中选择湖北分公司;\n3.在类型中选择当年;\n4.在开始日期输入2023-01-01;\n5.在结束日期输入2023-12-31;\n6.点击查询","expect_results": "查询到湖北分公司当年且在2023-01-01至2023-12-31期间的数据","priority": "P0"},{"title": "根据开始日期、结束日期组合查询","steps": "1.进入页面;\n2.在开始日期输入2023-01-01;\n3.在结束日期输入2023-12-31;\n4.其他条件保持默认;\n5.点击查询","expect_results": "查询到2023-01-01至2023-12-31期间的数据","priority": "P0"},{"title": "根据机构、类型组合查询","steps": "1.进入页面;\n2.在机构中选择湖北分公司;\n3.在类型中选择当年;\n4.其他条件保持默认;\n5.点击查询","expect_results": "查询到湖北分公司当年的数据","priority": "P1"},{"title": "根据机构、开始日期、结束日期组合查询","steps": "1.进入页面;\n2.在机构中选择湖北分公司;\n3.在开始日期输入2023-01-01;\n4.在结束日期输入2023-12-31;\n5.其他条件保持默认;\n6.点击查询","expect_results": "查询到湖北分公司且在2023-01-01至2023-12-31期间的数据","priority": "P1"},{"title": "根据类型、开始日期、结束日期组合查询","steps": "1.进入页面;\n2.在类型中选择当年;\n3.在开始日期输入2023-01-01;\n4.在结束日期输入2023-12-31;\n5.其他条件保持默认;\n6.点击查询","expect_results": "查询到当年且在2023-01-01至2023-12-31期间的数据","priority": "P1"},{"title": "根据机构查询","steps": "1.进入页面;\n2.在机构中选择湖北分公司;\n3.其他条件保持默认;\n4.点击查询","expect_results": "查询到湖北分公司的所有数据","priority": "P2"},{"title": "根据类型查询","steps": "1.进入页面;\n2.在类型中选择当年;\n3.其他条件保持默认;\n4.点击查询","expect_results": "查询到当年的所有数据","priority": "P2"},{"title": "根据开始日期查询","steps": "1.进入页面;\n2.在开始日期输入2023-01-01;\n3.其他条件保持默认;\n4.点击查询","expect_results": "查询到开始日期大于等于2023-01-01的数据","priority": "P3"},{"title": "根据结束日期查询","steps": "1.进入页面;\n2.在结束日期输入2023-12-31;\n3.其他条件保持默认;\n4.点击查询","expect_results": "查询到结束日期小于等于2023-12-31的数据","priority": "P3"}
]

2.2 提示词逻辑设计

我们设计如下提示词模板:

prompt = (f'系统名称为: {project};主功能模块名称为: {primary_module};子功能模块为:{sub_module};'f'用例创建人为: {case_creator};'f'查询结果比对方式为: {check_result_method};'f'查询页面是否需要补充UI测试用例: {ui_case_needed};自主标定用例的优先级;')prompt += f'字段名称: {field_name};字段类型: {field_type};'if enums:prompt += f'枚举值:{enums};'
elif symbol_date:prompt += f'日期符号为:{symbol_date};'
elif date_:prompt += f'日期为:{date_};'
elif symbol_time:prompt += f'时间比较符号为:{symbol_time};'
elif time_:prompt += f'时间选定的值为:{time_};\n'

2.3 自动生成的测试用例示例

根据提示词生成的测试用例示例如下:

[{'title': '根据姓名查询'},{'steps': '1.进入页面;\n2.在查询条件姓名输入;\n3.其他查询条件保持默认;\n4.点击查询'},{'expect_results': '查询到姓名的数据'},
]

通过这种方式,测试工程师只需输入字段信息,即可轻松生成高质量的测试用例,大幅提升工作效率。


三、实战演练:基于大模型升级查询功能

结合上述逻辑,我们对用户输入进行处理,并生成测试用例。以下是具体代码示例:

3.1 数据输入

用户输入字段信息:

project = "客户管理系统"
primary_module = "查询功能"
sub_module = "客户信息查询"
case_creator = "测试工程师A"
check_result_method = "数据匹配"
ui_case_needed = "是"field_name = "姓名"
field_type = "字符串"
enums = None
symbol_date = None
date_ = None
symbol_time = None
time_ = None

3.2 提示词构建

根据输入信息构建提示词:

prompt = (f'系统名称为: {project};主功能模块名称为: {primary_module};子功能模块为:{sub_module};'f'用例创建人为: {case_creator};'f'查询结果比对方式为: {check_result_method};'f'查询页面是否需要补充UI测试用例: {ui_case_needed};自主标定用例的优先级;')prompt += f'字段名称: {field_name};字段类型: {field_type};'

3.3 调用大模型生成测试用例

通过大模型接口生成测试用例:

async def generate_cases(prompt_param):# 初始化OpenAI客户端client = OpenAI(# 如果没有配置环境变量,请用百炼API Key替换:api_key="sk-xxx"# api_key='sk-xxx',api_key='sk-xxx',  # todo 此处需更换base_url="https://dashscope.aliyuncs.com/compatible-mode/v1")reasoning_content = ""  # 定义完整思考过程answer_content = ""  # 定义完整回复is_answering = False  # 判断是否结束思考过程并开始回复example = [{'title': '根据姓名查询'},{'steps': '1.进入页面;\n2.在查询条件姓名输入;\n3.其他查询条件保持默认;\n4.点击查询'},{'expect_results': '查询到姓名的数据'},]# 创建聊天完成请求completion = client.chat.completions.create(model="deepseek-r1",  # 此处以 deepseek-r1 为例,可按需更换模型名称messages=[{'role': 'user','content': f'你是一名资深测工程师,根据这些字段组合{prompt_param}生成查询条件的组合,条件组合不能重复;输出列表形式的JSON,示例:{example}'}],stream=True,# 解除以下注释会在最后一个chunk返回Token使用量# stream_options={#     "include_usage": True# })print("\n" + "=" * 20 + "思考过程" + "=" * 20 + "\n")for chunk in completion:# 如果chunk.choices为空,则打印usageif not chunk.choices:print("\nUsage:")print(chunk.usage)else:delta = chunk.choices[0].delta# 打印思考过程if hasattr(delta, 'reasoning_content') and delta.reasoning_content != None:print(delta.reasoning_content, end='', flush=True)reasoning_content += delta.reasoning_contentelse:# 开始回复if delta.content != "" and not is_answering:print("\n" + "=" * 20 + "完整回复" + "=" * 20 + "\n")is_answering = True# 打印回复过程print(delta.content, end='', flush=True)answer_content += delta.contentreturn answer_content

四、Django 异步调用阿里云 DeepSeek-R1 API

为了在查询功能升级中提升性能,我们可以采用 Django 异步调用阿里云 DeepSeek-R1 API。以下是具体实现步骤:

4.1 安装依赖

pip install aiohttp

4.2 异步请求实现

通过 aiohttp 实现异步调用:

import aiohttp
import asyncioasync def generate_cases(prompt_param):# 初始化OpenAI客户端client = OpenAI(# 如果没有配置环境变量,请用百炼API Key替换:api_key="sk-xxx"# api_key='sk-xxx',api_key='sk-xxx',  # todo 此处需更换base_url="https://dashscope.aliyuncs.com/compatible-mode/v1")reasoning_content = ""  # 定义完整思考过程answer_content = ""  # 定义完整回复is_answering = False  # 判断是否结束思考过程并开始回复example = [{'title': '根据姓名查询'},{'steps': '1.进入页面;\n2.在查询条件姓名输入;\n3.其他查询条件保持默认;\n4.点击查询'},{'expect_results': '查询到姓名的数据'},]# 创建聊天完成请求completion = client.chat.completions.create(model="deepseek-r1",  # 此处以 deepseek-r1 为例,可按需更换模型名称messages=[{'role': 'user','content': f'你是一名资深测工程师,根据这些字段组合{prompt_param}生成查询条件的组合,条件组合不能重复;输出列表形式的JSON,示例:{example}'}],stream=True,# 解除以下注释会在最后一个chunk返回Token使用量# stream_options={#     "include_usage": True# })print("\n" + "=" * 20 + "思考过程" + "=" * 20 + "\n")for chunk in completion:# 如果chunk.choices为空,则打印usageif not chunk.choices:print("\nUsage:")print(chunk.usage)else:delta = chunk.choices[0].delta# 打印思考过程if hasattr(delta, 'reasoning_content') and delta.reasoning_content != None:print(delta.reasoning_content, end='', flush=True)reasoning_content += delta.reasoning_contentelse:# 开始回复if delta.content != "" and not is_answering:print("\n" + "=" * 20 + "完整回复" + "=" * 20 + "\n")is_answering = True# 打印回复过程print(delta.content, end='', flush=True)answer_content += delta.contentreturn answer_content# 示例调用
async def search_page_generate_case_by_ai(request):print('开始进行异步大模型用例生成')if request.method == 'POST':case = Cases.objects.all()case_common_title = []case_common_steps = []case_common_expect_result = []total_len = len(request.POST)case_system = request.POST.get('auth')case_module = ''primary_module = request.POST.get("module1")sub_module = []for _ in range(2, 4):if request.POST.get(f"module{_}"):sub_module.append(request.POST.get(f"module{_}"))sub_module = ">>".join(sub_module)case_precondition = f'已登录{case_module}系统'page_name = request.POST.get('page_name')check_result_method = request.POST.get("check_result_method")case_creator = request.POST.get('creator')ui_case_needed = request.POST.get('ui_case')field_count = (total_len - 10) // 7project = Project.objects.get(project_name=case_system)project_id = project.idif field_count > 1:field_name_list = []prompt = (f'系统名称为: {project};主功能模块名称为: {primary_module};子功能模块为:{sub_module};'f'用例创建人为: {case_creator};'f'查询结果比对方式为: {check_result_method};'f'查询页面是否需要补充UI测试用例: {ui_case_needed};自主标定用例的优先级;')for i in range(field_count):field_name = request.POST.get(f'field_name{i}')field_type = request.POST.get(f'field_type{i}')enums = request.POST.get(f'enums{i}')symbol_date = request.POST.get(f'symbol_date{i}')date_ = request.POST.get(f'date{i}')symbol_time = request.POST.get(f'symbol_time{i}')time_ = request.POST.get(f'time{i}')time_ = str(time_).replace('T', ' ')field_name_list.append(field_name)# todo 修改此处适配AI大模型用例生成prompt += f'字段名称: {field_name};字段类型: {field_type};'if enums:prompt += f'枚举值:{enums};'elif symbol_date:prompt += f'日期符号为:{symbol_date};'elif date_:prompt += f'日期为:{date_};'elif symbol_time:prompt += f'时间比较符号为:{symbol_time};'elif time_:prompt += f'时间选定的值为:{time_};\n'deepseek_result = await generate_cases(prompt)return HttpResponse(deepseek_result)asyncio.run(main())

4.3 在 Django 中集成

将异步调用集成到 Django 视图中:

@require_POST
async def search_page_generate_case_by_ai(request):print('开始进行异步大模型用例生成')if request.method == 'POST':case = Cases.objects.all()case_common_title = []case_common_steps = []case_common_expect_result = []total_len = len(request.POST)case_system = request.POST.get('auth')case_module = ''primary_module = request.POST.get("module1")sub_module = []for _ in range(2, 4):if request.POST.get(f"module{_}"):sub_module.append(request.POST.get(f"module{_}"))sub_module = ">>".join(sub_module)case_precondition = f'已登录{case_module}系统'page_name = request.POST.get('page_name')check_result_method = request.POST.get("check_result_method")case_creator = request.POST.get('creator')ui_case_needed = request.POST.get('ui_case')field_count = (total_len - 10) // 7project = Project.objects.get(project_name=case_system)project_id = project.idif field_count > 1:field_name_list = []prompt = (f'系统名称为: {project};主功能模块名称为: {primary_module};子功能模块为:{sub_module};'f'用例创建人为: {case_creator};'f'查询结果比对方式为: {check_result_method};'f'查询页面是否需要补充UI测试用例: {ui_case_needed};自主标定用例的优先级;')for i in range(field_count):field_name = request.POST.get(f'field_name{i}')field_type = request.POST.get(f'field_type{i}')enums = request.POST.get(f'enums{i}')symbol_date = request.POST.get(f'symbol_date{i}')date_ = request.POST.get(f'date{i}')symbol_time = request.POST.get(f'symbol_time{i}')time_ = request.POST.get(f'time{i}')time_ = str(time_).replace('T', ' ')field_name_list.append(field_name)# todo 修改此处适配AI大模型用例生成prompt += f'字段名称: {field_name};字段类型: {field_type};'if enums:prompt += f'枚举值:{enums};'elif symbol_date:prompt += f'日期符号为:{symbol_date};'elif date_:prompt += f'日期为:{date_};'elif symbol_time:prompt += f'时间比较符号为:{symbol_time};'elif time_:prompt += f'时间选定的值为:{time_};\n'deepseek_result = await generate_cases(prompt)return HttpResponse(deepseek_result)else:return HttpResponse("没有内容!!!")

通过这种方式,Django 可以在处理查询请求时避免主线程阻塞,从而提升系统的并发性能。


五、大模型与平台升级的未来展望

通过大模型的引入,老旧平台的查询功能可以焕发新活力。测试工程师不仅能更高效地生成测试用例,还可以通过异步调用大模型接口,提升系统响应速度,为用户提供更好的体验。未来,随着大模型和容器化技术的普及,本地部署和性能优化将成为测试领域的重要方向。

快将这些技术应用到你的项目中,让测试工作更智能、更高效吧!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/75718.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于javaweb的SpringBoot雪具商城系统设计与实现(源码+文档+部署讲解)

技术范围:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:免费功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写、论文编写和辅导、论…

【AI学习笔记】Coze平台实现将Excel文档批量导入数据库全过程

背景前摇&原视频教程: 最近看到很多同学都在用Coze平台操作数据,我也想了解一下工作流的搭建和数据处理过程,但是一下子又看不懂太复杂的逻辑,于是上B站搜索相关的基础教程。 Coze官方教程: 之前有看过Coze平台…

力扣32.最长有效括号(栈)

32. 最长有效括号 - 力扣&#xff08;LeetCode&#xff09; 代码区&#xff1a; #include<stack> #include<string> /*最长有效*/ class Solution { public:int longestValidParentheses(string s) {stack<int> st;int ans0;int ns.length();st.push(-1);fo…

Unity2D 五子棋 + Photon联网双人对战

开发环境配置 Unity版本2022.3 创建Photon账号以及申请Photon中国区服务 官网申请账号&#xff1a;Multiplayer Game Development Made Easy Photon Engine 中国区服务&#xff1a; 光子引擎photonengine中文站 成都动联无限科技有限公司(vibrantlink.com) 导入PUN2插件以及…

(UI自动化测试web端)第二篇:元素定位的方法_css定位之属性选择器

看代码里的【find_element_by_css_selector( )】( )里的表达式怎么写&#xff1f; 文章介绍了第四种写法属性选择器 &#xff0c;你要根据网页中的实际情况来判断自己到底要用哪一种方法来进行元素定位。每种方法都要多练习&#xff0c;全都熟了之后你在工作当中使用起来元素定…

2025-03-26 学习记录--C/C++-PTA 6-3 求链式表的表长

合抱之木&#xff0c;生于毫末&#xff1b;九层之台&#xff0c;起于累土&#xff1b;千里之行&#xff0c;始于足下。&#x1f4aa;&#x1f3fb; 一、题目描述 ⭐️ 6-3 求链式表的表长 本题要求实现一个函数&#xff0c;求链式表的表长。 函数接口定义&#xff1a; &…

【Linux】Linux_Ubuntu与Windows之间的文件传输

一、Linux终端命令的复制粘贴 1.打开linux 终端&#xff0c;输入以下命令&#xff1a;&#xff08;注意&#xff0c;需要联网&#xff09; 2.命令行下载&#xff1a; sudo apt-get autoremove open-vm-tools 3.命令行安装&#xff1a; sudo apt-get install open-vm-tools-…

算法每日一练 (18)

&#x1f4a2;欢迎来到张翊尘的技术站 &#x1f4a5;技术如江河&#xff0c;汇聚众志成。代码似星辰&#xff0c;照亮行征程。开源精神长&#xff0c;传承永不忘。携手共前行&#xff0c;未来更辉煌&#x1f4a5; 文章目录 算法每日一练 (18)删除并获得点数题目描述解题思路解题…

VsCode启用右括号自动跳过(自动重写) - 自录制gif演示

VsCode启用右括号自动跳过(自动重写) - 自录制gif演示 前言 不知道大家在编程时候的按键习惯是怎样的。输入完左括号后编辑器一般会自动补全右括号&#xff0c;输入完左括号的内容后&#xff0c;是按→跳过右括号还是按)跳过右括号呢&#xff1f; for (int i 0; i < a.s…

分布式爬虫框架Scrapy-Redis实战指南

引言 在当今数字化的时代背景下&#xff0c;互联网技术的蓬勃兴起极大地改变了旅游酒店业的运营模式与市场格局。作为旅游产业链中的关键一环&#xff0c;酒店业的兴衰与互联网技术的应用程度紧密相连。分布式爬虫技术&#xff0c;尤其是基于 Scrapy 框架的 Scrapy-Redis 扩展…

deepseek(2)——deepseek 关键技术

1 Multi-Head Latent Attention (MLA) MLA的核心在于通过低秩联合压缩来减少注意力键&#xff08;keys&#xff09;和值&#xff08;values&#xff09;在推理过程中的缓存&#xff0c;从而提高推理效率&#xff1a; c t K V W D K V h t c_t^{KV} W^{DKV}h_t ctKV​WDKVht​…

从零构建大语言模型全栈开发指南:第二部分:模型架构设计与实现-2.1.3前馈网络(FFN)与激活函数(GELU)优化

👉 点击关注不迷路 👉 点击关注不迷路 👉 点击关注不迷路 文章大纲 2.1.3 前馈网络(FFN)与激活函数(GELU)优化1. 前馈网络(FFN)的架构设计与数学原理1.1 FFN在Transformer中的核心作用2. GELU激活函数的数学特性与优化2.1 GELU的数学形式与近似计算3. 逐行代码实现…

力扣刷题-热题100题-第24题(c++、python)

234. 回文链表 - 力扣&#xff08;LeetCode&#xff09;https://leetcode.cn/problems/palindrome-linked-list/description/?envTypestudy-plan-v2&envIdtop-100-liked 常规法 数组是连续的存储空间&#xff0c;可以根据索引到达任意位置&#xff0c;链表只能一个个的顺…

调用通义千问实现语音合成并将合成的音频通过扬声器播放

1. 作者介绍 郭建东&#xff0c;男&#xff0c;西安工程大学电子信息学院&#xff0c;2024级研究生 研究方向&#xff1a;机器视觉与人工智能 电子邮件&#xff1a;1229963266qq.com 高金年&#xff0c;男&#xff0c;西安工程大学电子信息学院&#xff0c;2024级研究生&…

您的数据是如何出现在暗网上的?

暗网是互联网上的一个隐秘角落&#xff0c;人们可以在那里保持匿名。暗网经常与深网混淆&#xff0c;但它们并不完全相同。 深网是指网络上所有未被搜索引擎索引的内容。这包括电子邮件帐户、私人数据库和付费服务等。这并不违法&#xff0c;只是无法通过简单的 Google 搜索找…

thinkphp漏洞再现

Thinkphp5x远程命令执行及getshell 1、开环境 2、使用工具攻击 开启工具 输入地址&#xff0c;点击漏洞检测 存在漏洞之后&#xff0c;选择漏洞&#xff0c;执行命令 3、也可以执行远程命令 执行命令 ?sindex/think\app/invokefunction&functioncall_user_func_array&…

Day16 -实例:Web利用邮箱被动绕过CDN拿真实ip

本想测试一下全局ping&#xff0c;刚好注册的时候收到了邮件&#xff0c;刚好去做一下复现。 原理&#xff1a;主动让对方站点给我们发邮件&#xff08;注册、修改密码、订阅推送等&#xff09;我们查看邮件原文&#xff0c;原文里存在真实的邮件站点ip 特点&#xff1a;邮件…

网盘解析工具更新,解决了一些bug

解析工具v1.2.1版本更新&#xff0c;本次是小版本更新&#xff0c;修复了一些bug。 之前小伙伴反应的网盘进入文件后不能返回上一级&#xff0c;现在这个bug修复了&#xff0c;已经可以点击了。 点击资源后会回到资源那一级目录&#xff0c;操作上是方便了不少。 增加了检查自…

推荐1款简洁、小巧的实用收音机软件,支持手机和电脑

聊一聊 没想到现在还有人喜欢听广播。 我一直以为听广播必须要用那种小广播机才可以。 原来手机或电脑上也是可以的。 今天给大家分享一款可以在电脑和手机上听广播的软件。 软件介绍 龙卷风收音机 电台广播收音机分电脑和手机两个版本。 电脑端无需安装&#xff0c;下载…

六十天前端强化训练之第三十一天之Webpack 基础配置 大师级讲解(接下来几天给大家讲讲工具链与工程化)

欢迎来到编程星辰海的博客讲解 看完可以给一个免费的三连吗&#xff0c;谢谢大佬&#xff01; 目录 一、Webpack 核心概念解析 二、实战&#xff1a;多资源打包配置&#xff08;含完整代码&#xff09; 三、配置深度解析&#xff08;重点部分说明&#xff09; 四、效果演示…