一、摘要

本篇博文将介绍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. java 分布式实践

    java 分布式实践 spring boot cloud实践 开源的全链路跟踪很多,比如 Spring Cloud Sleuth + Zipkin,国内有美团的 CAT 等等. 其目的就是当一个请求经 ...

  2. POJ2513 【并查集+欧拉路径+trie树】

    题目链接:http://poj.org/problem?id=2513 Colored Sticks Time Limit: 5000MS   Memory Limit: 128000K Total ...

  3. 常用的API

    API (application programming Interface)应用程序编程接口 java 是字典 Scanner类的功能可以实现从键盘输入到程序当中. 引用类型的一般使用步骤 ·1导包 ...

  4. Java编程思想(二)一切都是对象

    2.1用句柄操纵对象 尽管一切都看作是对象,但是操纵的标识符实际上是指向一个对象的“句柄”(handdle): 拥有一个句柄并不表示必须有一个对象同他连接: String  s:   这里创建的只是句 ...

  5. kafka 名词解释及原理解析过程(三)

    为什么要了解这些名词的解释呢?因为在学一个新的知识或者领域的时候,我们需要知道它所定义的概念和名词意思,因为只有这样我们才能理解和掌握这个新的知识点,才能更加系统的掌握这个技术. 一.名词解释 1.b ...

  6. centos8自定义目录安装nginx

    1.安装工具和库 # PCRE是一个Perl库,包括 perl 兼容的正则表达式库.nginx 的 http 模块使用 pcre 来解析正则表达式 # zlib库提供了很多种压缩和解压缩的方式, ng ...

  7. easyUI datagrid 刷新取消加载信息 自动刷新闪屏问题

    <style type="text/css"> /*-- 消除grid屏闪问题 --//*/ .datagrid-mask { opacity: 0; filter: ...

  8. python基础(十)--函数进阶

    嵌套函数 >>> graphic = '三角形' >>> def chang(): graphic = '正方形' def chang1(): #内部嵌套的函数命名 ...

  9. 8.perf top系统性能分析工具

    perf 是一个调查 Linux 中各种性能问题的有力工具. # perf --help  usage: perf [--version] [--help] COMMAND [ARGS]  The m ...

  10. LocalDate与Date转化

    // 01. java.util.Date --> java.time.LocalDateTimepublic void UDateToLocalDateTime() { java.util.D ...