严重BUG修复及部分体验问题优化

news2025/5/15 19:15:25

随着Deepseek API+Python 测试用例一键生成与导出 V1.0.6的试用不断深入,会出现程序异常崩溃的问题。经群友定位,紧急修复了bug,并适当优化部分体验性问题。针对生成的测试用例xlsx文档,可以再次选中该xlsx给大模型进行推理生成新的用例,但是会产生幻觉,此处需考虑优化处理方法。bug列表如下:

  • generate_report方法中将chunk_text错误拼写为chuntext,程序会异常退出
  • 当json格式的接口数据尺寸大于分块尺寸时,第2段把第1段的文档内容重复解析输出了
  • 部分群友使用体验优化,打印输出内容优化

感谢群友的反馈~~

支持的python环境是python 3.12
具体可参考Deepseek API+Python测试用例一键生成与导出 V1.05(支持读取json及yml,环境及库安装保姆级指南)

工具使用阿里云百炼api-key,具体可参考结合pageassist与阿里百炼api实现deepseek-r1联网搜索功能

若提示401,则可能是因为api-key未替换

整体布局如下图所示:

在这里插入图片描述


一、工具核心功能概览

1.1 支持读取多种文档类型

工具支持以下文档类型,满足不同场景下的测试需求:

  • docx 文档:从需求文档中提取指定标题内容,进行分块处理后生成功能测试用例。
  • excel 文档:从接口文档中提取接口定义,基于内容进行分块生成接口测试用例。
  • json 文档:从接口文档中提取内容,合理分块后生成接口测试用例。
  • yml 文档:针对接口文档,按接口定义分块生成测试用例。
  • md 文档:读取md文档内容,进行功能测试用例生成。

1.2 分块策略

分块策略是本工具的核心亮点,针对不同文档类型采用不同的分块方式:

  • 固定长度分块:将文本按固定长度切割,同时添加滑动窗口重叠,避免上下文丢失。
  • 内容分块:按接口定义或段落内容分块,确保数据完整性。

1.3 测试用例导出

生成的测试用例不仅支持在工具内预览,还可导出为 jsonexcel 格式,便于后续管理和使用。


二、BUG修复代码详情

2.1 json文档分块策略

针对 json 文件,当json格式的接口数据尺寸大于分块尺寸时,第2段把第1段的文档内容重复解析输出。

代码实现
    def chunk_json(self, content, max_chunk_size=1000):
        """
        将 .json 接口文档按接口定义分块,确保接口数据完整。

        参数:
        - file_path (str): .json 文件路径
        - max_chunk_size (int): 每个分块的最大字符数

        返回:
        - list: 分块后的接口定义列表
        """
        # with open(file_path, 'r', encoding='utf-8') as file:
        #     data = json.load(file)
        print("开始对json或yml文件进行分块~~")
        chunks = []
        current_chunk = ""
        current_size = 0

        for n, interface in enumerate(content):
            interface_content = json.dumps(interface, indent=2, ensure_ascii=False)
            interface_size = len(interface_content)

            if current_size + interface_size > max_chunk_size:
                if n == 0:  # bug修复,当json对象列表的第一个元素尺寸就大于最大分隔尺寸时,则将第一个元素添加到分块列表中
                    chunks.append(interface_content)
                else:
                    chunks.append(current_chunk)
                current_chunk = interface_content
                current_size = interface_size
                n += 1  # 修复第2段把第1段的文档内容重复解析输出了
            else:
                current_chunk += "\n" + interface_content
                current_size += interface_size
                n += 1  # 修复第2段把第1段的文档内容重复解析输出了

        if current_chunk:
            chunks.append(current_chunk)

        return chunks
代码注释
  1. 针对 JSON 列表内容逐个分块。
  2. 修复第2段把第1段的文档内容重复解析输出。

2.2 generate_report方法中将chunk_text错误拼写为chuntext,程序会异常退出

generate_report方法中将chunk_text错误拼写为chuntext,程序会异常退出。

代码实现
        def generate_report(self):
        """ 生成分析报告 """
        if not self.prompt_input.toPlainText().strip():
            QMessageBox.warning(self, "提示", "请输入提示词!")
            return
        context = self.preview_area.toPlainText()
        if not self.context and context:
            # 如果没有分块,则在此对预览框中的文本进行分块
             # chuntext修改为chunk_text
            self.context = self.chunk_text(context) 
            
        if not context:
            QMessageBox.warning(self, "提示", "内容预览框中无数据,请求大模型终止!")
            return
       
代码注释
  1. self.context = self.chuntext(context)修改为self.context = self.chunk_text(context)

三、工具优势

  1. 智能分块策略:针对不同文档类型采用最优分块方案,确保大模型生成结果完整可靠。
  2. 多文档支持:支持 docx、yml、json 和 excel 等多种文档类型,满足多场景需求。
  3. 高效导出:生成的测试用例支持一键导出为 json 或 excel 格式,便于后续管理。
  4. 贴心细节优化:如滑动窗口处理、首块 bug 修复等,确保工具稳定性和精准性。

四、总结

通过对文档进行智能分块处理,结合大模型生成测试用例的能力,大幅提升测试效率和用例质量。无论是功能测试还是接口测试,这款工具都能为测试工程师提供强大支持,助力实现测试工作的智能化升级!针对已经生成的测试用例,如何结合需求文档再次传递给大模型进行用例覆盖率分析,将作为下一个突破口。agent似乎也可以安排上了。
快来试试这款工具,让测试用例生成变得轻松高效吧!源码已上传~继续coding,支持json输出为md格式文档。

往期迭代文章:

Deepseek API+Python 测试用例一键生成与导出 V1.0.6(加入分块策略,返回更完整可靠)

Deepseek API+Python测试用例一键生成与导出 V1.05(支持读取json及yml,环境及库安装保姆级指南)

Deepseek API+Python 测试用例一键生成与导出 V1.0.4 (接口文档生成接口测试用例保姆级教程)

Deepseek API+Python 测试用例一键生成与导出 V1.0.3

Deepseek API+Python测试用例一键生成与导出-V1.0.2

Deepseek API+Python测试用例一键生成与导出-V1.0.1

Deepseek API+Python测试用例一键生成与导出-V1

Deepseek API+Python测试用例一键生成与导出

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

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

相关文章

Elasticsearch 证书问题解决

报错信息 javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested targetat org.elasticsearch.client.RestClient. extractAndWrapCause(R…

2023年CIE SCI1区TOP:序列融合麻雀搜索算法ISSA,深度解析+性能实测

目录 1.摘要2.麻雀搜索算法SSA原理3.改进策略3.结果展示4.参考文献5.代码获取 1.摘要 麻雀搜索算法(SSA)是一种基于麻雀觅食和防捕行为的群体智能算法。然而,基本SSA在迭代过程中,种群多样性逐渐降低,容易陷入局部最优…

配置晟腾910b的PyTorch torch_npu环境

1.【新教程】华为昇腾NPU的pytorch环境搭建 - Lukea - 博客园 1、新建conda环境。 conda create -n pytorch python3.102、在新建好的conda环境中,安装基础的依赖。 pip install attrs cython numpy1.24.0 decorator sympy cffi pyyaml pathlib2 psutil protobuf…

conda 激活环境vscode的Bash窗口

多份conda环境注意事项,当时安装了两个conda环境,miniconda和conda,导致环境总是冲突矛盾。初始化时需要更加注意。 $ C:/Users/a_hal/miniconda3/Scripts/conda.exe init bash能够显示用哪里的conda环境命令执行。 然后直接conda activate…

火山 RTC 引擎 2 ----APPKEY

前篇文章:火山RTC引擎 --一次失望的体验 那个DEMO可以编译运行了,但是功能不能用, 一用就崩溃。 主要原因还是没有APPKEY 一、火山引擎 APPKEY 管理 1、登录后台 账号登录-火山引擎欢迎登录火山引擎,火山引擎是字节跳动旗下的云…

Springboot学习笔记3.28

目录 实战第六课:文章分类开发 新增文章分类: 具体实现: 查询文章分类: 具体实现: 获取文章分类的详情 更新文章分类: 注意点: ​编辑 对校验规则进行分组: 学习时的疑惑…

【CSS3】05-定位 + 修饰属性

本文介绍定位和CSS中的修饰属性。 目录 1. 定位 1.1 相对定位 1.2 绝对定位 1.3 定位居中 1.4 固定定位 1.5 z-index堆叠层级 2. 修饰属性 2.1 垂直对齐方式 vertical-align 2.2 过渡属性 2.3 透明度 opacity 2.4 光标类型 cursor 1. 定位 灵活改变盒子在网页中的位…

如何屏蔽mac电脑更新提醒,禁止系统更新

最烦mac的系统更新提醒了,过几天就是更新弹窗提醒,现在可以直接禁掉了,眼不见心不乱,不然一升级,开发环境全都不能用了,那才是最可怕的,屏蔽的方法也很简单,就是屏蔽mac系统更新的请…

Rclone同步Linux数据到google云盘

文章目录 Rclone管理云存储Rclone安装和使用说明安装rclone配置rclone连接到云盘基本备份命令高级备份选项自动化备份加密备份(可选)恢复数据常见云存储服务名称注意事项 googleCloud 平台中操作OAuth权限请求页面(OAuth同意屏幕)…

AI人工智能-Jupyter NotbookPycharm:Py开发

安装 命令: pip install jupyter 启动 命令: jupyter notebook 启动成功后,下面网址会默认自动打开当前用户的根目录。 其实这个页面显示的内容,是我们电脑目录C:\Users\当前用户\下的文件夹 我们平常做实验,希望在…

DDR简介

一、什么是DDR? DDR SDRAM(Double Data Rate Synchronous DYNAMIC RAM)中文名是:双倍数据速率同步动态随机存储器。 传统的SDRAM只在时钟信号的上升沿传输数据,而DDR可以同时在时钟的上升沿和下降沿传输数据&#xf…

VRRP(虚拟路由器冗余协议)、虚拟路由器、master路由器、backup路由器

VRRP(虚拟路由器冗余协议) 1、介绍 虚拟路由冗余协议 VRRP (Virtual Router Redundancy Protocol)通过把几台路由设备联合组成一台虚拟的路由设备,将虚拟路由设备的IP地址作为用户的默认网关实现与外部网络通信。当网关设备发生故障时,VRRP机制能够选举…

多模态RAG实践:如何高效对齐不同模态的Embedding空间?

目录 多模态RAG实践:如何高效对齐不同模态的Embedding空间? 一、为什么需要对齐Embedding空间? 二、常见的对齐方法与关键技术点 (一)对比学习(Contrastive Learning) (二&#…

vue中的 拖拽

拖拽总结 实现方式特点适用场景HTML5 原生拖拽 API✅ 直接使用 dataTransfer 进行数据传输 ✅ 兼容性好(大部分浏览器支持) ✅ 适合简单的拖拽场景低代码平台、表单生成器、组件拖拽Vue/React 组件库(如 Vue Draggable、SortableJS&#xff…

Linux进程间通信(1)

1.IPC 1.什么是IPC? Inter Process Communication 2.进程间通信常用的几种方式 1,管道通信:有名管道,无名管道 2,信号- 系统开销小 3,消息队列-内核的链表 4,信号量-计数器 5,共享…

Scala相关知识学习总结3

包 - 包声明:和Java类似,作用是区分同名类、管理类命名空间。Scala包名只能含数字、字母等,不能数字开头、不能用关键字。 - 包说明:有类似Java的包管理风格,也有独特嵌套风格。嵌套风格有两个特点,一是&…

Opencv计算机视觉编程攻略-第七节 提取直线、轮廓和区域

第七节 提取直线、轮廓和区域 1.用Canny 算子检测图像轮廓2.用霍夫变换检测直线;3.点集的直线拟合4.提取连续区域5.计算区域的形状描述子 图像的边缘区域勾画出了图像含有重要的视觉信息。正因如此,边缘可应用于目标识别等领域。但是简单的二值边缘分布图…

中和农信:让金融“活水”精准浇灌乡村沃土

2025年政府工作报告首提“投资于人”概念,并22次提及“金融”,强调要着力抓好“三农”工作,深入推进乡村全面振兴;一体推进地方中小金融机构风险处置和转型发展;扎扎实实落实促进民营经济发展的政策措施,切…

背包DP总结

牛客周赛 Round 81 E.建筑入门 知识点:完全背包,完全背包的路径转移以及回溯 由题意可以推导出,下层麻将的数字一定大于上层数字,所以我们可以假设一个最基础的麻将塔,也就是: 1 2 2 3 3 3 … 形如这样的&…

Labview信号采集与多功能分析系统(可仿真)

1.摘要 《Labview信号采集与多功能分析系统》可以实时分析信号的时域特征,例如信号的均值、方差、峰值、峭度等。系统可以进行信号的自相关与互关分析。此系统也可以分析信号的频域特征,包括快速傅里叶变换后的时频特征、短时傅里叶变换STFT后的时频域特…