软件测试|Windows系统配置pytest+allure环境教程

前言

allure可以输出非常精美的测试报告,也可以和pytest进行完美结合,不仅可以渲染页面,还可以控制用例的执行。本文我们将介绍Windows系统中如何配置allure环境。

第一步:配置Java环境

因为allure的运行依赖于Java环境,所以我们需要先配置好Java环境,allure需要的Java环境为:JDK1.8+,配置好Java环境后,我们可以在cmd中输入where java命令查看是否成功成功配置好JDK。

第二步:安装allure

  1. 下载allure安装包,allure下载地址

  2. 解压Zip包,将allure安装目录下的 allure-2.17.3/bin配置到系统的环境变量中,如下图:

  1. 配置环境变量后,我们可以在cmd中输入allure --version查看是否成功安装及配置环境变量,如下图所示:

第三步:安装allure-pytest第三方库

我们在完成了allure的环境配置之后,要将allure与pytest结合起来,还需要安装allure-pytest第三方库,安装命令如下:

pip install allure-pytest

第四步:allure生成测试报告

我们完成了上述步骤之后,就可以使用allure来生成精美的测试报告了,下面是我们使用allure生成报告的简单示例:

测试demo内容如下:

import allure@allure.step("步骤1:step1")
def step_1():print("step1")@allure.step("步骤2:step2")
def step_2():print("step2")@allure.feature("test")
class TestEditPage():@allure.story("test01")def test_1(self):"""这是成功用例"""step_1()step_2()print("测试成功")@allure.story("test02")def test_2(self):"""这是失败用例"""assert 1 == 2, "测试失败"@allure.story("test03")def test_3(self):"""成功用例3"""print("test03")def test_31(self):"""成功用例31"""print("成功用例31")def test_32(self):"""成功用例32"""print("成功用例32")@allure.story("test04")def test_04(self):"""成功用例4"""print("test04")def test_41(self):"""失败用例41"""print("失败用例41")assert 1 == 2def test_42(self):"""成功用例42"""print("成功用例42")

我们先切换到demo所在目录,在Terminal输入如下命令:

pytest -s test_allure.py --alluredir report

其中report为报告的目录,运行命令,输出的内容如下:

================================================================================= test session starts =================================================================================
platform win32 -- Python 3.7.7, pytest-7.4.0, pluggy-1.2.0
rootdir: C:\Users\89703\PycharmProjects\hogwarts-sdetck26\CalculatorProject
plugins: allure-pytest-2.13.2, Faker-18.13.0
collected 8 items                                                                                                                                                                      test_allure.py step1
step2
测试成功
.Ftest03
.成功用例31
.成功用例32
.test04
.失败用例41
F成功用例42
.====================================================================================== FAILURES =======================================================================================
_________________________________________________________________________________ TestEditPage.test_2 _________________________________________________________________________________self = <CalculatorProject.test_allure.TestEditPage object at 0x000001E1A96F7308>@allure.story("test02")def test_2(self):"""这是失败用例"""
>       assert 1 == 2, "测试失败"
E       AssertionError: 测试失败
E       assert 1 == 2test_allure.py:33: AssertionError
________________________________________________________________________________ TestEditPage.test_41 _________________________________________________________________________________self = <CalculatorProject.test_allure.TestEditPage object at 0x000001E1A96F5AC8>def test_41(self):"""失败用例41"""print("失败用例41")
>       assert 1 == 2
E       assert 1 == 2test_allure.py:56: AssertionError
=============================================================================== short test summary info ===============================================================================
FAILED test_allure.py::TestEditPage::test_2 - AssertionError: 测试失败
FAILED test_allure.py::TestEditPage::test_41 - assert 1 == 2
============================================================================= 2 failed, 6 passed in 0.31s =============================================================================

生成网页报告

# 启用 allure server 展示测试报告allure serve report

浏览器将会自动打开网页报告,如下图:

总结

本文主要介绍了Windows系统中如何配置allure环境,并且结合pytest生成美观的测试报告的基本步骤,后续我们将介绍pytest与allure结合的更高级的应用。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring Security介绍

一、Spring Security&#xff1a; 1、简介&#xff1a;Spring Security 是一个非常流行和成功的 Java 应用开发框架。Spring Security 基于 Spring 框架&#xff0c;提供了一套 Web 应用安全性的完整解决方案。一般来说&#xff0c;Web 应用的安全性包括用户认证&#xff08;A…

vue3引用类型和基础类型深度克隆

深度克隆失效的一个例子 import { cloneDeep } from "lodash"; import { ref } from "vue";const navArr ref(["recommend","hot","new", ]) const list1: any ref([]) const list2: any ref([]) const list3: any ref(…

【Leetcode】15. 三数之和

【Leetcode】15. 三数之和 题目链接思路代码 题目链接 【Leetcode】15. 三数之和 思路 排序双指针去重 代码 func threeSum(nums []int) [][]int {// 切片升序排序sort.Slice(nums, func(i, j int) bool {return nums[i] < nums[j]})// 结果切片ans : [][]int{}n : len(n…

如何设置电脑桌面提醒,电脑笔记软件哪个好?

对于大多数上班族来说&#xff0c;每天要完成的待办事项实在太多了&#xff0c;如果不能及时去处理&#xff0c;很容易因为各种因素导致忘记&#xff0c;从而给自己带来不少麻烦。所以&#xff0c;我们往往会借助一些提醒类的软件将各项任务逐一记录下来&#xff0c;然后设置上…

微前端理论

学习微前端时&#xff0c;有几个核心概念和技术点是必须要理解和掌握的&#xff1a; 微前端架构&#xff1a; 微前端是一种将大型单体应用拆分为多个小型前端应用&#xff0c;每个应用可以独立开发、部署和升级&#xff0c;最后通过某种集成方式统一呈现给用户的前端架构模式。…

手持终端PDA定制厂家_5G安卓手持机设备/条形码扫描手持机PDA

手持终端PDA是一种功能强大的手持终端设备&#xff0c;具备一维码和二维码扫描功能&#xff0c;广泛应用于门票管理、零售、智能巡检、仓储物资管理、金融、快递等领域。 这款手持终端基于MT6877方案&#xff0c;搭载八核处理器(2xCortex-A78 2.4GHz 6xCortex-A55 2.0GHz)&…

高速PCB设计10大要点总结

学习高速PCB设计&#xff0c;掌握这10个知识点很重要&#xff01; 在高速PCB设计的学习中&#xff0c;有很多的知识点需要大家去了解和掌握&#xff0c;比如常见的信号完整性、反射、串扰、电源噪声、滤波等。本文和大家分享10个和高速PCB设计相关的重要知识&#xff0c;希望对…

ChatGPT4+Python近红外光谱数据分析及机器学习与深度学习建模进阶应用

2022年11月30日&#xff0c;可能将成为一个改变人类历史的日子——美国人工智能开发机构OpenAI推出了聊天机器人ChatGPT3.5&#xff0c;将人工智能的发展推向了一个新的高度。2023年4月&#xff0c;更强版本的ChatGPT4.0上线&#xff0c;文本、语音、图像等多模态交互方式使其在…

React16源码: React中的setState和forceUpdate源码实现

setState 和 forceUpdate 1 &#xff09; 概述 通过 class component 内部的 setState&#xff0c;以及 forceUpdate 去更新一个组件的过程在react的应用当中&#xff0c;我们只有 ReactDOM.render setState&#xff0c;以及 forceUpdate这几种种方式去更新react的应用是合理…

【Linux】修改Linux远程登录用户并授权,禁止root远程登录,修改Linux登录端口

一、修改Linux远程登录用户并授权 添加一个新的普通用户 用如下命令 adduser newuser 修改密码 passwd newuser 根据提示 输入密码 赋予newuser root 权限 修改 /etc/sudoers 文件 找到如下一行 &#xff0c;取消注释 ##Allows people in group wheel to run all commands %wh…

C# 学习笔记2-控制流与类型转换

控制流与类型转换 关于变量的简单操作判断循环类型转换异常处理检查数字类型的溢出 变量操作 一元运算符 Unary operators x&#xff0c;x&#xff0c;x--&#xff0c;--x。 这些运算符同 C。 postfix operator 后置运算符 还有 typeof(int)&#xff0c;sizeof(int)。 …

最新GPT4、AI绘画、DALL-E3文生图模型教程,GPT语音对话使用,ChatFile文档对话总结

一、前言 ChatGPT3.5、GPT4.0、GPT语音对话、Midjourney绘画&#xff0c;文档对话总结DALL-E3文生图&#xff0c;相信对大家应该不感到陌生吧&#xff1f;简单来说&#xff0c;GPT-4技术比之前的GPT-3.5相对来说更加智能&#xff0c;会根据用户的要求生成多种内容甚至也可以和…

【轮式移动机器人课程笔记 5】运动学仿真

L5 运动学仿真 本节重点&#xff1a; 如何理解推导出的运动学模型 回顾&#xff1a;机器人运动学模型 正向&#xff08;前向&#xff09;运动学模型反向运动学模型 基于MatLab运动学仿真 本节重点&#xff0c;如何利用matlab对运动学进行仿真 5.1 回顾运动学模型 [ x ˙ y …

离线AI聊天清华大模型(ChatGLM3)本地搭建

在特定的情况下&#xff0c;要保证信息安全的同时还能享受到AIGC大模型带来的乐趣和功能&#xff0c;那么&#xff0c;离线部署就能帮助到你&#xff0c;最起码&#xff0c;它是一个真正可用的方案。 大模型本身清华的 (ChatGLM3)&#xff0c;为的是对中文支持友好&#xff0c…

kotlin的接口详解

在 Kotlin 中&#xff0c;接口&#xff08;Interface&#xff09;是一种定义了一组方法的抽象类型。与类不同&#xff0c;接口不能包含状态或字段。接口中的方法可以有默认实现&#xff0c;也可以是抽象的需要在实现类中提供具体实现的方法。 为什么要使用接口&#xff1f; 多…

2696. 删除子串后的字符串最小长度 --力扣 --JAVA

题目 给你一个仅由 大写 英文字符组成的字符串 s 。 你可以对此字符串执行一些操作&#xff0c;在每一步操作中&#xff0c;你可以从 s 中删除 任一个 "AB" 或 "CD" 子字符串。 通过执行操作&#xff0c;删除所有 "AB" 和 "CD" 子串&a…

pythonnumpy十三:借助numpy解方程

使用NumPy进行解方程可以涉及线性方程组和非线性方程的求解。下面将给出详细的示例&#xff1a; 1.解线性方程组&#xff1a; 考虑以下线性方程组&#xff1a; 2x 3y 6 4x 5y 7我们可以使用NumPy的linalg.solve()函数求解该线性方程组。 import numpy as np# 定义系数矩…

Unity Editor实用功能:Hierarchy面板的对象上绘制按按钮并响应

目录 需求描述上代码打个赏吧 需求描述 现在有这样一个需求&#xff1a; 在Hierarchy面板的对象上绘制按钮点击按钮&#xff0c;弹出菜单再点击菜单项目响应自定义操作在这里的响应主要是复制对象层级路路径 看具体效果请看动图&#xff1a; 注&#xff1a; 核心是对Edito…

【2024系统架构设计】 系统架构设计师第二版-安全架构设计理论与实践

目录 一 安全架构概述 二 安全模型 三 系统安全体系架构规划框架 四 信息安全整体架构设计 五 网络安全体系架构设计 六 数据库系统安全设计

霹雳吧啦Wz《pytorch图像分类》-p6MobileNet网络

《pytorch图像分类》p6MobileNet网络结构详解 1 MobileNet v1网络1.1 Depthwise convolution&#xff08;DW卷积&#xff09;1.1.1Depthwise separable convolution&#xff08;深度可分的卷积操作&#xff09; 1.2 增加超参数α和β 2 MobileNet v2网络2.1 Inverted Residuals…