专栏首页APP自动化测试iOS自动化探索(七)自动化测试框架pytest - 测试报告

iOS自动化探索(七)自动化测试框架pytest - 测试报告

这里我们单独来看下关于如何生存测试报告

准备测试代码如下:

#coding: utf-8

import pytest

@pytest.fixture()
def login():
    print '输入账号、密码登录'
    
def test_step_1(login):
    print '用例步骤1:登录之后其它动作111'

def test_step_2(): #不需要登录
    print '用例步骤2: 不需要登录, 操作222'

def test_step_3(login):
    print '用例步骤3:登录之后其它动作333'

生成JunitXML 格式的测试报告

JunitXML报告是一种很常用的测试报告,比如可以和Jenkins进行集成,在Jenkins的GUI上显示Pytest的运行结果,非常便利。 运行完case后可以到report路径下去查看相应的xml文件,也可以在PyCharm打开该xml文件查看。

执行命令:

pytest -v test_smtpsimple.py --junitxml=log.xml

运行结果:

(wda_python) bash-3.2$ pytest -v test_smtpsimple.py --junitxml=log.xml
========================================================== test session starts ===========================================================
platform darwin -- Python 2.7.15, pytest-4.1.0, py-1.7.0, pluggy-0.8.0 -- /Users/jackey/Documents/iOS/code/iOS-Auto/MyPyEnv/wda_python/bin/python2.7
cachedir: .pytest_cache
rootdir: /Users/jackey/Documents/iOS/code/iOS-Auto/Agent_Test, inifile:
collected 3 items                                                                                                                        

test_smtpsimple.py::test_step_1 PASSED                                                                                             [ 33%]
test_smtpsimple.py::test_step_2 PASSED                                                                                             [ 66%]
test_smtpsimple.py::test_step_3 PASSED                                                                                             [100%]

---------------------------- generated xml file: /Users/jackey/Documents/iOS/code/iOS-Auto/Agent_Test/log.xml ----------------------------
======================================================== 3 passed in 0.02 seconds ========================================================
(wda_python) bash-3.2$ 

生存的log.xml:

<?xml version="1.0" encoding="utf-8"?><testsuite errors="0" failures="0" name="pytest" skips="0" tests="3" time="0.023"><testcase classname="test_smtpsimple" file="test_smtpsimple.py" line="8" name="test_step_1" time="0.00126314163208"><system-out>输入账号、密码登录
用例步骤1:登录之后其它动作111
</system-out></testcase><testcase classname="test_smtpsimple" file="test_smtpsimple.py" line="11" name="test_step_2" time="0.000802755355835"><system-out>用例步骤2: 不需要登录, 操作222
</system-out></testcase><testcase classname="test_smtpsimple" file="test_smtpsimple.py" line="14" name="test_step_3" time="0.00115084648132"><system-out>输入账号、密码登录
用例步骤3:登录之后其它动作333
</system-out></testcase></testsuite>

生成result log格式的测试报告

(wda_python) bash-3.2$ pytest -s -v test_smtpsimple.py --resultlog=log.txt
========================================================== test session starts ===========================================================
platform darwin -- Python 2.7.15, pytest-4.1.0, py-1.7.0, pluggy-0.8.0 -- /Users/jackey/Documents/iOS/code/iOS-Auto/MyPyEnv/wda_python/bin/python2.7
cachedir: .pytest_cache
rootdir: /Users/jackey/Documents/iOS/code/iOS-Auto/Agent_Test, inifile:
collected 3 items                                                                                                                        

test_smtpsimple.py::test_step_1 输入账号、密码登录
用例步骤1:登录之后其它动作111
PASSED
test_smtpsimple.py::test_step_2 用例步骤2: 不需要登录, 操作222
PASSED
test_smtpsimple.py::test_step_3 输入账号、密码登录
用例步骤3:登录之后其它动作333
PASSED

============================================================ warnings summary ============================================================
/Users/jackey/Documents/iOS/code/iOS-Auto/MyPyEnv/wda_python/lib/python2.7/site-packages/_pytest/resultlog.py:39
  /Users/jackey/Documents/iOS/code/iOS-Auto/MyPyEnv/wda_python/lib/python2.7/site-packages/_pytest/resultlog.py:39: PytestDeprecationWarning: --result-log is deprecated and scheduled for removal in pytest 5.0.
  See https://docs.pytest.org/en/latest/deprecations.html#result-log-result-log for more information.
    _issue_warning_captured(RESULT_LOG, config.hook, stacklevel=2)

-- Docs: https://docs.pytest.org/en/latest/warnings.html
================================================== 3 passed, 1 warnings in 0.01 seconds ==================================================
(wda_python) bash-3.2$ 

现在回提示过期, 生存的Log.txt

. test_smtpsimple.py::test_step_1
. test_smtpsimple.py::test_step_2
. test_smtpsimple.py::test_step_3

可以改成这样:

pytest -s -v test_smtpsimple.py > log.txt

生存的log.txt为

============================= test session starts ==============================
platform darwin -- Python 2.7.15, pytest-4.1.0, py-1.7.0, pluggy-0.8.0 -- /Users/jackey/Documents/iOS/code/iOS-Auto/MyPyEnv/wda_python/bin/python2.7
cachedir: .pytest_cache
rootdir: /Users/jackey/Documents/iOS/code/iOS-Auto/Agent_Test, inifile:
collecting ... collected 3 items

test_smtpsimple.py::test_step_1 输入账号、密码登录
用例步骤1:登录之后其它动作111
PASSED
test_smtpsimple.py::test_step_2 用例步骤2: 不需要登录, 操作222
PASSED
test_smtpsimple.py::test_step_3 输入账号、密码登录
用例步骤3:登录之后其它动作333
PASSED

=========================== 3 passed in 0.01 seconds ===========================

生成Html格式的测试报告

html格式的测试报告在浏览器观看效果很好,还可以把这些测试报告放在Web服务器上。 首先,需要安装pytest-html插件。

pip install pytest-html

使用指令:

pytest -s -v test_smtpsimple.py --html=log.html

运行结果:

(wda_python) bash-3.2$ pytest -s -v test_smtpsimple.py --html=log.html
========================================================== test session starts ===========================================================
platform darwin -- Python 2.7.15, pytest-4.1.0, py-1.7.0, pluggy-0.8.0 -- /Users/jackey/Documents/iOS/code/iOS-Auto/MyPyEnv/wda_python/bin/python2.7
cachedir: .pytest_cache
metadata: {'Python': '2.7.15', 'Platform': 'Darwin-17.0.0-x86_64-i386-64bit', 'Packages': {'py': '1.7.0', 'pytest': '4.1.0', 'pluggy': '0.8.0'}, 'Plugins': {'html': '1.20.0', 'metadata': '1.8.0'}}
rootdir: /Users/jackey/Documents/iOS/code/iOS-Auto/Agent_Test, inifile:
plugins: metadata-1.8.0, html-1.20.0
collected 3 items                                                                                                                        

test_smtpsimple.py::test_step_1 输入账号、密码登录
用例步骤1:登录之后其它动作111
PASSED
test_smtpsimple.py::test_step_2 用例步骤2: 不需要登录, 操作222
PASSED
test_smtpsimple.py::test_step_3 输入账号、密码登录
用例步骤3:登录之后其它动作333
PASSED

--------------------------- generated html file: /Users/jackey/Documents/iOS/code/iOS-Auto/Agent_Test/log.html ---------------------------
======================================================== 3 passed in 0.03 seconds ========================================================
(wda_python) bash-3.2$ 

生存的log.html用浏览器打开:

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • iOS自动化探索(四)自动化测试框架pytest - 安装和使用

    pytest是Python最流行的单元测试框架之一, 帮助更便捷的编写测试脚本, 并支持多种功能复杂的测试场景, 能用来做app测试也能用作函数测试

    周希
  • iOS自动化探索(六)自动化测试框架pytest - fixtures

    fixture是pytest特有的功能,它用pytest.fixture标识,定义在函数前面。在编写测试函数的时候,可以将此函数名称做为传入参数,pytest将...

    周希
  • iOS自动化探索(五)自动化测试框架pytest - Assert断言的使用

    pytest允许使用标准的python assert语法,用来校验expectation and value是否一致

    周希
  • pytest文档1-环境准备与入门

    首先说下为什么要学pytest,在此之前相信大家已经掌握了python里面的unittest单元测试框架,那再学一个框架肯定是需要学习时间成本的。 刚开始我的内...

    上海-悠悠
  • Pytest自定义标记mark及指定文件/类/方法/用例执行

    pytest.main(['-s','test01.py','-m=test'])

    橙子探索测试
  • 《带你装B,带你飞》pytest成神之路2- 执行用例规则和pycharm运行的三种姿态

      今天北京下的雪好大好美啊!!!哎呀,忘记拍照片了,自己想象一下吧。言归真传,今天还是开始pytest的学习和修炼,上一篇写完后群里反响各式各样的,几家欢乐几...

    北京-宏哥
  • Pytest跳过执行之@pytest.mark.skip()详解

    在我们自动化测试过程中,经常会遇到功能阻塞、功能未实现、环境等一系列外部因素问题导致的一些用例执行不了,这时我们就可以用到跳过skip用例,如果我们注释...

    橙子探索测试
  • [接口测试_B] 02 Pytest的简单示例

    Pytest是什么 Pytest是Python的一个测试工具,可以用于所有类型和级别的软件测试。Pytest是一个可以自动查找到你编写的用例并运行后输出结果的测...

    苦叶子
  • 分享下 Backbone、Vue、Angular、React 在项目上的使用经验

    上周,知乎上有几篇关于 Angular 和 Vue 对比的文章。本来想着的是,这些文章倒是可以指导下新手,作一些技术选型。可遗憾的是,开始的文章失去了一些偏颇,...

    Phodal
  • TF.Learn 手写文字识别

    minist问题 计算机视觉领域的Hello world 给定55000个图片,处理成28*28的二维矩阵,矩阵中每个值表示一个像素点的灰度,作为feature...

    用户1332428

扫码关注云+社区

领取腾讯云代金券

玩转腾讯云 有奖征文活动