首页 > 其他分享 >5年高级测试员,还不会用Pytest+Allure实现自动化用例失败截图

5年高级测试员,还不会用Pytest+Allure实现自动化用例失败截图

时间:2022-08-23 09:49:16浏览次数:62  
标签:截图 allure Allure driver pytest 用例 Pytest 软件测试

每天进步一点点,关注我们哦,每天分享测试技术文章

本文章出自【码同学软件测试】

码同学公众号:自动化软件测试,领取资料可加:magetest

码同学抖音号:小码哥聊软件测试

UI自动化中通常为了能够追踪测试用例执行失败时的原因,我们需要查看用例执行最后的界面,因此我们就需要在测试报告中能够查看到最终的界面截图。本文将带领大家学习如何实现用例失败截图,并将其展示在测试报告中。



01环境搭建

  • 安装python3

  • 安装pytest

pip install pytest

  • 安装allure-pytest

pip install allure-pytest

  • 安装selenium

pip install selenium

  • 安装allure命令行工具并配置环境变量,下载地址如下

    https://docs.qameta.io/allure/#_installing_a_commandline

  • 安装pycharm

  • 安装chrome浏览器以及chromedriver

  • pycharm搭建项目

     项目中创建目录结构及文件如下

    

 

 



2编写测试用例

免费领取码同学软件测试课程笔记+超多学习资料+完整视频+面试题,可加微信:magetest



  • 首先在testcases包下创建一个测试文件test_login.py,代码如下

     

     



3driver初始化及失败用例截图

  • driver初始化

在ui自动化测试过程中,driver对象是重中之重,因此通常情况下我们会将其单独拿出来作为前置条件使用,因此我们就采用自定义fixture的方式来提供全局性driver的初始化过程

在conftest.py中实现全局driver定义及自定义fixture,代码如下:

 

 

  • 失败用例截图

driver本身就具备截图方法,而我们最终的目的不仅仅是截图,而且还要将其展示在测试报告中,因此我们采用pytest自带的一个钩子pytest_runtest_makereport来实现,在conftest.py中追加如下代码:

 

 



4执行测试

在pycharm的Terminal中执行如下命令,完成测试

pytest -sv --alluredir ./report/allure-results --clean-alluredir

测试完成后,继续执行如下命令生成测试报告

allure generate ./report/allure-results -o ./report/allure-report --clean

在pycharm打开生成的allure测试报告,查看失败用例的截图如下

 

 

免费领取码同学软件测试课程笔记+超多学习资料+学习完整视频 ☞ 可加:magetest/关注码同学公众号:自动化软件测试

本文著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

标签:截图,allure,Allure,driver,pytest,用例,Pytest,软件测试
From: https://www.cnblogs.com/testfan2019/p/16615042.html

相关文章

  • 【pytest】内置fixture之pytestconfig
    前言:前面讲request是pytest的一个内置fixture,作用是获取测试的上下文,可以通过request.config获取配置对象。pytestconfig的作用跟request.config是一样的,都是获取......
  • UML建模——用例图(Use Case Diagram)
    UML建模——用例图(UseCaseDiagram)用例图主要用来描述角色以及角色与用例之间的连接关系。说明的是谁要使用系统,以及他们使用该系统可以做些什么。一个用例图包含了多个......
  • 【pytest】内置fixture之request
    前言:request是pytest的内置fixture,"为请求对象提供对请求测试上下文的访问权,并且在fixture被间接参数化的情况下具有可选的“param”属性。"1、request.param前......
  • 软件测试入门六(用例编写)
    一、什么是测试用例(测试case)测试用例就是测试场景,一次迭代的需求可以拆分成许多功能模块,一个功能模块可以拆分成多个功能点,一个功能点可以有多个场景,那么这个场景就是测试......
  • Pytest框架 — 14、Pytest的标记(五)(控制测试用例执行顺序)
    目录1、前言2、使用3、标记最先执行和最后执行1、前言在执行自动化测试时,我们通常都希望能够控制执行测试用例的顺序。在unittest框架中默认按照ACSII码的顺序加载测试......
  • Pytest框架 — 14、Pytest的失败重试
    目录1、前言2、使用(一)命令行或main函数中使用(二)全局配置中使用(推荐用法)1、前言有时候我们测试执行由于某些原因失败了,想要多执行几次,Pytest可以使用pytest-rerunfailures......
  • Pytest框架 — 13、Pytest的标记(四)(分组执行)
    目录1、前言2、mark的使用(一)注册自定义标记(二)在测试用例上标记(三)执行3、扩展(一)在同一个测试用例上使用多个标记(二)在测试类上使用标记1、前言在自动化测试工作中我们有时......
  • Pytest框架 — 12、Pytest的标记(三)(重复执行)
    目录1、前言2、--count参数使用(一)在命令行或者main函数使用(二)在全局配置文件中使用3、--repeat-scope参数使用4、@pytest.mark.repeat(count)装饰器使用5、结合参数x使重复......
  • pytest系列——allure命令行参数详解
    一、查看allure命令的帮助文档allure-hallure命令的语法格式allure[options][command][commandoptions]options列表Options:--help命令行帮助文档......
  • 开始第一个用例
    一、基础演示importunittestclassTestClass(unittest.TestCase):@classmethoddefsetUpClass(cls)->None:print("类开始方法")@classmeth......