一、摘要

本篇博文将介绍Python和Selenium进行自动化测试时,如何借助allure生成自动化测试报告

二、环境配置

首先python环境中安装pytest和pytest_allure_adaptor模块,命令如下

pip install pytest
pip install pytest_allure_adaptor

三、执行测试

pytest -s -q --alluredir [path_to_report_dir]

[path_to_report_dir]:为执行测试后生成测试结果的路径,是个自定义路径

测试完成后,在命令中指定的[path_to_report_dir]的自定义路径下,会生成类似如下xml文件

文件名为(自动生成):95060033-2085-40bb-b85a-64e43dc1d04b-testsuite.xml

<ns0:test-suite xmlns:ns0="urn:model.allure.qatools.yandex.ru" start="1544418468984" stop="1544418469065">
<name>TestScripts</name>
<labels/>
<test-cases>
<test-case start="1544418468984" status="passed" stop="1544418468987">
<name>test_asserts.test_add</name>
<attachments/>
<labels>
<label name="severity" value="normal"/>
<label name="thread" value="9944-MainThread"/>
<label name="host" value="DESKTOP-BE70S9D"/>
<label name="framework" value="pytest"/>
<label name="language" value="cpython3"/>
</labels>
<steps>
<step start="1544418468987" status="passed" stop="1544418468987">
<name>test_add</name>
<title>test_add</title>
<attachments/>
<steps/>
</step>
</steps>
</test-case>
<test-case start="1544418468990" status="passed" stop="1544418468991">
<name>test_asserts.test_add2</name>
<attachments/>
<labels>
<label name="severity" value="normal"/>
<label name="thread" value="9944-MainThread"/>
<label name="host" value="DESKTOP-BE70S9D"/>
<label name="framework" value="pytest"/>
<label name="language" value="cpython3"/>
</labels>
<steps>
<step start="1544418468991" status="passed" stop="1544418468991">
<name>test_add2</name>
<title>test_add2</title>
<attachments/>
<steps/>
</step>
</steps>
</test-case>
<test-case start="1544418468992" status="passed" stop="1544418468993">
<name>test_asserts.test_add3</name>
<attachments/>
<labels>
<label name="severity" value="normal"/>
<label name="thread" value="9944-MainThread"/>
<label name="host" value="DESKTOP-BE70S9D"/>
<label name="framework" value="pytest"/>
<label name="language" value="cpython3"/>
</labels>
<steps>
<step start="1544418468993" status="passed" stop="1544418468993">
<name>test_add3</name>
<title>test_add3</title>
<attachments/>
<steps/>
</step>
</steps>
</test-case>
<test-case start="1544418468994" status="failed" stop="1544418469045">
<name>test_asserts.test_add4</name>
<failure>
<message>AssertionError: assert 39 &gt;= 50
+ where 39 = add(17, 22)</message>
<stack-trace>def test_add4():
&gt; assert add(17,22) &gt;= 50
E assert 39 &gt;= 50
E + where 39 = add(17, 22) test_asserts.py:34: AssertionError</stack-trace>
</failure>
<attachments/>
<labels>
<label name="severity" value="normal"/>
<label name="thread" value="9944-MainThread"/>
<label name="host" value="DESKTOP-BE70S9D"/>
<label name="framework" value="pytest"/>
<label name="language" value="cpython3"/>
</labels>
<steps/>
</test-case>
<test-case start="1544418469046" status="passed" stop="1544418469047">
<name>test_asserts.test_in</name>
<attachments/>
<labels>
<label name="severity" value="normal"/>
<label name="thread" value="9944-MainThread"/>
<label name="host" value="DESKTOP-BE70S9D"/>
<label name="framework" value="pytest"/>
<label name="language" value="cpython3"/>
</labels>
<steps/>
</test-case>
<test-case start="1544418469048" status="passed" stop="1544418469049">
<name>test_asserts.test_not_in</name>
<attachments/>
<labels>
<label name="severity" value="normal"/>
<label name="thread" value="9944-MainThread"/>
<label name="host" value="DESKTOP-BE70S9D"/>
<label name="framework" value="pytest"/>
<label name="language" value="cpython3"/>
</labels>
<steps/>
</test-case>
<test-case start="1544418469050" status="failed" stop="1544418469054">
<name>test_asserts.test_true</name>
<failure>
<message>AssertionError: assert not True
+ where True = is_prime(7)</message>
<stack-trace>def test_true():
&gt; assert not is_prime(7)
E assert not True
E + where True = is_prime(7) test_asserts.py:65: AssertionError</stack-trace>
</failure>
<attachments/>
<labels>
<label name="severity" value="normal"/>
<label name="thread" value="9944-MainThread"/>
<label name="host" value="DESKTOP-BE70S9D"/>
<label name="framework" value="pytest"/>
<label name="language" value="cpython3"/>
</labels>
<steps/>
</test-case>
<test-case start="1544418469055" status="passed" stop="1544418469057">
<name>test_fixture1.test_numbers_3_4</name>
<attachments/>
<labels>
<label name="severity" value="normal"/>
<label name="thread" value="9944-MainThread"/>
<label name="host" value="DESKTOP-BE70S9D"/>
<label name="framework" value="pytest"/>
<label name="language" value="cpython3"/>
</labels>
<steps/>
</test-case>
<test-case start="1544418469058" status="passed" stop="1544418469059">
<name>test_fixture1.test_strings_a_3</name>
<attachments/>
<labels>
<label name="severity" value="normal"/>
<label name="thread" value="9944-MainThread"/>
<label name="host" value="DESKTOP-BE70S9D"/>
<label name="framework" value="pytest"/>
<label name="language" value="cpython3"/>
</labels>
<steps/>
</test-case>
<test-case start="1544418469060" status="passed" stop="1544418469062">
<name>test_fixture2.TestUM.test_numbers_5_6</name>
<attachments/>
<labels>
<label name="severity" value="normal"/>
<label name="thread" value="9944-MainThread"/>
<label name="host" value="DESKTOP-BE70S9D"/>
<label name="framework" value="pytest"/>
<label name="language" value="cpython3"/>
</labels>
<steps/>
</test-case>
<test-case start="1544418469064" status="passed" stop="1544418469065">
<name>test_fixture2.TestUM.test_strings_b_2</name>
<attachments/>
<labels>
<label name="severity" value="normal"/>
<label name="thread" value="9944-MainThread"/>
<label name="host" value="DESKTOP-BE70S9D"/>
<label name="framework" value="pytest"/>
<label name="language" value="cpython3"/>
</labels>
<steps/>
</test-case>
</test-cases>
</ns0:test-suite>

四、使用allure-commandline将xml制作成html报告

下载地址为:

https://github.com/allure-framework/allure2/releases

https://github.com/allure-framework/allure1/releases

解压到allure-commandline目录

进入bin目录,运行allure.bat

添加allure到环境变量PATH(\安装路径\allure-commandline\bin)
执行命令:

allure generate directory-with-results/ -o directory-with-report

[directory-with-results]: 为第三部中的路径,第三步中已经指定

[directory-with-report]: 自定义html生成到哪个路径下,如下图所示

五、查看报告

六、报告样式

还可以切换语言

Python&Selenium&pytest借助allure生成自动化测试报告的更多相关文章

  1. Python&Selenium借助html-testRunner生成自动化测试报告

    一.摘要 本博文将介绍Python和Selenium进行自动化测试时,借助html-testRunner 生成自动化测试报告 安装命令:pip install html-testRunner 二.测试 ...

  2. Python+Selenium----使用HTMLTestRunner.py生成自动化测试报告2(使用PyCharm )

    1.说明 在我前一篇文件(Python+Selenium----使用HTMLTestRunner.py生成自动化测试报告1(使用IDLE ))中简单的写明了,如何生产测试报告,但是使用IDLE很麻烦, ...

  3. Python&Selenium借助HTMLTestRunner生成自动化测试报告

    一.摘要 本篇博文介绍Python和Selenium进行自动化测试时,借助著名的HTMLTestRunner生成自动化测试报告 HTMLTestRunner.py百度很多,版本也很多,自行搜索下载放到 ...

  4. Python+Selenium----使用HTMLTestRunner.py生成自动化测试报告1(使用IDLE)

    1.说明 自动化测试报告是一个很重要的测试数据,网上看了一下,使用HTMLTestRunner.py生成自动化测试报告使用的比较多,但是呢,小白刚刚入手,不太懂,看了很多博客,终于生成了一个测试报告, ...

  5. mvn + testng + allure 生成自动化测试报告

    最近学了个新东西,使用java的testng测试框架做自动化测试.并且声称自动化报告. (1)创建maven工程 File-New-Other (2)创建testng类 当前import org.te ...

  6. 基于Python+Requests+Pytest+YAML+Allure实现接口自动化

    本项目实现接口自动化的技术选型:Python+Requests+Pytest+YAML+Allure ,主要是针对之前开发的一个接口项目来进行学习,通过 Python+Requests 来发送和处理H ...

  7. pytest(11)-Allure生成测试报告(一)

    Allure是一个开源的测试报告生成框架,提供了测试报告定制化功能,相较于我们之前使用过pytest-html插件生成的html格式的测试报告,通过Allure生成的报告更加规范.清晰.美观. pyt ...

  8. python+selenium+pytest+html报告

    背景:python+selenium+pytest+html报告 环境:我的是本机的Jenkins配置本机的代码 前提:要下载好HTML Publisher plugin插件[系统管理>管理插件 ...

  9. 【Python】使用Pytest集成Allure生成漂亮的图形测试报告

    前言 大概两个月前写过一篇<[测试设计]使用jenkins 插件Allure生成漂亮的自动化测试报告>的博客,但是其实Allure首先是一个可以独立运行的测试报告生成框架,然后才有了Jen ...

随机推荐

  1. [BAT] cmd 管理员权限 右键菜单 运行

    将下面保存为 *.reg Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\Directory\Background\shell\runa ...

  2. CodeForces 1251A --- Broken Keyboard

    [CodeForces 1251A --- Broken Keyboard ] Description Recently Polycarp noticed that some of the butto ...

  3. 《剑指offer》Q01-12 (牛客10.11)

    目录 T1 二维部分有序数组查找 ☆ T2 字符串字符不等长替换 - 从后往前 T3 返回链表的反序 vector T4 重建二叉树 T5 两个栈模拟队列 T6 旋转数组中的最小元素 - 二分或暴力 ...

  4. 最新 新华网java校招面经 (含整理过的面试题大全)

    从6月到10月,经过4个月努力和坚持,自己有幸拿到了网易雷火.京东.去哪儿.新华网等10家互联网公司的校招Offer,因为某些自身原因最终选择了新华网.6.7月主要是做系统复习.项目复盘.LeetCo ...

  5. vue组件库element-ui 的Table内容显示不更新

    一.问题原因: 因为数组直接赋值不能被 Object.defineProperty 检测到.  二.解决方法 所以应该要使用this.$set(‘对象名’,要修改的属性名,属性值),这样新添加的属性值 ...

  6. 45.简单邮件传输协议 SMTP

    一丶简单邮件传输协议 简单邮件传输协议 简单邮件传输协议 SMTP smtplib 模块:(在 Python3版本中,可以通过 SMTP协议发送邮件的模块常为 smtplib, 并且这个模块属于内置模 ...

  7. DataNode 详解及HDFS 2.X新特性

    1. 工作机制 一个数据块在 DataNode 上以文件形式存储在磁盘上,包括两个文件,一个是数据本身,一个是元数据包括数据块的长度,块数据的校验和,以及时间戳. DataNode 启动后向 Name ...

  8. poj3304(叉积判断直线和线段相交)

    题目链接:https://vjudge.net/problem/POJ-3304 题意:求是否能找到一条直线,使得n条线段在该直线的投影有公共点. 思路: 如果存在这样的直线,那么在公共投影点作直线的 ...

  9. Redis-负载均衡

    摘要 在nginx里面配置一个upstream,然后把相关的服务器ip都配置进去.然后采用轮询的方案,然后在nginx里面的配置项里,proxy-pass指向这个upstream,这样就能实现负载均衡 ...

  10. Kubernetes组件-CronJob(定时任务)

    ⒈简介: Kubernetes的Job资源在创建时会立即运行pod.但是许多批处理任务需要在特定的时间运行,或者在指定的时间间隔内重复运行.在Linux和类UNIX操作系统中,这些任务通常被称为cro ...