python3+allure 安装及使用(windows)

本文档详细介绍了如何在Python3环境下安装和使用Allure报告工具,包括Java的安装、Python的pytest和allure插件的安装、Allure的下载与环境变量配置,以及如何生成和查看测试报告。遇到Python2环境下安装问题的读者可以参考Python3的安装步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本篇主要介绍python3环境下allure的安装及使用,本人在python2环境下使用pip install allure-pytest一直未成功,提示如图:有没有哪位大佬可以帮忙解决,感激不尽😀
在这里插入图片描述

言归正传!!!!
使用allure需要安装Java 1.8+ 及python 3
java 安装可以自行百度,很多博主都有介绍
java 安装包下载:https://pan.baidu.com/s/1HpYcvSAcHtbpHFtEKyua5A
提取码: kc4k

allure 安装
1.python 安装pytest及 allure插件
pip install pytest
pip install allure-pytest
2.下载allure
链接: https://pan.baidu.com/s/1_9eOllGXyH4xoKZaIyd_9w
提取码: mgqx
3.配置环境变量
下载zip包后解压缩,并配置环境变量:将allure/bin路径添加至PATH中
cmd中输入allure,提示allure参数定义则配置成功

allure 生成报告
1.执行python 文件
pytest py文件 --alluredir=报告保存路径(可自定义) --clean-alluredir
allure serve 报告保存路径
eg:
pytest d:/test.py --alluredir=d:/allure/result --clean-alluredir
allure serve d:/allure/result
在这里插入图片描述

测试报告图下:
在这里插入图片描述

<think>好的,我现在需要帮助用户解决如何集成Python、pytest和Allure生成测试报告,并通过飞书发送的问题。首先,我得回忆一下相关的知识,并结合用户提供的引用内容来组织步骤。 首先,用户已经提到了使用pytest和Allure生成测试报告,引用中的内容提到需要执行测试用例并生成Allure结果数据。例如,引用[2]和[3]中使用了pytest.main和--alluredir参数来生成测试结果。然后通过allure generate命令生成HTML报告。因此,基础步骤应该是安装必要的工具,配置测试用例,生成报告。 接下来,用户想通过飞书发送报告。飞书机器人发送消息通常需要使用Webhook URL,可能需要构造消息内容,包括文本和报告链接或附件。我需要考虑如何将生成的Allure报告打包或上传,然后通过飞书的API发送通知。 可能的问题点包括:如何自动化生成报告并获取其路径,如何将报告上传到某个可访问的位置(比如内部服务器或云存储),以及如何调用飞书的API发送消息。用户可能需要安装飞书的SDK或使用requests库发送HTTP请求。 另外,引用[5]提到在测试报告中记录应用状态,如日志和截图,这可能需要在测试用例中添加相关逻辑,但用户当前的问题主要是生成报告和发送,所以这一步可能暂时不需要深入。 现在需要将整个过程分解为步骤: 1. 安装必要的库和工具:pytest, allure-pytest, allure命令行工具,以及飞书相关的库如requests。 2. 编写测试用例,配置pytest以生成Allure结果。 3. 生成Allure HTML报告。 4. 将报告打包或上传到可访问的URL。 5. 使用飞书机器人发送消息,包含报告链接或附件。 在步骤4中,如果报告是本地生成的,可能需要使用飞书的上传文件接口,或者将报告部署到Web服务器上。如果用户内部有服务器,可以scp报告到服务器路径,并生成一个http链接。或者使用云存储服务,比如阿里云OSS,腾讯云COS等,上传后获取公共链接。 对于步骤5,飞书机器人的消息发送通常需要构造一个JSON请求,包含消息类型(比如文本、富文本、文件等)。需要查阅飞书开放平台的文档,获取如何发送消息的示例。 现在需要考虑如何将这些步骤用Python脚本自动化。例如,在pytest执行完成后,调用allure生成报告,然后调用飞书发送的脚本。 可能的代码结构: - 主脚本中运行pytest,生成结果。 - 生成Allure报告。 - 使用Python脚本处理报告路径,调用飞书API。 此外,引用[2]中的示例已经展示了如何用pytest.main执行测试用例并生成结果,然后使用os.system生成报告。可以在此基础上添加飞书发送的部分。 需要注意的点: - 飞书机器人的权限:需要创建自定义机器人,获取webhook地址。 - 报告的可访问性:生成的Allure报告如果是本地文件,直接发送文件可能不可行,需要上传到某个地方,或者作为附件发送。但飞书机器人可能不支持直接发送本地文件,所以需要先将报告压缩,上传到企业空间,或者生成一个可访问的URL。 可能的解决方案是将报告目录压缩成zip,然后通过飞书的上传接口获取文件的key,再在消息中引用该文件。或者,如果公司有内部网站,可以将报告部署到指定位置,然后在消息中发送链接。 综上,步骤大致如下: 1. 安装依赖。 2. 配置测试用例和pytest。 3. 生成Allure报告。 4. 处理报告文件(压缩或上传)。 5. 发送飞书消息。 现在需要将这些步骤具体化,给出代码示例,比如使用requests发送飞书消息,处理文件上传等。 可能还需要处理异常情况,比如测试失败时是否发送报告,或者报告生成是否成功等。但用户可能只需要基本流程,因此可以简化处理。 最后,确保回答结构清晰,分步骤说明,并引用用户提供的引用内容中的相关部分,例如引用[2]中的pytest.main和allure generate命令。</think>### 分步解决方案 #### 步骤1:安装依赖工具 1. 安装Python测试框架及插件: ```bash pip install pytest allure-pytest requests ``` 2. 安装Allure命令行工具(需提前配置Java环境): ```bash # macOS/Linux brew install allure # Windows通过Scoop安装 scoop install allure ``` #### 步骤2:配置测试用例与生成报告 1. 创建测试用例文件 `test_demo.py`: ```python def test_example(): assert 1 + 1 == 2 ``` 2. 创建执行脚本 `run_tests.py`,集成测试执行与报告生成: ```python import os import pytest if __name__ == "__main__": # 执行测试并生成Allure原始数据 pytest.main(["./test_demo.py", "--alluredir=./allure-results"]) # 生成HTML测试报告 os.system("allure generate ./allure-results -o ./allure-report --clean") # 自动打开报告(可选) os.system("allure open ./allure-report") ``` #### 步骤3:集成飞书机器人发送报告 1. **创建飞书自定义机器人**: - 在飞书群组中添加「自定义机器人」,获取Webhook地址(格式:`https://open.feishu.cn/open-apis/bot/v2/hook/xxxx`)[^1]。 2. **发送消息到飞书**: ```python import requests import json def send_feishu_message(webhook_url, report_path): # 构造消息内容 message = { "msg_type": "post", "content": { "post": { "zh_cn": { "title": "测试报告通知", "content": [ [{"tag": "text", "text": "Allure测试报告已生成,请查看附件或访问链接:"}], [{"tag": "a", "text": "下载报告", "href": "http://your-server/report.zip"}] ] } } } } # 发送请求 response = requests.post(webhook_url, headers={"Content-Type": "application/json"}, data=json.dumps(message)) return response.status_code # 调用示例 webhook_url = "YOUR_WEBHOOK_URL" send_feishu_message(webhook_url, "./allure-report") ``` #### 步骤4:优化报告传递方式(可选) - **方案1:上传报告到服务器** 将 `allure-report` 目录压缩后上传至内部服务器或云存储,生成可访问链接。 ```python import zipfile # 压缩报告目录 with zipfile.ZipFile(&#39;report.zip&#39;, &#39;w&#39;) as zipf: for root, _, files in os.walk(&#39;./allure-report&#39;): for file in files: zipf.write(os.path.join(root, file)) # 此处调用上传逻辑(需实现具体上传方法) ``` - **方案2:通过飞书API上传文件** 使用飞书文件上传接口获取文件Key,并在消息中引用[^2]。 --- ### 代码解释 1. **测试执行与报告生成**: - `pytest.main` 执行测试并输出Allure原始数据到 `allure-results` 目录[^3]。 - `allure generate` 将原始数据转换为HTML报告[^4]。 2. **飞书消息推送**: - 通过HTTP POST请求发送富文本消息,包含报告链接或操作指引。 - 若需发送附件,需结合飞书文件上传API实现[^5]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值