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 Options


class 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 SeleniumDriver


class 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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/26419.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SciencePub学术 | 计算机科学类重点SCIEI征稿中

SciencePub学术刊源推荐: 计算机科学类SCI&EI征稿中!录用率高,自引率低,进展顺利。信息如下,录满为止: 一、期刊概况: 【期刊简介】IF:4.0-4.5↑, JCR 2区,中科院3区…

SpringAOP简介及实现(包含切面、切点、连接点和通知)

目录 1.什么是AOP、SpringAOP? 2.AOP的组成 3.SpringAOP的实现 4.切点的表达式 1.什么是AOP、SpringAOP? 在学习SpringAOP之前,我们得先了解一下什么是AOP。AOP是一种面向切面编程的思想。那什么是切面呢?它其实是对某一类事情…

【HR专用】Vue+SpringBoot,实现人才招聘库的开发(后端部分)

人才招聘库是企业用于储存和管理潜在候选人信息的数据库。通常情况下,这些候选人可能已经应聘过公司的职位,也可能是通过其他途径获取的,例如社交网络、招聘网站等。 对于一个中小公司来说,人力资源部绝对是一个重要部门&#xff…

测试类型(单元、集成、系统或手动测试)

测试类型(单元、集成、系统或手动测试) 单元测试 单元是系统的单个组件,例如类或单个方法。孤立地测试单元称为单元测试。 优点:速度快/易控/易写 缺点:缺乏现实性/无法捕获所有错误(例如与其他组件或服务的交互) 单元…

Arthas-JVM相关命令使用

tip:作为程序员一定学习编程之道,一定要对代码的编写有追求,不能实现就完事了。我们应该让自己写的代码更加优雅,即使这会费时费力。 开头: 我们先说下生产使用频率较高的有哪些:dashboard、heapdump、jvm…

【连续介质力学】二阶张量的图像表示

二阶张量在特定方向的投影 法向和切向分量 二阶张量T投影到 n ^ \hat n n^方向的结果是 t ⃗ ( n ^ ) T ⋅ n ^ \vec t^{(\hat n)}T \cdot \hat n t (n^)T⋅n^,其中 t ⃗ ( n ^ ) \vec t^{(\hat n)} t (n^)可以分解成: t ⃗ ( n ^ ) T ⃗ N T ⃗ S…

2023年上半年系统规划与管理师上午真题及答案解析

1.香农用概率来定量描述信息的公式如下,其中H(x)表示X的( ),Pi是( )出现第i种状态的( )。 A.信息熵 事件 概率 B.总熵 单位 概率 C.信息熵 单位 概率 D.总熵 单位 度量 2.信息传输模型中,( )负责信息的向外传播,( )负责…

VSLAM视觉里程计总结

相机模型是理解视觉里程计之前的基础。视觉里程计(VIO)主要分为特征法和直接法。如果说特征点法关注的是像素的位置差,那么,直接法关注的则是像素的颜色差。特征点法通常会把图像抽象成特征点的集合,然后去缩小特征点之…

Android 应用快捷ShortcutManager与ShortcutManagerCompat详解与实战(二)

一、介绍 之前我已通过一篇文章介绍了应用快捷的接入与Demo。如果还未看过上一篇的文章可以先了解入门。 传送门:Android 应用快捷(shortcut)功能的详解(一)_蜗牛、Z的博客-CSDN博客 有创建自然就会有管理,否则一个完美的方案不应该这么被推荐出来。如何…

Zemax Lumerical | 二维光栅出瞳扩展系统优化(下)

简介 本文提出并演示了一种以二维光栅耦出的光瞳扩展(EPE)系统优化和公差分析的仿真方法。 在这个工作流程中,我们将使用3个软件进行不同的工作 ,以实现优化系统的大目标。首先,我们使用 Lumerical 构建光栅模型并使用…

数据库实验报告--安全性实验

一、 实验目的 (1)理解SQL Server验证用户身份的过程,掌握设置身份验证模式的方法。 (2)理解登录账号的概念,掌握混合认证模式下登录账号的建立与取消方法。 (3)掌握混合认证模式…

Centos7中mysql安装配置

前提:先关闭防火墙或开启tcp的3306端口 1、查看服务器上是否有现成的安装包 yum list mysql* 2、去mysql官网的yum资源库找到对应的rpm文件的下载链接 确定系统版本 cat /etc/redhat-release 到mysql官网复制对应版本的资源下载链接 MySQL :: Download MySQL Yum…

git Husky

虽然我们已经要求项目使用eslint了,但是不能保证组员提交代码之前都将eslint中的问题解决掉了: 也就是我们希望保证代码仓库中的代码都是符合eslint规范的; 那么我们需要在组员执行 git commit 命令的时候对其进行校验,如果不符合…

说说验证码功能的实现

前言 大家好,我是 god23bin,今天说说验证码功能的实现,相信大家都经常接触到验证码的,毕竟平时上网也能遇到各种验证码,需要我们输入验证码进行验证我们是人类,而不是机器人。 验证码有多种类型&#xff…

项目中使用es(一):使用springboot操作elasticsearch

使用springboot操作es 写在前面搭建项目环境和选择合适版本具体的代码实现(1)继承ProductInfoRepository具体的代码实现(2)使用ElasticsearchRestTemplate操作问题总结最后放个demo 写在前面 对于elasticsearch的搭建&#xff0c…

5款提高工作效率的无广告软件

今天推荐一些可以大幅度提升办公效率的小软件,安全无毒,下载简单,最重要的是没有广告! 1.照片处理——Darktable Darktable是一款用于处理和管理数码照片的工具。它可以让你对RAW格式的照片进行非破坏性的编辑,并提供多种模块和…

设计模式之~观察者模式

观察者模式又叫做发布-订阅(Publish/Subscribe)模式。 观察者模式observer:定义了一种一对多的依赖关系,让多个观察者对象同时监听某个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使他们…

Linux系统下imx6ull QT编程—— C++构造函数、析构函数、this指针(四)

Linux QT编程 文章目录 Linux QT编程一、什么是构造函数?二、什么是析构函数?三、示例四、this指针 一、什么是构造函数? 构造函数在对象实例化时被系统自动调用,仅且调用一次。前面我们学过类,实际上定义类时&#x…

【Spring】— 动态SQL :<if>元素

动态SQL &#xff1a;元素 在MyBatis中&#xff0c;<if>元素是常用的判断语句&#xff0c;主要用于实现某些简单的条件选择。在实际应用中&#xff0c;我们可能会通过多个条件来精确地查询某个数据。 【示例8-1】下面通过一个具体的案例来演示元素的使用。 &#xff0…

基于RPC协议的接口自动化测试可以用Python语言实现

基于RPC协议的接口自动化测试可以用Python语言实现。下面是实现步骤&#xff1a; 1、安装依赖库&#xff0c;如protobuf、grpc。 2、编写.proto文件定义接口参数和返回值。 3、使用protoc编译.proto文件生成Python代码。 4、编写客户端代码调用远程接口进行测试。 具体实现…