一种Python自动化测试脚本生成方法及系统与流程

摘要: 本发明涉及软件测试自动化,具体涉及一种python自动化测试脚本生成方法及系统。背景技术:1、在软件开发生命周期中,自动化测试是保障软件质量、提升测试效率的关键...
一种Python自动化测试脚本生成方法及系统与流程

本发明涉及软件测试自动化,具体涉及一种python自动化测试脚本生成方法及系统。

背景技术:

1、在软件开发生命周期中,自动化测试是保障软件质量、提升测试效率的关键环节。python语言因其语法简洁、生态丰富(拥有pytest、selenium、locust等成熟的测试框架),成为自动化测试脚本开发的主流选择。

2、然而,当前基于python的自动化测试脚本开发模式仍存在显著瓶颈:

3、开发门槛高:测试人员需同时精通python语法及各类测试框架的api,对非专业开发人员极不友好,脚本开发周期长。

4、场景适配性差:接口测试、ui测试、性能测试等不同场景的脚本结构、依赖库差异巨大。现有工具多聚焦单一场景,缺乏统一的多场景脚本生成方案,导致测试人员需掌握多种工具,学习成本高。

5、脚本复用率低:传统脚本多为针对特定需求的“一次性”代码,缺乏参数化与模板化设计。当测试对象或需求发生轻微变更时,往往需要重新编写大量代码,维护成本高昂。

6、兼容性问题突出:python版本及各类测试框架版本迭代迅速,手动编写的脚本常面临版本兼容性问题,需要投入额外时间进行调试与适配。

技术实现思路

1、本发明的目的在于克服现有技术的不足,提供一种python自动化测试脚本生成方法及系统,实现从自然语言或结构化测试需求到高质量、可执行python测试脚本的自动化转化,支持接口、ui、性能等多测试场景,降低开发门槛,提升脚本开发效率、智能化水平与复用率。

2、本发明的目的是通过以下技术方案来实现的:

3、第一方面,本发明公开了一种python自动化测试脚本生成方法,包括:

4、接收测试需求,对所述测试需求进行特征解析,提取测试场景类型、测试对象、测试动作、技术参数及预期结果,生成结构化需求特征向量;

5、基于所述结构化需求特征向量中的测试场景类型,采用关键词匹配与语义相似度相结合的混合匹配策略,从预置的场景模板库中匹配对应的python测试脚本模板,所述python测试脚本模板包含固定语法框架和参数占位符;

6、将所述结构化需求特征向量中的技术参数,填充至所匹配模板的对应参数占位符中,生成初始python测试脚本;

7、对所述初始python测试脚本进行语法校验、逻辑完整性检测及运行环境兼容性优化,得到可执行的python测试脚本。

8、基于第一方面,所述测试需求包括自然语言文本或结构化文档;

9、若所述测试需求为自然语言文本,则采用特征解析模型进行语义理解与命名实体识别,以提取结构化特征;

10、若所述测试需求为结构化文档,采用pandas库进行数据解析以提取所述结构化需求特征向量。

11、基于第一方面,所述特征解析模型包括嵌入层、序列编码层和标签解码层;

12、嵌入层采用预训练的bert模型,用于将输入的自然语言测试需求文本转换为携带上下文语义信息的词向量序列;

13、序列编码层采用双向长短期记忆网络,分别从正向与反向对所述词向量序列进行编码,并将两个方向的隐状态拼接作为每个词的上下文表示,以捕获文本中的长距离依赖关系;

14、标签解码层采用条件随机场,对双向长短期记忆网络输出的隐状态序列进行解码,并结合预设的标签转移约束,输出全局最优的标签序列,从而实现对测试场景类型以及测试对象、测试动作、技术参数、预期结果的联合识别。

15、基于第一方面,所述场景模板库包括基于requests库构建的接口测试模板、基于selenium库构建的ui测试模板以及基于locust库构建的性能测试模板中的至少一种。

16、基于第一方面,采用关键词匹配与语义相似度相结合的混合匹配策略具体包括:

17、将测试场景类型字段与场景模板库中各模板的预设关键词库进行匹配,并计算匹配得分,其中,接口测试模板的关键词库包括接口、api、请求和http,ui测试模板的关键词库包括页面、元素、点击和输入,性能测试模板的关键词库包括性能、并发、压测和吞吐量;

18、将测试场景类型字段的语义向量与各模板标识的语义向量进行相似度计算;将关键词匹配得分与语义相似度按预设权重加权求和,以得分最高的模板作为目标模板;当最高得分低于预设阈值时,判定场景匹配失败,输出默认的接口测试模板并提示人工确认;当存在多个得分相近的候选模板时,提示用户进行确认选择。

19、基于第一方面,所述语法校验包括调用python的ast模块解析所述初始python测试脚本,检测并自动修正语法错误;所述逻辑完整性检测包括通过静态代码分析判断所述初始python测试脚本是否包含断言逻辑代码及异常处理结构,若缺失则自动补充对应的代码块。

20、基于第一方面,还包括利用智能断言逻辑代码合成机制对预期结果描述进行分析并生成验证代码;其中,所述智能断言逻辑代码合成机制具体包括:

21、分析所述结构化需求特征向量中预期结果的描述,并结合目标接口的历史响应数据结构或预定义的数据模式,识别可验证的字段、确定字段的数据类型与约束、并推断合法的业务规则或取值范围;

22、基于对结构化需求特征向量中预期结果描述的分析,合成超出所述技术参数明确指定范围的多维度断言逻辑代码,所述断言逻辑代码包括对响应数据中字段存在性、数据类型、业务规则符合性的检查代码;

23、将合成的多维度断言逻辑代码插入或生成于所述初始python测试脚本的相应逻辑位置。

24、基于第一方面,还包括利用增量训练机制对脚本进行自适应优化与模型迭代;所述增量训练机制包括:

25、执行所述可执行的python测试脚本,并监控其执行过程,采集执行效能数据与执行结果;

26、响应于执行失败且执行失败原因为参数缺失或语义误解,将当前测试需求与执行失败时的错误信息、输入数据构造成训练样本;

27、利用所述训练样本对所述特征解析模型进行增量训练,优化需求特征解析的准确性。

28、基于第一方面,若所述测试需求描述一个包含多个原子步骤的端到端业务流程,则利用业务流程测试智能编排机制对所述测试需求进行解析与脚本合成;其中,所述业务流程测试智能编排机制具体包括:

29、解析所述测试需求,识别出原子测试场景及场景间的数据依赖关系;

30、根据所述数据依赖关系,为每个原子测试场景生成测试脚本;

31、编排所述测试脚本的执行顺序与跨脚本的数据传递逻辑,生成可执行的全流程测试套件。

32、第二方面,本发明公开了一种python自动化测试脚本生成系统,用于执行第一方面所述的一种python自动化测试脚本生成方法,包括:

33、需求特征解析模块,用于对接收的自然语言或结构化测试需求进行特征解析,生成包含测试场景类型、技术参数及预期结果的结构化需求特征向量;

34、场景模板库,用于存储按测试场景分类的python测试脚本模板,所述python测试脚本模板包含固定语法框架和参数占位符;

35、动态参数配置引擎,连接所述需求特征解析模块和所述场景模板库,用于根据所述结构化需求特征向量匹配对应模板,并将技术参数自动填充至模板占位符以生成初始脚本;

36、所述动态参数配置引擎还包括智能断言逻辑代码合成单元,用于对所述预期结果描述进行深度分析,并自动合成多维度断言逻辑代码插入初始python测试脚本;

37、脚本验证优化组件,用于对初始python测试脚本进行语法校验、逻辑完整性检测及运行环境兼容性优化,输出可执行脚本;

38、业务流程编排引擎,用于当所述测试需求为端到端业务流程时,解析该测试需求以识别原子测试场景及其数据依赖关系,并为各场景生成测试脚本后编排其执行顺序与数据传递逻辑,形成全流程测试套件;

39、脚本执行与反馈分析模块,用于执行所述可执行脚本并监控其过程,将执行结果与预期结果比对,并在判定因需求解析偏差导致失败时,构建训练样本;

40、模型迭代管理模块,用于利用所述训练样本对所述需求特征解析模块中的特征解析模型进行增量训练。

41、本发明的有益效果是:

42、1)利用特征解析模型对自然语言需求进行语义理解与结构化提取,实现了对非专业开发背景测试人员的友好支持,使其无需掌握复杂编程语法即可描述测试需求;

43、2)基于预置的多场景模板库与参数映射、自动填充,实现了对接口、ui、性能等不同测试场景的统一适配与脚本的快速生成,当需求变更时仅需调整参数,解决了传统方法场景适配性差、脚本复用率低、维护成本高昂的问题。