执行和生成报告:

1)在main文件中加入如下代码:

1)在main文件中加入如下代码:
if __name__ == '__main__':# 指定临时json文件生成位置    pytest.main(["./case/test_visit_url_screenshot.py",                 "-sv", "--alluredir", "./report/temp_jsonreport"])# 指定html报告生成位置,清理上次生成的报告    os.system("allure generate ./report/temp_jsonreport -o ./report/html --clean")

2)生成报告包含两个文件:

先生成temp_jsonreport,再生成html,用浏览器打开index.html即可

@allure.feature()、@allure.story()、@allure.title()、with allure.step 使用

使用举例1***:

1、把基础操作,写成函数放到action.py,方便重复调用

2、在测试用例里写清feature用例模块、story用例场景、title用例名称、用例步骤step,调用action里的函数即可

import allure
import loggingfrom utils.yaml_reader import *
from utils.path_dealer import *
from utils.url_dealer import *
from utils.action import *
from conf.conf import *@allure.feature("模块")
class TestUrlScreenshot:"""Step1、input one URLStep2、generate multi-language URLStep3、visit URL, take screenshot"""@allure.story("生成指定多语言URL后访问")def test_take_screenshot(self, driver):url_list = read_yaml(data_folder, "url.yaml")# logging.info("urls list: %s" % url_list)language_dict = read_yaml(data_folder, "language.yaml")if not language_dict:language_dict = default_language_dict# logging.info("language dict: %s" % language_dict)task_name = read_yaml(data_folder, "other.yaml")["task_name"]logging.info("task_name: %s" % task_name)urls = gen_multi_language_url(language_dict=language_dict, url_list=url_list)folder_path = gene_folder_path(task_name_pa=task_name)# 设置访问URLfor language, urls_list in urls.items():logging.info("language: %s", language)for each_url in urls_list:Action.visit_url(driver=driver, url=each_url)time.sleep(5)# 生成截图的文件路径png_path = gene_screenshot_abs_path(folder_path_pa=folder_path, language_pa=language)Action.save_screenshot(driver, png_path)# 将截图嵌入报告allure.attach(driver.get_screenshot_as_png(), "截图", allure.attachment_type.PNG)

跳过测试 -- @pytest.mark.skip(reason=”hhh”)

# 参数化 ,传入字典数据json = ({"username": "alex", "password": "123456"}, {"username": "rongrong", "password": "123456"})@pytest.mark.parametrize("json", json)
@pytest.mark.skip()
def test_para5(self, json):print("{json}")  # 语法:{json} 且必须加引号print('username: {json["username"]}, password: {json["password"]}') # 语法:{json}

执行结果:

参数化 -- @pytest.mark.parametrize

# 单个值,运行一次@allure.story("场景:pytest.mark.parametrize使用")
@allure.title("单个参数,单个值")
@pytest.mark.parametrize("name", ["san"])
def test_para(self, name):print(name)

# N个值,运行N次
@allure.title("单个参数,多个值")
@pytest.mark.parametrize("name", ["san", "si", "wu"])
def test_para(self, name):print(name)

# N个值,运行N次
@allure.title("多个参数,多个值")
@pytest.mark.parametrize("name, pw", [("san", "123456"), ("si", "123456"), ("wu", "123456")])
def test_para(self, name, pw):print("%s %s" %(name, pw))

# 多个参数的混合使用,笛卡儿积data1 = [1, 2]
data2 = ["wu", "liu"]
data3 = ["biu", "kuang"]@pytest.mark.parametrize("a", data1)
@pytest.mark.parametrize("b", data2)
@pytest.mark.parametrize("c", data3)
def test_para(self, a, b, c):print("new sentence: [{a}, {b}, {c}]")

# 参数化 ,传入字典数据json = ({"username": "alex", "password": "123456"}, {"username": "rongrong", "password": "123456"})@pytest.mark.parametrize("json", json)
def test_para(self, json):print("{json}")  # 语法:{json} 且必须加引号print('username: {json["username"]}, password: {json["password"]}') # 语法:{json}

失败case重复执行 -- pytest-rerunfailures

& @pytest.mark.flaky(reruns=2, reruns_delay=5)

背景:当服务器不稳定,偶尔出现波动、本地网络偶尔出现不稳定等情况,导致用例执行失败,这种情况大家都觉得用例标记失败不太合理,想要在用例执行失败后延时一些时间再次进行执行,如果超过3次仍然失败,则表明用例执行失败;所以就需要失败重跑功能。

前提条件: pytest (>=5.3) 和python >=3.6

安装:pip install pytest-rerunfailures

查看安装版本:pip show pytest-rerunfailures

方式一:加装饰器:

# 参数化 ,传入字典数据json = ({"username": "alex", "password": "123456"}, {"username": "rongrong", "password": "123456"})@pytest.mark.parametrize("json", json)
@pytest.mark.flaky(reruns=2, reruns_delay=5)
def test_para5(self, json):print("{json}")  # 语法:{json} 且必须加引号print('username: {json["username"]}, password: {json["password"]}') # 语法:{json}assert 1 == 2
注:失败用例重试2次,每次延时5秒
方式二:命令行执行
在命令行输入: pytest -v --reruns 3 --reruns-delay 5 test_rerun.py失败用例重试3次,每次延时5秒,

命令行会覆盖用例的装饰器

pytest -- Allure报告相关推荐

  1. 【Selenium+Pytest+allure报告生成自动化测试框架】附带项目源码和项目部署文档

    目录 前言 [文章末尾给大家留下了大量的福利] 测试框架简介 首先管理时间 添加配置文件 conf.py config.ini 读取配置文件 记录操作日志 简单理解POM模型 简单学习元素定位 管理页 ...

  2. 2022超级好用的接口自动化测试框架:基于python+requests+pytest+allure实现

    众所周知,目前市面上大部分的企业实施接口自动化最常用的有两种方式: 1.基于工具类的接口自动化,如: Postman+Newman+Jenkins+Git/svn Jmeter+Ant+Jenkins ...

  3. 接口自动化测试框架搭建:基于python+requests+pytest+allure实现

    目录 一.接口自动化测试框架需要具备什么功能? 二.接口自动化测试框架目录结构 三.日志监控文件的信息 四.搭建具有企业Logo的定制化报告. 众所周知,目前市面上大部分的企业实施接口自动化最常用的有 ...

  4. 接口自动化测试框架:python+requests+pytest+allure实现

    接口自动化测试框架 一.接口自动化测试框架需要解决的问题 二.接口自动化测试框架目录结构 三.日志监控文件的信息 四.搭建具有企业Logo的定制化报告.    今年是以往10年中最坏的一年,是未来10 ...

  5. python pytest和allure环境_【转载】Python—Pytest+Allure定制报告

    Allure Test Report 一款测试报告框架,不仅报告美观,而且方便CI集成. 一.环境配置 安装Python依赖库: pip3 install pytest pip3 install py ...

  6. pytest+allure生成漂亮的报告+显示

    一:环境准备 1.python3.6 2.windows环境 3.pycharm 4.pytest-allure-adaptor 5.allure2.8.0 6.java1.8 pytest-allu ...

  7. JENKINS使用DOCKER运行PYTEST并且出ALLURE报告

    背景 最近想做一个简单的pytest 测试,用allure出报告,结果发现网上的方法都是在windows上装jenkins,然后用jenkins跑一个本地的运行环境.这种做法明显很不2019年.于是我 ...

  8. Allure报告的安装及环境变量的配置和在pytest中调用

    Allure安装包: Allure官网下载:Central Repository: io/qameta/allure/allure-commandline 百度网盘链接:https://pan.bai ...

  9. pytest测试框架——allure报告

    文章目录 一.allure的介绍 二.allure的运行方式 三.allure报告的生成 方式一.在线报告.会直接打开默认浏览器展示当前报告 方式二.静态资源文件报告(带index.html.css. ...

最新文章

  1. JSP学习笔记(七):使用JavaBean
  2. 及时输出_如何降低开关电源输出纹波和噪声
  3. JS中 let 和var的区别
  4. 如何使用SQL Server INSTEAD-OF触发器
  5. linux 字符驱动阻塞型 等待队列
  6. php文件改写nodejs,node.js – 提供PHP文件的nodejs,expressjs
  7. 程序异常退出后,托盘残留图标清理方法(C#)
  8. 通过QQ2010协议技术详细分析QQ登陆过程
  9. flinksql获取系统当前时间搓_FlinkSQL 动态加载 UDF 实现思路
  10. Flutter学习 — 从新页面返回数据给上一个页面
  11. smart原则_绩效指标如何设定?SMART原则轻松搞定
  12. laravel broadcas广播
  13. python判断是否有重复单词_Python判断两个单词的相似度
  14. 重命名技巧,支持多个文件夹快速重命名
  15. 线性回归梯度下降py实现
  16. c语言大作业黑白棋,C语言编写黑白棋游戏源代码.doc
  17. java识别手写文字_神经网络入门 第6章 识别手写字体
  18. 网站是什么?网站的类型构成-从SEO到优化实战大师
  19. 设变量n为float类型,m为int类型,则以下能实现将n中的数值保留小数点后两位,第三位进行四舍五人运算的表达式是: A) n=(n*100+0.5)/100.0 B)m=n*100+0.5
  20. 解决 shopnc b2b2c 版权问题 修改路经ULR及目录文件夹思路及教程

热门文章

  1. Word打开超链接由于本机的限制,该操作已被取消
  2. 英文阅读软件加测试软件,阅读英文文献的辅助工具
  3. Windows的Docker Beta版本
  4. python读取arff文件_ARFF文件格式
  5. DEM设置投影坐标系
  6. 浅谈室内定位常见的几种运用场景
  7. 计算机与科学论文模板,计算机科学与技论文格式模板.doc
  8. 人人皆可做的抖音108个赚钱项目:知识付费变现术(13)
  9. Oracle8i HowTo
  10. 证券从业资格证知识点易错