一种重新执行测试报告中失败和错误用例的方法及工具与流程

文档序号:36508309发布日期:2023-12-29 01:00阅读:21来源:国知局
一种重新执行测试报告中失败和错误用例的方法及工具与流程

本发明涉及自动化测试,具体的说是一种重新执行测试报告中失败和错误用例的方法及工具。


背景技术:

1、unittest是python内部自带的一个单元测试的模块,它设计的灵感来源于junit,具有和junit类似的结构。unittest具备完整的测试结构,支持自动化测试的执行,对测试用例集进行组织,并且提供了丰富的断言方法,最后生成测试报告。unittest框架的初衷是用于单元测试,但也不限于此,在实际工作中,由于它强大的功能,提供的完整的测试流程,我们往往将其用于自动化测试的各个方面。

2、在基于python+unitest框架下的接口自动化测试,执行用例生成的测试报告中,用例会有成功、失败、错误和跳过四种情况。如果一份测试报告中失败和错误的用例超过预设阈值,那么本次自动化测试就算失败了。而在分析测试报告后,发现大部分失败和错误的用例是由于测试代码、环境问题或研发修改导致的,那么这些用例排除上述原因是可以执行通过的,这时就需要重新跑出一份测试报告。重新执行一次的时间较长,那么只执行失败和错误的用例就极为必要。


技术实现思路

1、本发明针对目前技术发展的需求和不足之处,考虑到执行的用例多,执行时间长,且测试报告失败率较小的情况,提供一种重新执行测试报告中失败和错误用例的方法及工具,通过执行测试报告中失败和错误的测试用例,将新测试报告与原测试报告合并生成新的测试结果,有效节省测试人员自动化测试用例执行和结果分析的时间,提高测试效率。

2、第一方面,本发明提供一种重新执行测试报告中失败和错误用例的方法,解决上述技术问题采用的技术方案如下:

3、一种重新执行测试报告中失败和错误用例的方法,其包括如下步骤:

4、s1、声明一个解析测试报告的函数analyse_test_report,向函数analyse_test_report传入原测试报告文件所在路径和执行模块名称两个参数,函数analyse_test_report通过解析原测试报告,找出失败和错误的用例,并将找出的用例所在文件路径经去重处理后取出;

5、s2、声明一个执行失败用例的函数run_fail_error_testcase,向函数run_fail_error_testcase传入执行模块名称、步骤s1找出的失败用例、用例属性tag,函数run_fail_error_testcase将失败用例的文件统一执行,并生成新的测试报告;

6、s3、声明一个合并报告的函数merge_new_result,向函数merge_new_result传入原测试报告文件所在路径和新的测试报告所在路径,函数merge_new_result将新的测试报告中用例替换掉原报告中用例,合并生成最终的测试报告;

7、s4、定义main函数执行,在已知执行模块名称和原测试报告文件所在路径的前提下,main函数调用步骤s1、s2、s3所述函数进行失败和错误用例的重新执行。

8、可选的,执行步骤s1,解析原测试报告的具体操作包括:

9、s1.1、打开传入的原测试报告文件所在路径下的文件,取出所有用例的执行结果列表testresult;

10、s1.2、通过判断所有用例的执行结果列表testresult中每条用例的执行结果status,找出失败和错误的用例,并将找出用例所在的路径经过分割处理取出用例文件名;

11、s1.3、将执行模块名称和取出的用例文件名拼接成用例所在文件的路径,去重后就是所有失败和错误用例的文件。

12、可选的,步骤s2具体包括如下操作:

13、s2.1、在执行模块的同级目录下创建一个模块名称+‘_temp’的目录,将步骤s1找出的失败用例都复制到这个temp目录下;

14、s2.2、在步骤s2.1的temp目录及其所有的子目录下写入__init__.py文件,用于python识别新建目录为包目录;

15、s2.3、通过命令python3 run_jenkins.py–m{temp目录}–ca{用例tag},执行失败用例,执行完毕后移除步骤s2.1的temp目录。

16、可选的,执行步骤s3,合并生成最终的测试报告,具体操作包括:

17、s3.1、打开新测试报告文件,拿到测试数据中所有用例所在文件路径生成列表;

18、s3.2、打开原测试报告文件,拿到测试数据的所有用例的执行结果列表testresult;

19、s3.3、移除原测试报告中用例所在文件路径与新测试报告中用例所在文件路径相同的用例,再移除原测试报告中失败和错误的用例;

20、s3.4、将新测试报告中的用例追加到原测试报告中,形成最终的测试结果。

21、优选的,形成最终测试结果的过程中,需要将原测试报告中成功、失败、错误和跳过的用例数量重新计算。

22、第二方面,本发明提供一种重新执行测试报告中失败和错误用例的工具,解决上述技术问题采用的技术方案如下:

23、一种重新执行测试报告中失败和错误用例的工具,其包括:

24、解析函数处理模块,用于声明一个解析测试报告的函数analyse_test_report,在向函数analyse_test_report传入原测试报告文件所在路径和执行模块名称两个参数时,函数analyse_test_report通过解析原测试报告,找出失败和错误的用例,并将找出的用例所在文件路径经去重处理后取出;

25、失败函数处理模块,用于声明一个执行失败用例的函数run_fail_error_testcase,在向函数run_fail_error_testcase传入执行模块名称、解析函数处理模块找出的失败用例、用例属性tag时,函数run_fail_error_testcase将失败用例的文件统一执行,并生成新的测试报告;

26、合并函数处理模块,用于声明一个合并报告的函数merge_new_result,在向函数merge_new_result传入原测试报告文件所在路径和新的测试报告所在路径时,函数merge_new_result将新的测试报告中用例替换掉原报告中用例,合并生成最终的测试报告;

27、执行函数处理模块,用于main函数执行,在已知执行模块名称和原测试报告文件所在路径的前提下,main函数调用函数analyse_test_report、函数run_fail_error_testcase、函数merge_new_result进行失败和错误用例的重新执行。

28、可选的,所涉及解析函数处理模块解析原测试报告的具体操作包括:

29、打开传入的原测试报告文件所在路径下的文件,取出所有用例的执行结果列表testresult;

30、通过判断所有用例的执行结果列表testresult中每条用例的执行结果status,找出失败和错误的用例,并将找出用例所在的路径经过分割处理取出用例文件名;

31、将执行模块名称和取出的用例文件名拼接成用例所在文件的路径,去重后就是所有失败和错误用例的文件。

32、可选的,所涉及失败函数处理模块生成新测试报告的具体操作包括:

33、在执行模块的同级目录下创建一个模块名称+‘_temp’的目录,将解析函数处理模块找出的失败用例都复制到这个temp目录下;

34、在上述temp目录及其所有的子目录下写入__init__.py文件,用于python识别新建目录为包目录;

35、通过命令python3 run_jenkins.py–m{temp目录}–ca{用例tag},执行失败用例,执行完毕后移除上述temp目录。

36、可选的,所涉及合并函数处理模块合并生成最终的测试报告,具体操作包括:

37、打开新测试报告文件,拿到测试数据中所有用例所在文件路径的生成列表;

38、打开原测试报告文件,拿到测试数据的所有用例的执行结果列表testresult;

39、移除原测试报告中用例所在文件路径与新测试报告中用例所在文件路径相同的用例,再移除原测试报告中失败和错误的用例;

40、将新测试报告中的用例追加到原测试报告中,形成最终的测试结果。

41、优选的,所涉及合并函数处理模块形成新测试结果的过程中,需要将原测试报告中成功、失败、错误和跳过的用例数量重新计算。

42、本发明的一种重新执行测试报告中失败和错误用例的方法及工具,与现有技术相比具有的有益效果是:

43、(1)本发明通过执行测试报告中失败和错误的测试用例,将新测试报告与原测试报告合并生成新的测试结果,可以有效节省测试人员自动化测试用例执行和结果分析的时间,提高测试效率;

44、(2)本发明适用于执行的用例多,执行时间长,且测试报告失败率较小的情况。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1