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

技术编号:39895006 阅读:13 留言:0更新日期:2023-12-30 13:08
本发明专利技术公开一种重新执行测试报告中失败和错误用例的方法及工具,涉及自动化测试技术领域,方法包括:声明一个解析测试报告的函数,传入参数:原报告文件所在路径

【技术实现步骤摘要】
一种重新执行测试报告中失败和错误用例的方法及工具


[0001]本专利技术涉及自动化测试
,具体的说是一种重新执行测试报告中失败和错误用例的方法及工具


技术介绍

[0002]Unittest

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

[0003]在基于
Python+Unitest
框架下的接口自动化测试,执行用例生成的测试报告中,用例会有成功

失败

错误和跳过四种情况

如果一份测试报告中失败和错误的用例超过预设阈值,那么本次自动化测试就算失败了

而在分析测试报告后,发现大部分失败和错误的用例是由于测试代码

环境问题或研发修改导致的,那么这些用例排除上述原因是可以执行通过的,这时就需要重新跑出一份测试报告

重新执行一次的时间较长,那么只执行失败和错误的用例就极为必要


技术实现思路

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

[0005]第一方面,本专利技术提供一种重新执行测试报告中失败和错误用例的方法,解决上述技术问题采用的技术方案如下:
[0006]一种重新执行测试报告中失败和错误用例的方法,其包括如下步骤:
[0007]S1、
声明一个解析测试报告的函数
analyse_test_report
,向函数
analyse_test_report
传入原测试报告文件所在路径和执行模块名称两个参数,函数
analyse_test_report
通过解析原测试报告,找出失败和错误的用例,并将找出的用例所在文件路径经去重处理后取出;
[0008]S2、
声明一个执行失败用例的函数
run_fail_error_testcase
,向函数
run_fail_error_testcase
传入执行模块名称

步骤
S1
找出的失败用例

用例属性
tag
,函数
run_fail_error_testcase
将失败用例的文件统一执行,并生成新的测试报告;
[0009]S3、
声明一个合并报告的函数
merge_new_result
,向函数
merge_new_result
传入原测试报告文件所在路径和新的测试报告所在路径,函数
merge_new_result
将新的测试报告中用例替换掉原报告中用例,合并生成最终的测试报告;
[0010]S4、
定义
main
函数执行,在已知执行模块名称和原测试报告文件所在路径的前提
下,
main
函数调用步骤
S1、S2、S3
所述函数进行失败和错误用例的重新执行

[0011]可选的,执行步骤
S1
,解析原测试报告的具体操作包括:
[0012]S1.1、
打开传入的原测试报告文件所在路径下的文件,取出所有用例的执行结果列表
testResult

[0013]S1.2、
通过判断所有用例的执行结果列表
testResult
中每条用例的执行结果
status
,找出失败和错误的用例,并将找出用例所在的路径经过分割处理取出用例文件名;
[0014]S1.3、
将执行模块名称和取出的用例文件名拼接成用例所在文件的路径,去重后就是所有失败和错误用例的文件

[0015]可选的,步骤
S2
具体包括如下操作:
[0016]S2.1、
在执行模块的同级目录下创建一个模块名称
+

_temp

的目录,将步骤
S1
找出的失败用例都复制到这个
temp
目录下;
[0017]S2.2、
在步骤
S2.1

temp
目录及其所有的子目录下写入
__init__.py
文件,用于
Python
识别新建目录为包目录;
[0018]S2.3、
通过命令
python3 run_jenkins.py

m{temp
目录
}

ca{
用例
tag}
,执行失败用例,执行完毕后移除步骤
S2.1

temp
目录

[0019]可选的,执行步骤
S3
,合并生成最终的测试报告,具体操作包括:
[0020]S3.1、
打开新测试报告文件,拿到测试数据中所有用例所在文件路径生成列表;
[0021]S3.2、
打开原测试报告文件,拿到测试数据的所有用例的执行结果列表
testResult

[0022]S3.3、
移除原测试报告中用例所在文件路径与新测试报告中用例所在文件路径相同的用例,再移除原测试报告中失败和错误的用例;
[0023]S3.4、
将新测试报告中的用例追加到原测试报告中,形成最终的测试结果

[0024]优选的,形成最终测试结果的过程中,需要将原测试报告中成功

失败

错误和跳过的用例数量重新计算

[0025]第二方面,本专利技术提供一种重新执行测试报告中失败和错误用例的工具,解决上述技术问题采用的技术方案如下:
[0026]一种重新执行测试报告中失败和错误用例的工具,其包括:
[0027]解析函数处理模块,用于声明一个解析测试报告的函数
analyse_test_report
,在向函数...

【技术保护点】

【技术特征摘要】
1.
一种重新执行测试报告中失败和错误用例的方法,其特征在于
,
包括如下步骤:
S1、
声明一个解析测试报告的函数
analyse_test_report
,向函数
analyse_test_report
传入原测试报告文件所在路径和执行模块名称两个参数,函数
analyse_test_report
通过解析原测试报告,找出失败和错误的用例,并将找出的用例所在文件路径经去重处理后取出;
S2、
声明一个执行失败用例的函数
run_fail_error_testcase
,向函数
run_fail_error_testcase
传入执行模块名称

步骤
S1
找出的失败用例

用例属性
tag
,函数
run_fail_error_testcase
将失败用例的文件统一执行,并生成新的测试报告;
S3、
声明一个合并报告的函数
merge_new_result
,向函数
merge_new_result
传入原测试报告文件所在路径和新的测试报告所在路径,函数
merge_new_result
将新的测试报告中用例替换掉原报告中用例,合并生成最终的测试报告;
S4、
定义
main
函数执行,在已知执行模块名称和原测试报告文件所在路径的前提下,
main
函数调用步骤
S1、S2、S3
所述函数进行失败和错误用例的重新执行
。2.
根据权利要求1所述的一种重新执行测试报告中失败和错误用例的方法,其特征在于,执行步骤
S1
,解析原测试报告的具体操作包括:
S1.1、
打开传入的原测试报告文件所在路径下的文件,取出所有用例的执行结果列表
testResult

S1.2、
通过判断所有用例的执行结果列表
testResult
中每条用例的执行结果
status
,找出失败和错误的用例,并将找出用例所在的路径经过分割处理取出用例文件名;
S1.3、
将执行模块名称和取出的用例文件名拼接成用例所在文件的路径,去重后就是所有失败和错误用例的文件
。3.
根据权利要求1所述的一种重新执行测试报告中失败和错误用例的方法,其特征在于,步骤
S2
具体包括如下操作:
S2.1、
在执行模块的同级目录下创建一个模块名称
+

_temp

的目录,将步骤
S1
找出的失败用例都复制到这个
temp
目录下;
S2.2、
在步骤
S2.1

temp
目录及其所有的子目录下写入
__init__.py
文件,用于
Python
识别新建目录为包目录;
S2.3、
通过命令
python3 run_jenkins.py

m{temp
目录
}

ca{
用例
tag}
,执行失败用例,执行完毕后移除步骤
S2.1

temp
目录
。4.
根据权利要求1所述的一种重新执行测试报告中失败和错误用例的方法,其特征在于,执行步骤
S3
,合并生成最终的测试报告,具体操作包括:
S3.1、
打开新测试报告文件,拿到测试数据中所有用例所在文件路径生成列表;
S3.2、
打开原测试报告文件,拿到测试数据的所有用例的执行结果列表
testResult

S3.3、
移除原测试报告中用例所在文件路径与新测试报告中用例所在文件路径相同的用例,再移除原测试报告中失败和错误的用例;
S3.4、
将新测试报告中的用例追加到原测试报告中,形成最终的测试结果
。5.
根据权利要求4所述的一种重新执行测...

【专利技术属性】
技术研发人员:朱震宇侯卫峰苏晓寅
申请(专利权)人:浪潮软件集团有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1