【技术实现步骤摘要】
一种重新执行测试报告中失败和错误用例的方法及工具
[0001]本专利技术涉及自动化测试
,具体的说是一种重新执行测试报告中失败和错误用例的方法及工具
。
技术介绍
[0002]Unittest
是
Python
内部自带的一个单元测试的模块,它设计的灵感来源于
Junit
,具有和
Junit
类似的结构
。Unittest
具备完整的测试结构,支持自动化测试的执行,对测试用例集进行组织,并且提供了丰富的断言方法,最后生成测试报告
。Unittest
框架的初衷是用于单元测试,但也不限于此,在实际工作中,由于它强大的功能,提供的完整的测试流程,我们往往将其用于自动化测试的各个方面
。
[0003]在基于
Python+Unitest
框架下的接口自动化测试,执行用例生成的测试报告中,用例会有成功
、
失败
、
错误和跳过四种情况
。
如果一份测试报告中失败和错误的用例超过预设阈值,那么本次自动化测试就算失败了
。
而在分析测试报告后,发现大部分失败和错误的用例是由于测试代码
、
环境问题或研发修改导致的,那么这些用例排除上述原因是可以执行通过的,这时就需要重新跑出一份测试报告
。
重新执行一次的时间较长,那么只执行失败和错误的用例就极为必要
。
技术实现思路
[000
【技术保护点】
【技术特征摘要】
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所述的一种重新执行测...
【专利技术属性】
技术研发人员:朱震宇,侯卫峰,苏晓寅,
申请(专利权)人:浪潮软件集团有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。