当前位置: 首页 > news >正文

pytest配置文件配置并通过allure生成报告

        之前已经学习了使用pytest+requests实现各种方式的调用和一些脚本的执行,今天来学习下如何使用pytest.ini配置文件来管理用例的执行以及如何使用allure生成测试报告。

1.pytest.ini文件配置

        在项目目录下新建pytest.ini文件,然后进行配置,pytest.ini的文件配置信息如下所示。

[pytest]:表示这是一个pytest配置文件的开始;

; -n 3 --dist=loadfile:表示注释不启用,原配置信息为会启用pytest-xdist插件,使用3个进程,并且按照文件分布测试;

addopts = -sv:addopts 指定了传递给 pytest 的额外命令行选项;
        -s   选项表示在终端显示测试运行时的标准输出和标准错误输出;
        -v   选项表示启用详细模式,显示每个测试的运行结果;


testpaths = test*:指定了 pytest 应该在哪些目录或文件中寻找测试文件。这里 test* 表示在所有以 test 开头的文件或目录中寻找测试文件。

python_files = run.py:指定文件启动入口为run.py文件,也可以不维护,run.py文件执行的时候会默认寻找pytest.ini中的配置信息;

python_classes = Test*:指定 pytest 应该识别哪些类作为测试类。这里指定类名以 Test 开头的类将被识别为测试类;

python_functions = test_*:指定 pytest 应该识别哪些函数作为测试函数。这里指定函数名以 test_ 开头的函数将被识别为测试函数;

2.allure的安装

        通过链接下载:https://pan.baidu.com/s/1c_5CpKtmGq9Wl3uqMkX4rg,提取码:yzgm。然后解压,将文件路径(一直到bin目录)配置到环境变量中,如下图所示。        

         在环境变量中配置好allure的路径之后,可以在cmd控制台中输入:allure  --version,如果能够正常输出版本信息,则表示allure安装成功,安装成功后如果需要在pycharm中使用,在pycharm已打开的情况下还需要重启pycharm重新打开项目。

 3.执行和生成报告

3.1.执行收集数据

        在pytest.ini配置文件中修改配置,表示指定通过allure收集执行信息并且将信息存放在report/data目录下,每次执行的时候都会清除之前的数据信息。

addopts = -sv --alluredir report/data --clean-alluredir

         执行run.py文件系统报错如下所示。原因:未安装:allure-pytest

ERROR: usage: run.py [options] [file_or_dir] [file_or_dir] [...]
run.py: error: unrecognized arguments: --alluredir

        解决方法:执行命令安装allure-pytest

pip install allure-pytest

         allure-pytest安装成功后,再次执行run.py文件,各个脚本可以正常被收集然后执行,执行成功后会在report/data目录下生成测试结果数据,每一条case都会生成1条记录,如下图所示。

3.2.生成报告

        在测试数据收集好了之后,我们通过可以allure来生成报告,命令如下,指定了数据的来源和生成报告的路径并且每次执行命令都要通过clean清除之前的报告数据。

allure generate report/data -o report/html --clean

         打开生成的html文件可以看到生成的报告,如果显示的是英文可以在右下角将英文调整为中文,如下图所示。

相关文章:

  • 使用difflib实现文件差异比较用html显示
  • Ansible离线部署 之 Zabbix
  • c语言基础篇C
  • linux centos consul1.15.2一键安装部署
  • 【差分数组】1674. 使数组互补的最少操作次数
  • 【文末附gpt升级秘笈】AI热潮降温与AGI场景普及的局限性
  • 集合体学习01
  • 写一个标准的项目说明书大纲
  • GitHub工程git merge出现冲突处理方式
  • 接口请求的六种常见方式详解(get、post、head等)
  • C语言:结构体数组
  • FastWeb网站开发之拦截器(interceptor)使用教程
  • 课时151:项目发布_基础知识_技术要点
  • 分布式事务AP控制方案(下)
  • 数据结构之线性表(3)
  • canvas绘制圆角头像
  • gcc介绍及安装
  • Hexo+码云+git快速搭建免费的静态Blog
  • 海量大数据大屏分析展示一步到位:DataWorks数据服务+MaxCompute Lightning对接DataV最佳实践...
  • 记录一下第一次使用npm
  • 开发了一款写作软件(OSX,Windows),附带Electron开发指南
  • 每个JavaScript开发人员应阅读的书【1】 - JavaScript: The Good Parts
  • 前端面试之闭包
  • 小程序button引导用户授权
  • 延迟脚本的方式
  • 策略 : 一文教你成为人工智能(AI)领域专家
  • ​决定德拉瓦州地区版图的关键历史事件
  • # include “ “ 和 # include < >两者的区别
  • # Swust 12th acm 邀请赛# [ E ] 01 String [题解]
  • #QT(一种朴素的计算器实现方法)
  • $.ajax中的eval及dataType
  • (01)ORB-SLAM2源码无死角解析-(56) 闭环线程→计算Sim3:理论推导(1)求解s,t
  • (10)STL算法之搜索(二) 二分查找
  • (13)Latex:基于ΤΕΧ的自动排版系统——写论文必备
  • (3)Dubbo启动时qos-server can not bind localhost22222错误解决
  • (4)事件处理——(7)简单事件(Simple events)
  • (C11) 泛型表达式
  • (Charles)如何抓取手机http的报文
  • (MTK)java文件添加简单接口并配置相应的SELinux avc 权限笔记2
  • (ZT)薛涌:谈贫说富
  • (补充)IDEA项目结构
  • (二)正点原子I.MX6ULL u-boot移植
  • (简单) HDU 2612 Find a way,BFS。
  • (论文阅读31/100)Stacked hourglass networks for human pose estimation
  • (四) Graphivz 颜色选择
  • (四)React组件、useState、组件样式
  • (转)总结使用Unity 3D优化游戏运行性能的经验
  • .NET/C# 在代码中测量代码执行耗时的建议(比较系统性能计数器和系统时间)...
  • 。Net下Windows服务程序开发疑惑
  • @angular/cli项目构建--http(2)
  • @media screen 针对不同移动设备
  • []C/C++读取串口接收到的数据程序
  • [15] 使用Opencv_CUDA 模块实现基本计算机视觉程序
  • [2019.2.28]BZOJ4033 [HAOI2015]树上染色
  • [acwing周赛复盘] 第 69 场周赛20220917