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

Allure测试报告定制全攻略,优化你的Web自动化测试框架!

目录

 前言:

1. Allure测试报告简介

2. Web自动化测试框架简介

3. 封装Web自动化框架

3.1 安装Selenium

3.2 封装Selenium

3.3 定制Allure测试报告

3.3.1 适配翻译插件

3.3.2 定制测试报告样式

4. 示例代码

5. 总结


前言:

随着现在Web应用的普及,越来越多的企业开始将业务线上化,Web应用也成为了企业中必不可少的一部分。随着Web应用的增多,Web自动化测试框架也愈发重要。今天我将为大家介绍一下如何使用Allure测试报告来定制Web自动化测试框架。

1. Allure测试报告简介

Allure测试报告是由Yandex公司开发的一款开源测试框架,它提供了非常丰富的信息和交互式操作来展示测试结果。Allure测试报告可以提供如下特点:

- 集成多种测试框架:Allure支持JUnit、TestNG等多种测试框架;
- 可视化测试结果:Allure测试报告提供了交互式的测试结果展示方式,易于测试人员查看和理解;
- 定制测试报告:Allure测试报告支持用户自定义模板,可以根据需求自由定制测试报告。

2. Web自动化测试框架简介

Web自动化测试框架是一些工具和库的集合,用于自动化测试Web应用程序。这些框架可以帮助测试人员快速构建可重用的测试脚本。

常用的Web自动化测试框架有如下几种:

- Selenium:一个基于浏览器自动化的框架,可以模拟用户行为对Web应用程序进行自动化测试;
- RobotFramework:一个开源的自动化测试框架,支持Python编写测试脚本;
- Cucumber:一个BDD(行为驱动开发)测试框架,用自然语言方式定义测试用例。

3. 封装Web自动化框架

在测试Web应用程序时,我们可以使用上述框架来编写测试脚本。但是为了实现定制化的测试报告,需要对测试框架进行封装。下面以Python语言为例来对Selenium进行封装。

3.1 安装Selenium

首先需要安装Selenium,可以使用pip命令进行安装:

pip install selenium

3.2 封装Selenium

接下来进行Selenium的封装。首先,我们新建一个selenium_driver.py文件,用于初始化WebDriver,并定义一些常用的操作。

from selenium import webdriver
from selenium.webdriver.chrome.options import Optionsclass SeleniumDriver:def __init__(self, driver_path, headless=False):""":param driver_path: WebDriver的路径:param headless: 是否无头模式"""chrome_options = Options()if headless:chrome_options.add_argument('--headless')self.driver = webdriver.Chrome(executable_path=driver_path, options=chrome_options)def get(self, url):self.driver.get(url)def find_element(self, locator):""":param locator: 元素定位,示例:'css selector', 'body'"""return self.driver.find_element(*locator)def close(self):self.driver.quit()

在上述代码中,SeleniumDriver类封装了Selenium的WebDriver,并提供了常用的Web操作方法。

3.3 定制Allure测试报告

接下来,我们需要对Allure测试报告进行定制。首先,我们新建一个allure_report.py文件,用于自定义Allure测试报告。

Allure测试报告支持用户自定义模板,我们可以根据需求自由定制测试报告。下面介绍几个常见的测试报告模板。

3.3.1 适配翻译插件

在Allure测试报告中添加翻译插件可以使报告支持多语言,提高测试报告的可读性和可访问性。

方法一:

安装allure-pytest和allure-pytest-translations两个库:

pip install allure-pytest
pip install allure-pytest-translations

接下来,我们在pytest.ini文件中添加如下配置:

[pytest]
addopts = -v –capture=no –alluredir=./result –clean-alluredir
testpaths = ./tests/
python_files = test_*.py
python_classes = Test*
python_functions = test_*
cache_dir = ./.pytest_cache[allure]
language = zh
plugins = i18n,pytester

其中,language参数用于定义测试报告的语言,plugins参数指定使用哪些插件。

方法二:

在allure.yml文件中添加如下配置:

# Langauge settings
language: en#plugins settings
plugins:- i18n- junit- summary

在pytest.ini文件中添加如下配置:

[pytest]
addopts = -v –capture=no –alluredir=./result –clean-alluredir
testpaths = ./tests/
python_files = test_*.py
python_classes = Test*
python_functions = test_*
cache_dir = ./.pytest_cache[allure]
config_file = ./allure.yml

3.3.2 定制测试报告样式

除了支持多语言,在Allure测试报告中还可以定制报告样式。我们可以通过编写CSS文件来定制测试报告。

首先,新建一个allure.css文件,定义测试报告的样式。例如:

/* 自定义测试报告主题 */
body {background-color: #F8F8F8;color: #000000;
}

接下来,我们在pytest.ini文件中添加如下配置:

[pytest]
addopts = -v –capture=no –alluredir=./result –clean-alluredir
testpaths = ./tests/
python_files = test_*.py
python_classes = Test*
python_functions = test_*
cache_dir = ./.pytest_cache[allure]
# 使用自定义的CSS样式
extra_css = ./allure.css

通过上述操作,我们完成了定制化Allure测试报告的工作。

4. 示例代码

下面是一个示例代码,演示如何对Selenium进行封装,并使用Allure测试报告定制Web自动化测试框架。

import allure
from selenium.webdriver.common.by import By
from selenium_driver import SeleniumDriverclass TestBaidu:def setup_method(self):self.driver = SeleniumDriver('chromedriver.exe', headless=False)self.driver.get('https://www.baidu.com')def teardown_method(self):self.driver.close()@allure.step('在搜索框输入关键字:{1},点击搜索按钮')def baidu_search(self, keyword):self.driver.find_element((By.ID, 'kw')).send_keys(keyword)self.driver.find_element((By.ID, 'su')).click()@allure.title('测试百度首页搜索功能')def test_baidu_search(self):with allure.step('输入关键字:Allure Report'):self.baidu_search('Allure Report')with allure.step('验证搜索结果页面是否存在指定元素'):assert self.driver.find_element((By.PARTIAL_LINK_TEXT, 'allure.qatools.ru')) is not None

在上述代码中,我们使用了SeleniumDriver来初始化WebDriver,并定义了封装后的测试用例。在测试用例中,我们使用了Allure测试报告的@step和@title装饰器来自定义测试报告。

5. 总结

本文介绍了如何使用Allure测试报告来定制Web自动化测试框架。通过定制化测试报告,我们可以更加清晰地展示测试结果,并提高测试报告的可读性和可访问性。同时,还介绍了如何对Selenium进行封装,使测试脚本更加易于编写和维护。

 作为一位过来人也是希望大家少走一些弯路,在这里我给大家分享一些自动化测试前进之路的必须品,如果你用得到的话可以直接拿走,希望能对你带来帮助。(WEB自动化测试、app自动化测试、接口自动化测试、自动化测试开发、大厂面试真题、简历模板等等),相信能使你更好的进步!

方式:留【自动化测试】即可
【自动化测试交流】:574737577(备注ccc)http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=yTky89vp61ak2ySZMOHqFKs3cy63KNdR&authKey=CdUemWSkJDENrUBUAj1JFqz5RQ4ov6MKoYzfjSJmLZ9Ot656Xl857XpyxrFO6OI5&noverify=0&group_code=574737577

相关文章:

Allure测试报告定制全攻略,优化你的Web自动化测试框架!

目录 前言: 1. Allure测试报告简介 2. Web自动化测试框架简介 3. 封装Web自动化框架 3.1 安装Selenium 3.2 封装Selenium 3.3 定制Allure测试报告 3.3.1 适配翻译插件 3.3.2 定制测试报告样式 4. 示例代码 5. 总结 前言: 随着现在Web应用的普…...

推荐系统算法详解

文章目录 基于人口统计学的推荐算法用户画像 基于内容的推荐算法相似度计算基于内容推荐系统的高层次结构特征工程数值型特征处理类别特征处理时间型特征处理统计型特征处理 推荐系统常见反馈数据基于UGC的推荐TF-IDFTF-IDF算法示例1. 引入依赖2. 定义数据和预处理3. 进行词数统…...

企业网站架构部署与优化之LAMP

LAMP LAMP概述1、各组件的主要作用2、各组件安装顺序 编译安装Apache http服务编译安装MySQL服务编译安装PHP解析环境安装论坛 LAMP概述 LAMP架构是目前成熟的企业网站应用模式之一,指的是协同工作的一整套系统和相关软件,能够提供静态和动态Web站点服务…...

攻防世界安卓逆向练习

文章目录 一.easy-so1. jadx分析程序逻辑2. ida查看so文件3. 解题脚本: 二.ezjni1. 程序逻辑分析2. 解题脚本: 三.easyjava1. 主函数逻辑2. getIndex函数3. getChar函数4.解题脚本 四.APK逆向1.程序逻辑分析2.解题脚本3.动态调试 Android2.0app3 一.easy-so 1. jadx分析程序逻…...

自然语言处理从入门到应用——自然语言处理的语言模型(Language Model,LM)

分类目录:《自然语言处理从入门到应用》总目录 语言模型(Language Model,LM)(也称统计语言模型)是描述自然语言概率分布的模型,是一个非常基础和重要的自然语言处理任务。利用语言模型&#xff…...

【MySql】InnoDB一棵B+树可以存放多少行数据?

文章目录 背景一、怎么得到InnoDB主键索引B树的高度?二、小结三、最后回顾一道面试题总结参考资料 背景 InnoDB一棵B树可以存放多少行数据?这个问题的简单回答是:约2千万。为什么是这么多呢?因为这是可以算出来的,要搞…...

【综述】视频无监督域自适应(VUDA)的小综述

【综述】视频无监督域自适应(VUDA)的小综述 一篇小综述,大家看个乐子就好,参考文献来自于一篇综述性论文 完整PPT已经上传资源:https://download.csdn.net/download/weixin_46570668/87848901?spm1001.2014.3001.550…...

《深入理解计算机系统(CSAPP)》第9章虚拟内存 - 学习笔记

写在前面的话:此系列文章为笔者学习CSAPP时的个人笔记,分享出来与大家学习交流,目录大体与《深入理解计算机系统》书本一致。因是初次预习时写的笔记,在复习回看时发现部分内容存在一些小问题,因时间紧张来不及再次整理…...

信息论与编码 SCUEC DDDD 期末复习

1.证明熵的可加性 2.假设一帧视频图像可以认为是由3*10的五次方个像素组成(每像素均独立变化),如果每个像素可取128个不同的等概率亮度表示。请计算出每帧图像含多少信息量?若有一口述者在约12000个汉字的字汇中选400个字来口述此…...

windows安装python开发环境

最近因工作需要,要学习一下python,所以先安装一下python的开发环境,比较简单 下载和安装Python 首先,在浏览器中打开Python的官方网站(https://www.python.org/downloads/) 然后,从该网站下载与你的操…...

java idea常用的快捷方式

文章目录 java idea常用的快捷方式快速复制选多行改变代码格式化 快速代码编辑psvmsout5.forarr.for快速死循环快速补全代码当方法还没创建的时候抽取具有一定功能的代码变成方法 java idea常用的快捷方式 快速复制 c t r l d \color{red}{ctrld} ctrld 选多行改变 A l t 鼠…...

lwIP 开发指南

目录 lwIP 初探TCP/IP 协议栈是什么TCP/IP 协议栈架构TCP/IP 协议栈的封包和拆包 lwIP 简介lwIP 源码下载lwIP 文件说明 MAC 内核简介PHY 芯片介绍YT8512C 简介LAN8720A 简介 以太网接入MCU 方案软件TCP/IP 协议栈以太网接入方案硬件TCP/IP 协议栈以太网接入方案 lwIP 无操作系…...

RabbitMQ消息属性详解

content-type属性 如同各种标准化的HTTP规范,content-type传输消息体的MIME类型。例如,如果你的应用程序正在发送JSON序列化的数据值,那么将content-type属性设置为application/json将允许尚待开发的消费者应用程序在收到消息时检查消息类型…...

shader 混合模式

在所有着色器执行完毕,所有纹理都被应用,所有像素准备被呈现到屏幕之后,使用Blend命令来操作这些像素进行混合。 3.2 blend的语法 BlendOff:关闭blend混合(默认值) BlendSrcFactor DstFactor :配置并启动混…...

【大数据工具】Hive 安装

Hive 环境搭建与基本使用 Hive 安装包下载地址:https://dlcdn.apache.org/hive/ 注:安装 Hive 前要先安装好 MySQL 1. MySQL 安装 MySQL 安装包下载地址:https://dev.mysql.com/downloads/mysql/archives/community/MySQL%20::%20Downloa…...

Android9.0 iptables用INetd实现app某个时间段禁止上网的功能实现

1.前言 在9.0的系统rom定制化开发中,在system中netd网络这块的产品需要中,会要求设置app某个时间段禁止上网的功能,liunx中iptables命令也是比较重要的,接下来就来在INetd这块实现app某个时间段禁止上网的的相关功能,就是在系统中只能允许某个app某个时间段禁止上网,就是…...

webpack.config.js基础配置(五大核心属性)

在上一节webpack零基础入门中我们在安装完webpack 和 webpack-cli依赖之后,直接通过npx webpack ./src/main.js --modedevelopment的方式对src下的js文件进行了打包。 其中的 ./src/main.js: 指定 Webpack 从 main.js 文件开始打包,不但会打包 main.js&a…...

【华为OD机试】阿里巴巴找黄金宝箱(IV)【2023 B卷|200分】

【华为OD机试】-真题 !!点这里!! 【华为OD机试】真题考点分类 !!点这里 !! 题目描述 一贫如洗的樵夫阿里巴巴在去砍柴的路上,无意中发现了强盗集团的藏宝地, 藏宝地有编号从0-N的箱子,每个箱子上面有一个数字,箱子排列成一个环, 编号最大的箱子的下一个是编号为0的箱…...

Qt6 C++基础入门2 文件结构与信号和槽

目录 标准文件结构widget.hwidget.cppmain.cpppro 文件 信号与槽自定义信号connect 的两种方式 标准文件结构 widget.h widget 对象的头文件 一般会直接在头文件导入所有后续在 cpp 文件内用到的类,所以 include 基本都会写在这里 // 头文件标志起始 #ifndef WID…...

常用模拟低通滤波器的设计——契比雪夫II型滤波器

常用模拟低通滤波器的设计——契比雪夫II型滤波器 切比雪夫 II 型滤波器的振幅平方函数为: 式中,为有效带通截止频率, 是与通带波纹有关的参量, 大,波纹大,; 为 N 阶契比雪夫多项式。 在 Matl…...

深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录

ASP.NET Core 是一个跨平台的开源框架,用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录,以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...

Linux 文件类型,目录与路径,文件与目录管理

文件类型 后面的字符表示文件类型标志 普通文件:-(纯文本文件,二进制文件,数据格式文件) 如文本文件、图片、程序文件等。 目录文件:d(directory) 用来存放其他文件或子目录。 设备…...

利用ngx_stream_return_module构建简易 TCP/UDP 响应网关

一、模块概述 ngx_stream_return_module 提供了一个极简的指令&#xff1a; return <value>;在收到客户端连接后&#xff0c;立即将 <value> 写回并关闭连接。<value> 支持内嵌文本和内置变量&#xff08;如 $time_iso8601、$remote_addr 等&#xff09;&a…...

基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销&#xff0c;平衡网络负载&#xff0c;延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...

如何在看板中体现优先级变化

在看板中有效体现优先级变化的关键措施包括&#xff1a;采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中&#xff0c;设置任务排序规则尤其重要&#xff0c;因为它让看板视觉上直观地体…...

MODBUS TCP转CANopen 技术赋能高效协同作业

在现代工业自动化领域&#xff0c;MODBUS TCP和CANopen两种通讯协议因其稳定性和高效性被广泛应用于各种设备和系统中。而随着科技的不断进步&#xff0c;这两种通讯协议也正在被逐步融合&#xff0c;形成了一种新型的通讯方式——开疆智能MODBUS TCP转CANopen网关KJ-TCPC-CANP…...

Neo4j 集群管理:原理、技术与最佳实践深度解析

Neo4j 的集群技术是其企业级高可用性、可扩展性和容错能力的核心。通过深入分析官方文档,本文将系统阐述其集群管理的核心原理、关键技术、实用技巧和行业最佳实践。 Neo4j 的 Causal Clustering 架构提供了一个强大而灵活的基石,用于构建高可用、可扩展且一致的图数据库服务…...

【AI学习】三、AI算法中的向量

在人工智能&#xff08;AI&#xff09;算法中&#xff0c;向量&#xff08;Vector&#xff09;是一种将现实世界中的数据&#xff08;如图像、文本、音频等&#xff09;转化为计算机可处理的数值型特征表示的工具。它是连接人类认知&#xff08;如语义、视觉特征&#xff09;与…...

微服务商城-商品微服务

数据表 CREATE TABLE product (id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 商品id,cateid smallint(6) UNSIGNED NOT NULL DEFAULT 0 COMMENT 类别Id,name varchar(100) NOT NULL DEFAULT COMMENT 商品名称,subtitle varchar(200) NOT NULL DEFAULT COMMENT 商…...

令牌桶 滑动窗口->限流 分布式信号量->限并发的原理 lua脚本分析介绍

文章目录 前言限流限制并发的实际理解限流令牌桶代码实现结果分析令牌桶lua的模拟实现原理总结&#xff1a; 滑动窗口代码实现结果分析lua脚本原理解析 限并发分布式信号量代码实现结果分析lua脚本实现原理 双注解去实现限流 并发结果分析&#xff1a; 实际业务去理解体会统一注…...