本发明属于自动化检测领域,尤其是涉及一种具有兼容性的自动化测试方法。
背景技术:
1、随着产品和项目数量的不断增加以及现有维护和测试任务的积累,自动化测试工具已成为确保app、固件和云服务开发及维护质量的重要手段。随着软件系统复杂性的逐步提升和对软件测试质量要求的不断提高,自动化测试工具需要具备更强的兼容性和可扩展性,以支持多样化、快速迭代的测试需求和动态变化的测试场景。
2、目前使用的自动化测试工具主要分为两类:基于windows终端运行的可交互测试工具和通过第三方程序调用的测试代码块。
3、基于终端运行的测试工具:这些工具具有较高的灵活性和可交互性,允许用户手动执行步骤并实时查看测试结果。然而,这类工具往往限制较多,测试过程需要用户逐步进行交互操作,扩展功能较为困难,主要适用于单一测试场景,难以维护。
4、通过第三方程序调用的测试代码块:此类工具在易用性上具有优势,便于在不同测试场景中调用,并且可以供公司内部其他部门的开发人员使用。然而,这类工具使用门槛较高,通常只有软件开发人员才能操作,普通测试人员缺乏使用和修改的能力。
5、综上所述,现有自动化测试工具在灵活性、可扩展性和易用性方面各有优劣。基于终端的测试工具在灵活性和交互性方面表现出色,但在扩展性和维护方面存在不足;而通过第三方程序调用的测试代码块在易用性和跨部门调用方面具有优势,但对使用者的技术水平要求较高。
技术实现思路
1、有鉴于此,本发明旨在提出一种具有兼容性的自动化测试方法,以期解决上述部分技术问题中的至少之一。
2、为达到上述目的,本发明的技术方案是这样实现的:
3、第一方面本发明提供了一种具有兼容性的自动化测试方法,包括如下步骤:
4、对所有自动化工具类所在文件进行统一命名;
5、根据工具类命名规则及当前项目名称对所述自动化工具类进行命名;
6、设定函数命名规则,根据函数命名规则对自动化测试项函数名进行命名;
7、通过在每个自动化测试项函数上使用装饰器,并根据输入参数的值判断是否执行终端交互,从而执行自动化测试。
8、进一步的,所述工具类命名规则具体为:
9、获取当前自动化工具类所在项目的项目名称,并将所述项目名称作为当前自动化工具类的名称字头,其中,所述自动化工具类的名称中除字头外,均为固定名称。
10、进一步的,所述函数命名规则具体为:
11、将自动化测试项函数名设置为“测试项_测试”,其中,当所述固定名称为当所述自动换测试项需要进行终端交互时,在其内部实现与名称为“输入_测试项_测试”的函数。
12、进一步的,所述通过在每个自动化测试项函数上使用装饰器,并根据输入参数的值判断是否执行终端交互,从而执行自动化测试的过程包括:
13、将装饰器添加于每个自动换测试项函数上,并创建与所述装饰器相对应的装饰器函数;
14、所述装饰器函数接收被装饰的主体函数作为参数,并在装饰器函数内部定义一个嵌套函数作为新的主体函数;
15、装饰器函数识别当前主体函数的名称中是否包含目标字段;
16、若包含,则等待输入处理函数执行完毕后,再调用原主体函数,并传入与原函数相同的参数;
17、否则直接调用原主体函数,传入所有参数。
18、进一步的,执行自动换测试的过程中,通过覆盖率检测方法对自动化测试的覆盖率进行检测,其过程包括:
19、在自动化工具类所在文件中创建并配置覆盖率工具,将覆盖率工具安装至ci/cd服务器中;
20、在ci/cd服务器中运行测试用例,所述测试用例执行的过中覆盖率工具持续收集执行数据,并在测试用例执行结束后生成对应的执行文件;
21、根据所述执行文件分析得到测试用例未覆盖的代码区域,并分析未覆盖的原因,根据原因对测试用例进行调整。
22、进一步的,所述分析得到测试用例未覆盖的代码区域的过程包括:
23、获取所述执行文件中的覆盖率指标,其中,所述覆盖率指标包括行覆盖率、分支覆盖率、函数覆盖率;
24、判断对未覆盖的代码是否为已弃用代码或测试用代码,并对判断结果为是的代码进行标记。
25、进一步的,所述分析未覆盖的原因的过程包括:
26、检查当前代码是否因为测试用例数量不足导致代码未覆盖;
27、分析测试用例的输入数据是否覆盖了所有可能的场景和边界条件;
28、评估代码是否因为高度嵌套的条件语句以及大量的分支难以测试;
29、检查是否因为外部依赖或环境限制导致代码路径无法执行。
30、进一步的,所述根据原因对测试用例进行调整的过程包括:
31、针对未覆盖的代码区域设计新的测试用例,调整和扩展现有测试用例,以增加代码覆盖范围;
32、在执行改进措施后,重新生成覆盖率报告,审查新的报告,确认未覆盖的代码区域是否已经得到改善。
33、第二方面本发明提供了一种服务器,其特征在于:包括至少一个处理器,以及与所述处理器通信连接的存储器,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述处理器执行,以使所述至少一个处理器执行如第一方面所述的一种具有兼容性的自动化测试方法。
34、第三方面本发明提供了一种计算机可读取存储介质,存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现第一方面所述的一种具有兼容性的自动化测试方法。
35、相对于现有技术,本发明所述的一种具有兼容性的自动化测试方法具有以下有益效果:
36、支持用户通过终端输入选择不同的测试项目和运行环境,适应多种使用场景,通过命名规则等设计将各类项目、产品、自动化工具分门别类,开发人员直接依据规则创建文件和命名类、函数,无需再另行创建项目配置文件。
37、整体兼容了两种不同的调用方案,而开发人员只用正常编写一套自动化工具的实现代码即可,通过命名规则的明确,代码文件层级拆分的较为清晰,方便多人同步模块式开发,极大提高了开发速度。
1.一种具有兼容性的自动化测试方法,其特征在于,包括如下步骤:
2.根据权利要求1所述的一种具有兼容性的自动化测试方法,其特征在于,所述工具类命名规则具体为:
3.根据权利要求1所述的一种具有兼容性的自动化测试方法,其特征在于,所述函数命名规则具体为:
4.根据权利要求1所述的一种具有兼容性的自动化测试方法,其特征在于,所述通过在每个自动化测试项函数上使用装饰器,并根据输入参数的值判断是否执行终端交互,从而执行自动化测试的过程包括:
5.根据权利要求1所述的一种具有兼容性的自动化测试方法,其特征在于,执行自动换测试的过程中,通过覆盖率检测方法对自动化测试的覆盖率进行检测,其过程包括:
6.根据权利要求5所述的一种具有兼容性的自动化测试方法,其特征在于,所述分析得到测试用例未覆盖的代码区域的过程包括:
7.根据权利要求5所述的一种具有兼容性的自动化测试方法,其特征在于,所述分析未覆盖的原因的过程包括:
8.根据权利要求5所述的一种具有兼容性的自动化测试方法,其特征在于,所述根据原因对测试用例进行调整的过程包括:
9.一种服务器,其特征在于:包括至少一个处理器,以及与所述处理器通信连接的存储器,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述处理器执行,以使所述至少一个处理器执行如权利要求1-8任一所述的一种具有兼容性的自动化测试方法。
10.一种计算机可读取存储介质,存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现权利要求1-8任一项所述的一种具有兼容性的自动化测试方法。