天天看点

Pytest测试框架系列 - pytest_runtest_makereport 配合自动提交缺陷!

我们都知道测试用例执行失败后,我们会提交相应缺陷到公司缺陷平台,那我们自动化测试完成了,对于执行失败的用例,是不是也需要将失败的用例也提交相应缺陷呢,这种肯定的。作为测试人员,提交缺陷是我们工作的必不可缺少的部分,如何测试人员不提交缺陷了,那就代表已经脱离了测试人员的职责了。

那么在做自动化测试的时候,肯定希望如果用例执行失败了就自动提交缺陷,这样大大减少了人工再去提交缺陷的时间成本,那我们该怎么做呢,我们在这里面需要考虑一些问题。

在用例执行过程中,如何获取用例执行状态

如何对接缺陷系统,提交缺陷

说明:item是测试用例,call是测试步骤,具体执行过程如下:

先执行when='setup' 返回setup 的执行结果

然后执行when='call' 返回call 的执行结果

最后执行when='teardown'返回teardown 的执行结果

根据源码及使用方式,我们先尝试使用一下:

<code>conftest.py</code>

<code>test_report.py</code>

执行 <code>pytest -v -s test_report.py</code> ,查看结果:

Pytest测试框架系列 - pytest_runtest_makereport 配合自动提交缺陷!

从执行结果可以看出来 <code>pytest_runtest_makereport</code> 经过三个阶段:<code>'when': 'setup'</code>、<code>'when': 'call'</code> 、<code>'when': 'teardown'</code>

这样我们就可以使用属性 <code>when</code> 和 <code>outcome</code> 来判断用例执行结果,那我们该怎么来使用,在哪个阶段进行判断。再看下用例存在<code>setup</code>和<code>teardown</code>时的情况。

在<code>contest.py</code> 增加一个<code>fixture</code>函数,如下:

Pytest测试框架系列 - pytest_runtest_makereport 配合自动提交缺陷!

由于我们用例执行过程中可能出现前置操作失败、用例执行失败、在后置操作失败等情况,接下来我们看下这些情况,执行结果如何:

修改<code>contest.py</code> 的<code>fixture</code>函数,如下:

Pytest测试框架系列 - pytest_runtest_makereport 配合自动提交缺陷!

修改<code>test_report.py</code> ,如下:

Pytest测试框架系列 - pytest_runtest_makereport 配合自动提交缺陷!
Pytest测试框架系列 - pytest_runtest_makereport 配合自动提交缺陷!

从用例执行结果来看,我们保证setup和teardown执行成功,主要关注用例执行部分出错,所有我们一般只关注 <code>call</code> 执行部分

所以我们一般如下写法:

下面由于公司是<code>redmie</code>系统,通过查看提交缺陷api,存在提交缺陷接口:

<code>pip install python-redmine</code>

<code>contest.py</code> 的 <code>pytest_runtest_makereport</code> 写法

pytest_runtest_makereport 的使用

pytest_runtest_makereport 和redmine 配置提交缺陷

以上为内容纯属个人理解,如有不足,欢迎各位大神指正,转载请注明出处!

如果觉得文章不错,欢迎关注微信公众号,微信公众号每天推送相关测试技术文章 微信公众号:搜索 【测试之路笔记】